Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Write your code here
- #include<iostream>
- #include<fstream>
- #include<string>
- #include<vector>
- using namespace std;
- int main(){
- char format[]="%[^:]: %d %d %d";
- char option[]="%s %s";
- char g;
- vector<string> name;
- vector<int> total;
- vector<char> grade;
- int a,b,c;
- int count=0;
- ifstream score;
- string text;
- score.open("name_score.txt");
- while(getline(score,text)){
- const char * t = text.c_str();
- char n[100];
- sscanf(t,format,n,&a,&b,&c);
- name.push_back(n);
- total.push_back(a+b+c);
- if(a+b+c>=80)g='A';
- else if(a+b+c>=70)g='B';
- else if(a+b+c>=60)g='C';
- else if(a+b+c>=50)g='D';
- else{g='F';}
- grade.push_back(g);
- count ++;
- }
- score.close();
- string sinput="abc";
- char search[100],data[100];
- while(sinput!="exit"){
- char search[100]="invalid";
- string ssearch="invalid";
- int presence=0;
- cout<<"Please input your command :";
- getline(cin,sinput);
- const char * input = sinput.c_str();
- for(int i=0;i<sinput.size();i++)sinput[i]=tolower(sinput[i]);
- if(sinput!="exit"){
- sscanf(input,option,search,data);
- ssearch=search;
- string sdata=data;
- sdata[0]=toupper(sdata[0]);
- for(int i=1;i<sdata.size();i++)sdata[i]=tolower(sdata[i]);
- for(int i=0;i<ssearch.size();i++)ssearch[i]=tolower(ssearch[i]);
- if(ssearch=="name"){
- for(int i=0;i<count;i++){
- if(name[i]==sdata){
- cout<<name[i]<<"'s grade = "<<grade[i]<<"\n";
- presence=1;
- }
- }
- if(presence==0)cout<<"Cannot found.\n";
- cout<<"---------------------------------\n";
- }
- else if(ssearch=="grade"){
- for(int i=0;i<count;i++){
- if(grade[i]==sdata[0]){
- cout<<name[i]<<"\n";
- presence=1;
- }
- }
- if(presence==0)cout<<"Cannot found.\n";
- cout<<"---------------------------------\n";
- }else{
- cout<<"Invalid command\n";
- }
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement