![]() |
#2
wengbin2015-12-22 09:00
|

#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
#include<iomanip>
#include<list>
using namespace std;
class person
{
public:
string name;
string tel;
string adr;
string ID;
public:
person(){};
// person(string,string,string,string);
~person(){};
};
class student:public person
{
public:
string code;
double math;
double chinese;
double english;
public:
student(){};
//student(string,string,string,string,string,double,double,double);
double getsum()
{
return math+chinese+english;
}
double getaver()
{
return (math+chinese+english)/3;
}
};
class control
{
public:
// void find(std::vector<student>&ver);
void edit(vector<student>&ver);
void del(vector<student>&ver);
void insert(vector<student>&ver);
void st(vector<student>&ver);
void list(vector<student>&ver);
void jiemian();
};
void control::jiemian()
{
cout<<endl;
cout<<"*****************************************"<<endl;
cout<<"* 请选择您需要的操作: *"<<endl;
cout<<"* 1 增加学生 *"<<endl;
cout<<"* 2 删除学生 *"<<endl;
cout<<"* 3 修改数据 *"<<endl;
cout<<"* 4 查询数据 *"<<endl;
cout<<"* 5 输出所有数据 *"<<endl;
cout<<"* 6 按成绩排序 *"<<endl;
cout<<"* 0 退出 *"<<endl;
cout<<"* 请输入对应数字 *"<<endl;
cout<<"*****************************************"<<endl;
cout<<endl;
return;
};
void control::insert(vector<student>&ver)
{
student stu;
string stucode;
string stuname;
string stuadr;
string stutel;
string stuID;
double math,chinese,english;
cout<<"请输入学号:";
cin>>stucode;
cout<<"请输入姓名:";
cin>>stuname;
cout<<"请输入地址:";
cin>>stuadr;
cout<<"请输入电话:";
cin>>stutel;
cout<<"请输入身份证号:";
cin>>stuID;
cout<<"请输入数学成绩:";
cin>>math;
cout<<"请输入语文成绩:";
cin>>chinese;
cout<<"请输入英语成绩:";
cin>>english;
stu.code=stucode;
stu.name=stuname;
stu.adr=stuadr;
stu.tel=stutel;
stu.ID=stuID;
stu.math=math;
stu.chinese=chinese;
stu.english=english;
stu.getsum();
stu.getaver();
ver.push_back(stu);
return;
}
void control::del(vector<student>&ver)
{
string stucode;
string stuname;
cout<<"请输入学号:";
cin>>stucode;
cout<<"请输入姓名:";
cin>>stuname;
vector<student>::iterator i;
for(i=ver.begin();i!=ver.end();++i)
{
if(((*i).code==stucode)&&((*i).name==stuname))
{
ver.erase(i);
return;
}
}
return;
}
void control::list(vector<student>&ver)
{
vector<student>::iterator i;
for(i=ver.begin();i!=ver.end();i++)
{
cout<<"学员清单如下:"<<endl;
cout<<"学号 姓名 电话 地址 身份证号 数学成绩 语文成绩 英语成绩 总分 平均分"<<endl;
cout<<(*i).code<<setw(4)<<(*i).name<<setw(4)<<(*i).tel<<setw(4)<<(*i).adr<<setw(4)<<(*i).ID<<setw(4)<<(*i).math<<setw(4)<<(*i).chinese<<setw(4)<<(*i).english<<setw(4)<<(*i).getsum()<<setw(4)<<(*i).getaver()<<endl;
}
}
void control::edit(vector<student>&ver)
{
string stucode;
string stuname;
cout<<"请输入学号:";
cin>>stucode;
cout<<"请输入姓名:";
cin>>stuname;
vector<student>::iterator i;
for(i=ver.begin();i!=ver.end();++i)
{
if(((*i).code==stucode)&&((*i).name==stuname))
{
cout<<"原来的数据:"<<endl;
cout<<"学号:"<<(*i).code<<endl;
cout<<"姓名:"<<(*i).name<<endl;
cout<<"电话:"<<(*i).tel<<endl;
cout<<"地址:"<<(*i).adr<<endl;
cout<<"身份证号码:"<<(*i).ID<<endl;
cout<<"数学成绩:"<<(*i).math<<endl;
cout<<"语文成绩:"<<(*i).chinese<<endl;
cout<<"英语成绩:"<<(*i).english<<endl;
cout<<"请输入新的数据:"<<endl;
cout<<"请输入姓名:";
cin>>(*i).name;
cout<<"请输入地址:";
cin>>(*i).adr;
cout<<"请输入电话:";
cin>>(*i).tel;
cout<<"请输入身份证号:";
cin>>(*i).ID;
cout<<"请输入数学成绩:";
cin>>(*i).math;
cout<<"请输入语文成绩:";
cin>>(*i).chinese;
cout<<"请输入英语成绩:";
cin>>(*i).english;
(*i).getsum();
(*i).getaver();
return;
}
}
}
void control::st(vector<student>&ver)
{
char fg;
cout<<"*****************************"<<endl;
cout<<"* 1 按总分排序 *"<<endl;
cout<<"* 2 按语文排序 *"<<endl;
cout<<"* 3 按数学排序 *"<<endl;
cout<<"* 4 按英语排序 *"<<endl;
cout<<"* 5 按平均分排序 *"<<endl;
cout<<"* 0 退出 *"<<endl;
cout<<"*****************************"<<endl;
cin>>fg;
switch(fg)
{
case '0':
return;
case '1':
std::sort(ver.begin(),ver.end(),greategetsum());
break;
case '2':
std::sort(ver.begin(),ver.end(),greatechinese);
break;
case '3':
std::sort(ver.begin(),ver.end(),greatemath);
break;
case '4':
std::sort(ver.begin(),ver.end(),greateenglish);
break;
case '5':
std::sort(ver.begin(),ver.end(),greategetaver());
break;
}
return;
}
void main()
{
char key;
vector<student>ver;
control c1;
do{
c1.jiemian();
cin>>key;
switch(key)
{
case '1':
c1.insert(ver);
break;
case '2':
c1.del(ver);
break;
case '3':
c1.edit(ver);
break;
case '4':
// c1.find(ver);
break;
case '5':
c1.list(ver);
break;
case '6':
c1.st(ver);
break;
}
}while(key!='0');
}
#include<vector>
#include<string>
#include<algorithm>
#include<iomanip>
#include<list>
using namespace std;
class person
{
public:
string name;
string tel;
string adr;
string ID;
public:
person(){};
// person(string,string,string,string);
~person(){};
};
class student:public person
{
public:
string code;
double math;
double chinese;
double english;
public:
student(){};
//student(string,string,string,string,string,double,double,double);
double getsum()
{
return math+chinese+english;
}
double getaver()
{
return (math+chinese+english)/3;
}
};
class control
{
public:
// void find(std::vector<student>&ver);
void edit(vector<student>&ver);
void del(vector<student>&ver);
void insert(vector<student>&ver);
void st(vector<student>&ver);
void list(vector<student>&ver);
void jiemian();
};
void control::jiemian()
{
cout<<endl;
cout<<"*****************************************"<<endl;
cout<<"* 请选择您需要的操作: *"<<endl;
cout<<"* 1 增加学生 *"<<endl;
cout<<"* 2 删除学生 *"<<endl;
cout<<"* 3 修改数据 *"<<endl;
cout<<"* 4 查询数据 *"<<endl;
cout<<"* 5 输出所有数据 *"<<endl;
cout<<"* 6 按成绩排序 *"<<endl;
cout<<"* 0 退出 *"<<endl;
cout<<"* 请输入对应数字 *"<<endl;
cout<<"*****************************************"<<endl;
cout<<endl;
return;
};
void control::insert(vector<student>&ver)
{
student stu;
string stucode;
string stuname;
string stuadr;
string stutel;
string stuID;
double math,chinese,english;
cout<<"请输入学号:";
cin>>stucode;
cout<<"请输入姓名:";
cin>>stuname;
cout<<"请输入地址:";
cin>>stuadr;
cout<<"请输入电话:";
cin>>stutel;
cout<<"请输入身份证号:";
cin>>stuID;
cout<<"请输入数学成绩:";
cin>>math;
cout<<"请输入语文成绩:";
cin>>chinese;
cout<<"请输入英语成绩:";
cin>>english;
stu.code=stucode;
stu.name=stuname;
stu.adr=stuadr;
stu.tel=stutel;
stu.ID=stuID;
stu.math=math;
stu.chinese=chinese;
stu.english=english;
stu.getsum();
stu.getaver();
ver.push_back(stu);
return;
}
void control::del(vector<student>&ver)
{
string stucode;
string stuname;
cout<<"请输入学号:";
cin>>stucode;
cout<<"请输入姓名:";
cin>>stuname;
vector<student>::iterator i;
for(i=ver.begin();i!=ver.end();++i)
{
if(((*i).code==stucode)&&((*i).name==stuname))
{
ver.erase(i);
return;
}
}
return;
}
void control::list(vector<student>&ver)
{
vector<student>::iterator i;
for(i=ver.begin();i!=ver.end();i++)
{
cout<<"学员清单如下:"<<endl;
cout<<"学号 姓名 电话 地址 身份证号 数学成绩 语文成绩 英语成绩 总分 平均分"<<endl;
cout<<(*i).code<<setw(4)<<(*i).name<<setw(4)<<(*i).tel<<setw(4)<<(*i).adr<<setw(4)<<(*i).ID<<setw(4)<<(*i).math<<setw(4)<<(*i).chinese<<setw(4)<<(*i).english<<setw(4)<<(*i).getsum()<<setw(4)<<(*i).getaver()<<endl;
}
}
void control::edit(vector<student>&ver)
{
string stucode;
string stuname;
cout<<"请输入学号:";
cin>>stucode;
cout<<"请输入姓名:";
cin>>stuname;
vector<student>::iterator i;
for(i=ver.begin();i!=ver.end();++i)
{
if(((*i).code==stucode)&&((*i).name==stuname))
{
cout<<"原来的数据:"<<endl;
cout<<"学号:"<<(*i).code<<endl;
cout<<"姓名:"<<(*i).name<<endl;
cout<<"电话:"<<(*i).tel<<endl;
cout<<"地址:"<<(*i).adr<<endl;
cout<<"身份证号码:"<<(*i).ID<<endl;
cout<<"数学成绩:"<<(*i).math<<endl;
cout<<"语文成绩:"<<(*i).chinese<<endl;
cout<<"英语成绩:"<<(*i).english<<endl;
cout<<"请输入新的数据:"<<endl;
cout<<"请输入姓名:";
cin>>(*i).name;
cout<<"请输入地址:";
cin>>(*i).adr;
cout<<"请输入电话:";
cin>>(*i).tel;
cout<<"请输入身份证号:";
cin>>(*i).ID;
cout<<"请输入数学成绩:";
cin>>(*i).math;
cout<<"请输入语文成绩:";
cin>>(*i).chinese;
cout<<"请输入英语成绩:";
cin>>(*i).english;
(*i).getsum();
(*i).getaver();
return;
}
}
}
void control::st(vector<student>&ver)
{
char fg;
cout<<"*****************************"<<endl;
cout<<"* 1 按总分排序 *"<<endl;
cout<<"* 2 按语文排序 *"<<endl;
cout<<"* 3 按数学排序 *"<<endl;
cout<<"* 4 按英语排序 *"<<endl;
cout<<"* 5 按平均分排序 *"<<endl;
cout<<"* 0 退出 *"<<endl;
cout<<"*****************************"<<endl;
cin>>fg;
switch(fg)
{
case '0':
return;
case '1':
std::sort(ver.begin(),ver.end(),greategetsum());
break;
case '2':
std::sort(ver.begin(),ver.end(),greatechinese);
break;
case '3':
std::sort(ver.begin(),ver.end(),greatemath);
break;
case '4':
std::sort(ver.begin(),ver.end(),greateenglish);
break;
case '5':
std::sort(ver.begin(),ver.end(),greategetaver());
break;
}
return;
}
void main()
{
char key;
vector<student>ver;
control c1;
do{
c1.jiemian();
cin>>key;
switch(key)
{
case '1':
c1.insert(ver);
break;
case '2':
c1.del(ver);
break;
case '3':
c1.edit(ver);
break;
case '4':
// c1.find(ver);
break;
case '5':
c1.list(ver);
break;
case '6':
c1.st(ver);
break;
}
}while(key!='0');
}