#include
#include
#include
#include
#include
#include
#include
using namespace std;
class CBirthday
{
private:
int year;
int month;
int day;
public:
CBirthday(int y=2000,int m=01,int d=01)
{
year=y;
month=m;
day=d;
}
CBirthday(CBirthday &d)
{
year=d.year;
month=d.month;
day=d.day;
}
int getyear()
{
return year;
}
int getmonth()
{
return month;
}
int getday()
{
return day;
}
void display()
{
cout<
};
class Person
{
private:
string ID;
string name;
string sex;
CBirthday birthday;
public:
Person()
{
ID="00000000";
sex="man";
name=" ";
}
void input(string id, string se,string na, CBirthday &d)
{
ID=id;
sex=se;
name=na;
birthday=d;
}
void display()
{
cout<<"身份证号:"<
};
class CStudent:public Person
{
private:
string studentnumber;
string classname;
string coursename;
double score;
public:
CStudent()
{
studentnumber="00000000";
classname=" ";
coursename=" ";
score=-1;
}
void input(string stunum, string classna) //输入学生信息
{
studentnumber=stunum;
classname=classna;
}
void inputcourse(string coursena,double grade) //输入学生每门课程名和成绩
{
coursename=coursena;
score=grade;
}
void displaystudent() //输出学生信息
{
cout<<"学号:"<
void displaycourse() //输出学生的每门课程名和成绩
{
cout<<"课程名 :"<
};
class CTeacher :public Person
{
private:
string profession;
string jobnumber;
string branch;
string coursename;
string coursenumber;
vector
vector
vector
public:
CTeacher() //CTeacher类的构造函数,实现数据初始化
{
profession=" ";
jobnumber="00000000";
branch=" ";
coursename=" ";
coursenumber="000000";
}
~CTeacher(){}
void input(string prof,string jobnum,string bran,string coursena,string coursenum ) //输入老师信息
{
profession=prof;
jobnumber=jobnum;
branch=bran;
coursename=coursena;
coursenumber=coursenum;
}
void dispt() //输出老师信息
{
cout<<"职称:"<
void setscore(string studentna,string studentnum,double grade) // 录入学生成绩信息
{
studentnumber.push_back(studentnum);
studentname.push_back(studentna);
score.push_back(grade);
}
void dispallscore() //输出所有学生成绩信息
{
int i;
for(i=0;i
cout<<"学生姓名:"<
}
void disponescore(string a) //单个输出学生成绩信息
{
int i;
int k=0;
for(i=0;i
if(a==studentname[i])
{
cout<<"学生姓名:"<
}
else if(a==studentnumber[i])
{
cout<<"学生姓名:"<
}
}
if(k==0)
throw"此学生姓名或学号不在范围内,请重新输入姓名或学号:";
}
void sortscore() //按成绩排序
{
int i,j;
double temp;
string chang1,chang2;
for(j=0;j
if(score[i]>score[i+1])
{
temp=score[i];score[i]=score[i+1];score[i+1]=temp; //成绩排序时,姓名,学号同时排序
chang1=studentname[i];studentname[i]=studentname[i+1];studentname[i+1]=chang1;//这样保证排序前和排序后,成绩,学号,
chang2=studentnumber[i];studentnumber[i]=studentnumber[i+1];studentnumber[i+1]=chang2;//姓名都一一 对应
}
}
}
void stetedscore(string a,double b) //修改 学生成绩
{
int i;
for(i=0;i
if(a==studentname[i])
score[i]=b;
if(a==studentnumber[i])
score[i]=b;
}
}
};
int main()
{
int a=1;
while(a)
{
cout<<"******************按钮A,测试学生信息******************"<
char b;
cin>>b;
if(b=='A')
{
cout<<"学生 信息:"<
if(!out){cout<<"不能打开文件:\n"; return -1;}
out<<"生日"<
cin>>a>>b>>c;
out<
CBirthday day1(a,b,c);
cin.clear();//重置错误输入
cin.sync();//
CStudent stu1;
string d;
string e;
string f;
cout<<"请输入(身份证号 ,性别(男/女),姓名 ):"<
out<
cin.clear();//重置错误输入
cin.sync();//
cout<<"请输入(学号,班级:)"<
string h;
cin>>g>>h;
out<
cout<<"请输入(课程名,成绩);按Ctrl+Z结束:"<
double y;
out<<"课程名"<
{
out<
}
cout<<"保存完毕!"<
stu1.display();
stu1.displaystudent();
stu1.displaycourse();
cout<
cin.sync();//*/
}
//****************************
if(b=='B')
{
cout<<"老师 信息:"<
if(!out){cout<<"不能打开文件:\n"; return -1;}
out<<"生日"<
cin>>a>>b>>c;
out<CBirthday day1(a,b,c);
cin.clear();//重置错误输入
cin.sync();//
CTeacher t1;
string d;
string e;
string f;
cout<<"请输入(身份证号 ,性别(男/女),姓名 ):"<
out<
cin.clear();//重置错误输入
cin.sync();//*/
string h,j,k,l,m;
cout<<"请输入老师(职称,职工号,部门,课程名,课程号):"<
out<
cin.clear();//重置错误输入
cin.sync();//*/
t1.display();
t1.dispt();
string q,p;
double n;
cout<<"请输入该老师所教学生(姓名,学号 ,成绩):按Ctrl+Z结束:"<
"学号"< t1.setscore(p,q,n);
{
out<
}
cout<<"保存完毕!"<
cout<<"请输出所有学生的信息:"<
cout<<"对学生成绩 排序并输出:"<
t1.dispallscore();
string t;
double v;
cout<
cin.clear();//重置错误输入
cin.sync();
while(cin>>t)
{
cout<<"学生的原成绩是:"<
try
{
t1.disponescore(t);
}
catch( char* message)
{
cout<
}
if(a=="true")
break;
}
cout<<"请输入修改后的成绩:";
cin>>v;
t1. stetedscore(t,v);
t1.disponescore(t);
}
if(b=='C') a--;
}
return 0;
}