主题:求助啊~~各位大虾帮忙给做个注释啊,快要交实验报告啦!!!
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
/********************************************/
struct Student
{
string testnum;
string name;
string college;
string grade;
string language;
string score;
};
/********************************************/
class fbFindByNum
{
public:
fbFindByNum(string num):m_num(num){}
bool operator()(const Student& s)
{
if(m_num==s.testnum)
return true;
else
return false;
}
private:
string m_num;
};
/********************************************/
class fbFindByName
{
public:
fbFindByName(string name):m_name(name){}
bool operator()(const Student& s)
{
if(m_name==s.name)
return true;
else
return false;
}
private:
string m_name;
};
/********************************************/
class fbCountByGrade4
{
public:
bool operator()(const Student& s)
{
if("4"==s.grade)
return true;
else
return false;
}
};
/********************************************/
class fbCountByGrade6
{
public:
bool operator()(const Student& s)
{
if("6"==s.grade)
return true;
else
return false;
}
};
/********************************************/
class StuSys
{
public:
void menu();
void add_record();
void delete_record();
void select();
void modify();
void statistic();
void compositor();
void show();
void grasyc();
private:
vector<Student> vStu;
};
/********************************************/
void StuSys::menu()
{
system("cls");
cout<<"************###************\n";
cout<<"学生四六级考试成绩管理!\n";
cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
cout<<"***************************\n";
cout<<"1.增添\n";
cout<<"2.删除\n";
cout<<"3.查询\n";
cout<<"4.修改\n";
cout<<"5.统计\n";
cout<<"6.演示\n";
cout<<"7.退出\n";
cout<<"***************************\n";
cin.clear();
cin.sync();
char choice=cin.get();
switch(choice)
{
case '1':
add_record(); break;
case '2':
delete_record(); break;
case '3':
select(); break;
case '4':
modify(); break;
case '5':
statistic(); break;
case '6':
show(); break;
case '7':
; break;
default:
menu();
}
}
/********************************************/
void StuSys::add_record()
{
system("cls");
cin.clear();
cin.sync();
cout<<"请输入学生的考试信息:\n";
cout<<"准考证号以输入0结束!\n";
cout<<"***************************************\n";
cout<<"准考证号 "<<"姓名 "<<"学校 "<<"考试级别 "<<"选考语种"<<" "<<"成绩"<<endl;
Student *pStu=new Student;
cin>>pStu->testnum;
while("0"!=pStu->testnum)
{
cin>>pStu->name>>pStu->college>>pStu->grade>>pStu->language>>pStu->score;
vStu.push_back(*pStu);
cin>>pStu->testnum;
}
cin.clear();
cin.sync();
cin.peek();
menu();
}
/********************************************/
void StuSys::delete_record()
{
system("cls");
cin.clear();
cin.sync();
cout<<"请输入你想删除的学生的准考证号:\n";
cout<<"准考证号以输入0结束!\n";
cout<<"**************************************************************\n";
string tnum;
cin>>tnum;
vector<Student>::iterator vStuIte;
while("0"!=tnum)
{
fbFindByNum fbnbf(tnum);
vStuIte=find_if(vStu.begin(),vStu.end(),fbnbf);
if(vStu.end()==vStuIte)
{
cout<<"没有找到该学生的相关信息,删除失败!\n";
}
else
{
vStu.erase(vStuIte);
cout<<"删除完成!\n";
}
cin>>tnum;
}
cin.clear();
cin.sync();
cin.peek();
menu();
}
/********************************************/
void StuSys::select()
{
system("cls");
cout<<"**********************\n";
cout<<"1.以考试证号.\n";
cout<<"2.以考生姓名.\n";
cout<<"3.退出.\n";
cout<<"**********************\n";
cin.clear();
cin.sync();
char choice=cin.get();
system("cls");
while('3'!=choice)
{
if('1'==choice)
{
system("cls");
cout<<"请输入您想查询的考生的准考证号:\n";
cout<<"准考证号以输入0结束!\n";
cout<<"**************************************************************\n";
string tnum;
cin>>tnum;
system("cls");
vector<Student>::iterator vStuIte=vStu.begin();
fbFindByNum fbnbf(tnum);
vStuIte=find_if(vStuIte,vStu.end(),fbnbf);
if(vStu.end()==vStuIte)
{
cout<<"没有找到该考生相关信息,查询失败!\n";
}
else
{
while(vStu.end()!=vStuIte)
{
cout<<(*vStuIte).testnum<<"\t "<<(*vStuIte).name<<"\t "<<(*vStuIte).college<<"\t "
<<(*vStuIte).grade<<"\t "<<(*vStuIte).language<<"\t "<<(*vStuIte).score<<endl;
vStuIte=find_if(++vStuIte,vStu.end(),fbnbf);
}
}
}
if('2'==choice)
{
system("cls");
cout<<"请输入您想查询的考生姓名:\n";
cout<<"准考证号以输入0结束!\n";
cout<<"**************************************************************\n";
string tname;
cin>>tname;
system("cls");
vector<Student>::iterator vStuIte=vStu.begin();
fbFindByName fbnabf(tname);
vStuIte=find_if(vStuIte,vStu.end(),fbnabf);
if(vStu.end()==vStuIte)
{
cout<<"没有找到该考生相关信息,查询失败!\n";
}
else
{
while(vStu.end()!=vStuIte)
{
cout<<(*vStuIte).testnum<<"\t "<<(*vStuIte).name<<"\t "<<(*vStuIte).college<<"\t "
<<(*vStuIte).grade<<"\t "<<(*vStuIte).language<<"\t "<<(*vStuIte).score<<endl;
vStuIte=find_if(++vStuIte,vStu.end(),fbnabf);
}
}
}
cin.clear();
cin.sync();
cin.peek();
system("cls");
cout<<"**********************\n";
cout<<"1.以考试证号.\n";
cout<<"2.以姓名.\n";
cout<<"3.退出\n";
cout<<"**********************\n";
cin.clear();
cin.sync();
choice=cin.get();
}
cin.clear();
cin.sync();
cin.peek();
menu();
}
/********************************************/
void StuSys::modify()
{
system("cls");
cin.clear();
cin.sync();
cout<<"请输入您想修改的考生的准考证号:\n";
cout<<"准考证号以输入0结束!\n";
cout<<"**************************************************************\n";
string tnum;
vector<Student>::iterator vStuIte;
cin>>tnum;
system("cls");
fbFindByNum fbnbf(tnum);
vStuIte=find_if(vStu.begin(),vStu.end(),fbnbf);
if(vStu.end()==vStuIte)
{
cout<<"没有找到该考生相关信息,修改失败!\n";
}
else
{
cout<<"准考证号 "<<"姓名 "<<"学校 "<<"考试等级 "<<"选考语种 "<<"成绩 "<<endl;
cout<<"***************************************\n";
Student *pStu=new Student;
cin>>pStu->testnum>>pStu->name>>pStu->college>>pStu->grade>>pStu->language>>pStu->score;
(*vStuIte)=*pStu;
cout<<"修改完成!\n";
}
cin.clear();
cin.sync();
cin.peek();
menu();
}
/********************************************/
void StuSys::statistic()
{
system("cls");
cout<<"**********************\n";
cout<<"1.以考试等级\n";
cout<<"2.以成绩\n";
cout<<"3.以选考语种\n";
cout<<"4.以学校\n";
cout<<"5.退出\n";
cout<<"**********************\n";
cin.clear();
cin.sync();
char choice=cin.get();
while('5'==choice)
{
switch(choice)
{
case '1':
void grysyc(); break;
case '2':
; break;
case '3':
; break;
case '4':
; break;
case '5':
; break;
default:
statistic();
}
}
cin.clear();
cin.sync();
cin.peek();
menu();
}
/********************************************/
void StuSys::show()
{
system("cls");
if(vStu.empty())
{
cout<<"数据为空!\n";
}
else
{
for(int i=0;i<vStu.size();++i)
{
cout<<vStu.at(i).testnum<<"\t "<<vStu.at(i).name<<"\t "<<vStu.at(i).college<<"\t "
<<vStu.at(i).grade<<"\t "<<vStu.at(i).language<<"\t "<<vStu.at(i).score<<endl;
}
}
cin.clear();
cin.sync();
cin.peek();
menu();
}
/********************************************/
int main()
{
StuSys s;
s.menu();
return 0;
}
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
/********************************************/
struct Student
{
string testnum;
string name;
string college;
string grade;
string language;
string score;
};
/********************************************/
class fbFindByNum
{
public:
fbFindByNum(string num):m_num(num){}
bool operator()(const Student& s)
{
if(m_num==s.testnum)
return true;
else
return false;
}
private:
string m_num;
};
/********************************************/
class fbFindByName
{
public:
fbFindByName(string name):m_name(name){}
bool operator()(const Student& s)
{
if(m_name==s.name)
return true;
else
return false;
}
private:
string m_name;
};
/********************************************/
class fbCountByGrade4
{
public:
bool operator()(const Student& s)
{
if("4"==s.grade)
return true;
else
return false;
}
};
/********************************************/
class fbCountByGrade6
{
public:
bool operator()(const Student& s)
{
if("6"==s.grade)
return true;
else
return false;
}
};
/********************************************/
class StuSys
{
public:
void menu();
void add_record();
void delete_record();
void select();
void modify();
void statistic();
void compositor();
void show();
void grasyc();
private:
vector<Student> vStu;
};
/********************************************/
void StuSys::menu()
{
system("cls");
cout<<"************###************\n";
cout<<"学生四六级考试成绩管理!\n";
cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
cout<<"***************************\n";
cout<<"1.增添\n";
cout<<"2.删除\n";
cout<<"3.查询\n";
cout<<"4.修改\n";
cout<<"5.统计\n";
cout<<"6.演示\n";
cout<<"7.退出\n";
cout<<"***************************\n";
cin.clear();
cin.sync();
char choice=cin.get();
switch(choice)
{
case '1':
add_record(); break;
case '2':
delete_record(); break;
case '3':
select(); break;
case '4':
modify(); break;
case '5':
statistic(); break;
case '6':
show(); break;
case '7':
; break;
default:
menu();
}
}
/********************************************/
void StuSys::add_record()
{
system("cls");
cin.clear();
cin.sync();
cout<<"请输入学生的考试信息:\n";
cout<<"准考证号以输入0结束!\n";
cout<<"***************************************\n";
cout<<"准考证号 "<<"姓名 "<<"学校 "<<"考试级别 "<<"选考语种"<<" "<<"成绩"<<endl;
Student *pStu=new Student;
cin>>pStu->testnum;
while("0"!=pStu->testnum)
{
cin>>pStu->name>>pStu->college>>pStu->grade>>pStu->language>>pStu->score;
vStu.push_back(*pStu);
cin>>pStu->testnum;
}
cin.clear();
cin.sync();
cin.peek();
menu();
}
/********************************************/
void StuSys::delete_record()
{
system("cls");
cin.clear();
cin.sync();
cout<<"请输入你想删除的学生的准考证号:\n";
cout<<"准考证号以输入0结束!\n";
cout<<"**************************************************************\n";
string tnum;
cin>>tnum;
vector<Student>::iterator vStuIte;
while("0"!=tnum)
{
fbFindByNum fbnbf(tnum);
vStuIte=find_if(vStu.begin(),vStu.end(),fbnbf);
if(vStu.end()==vStuIte)
{
cout<<"没有找到该学生的相关信息,删除失败!\n";
}
else
{
vStu.erase(vStuIte);
cout<<"删除完成!\n";
}
cin>>tnum;
}
cin.clear();
cin.sync();
cin.peek();
menu();
}
/********************************************/
void StuSys::select()
{
system("cls");
cout<<"**********************\n";
cout<<"1.以考试证号.\n";
cout<<"2.以考生姓名.\n";
cout<<"3.退出.\n";
cout<<"**********************\n";
cin.clear();
cin.sync();
char choice=cin.get();
system("cls");
while('3'!=choice)
{
if('1'==choice)
{
system("cls");
cout<<"请输入您想查询的考生的准考证号:\n";
cout<<"准考证号以输入0结束!\n";
cout<<"**************************************************************\n";
string tnum;
cin>>tnum;
system("cls");
vector<Student>::iterator vStuIte=vStu.begin();
fbFindByNum fbnbf(tnum);
vStuIte=find_if(vStuIte,vStu.end(),fbnbf);
if(vStu.end()==vStuIte)
{
cout<<"没有找到该考生相关信息,查询失败!\n";
}
else
{
while(vStu.end()!=vStuIte)
{
cout<<(*vStuIte).testnum<<"\t "<<(*vStuIte).name<<"\t "<<(*vStuIte).college<<"\t "
<<(*vStuIte).grade<<"\t "<<(*vStuIte).language<<"\t "<<(*vStuIte).score<<endl;
vStuIte=find_if(++vStuIte,vStu.end(),fbnbf);
}
}
}
if('2'==choice)
{
system("cls");
cout<<"请输入您想查询的考生姓名:\n";
cout<<"准考证号以输入0结束!\n";
cout<<"**************************************************************\n";
string tname;
cin>>tname;
system("cls");
vector<Student>::iterator vStuIte=vStu.begin();
fbFindByName fbnabf(tname);
vStuIte=find_if(vStuIte,vStu.end(),fbnabf);
if(vStu.end()==vStuIte)
{
cout<<"没有找到该考生相关信息,查询失败!\n";
}
else
{
while(vStu.end()!=vStuIte)
{
cout<<(*vStuIte).testnum<<"\t "<<(*vStuIte).name<<"\t "<<(*vStuIte).college<<"\t "
<<(*vStuIte).grade<<"\t "<<(*vStuIte).language<<"\t "<<(*vStuIte).score<<endl;
vStuIte=find_if(++vStuIte,vStu.end(),fbnabf);
}
}
}
cin.clear();
cin.sync();
cin.peek();
system("cls");
cout<<"**********************\n";
cout<<"1.以考试证号.\n";
cout<<"2.以姓名.\n";
cout<<"3.退出\n";
cout<<"**********************\n";
cin.clear();
cin.sync();
choice=cin.get();
}
cin.clear();
cin.sync();
cin.peek();
menu();
}
/********************************************/
void StuSys::modify()
{
system("cls");
cin.clear();
cin.sync();
cout<<"请输入您想修改的考生的准考证号:\n";
cout<<"准考证号以输入0结束!\n";
cout<<"**************************************************************\n";
string tnum;
vector<Student>::iterator vStuIte;
cin>>tnum;
system("cls");
fbFindByNum fbnbf(tnum);
vStuIte=find_if(vStu.begin(),vStu.end(),fbnbf);
if(vStu.end()==vStuIte)
{
cout<<"没有找到该考生相关信息,修改失败!\n";
}
else
{
cout<<"准考证号 "<<"姓名 "<<"学校 "<<"考试等级 "<<"选考语种 "<<"成绩 "<<endl;
cout<<"***************************************\n";
Student *pStu=new Student;
cin>>pStu->testnum>>pStu->name>>pStu->college>>pStu->grade>>pStu->language>>pStu->score;
(*vStuIte)=*pStu;
cout<<"修改完成!\n";
}
cin.clear();
cin.sync();
cin.peek();
menu();
}
/********************************************/
void StuSys::statistic()
{
system("cls");
cout<<"**********************\n";
cout<<"1.以考试等级\n";
cout<<"2.以成绩\n";
cout<<"3.以选考语种\n";
cout<<"4.以学校\n";
cout<<"5.退出\n";
cout<<"**********************\n";
cin.clear();
cin.sync();
char choice=cin.get();
while('5'==choice)
{
switch(choice)
{
case '1':
void grysyc(); break;
case '2':
; break;
case '3':
; break;
case '4':
; break;
case '5':
; break;
default:
statistic();
}
}
cin.clear();
cin.sync();
cin.peek();
menu();
}
/********************************************/
void StuSys::show()
{
system("cls");
if(vStu.empty())
{
cout<<"数据为空!\n";
}
else
{
for(int i=0;i<vStu.size();++i)
{
cout<<vStu.at(i).testnum<<"\t "<<vStu.at(i).name<<"\t "<<vStu.at(i).college<<"\t "
<<vStu.at(i).grade<<"\t "<<vStu.at(i).language<<"\t "<<vStu.at(i).score<<endl;
}
}
cin.clear();
cin.sync();
cin.peek();
menu();
}
/********************************************/
int main()
{
StuSys s;
s.menu();
return 0;
}