📄 zh.cpp
字号:
#include<iostream.h>
#include<conio.h>
#include<string.h>
class Base //基础类
{public:void set(); //输入基本资料
void show(); //显示基本资料
long get_num(); //返回学号
char* get_name(); //返回姓名
int get_sex(); //返回性别
int get_age(); //返回年龄
char* get_addr(); //返回住址
char* get_mdep(); //返回主修系名
protected:long num; //学号
char name[20]; //姓名
int sex; //性别
int age; //年龄
char addr[30]; //住址
char mdep[30]; //主修专业名称
};
class First:public Base //主修类
{public:First(Base stu); //用基类对象初始化
void set(); //屏蔽修改资料的函数
int good(); //是否优秀
int pass(); //是否及格
void show1(); //显示基本资料
void show_Mscore(); //显示主修类成绩
private:int Mscore[5]; //成绩
Base stu1; //用于储存基本资料
};
class Fbase:public Base //辅修类
{public:Fbase(Base stu); //用基类对象初始化
void set(); //屏蔽修改资料的函数
int pass2(); //是否及格
void show2(); //显示基本资料
void show_Fscore(); //显示辅修资料
private: char fdep[30]; //辅修专业名称
int Fscore[4]; //辅修成绩
Base stu2; //用于存储基本资料
};
void Base::set() //输入基本资料
{cout<<"\ninput number:";cin>>num;
cout<<"input name:";cin>>name;
cout<<"input sex(0 is boy,1 is girl):";cin>>sex;
cout<<"input age:";cin>>age;
cout<<"input address:";cin>>addr;
cout<<"input mdep:";cin>>mdep;
}
void Base::show() //输出基本资料
{cout<<"\n\nname:"<<name<<endl;
cout<<"num:"<<num<<endl;
if(sex==0)cout<<"sex:boy"<<endl;
if(sex==1)cout<<"sex:girl"<<endl;
cout<<"age:"<<age<<endl;
cout<<"address:"<<addr<<endl;
cout<<"mdep:"<<mdep<<endl;
}
long Base::get_num() //用于用户访问学生基本资料
{return num;
}
char* Base::get_name()
{return name;
}
int Base::get_sex()
{return sex;
}
int Base::get_age()
{return age;
}
char* Base::get_addr()
{return addr;
}
char* Base::get_mdep()
{return mdep;
}
First::First(Base stu) //主修类构造函数
{stu1=stu; //存储基本资料
cout<<"input 5 main score\n"; //输入主修成绩
for(int i=0;i<=4;i++)
{do{cin>>Mscore[i];
if(Mscore[i]<0||Mscore[i]>100)cout<<"error!!!input again!\n";
}while(Mscore[i]<0||Mscore[i]>100); //限制分数取值
}
}
void First::set() //不允许修改资料
{
}
int First::good() //检验是否优秀
{int n=0;
for(int i=0;i<=4;i++)
{if(Mscore[i]>=85)n++;
if(Mscore[i]<60) return 0;
}if(n>=3) return 1;
else return 0;
}
int First::pass() //检验是否及格
{for(int i=0;i<=4;i++)
if(Mscore[i]<60) return 0;
return 1;
}
void First::show1() //重定义一个显示基本资料函数
{stu1.show();
}
void First::show_Mscore() //显示主修分数
{cout<<"main score:";
for(int i=0;i<=4;i++)
cout<<Mscore[i]<<" ";
}
Fbase::Fbase(Base stu) //辅修类构造函数
{stu2=stu; //存储基本资料
cout<<"input Fdep:";cin>>fdep;
cout<<"input 4 Fscore:\n"; //输入辅修资料
for(int i=0;i<=3;i++)
{do{cin>>Fscore[i];
if(Fscore[i]<0||Fscore[i]>100)cout<<"error!!!input again!\n";
}while(Fscore[i]<0||Fscore[i]>100); //限制分数取值
}
}
void Fbase::set() //不允许修改资料
{
}
int Fbase::pass2() //检验是否及格
{for (int i=0;i<=3;i++)
if(Fscore[i]<60)return 0;
return 1;
}
void Fbase::show2() //重定义一个显示基本资料函数
{stu2.show();
}
void Fbase::show_Fscore() //显示辅修资料
{cout<<"Fdep:"<<fdep<<endl;
cout<<"Fscore:";
for(int i=0;i<=3;i++)
cout<<Fscore[i]<<" ";
}
void good(First aa) //主修优秀处理函数
{ if (aa.good()==1) //如果优秀,显示学生基本资料及主修成绩
{aa.show1();aa.show_Mscore();getch();}
}
void pass(First bb) //主修及格处理函数
{if(bb.pass()==0) //如果不及格,显示学生基本资料及主修成绩
{bb.show1();bb.show_Mscore();getch();}
}
void passf(Fbase cc) //辅修及格处理函数
{if(cc.pass2()==0) //如果不及格,显示学生基本资料及辅修资料
{cc.show2();cc.show_Fscore();getch();}
}
void main() //主函数
{int j,a1,a2,a3,a4;
cout<<"\n~~~~~~~~~~~~~zhao sheng ban~~~~~~~~~~~~~~\n";
Base stu[6]; //创建6个学生基类对象
for(int i=0;i<=5;i++)
stu[i].set(); //招生办输入他们的基本资料
cout<<"\n~~~~~~~~~~~~~~~zhu xiu xi~~~~~~~~~~~~~~~~\n";
cout<<"input student 1'sMscore:\n";
First stuM1(stu[0]); //用对应基类对象初始化创建6个主修类对象
cout<<"input student 2'sMscore:\n";
First stuM2(stu[1]);
cout<<"input student 3'sMscore:\n";
First stuM3(stu[2]);
cout<<"input student 4'sMscore:\n";
First stuM4(stu[3]);
cout<<"input student 5'sMscore:\n";
First stuM5(stu[4]);
cout<<"input student 6'sMscore:\n";
First stuM6(stu[5]); //主修系教务员输入学生主修成绩
cout<<"\nGOOD STUDENT:\n";
good(stuM1);good(stuM2);
good(stuM3);good(stuM4);
good(stuM5);good(stuM6); //逐个检验主修是否优秀并做相关处理
cout<<"\n\n Mscore NOT PASS:\n";
pass(stuM1);pass(stuM2);
pass(stuM3);pass(stuM4);
pass(stuM5);pass(stuM6); //逐个检验主修是否及格并做相关处理
cout<<"\n~~~~~~~~~~~~~~~fu xiu xi~~~~~~~~~~~~~~~~\n";
for(i=0;i<=5;i++)
cout<<i+1<<". "<<stu[i].get_num()<<" "<<stu[i].get_name()<<endl;
cout<<"who 4 has fdep?\n"; //输出资料让拥护选择谁辅修了
cin>>a1>>a2>>a3>>a4;
cout<<"input student "<<a1<<"'s fdep:\n";
Fbase stuF1(stu[a1-1]); //用对应基类对象初始化创建4个辅修类对象
cout<<"input student "<<a2<<"'s fdep:\n";
Fbase stuF2(stu[a2-1]);
cout<<"input student "<<a3<<"'s fdep:\n";
Fbase stuF3(stu[a3-1]);
cout<<"input student "<<a4<<"'s fdep:\n";
Fbase stuF4(stu[a4-1]);
cout<<"\n Fscore NOT PASS:\n";
passf(stuF1);passf(stuF2);
passf(stuF3);passf(stuF4); //逐个检验辅修是否及格并做相关处理
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -