文档库 最新最全的文档下载
当前位置:文档库 › 广工应数11级c++实验报告(修改版)

广工应数11级c++实验报告(修改版)

#include
#include
using namespace std;

class gdutstudent
{
public:
gdutstudent(string name="0",string student_number="0",string tel_number="0",string address="0",int english=0,int physics=0):
student_number(student_number),tel_number(tel_number),name(name),address(address),english(english),physics(physics){} //构造函数
gdutstudent(gdutstudent& p);
void show() /////////////////////////////输出显示所有成员
{
cout<<"name : "<cout<<"student ID : "<cout<<"telephone number : "<cout<<"address : "<cout<<"english mark : "<cout<<"physics mark : "<}
void add_student() //////////////////////////////添加学生
{
cout<<"name : "; cin>>name; flushall(); //清除缓冲区
cout<<"student ID : "; cin>>student_number; flushall();
cout<<"telephone number : "; cin>>tel_number; flushall();
cout<<"address : "; cin>>address; flushall();
there:cout<<"english mark : "; cin>>english;
if(english>100 || english<0){cout<<"请重新输入"<flushall();
there1:cout<<"physics mark : "; cin>>physics;
if(physics>100 || physics<0){cout<<"请重新输入"<flushall();
}
void revise_student() ///////////////////////////////修改学生信息
{
string student_number1="0";
string tel_number1="0";
string name1="0";
string address1="0";
int english1=0;
int physics1=0;
cout<<"name : "; cin>>name1;
cout<<"student ID : "; cin>>student_number1;
cout<<"telephone number : "; cin>>tel_number1;
cout<<"address : "; cin>>address1;
there:cout<<"english mark : "; cin>>english1;
if(english1>100 || english1<0){cout<<"请重新输入"<flushall();
there1:cout<<"physics mark : "; cin>>physics1;
if(physics1>100 || physics1<0){cout<<"请重新输入"<flushall();
student_number=student_number1;
tel_number=tel_number1;
name=name1;
address=address1;
english=english1;
physics=physics1;
}
int find_student(string student_number1="0",string name1="0") ////////////////////////////////查找学生
{
if(student_number==student_number1||name==name1)
return 1;
else
return 0;
}
void _name(){cout<protected:
int english;
int physics;
private:
string student_number ;
string tel_number;
string name;
string address;
};
gdutstudent::gdutstudent(gdutstudent& p) //复制构造函数
{
english=p.english;
physics=p.physics;
name=https://www.wendangku.net/doc/d24035390.html,;
student_number=p.student_number;
tel_number=p.tel_number;
address=p.address;
}


class mathstudent : public gdutstudent ///////////////////////////////继承类
{
public:
mathstudent(string name="0",string st

udent_number="0",string tel_number="0",string address="0",
int english=0,int physics=0,int shufen=0,int gaodai=0,int jieji=0):
gdutstudent(name,student_number,tel_number,address,english,physics),shufen(shufen),gaodai(gaodai),jieji(jieji){}
void add_mathstudent()
{
there1:cout<<"数分成绩 :"; cin>>shufen;
if(shufen>100 || shufen<0){cout<<"请重新输入"<flushall();
there2:cout<<"高代成绩 :"; cin>>gaodai;
if(gaodai>100 || gaodai<0){cout<<"请重新输入"<flushall();
there3:cout<<"解几成绩 :"; cin>>jieji;
if(jieji>100 || jieji<0){cout<<"请重新输入"<flushall();
}
int average(){
return (english+physics+shufen+gaodai+jieji)/5;
}
void show_mathstudent(){
cout<<"数分 : "<cout<<"高代 : "<cout<<"解几 : "<}
void revise_mathstudent()
{
int shufen1;
int gaodai1;
int jieji1;
there1:cout<<"shufen mark : "; cin>>shufen1;
if(shufen1>100 || shufen1<0){cout<<"请重新输入"<flushall();
there2:cout<<"gaodai mark : "; cin>>gaodai1;
if(gaodai1>100 || gaodai1<0){cout<<"请重新输入"<flushall();
there3:cout<<"jieji mark : "; cin>>jieji1;
if(jieji1>100 || jieji1<0){cout<<"请重新输入"<flushall();

shufen=shufen1;
gaodai=gaodai1;
jieji=jieji1;
}
int _english(){return english;}
int _physins(){return physics;}
int _shufen(){return shufen;}
int _gaodai(){return gaodai;}
int _jieji(){return jieji;}
private:
int shufen;
int gaodai;
int jieji;
};

void search(mathstudent*p) //查找学生函数
{
string student_number1="1";
string name1="1";
int n=0;
there:cout<<"按姓名查找按 1 ,按学号查找按 2 :"; cin>>n;
switch(n){
case 1 :
cout<<"请输入姓名 :"; cin>>name1; break;
case 2:
cout<<"请输入学号 :"; cin>>student_number1; break;
default:
cout<<"请重新输入 :"<}
int nn=0;
for(int i=0;i<20;i++)
{
if(p[i].find_student(student_number1,name1))
{
p[i].show();
p[i].show_mathstudent();
cout<<"平均分为 :"<nn++;

}
}
if(!nn)
cout<<"there are no student you want to fint"<}

void add(mathstudent*p ,int add_number,int number ) // 添加学生
{
for(int i=0;i{
p[number+i].add_student();
p[number+i].add_mathstudent();
cout<}
}

void clear_student(mathstudent& p1,mathstudent&p2) //清除学生
{

p1=p2;

cout<<"that student is cleared . "<}
void clear(mathstudent* p,int& all_number) //删除学生函数
{
int temp=0;
string student_number1="0";
string name1="0";
int n;
there : cout<<"已知姓名,删

除学生按请1 ;已知学号,删除学生请按2 :"; cin>>n;
switch (n)
{
case 1:
cout<<"请输入要删除的学生的姓名 :";cin>>name1;break;
case 2:
cout<<"请输入要删除的学生的学号 :";cin>>student_number1;break;
default:
cout<<"请重新输入 :"<}
for(int i=0;i{
if(p[i].find_student(student_number1,name1))
{
clear_student(p[i],p[all_number-1]);
temp=1;
break;
}
}
int t=0;
all_number--;
if(temp==0)
{
t++;
cout<<"要删除的学生不存在。"<}
all_number=all_number+t;
}

void revise(mathstudent* p) ///////////////////修改学生函数
{
int i;
cout<<"想要修改第几个学生的信息 :" ;
cin>>i;

p[i-1].revise_student();
p[i-1].revise_mathstudent();
}

void search_mark(mathstudent*p,int number){
int n;
cout<<"要查询哪一科的成绩 :"<there:cout<<"英语请按1,物理请按2,数分请按3,高代请按4,解几请按5 :"; cin>>n;
switch(n)
{
case 1:
{
double total1=0;
for(int i1=0;i1{
p[i1]._name();
cout<total1+=p[i1]._english();
}
cout<<"平均分为 :"<break;
}
case 2:
{
double total2=0;
for(int i2=0;i2{
p[i2]._name();
cout<total2+=p[i2]._physins();
}
cout<<"平均分为 :"<break;
}
case 3:
{
double total3=0;
for(int i3=0;i3{
p[i3]._name();
cout<total3+=p[i3]._shufen();
}
cout<<"平均分为 :"<break;
}
case 4:
{
double total4=0;
for(int i4=0;i4{
p[i4]._name();
cout<total4+=p[i4]._english();
}
cout<<"平均分为 :"<break;
}
case 5:
{
double total5=0;
for(int i5=0;i5{
p[i5]._name();
cout<total5+=p[i5]._jieji();
}
cout<<"平均分为 :"<break;
}
default:
{
cout<<"请重新输入 :"<goto there;
}
}
}

void show_all(mathstudent*p , int number ) //输出所有的学生
{
for(int i=0;i{
cout<<"第"<p[i].show();
p[i].show_mathstudent();
}
}

int main() ////////////////////主函数
{
mathstudent st1[2000];
mathstudent stu1("小明","4452211992","138********","广州市",73,100,100,100,100);
mathstudent stu2("小刚","09304938","123456789","北京",100,100,100,100,100);
mathstudent stu3("小红","3111008197","110","上海市",100,100,96,100,100);
mathstudent stu4("小葱","657951482","3281272","西藏",100,100,100,97,100);
mathstudent stu5("小灰","6552004188","367

2090","河北省",100,100,100,100,90);
int add_number=0;
int number=5;
{
st1[0]=stu1;
st1[1]=stu2;
st1[2]=stu3;
st1[3]=stu4;
st1[4]=stu5;
}
while(1)
{
int n;
there :cout<<"查找学生请按1,添加学生请按2,修改学生请按3,删除学生请按4,查看各科成绩请按5,查看所有学生请按0"<cin>>n;
switch(n)
{
case 1:search(st1); break;
case 2:
{
cout<<"how many student do you want to add : ";
cin>>add_number;
add(st1 ,add_number,number);
number=number+add_number;
break;
}
case 3:revise(st1);break;
case 4: clear(st1, number);break;
case 5: search_mark(st1,number) ; break;
case 0:show_all(st1,number);break;
default: cout<<"请重新输入 :"<}
}
return 0;
}

相关文档
相关文档 最新文档