小型学生信息管理系统10.docx
- 文档编号:8214053
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:18
- 大小:17.35KB
小型学生信息管理系统10.docx
《小型学生信息管理系统10.docx》由会员分享,可在线阅读,更多相关《小型学生信息管理系统10.docx(18页珍藏版)》请在冰豆网上搜索。
小型学生信息管理系统10
编写一个小型的学生信息管理系统,可以对中学生,大学生你,研究生的信息进行简单的管理。
每个学生类都包含学生名,成绩1,成绩2,成绩3和平均成绩,其中平均成绩为(1+2+3)/3。
每类学生还有区别于其他类学生的特殊信息,例如中学生有家长,大学生有专业,研究生有导师。
要求通过本系统实现以下功能:
1输入学生的基本信息
2根据学生名查询某个学生的信息
3计算并显示某个学生的平均成绩
要求屏幕显示如下:
*************欢迎使用*************
*******小型学生信息管理系统*******
1.输入学生信息
2.查询学生信息并显示
3.计算平均成绩并显示
4.退出
请您选择(1-4):
**********按学生类别进行管理**************
***************学生类别选择***************
1中学生类
2大学生类
3研究生类
4退出
请您选择学生类别:
1
学生名:
王大兵
成绩1:
80
成绩289
成绩390
家长:
王大林
信息存储成功!
是否继续输入(y/n)?
*************欢迎使用*************
*******小型学生信息管理系统*******
5.输入学生信息
6.查询学生信息并显示
7.计算平均成绩并显示
8.退出
请您选择(1-4):
2
**********按学生类别进行管理**************
***************学生类别选择***************
1中学生类
2大学生类
3研究生类
4退出
请您选择学生类别:
1
请输入要查询的学生名:
王大兵
所要查看的学生信息:
学生类别号:
1
学生名:
王大兵
成绩1:
80
成绩289
成绩390
家长:
王大林
*****************************
是否继续查询(y/n)?
1.0版本代码如下:
/************************************************************************/
/*
Author:
Tiger
Date:
6/13/2013
Function:
小型信息管理系统
Version:
1.0
*/
/************************************************************************/
#include
#include
#include
//学生基类
classStudent
{
protected:
charname[20];//姓名
floatscore1,score2,score3;//成绩1、2、3、
public:
voidgetname(chara[]);
voidset();
voidshow();
voidaverage();
};
voidStudent:
:
getname(chara[])
{
strcpy(a,name);
}
voidStudent:
:
show()
{
cout<<"学生姓名:
"< <<"成绩1: "< <<"成绩2: "< <<"成绩3: "< } voidStudent: : set() { cout<<"学生姓名: "; cin>>name; cout<<"成绩1: "; cin>>score1; cout<<"成绩2: "; cin>>score2; cout<<"成绩3: "; cin>>score3; } voidStudent: : average() { cout<<"姓名: "< cout<<"平均成绩: "<<(score1+score2+score3)/3< } //中学生类 classMiddle_school_student: publicStudent { protected: charhouseholder[20];//家长 public: Middle_school_student(); voidset(); voidshow(); }; Middle_school_student: : Middle_school_student() { strcpy(name,"张三"); score1=0; score2=0; score3=0; strcpy(householder,"李四"); } voidMiddle_school_student: : set() { Student: : set(); cout<<"家长: "; cin>>householder; } voidMiddle_school_student: : show() { Student: : show(); cout<<"家长: "< } //大学生类 classUniversity_student: publicStudent { charprofession[20];//专业 public: University_student(); voidset(); voidshow(); }; University_student: : University_student() { strcpy(name,"张三"); score1=0; score2=0; score3=0; strcpy(profession,"无"); } voidUniversity_student: : set() { Student: : set(); cout<<"专业: "; cin>>profession; } voidUniversity_student: : show() { Student: : show(); cout<<"专业: "< } //研究生类 classPostgraduate: publicStudent { chartutor[20]; public: Postgraduate(); voidset(); voidshow(); }; Postgraduate: : Postgraduate() { strcpy(name,"张三"); score1=0; score2=0; score3=0; strcpy(tutor,"李四"); } voidPostgraduate: : set() { Student: : set(); cout<<"导师: "; cin>>tutor; } voidPostgraduate: : show() { Student: : show(); cout<<"导师: "< } //菜单界面 intmenu() { intx; cout<<"*************欢迎使用*************"< cout<<"*******小型学生信息管理系统*******"< cout<<"1、输入学生信息"<<'\n'<<"2、查询学生信息并显示"<<'\n' <<"3、计算平均成绩并显示"<<'\n'<<"4、退出"<<'\n'<<"请您选择(1-4): "; cin>>x; returnx; } //管理界面 intmanage() { intx; cout<<"**********按学生类别进行管理**************"< cout<<"***************学生类别选择***************"< cout<<"1中学生类"<<'\n'<<"2大学生类"<<'\n' <<"3研究生类"<<'\n'<<"4退出"<<'\n'<<"请您选择学生类别: "; cin>>x; returnx; } //创建一个Middle_school_student Middle_school_studentnewmiddle() { Middle_school_studentm; m.set(); returnm; } //将Middle_school_student对象写进D: \\middle.txt voidwriteMiddle(Middle_school_student&m) { fstreamft; ft.open("D: \\middle.txt",ios: : out|ios: : app); if(! ft) { cout<<"不能打开文件! "< return; } ft.write((char*)&m,sizeof(Middle_school_student)); ft.close(); } //读取一个Middle_school_student对象 voidreadMiddle(intj)/*j=1进入查询学生信息、j=2查询学生平均成绩*/ { Middle_school_students; fstreamft; chartemp1[20],temp2[20]; cout<<"请输入要查询的学生名: "; cin>>temp1; ft.open("D: \\middle.txt",ios: : in); if(! ft) { cout<<"不能打开文件! "< return; } //计算Middle_school_student记录的个数Num ft.seekp(0,ios: : end); longNum=ft.tellp()/sizeof(Middle_school_student); for(inti=0;i { ft.seekp(sizeof(Middle_school_student)*i); ft.read((char*)&s,sizeof(Middle_school_student)); s.getname(temp2); inttbb=strcmp(temp1,temp2); if(! tbb) { if(j==1){s.show();break;} elseif(j==2){s.average();break;} else{cout<<"错误! "< } } cout<<"没有该学生! "< ft.close(); } //创建一个University_student University_studentnewuniversity() { University_studentu; u.set(); returnu; } //将University_student对象写进D: \\university.txt voidwriteUniversity(University_student&u) { fstreamft; ft.open("D: \\university.txt",ios: : out|ios: : app); if(! ft) { cout<<"不能打开文件! "< return; } ft.write((char*)&u,sizeof(University_student)); ft.close(); } //读取一个University_student对象 voidreadUniversity(intj)/*j=1进入查询学生信息、j=2查询学生平均成绩*/ { University_students; fstreamft; chartemp1[20],temp2[20]; cout<<"请输入要查询的学生名: "; cin>>temp1; ft.open("D: \\university.txt",ios: : in); if(! ft) { cout<<"不能打开文件! "< return; } //计算University_student记录的个数 ft.seekp(0,ios: : end); longNum=ft.tellp()/sizeof(University_student); for(inti=0;i { ft.seekp(sizeof(University_student)*i); ft.read((char*)&s,sizeof(University_student)); s.getname(temp2); inttbb=strcmp(temp1,temp2); if(! tbb) { if(j==1){s.show();break;} elseif(j==2){s.average();break;} else{cout<<"错误! "< } } cout<<"没有该学生! "< ft.close(); } //创建一个Postgraduate Postgraduatenewpostgraduate() { Postgraduatep; p.set(); returnp; } //将Postgraduate对象写进D: \\postgraduate.txt voidwritePostgraduate(Postgraduate&p) { fstreamft; ft.open("D: \\postgraduate.txt",ios: : out|ios: : app); if(! ft) { cout<<"不能打开文件! "< return; } ft.write((char*)&p,sizeof(Postgraduate)); ft.close(); } //读取一个Postgraduate对象 voidreadPostgraduate(intj)/*j=1进入查询学生信息、j=2查询学生平均成绩*/ { Postgraduates; fstreamft; chartemp1[20],temp2[20]; cout<<"请输入要查询的学生名: "; cin>>temp1; ft.open("D: \\postgraduate.txt",ios: : in); if(! ft) { cout<<"不能打开文件! "< return; } //计算Postgraduate记录的个数 ft.seekp(0,ios: : end); longNum=ft.tellp()/sizeof(Postgraduate); for(inti=0;i { ft.seekp(sizeof(Postgraduate)*i); ft.read((char*)&s,sizeof(Postgraduate)); s.getname(temp2); inttbb=strcmp(temp1,temp2); if(! tbb) { if(j==1){s.show();break;} elseif(j==2){s.average();break;} else{cout<<"错误! "< } } cout<<"没有该学生! "< ft.close(); } //判断函数、判断是否继续输入 voidcheck_enter(inti)/*i的取值决定输入的学生的类型*/ { charce; cout<<"信息存储成功! 是否继续输入(y/n)? "; cin>>ce; if(ce=='y') { switch(i) { case1: writeMiddle(newmiddle()); check_enter(i); break; case2: writeUniversity(newuniversity()); check_enter(i); break; case3: writePostgraduate(newpostgraduate()); check_enter(i); break; default: cout<<"错误! "< break; } }elseif(ce=='n')return; elsecout<<"输入错误! "< } //判断函数、判断是否继续查询 voidcheck_find(inti)/*i的值决定查询的学生的类型*/ { charcf; cout<<"是否继续查询(y/n)? "< cin>>cf; if(cf=='y') { switch(i) { case1: readMiddle (1); check_find(i); break; case2: readUniversity (1); check_find(i); break; case3: readPostgraduate (1); check_find(i); break; default: cout<<"错误! "< break; } }elseif(cf=='n')return; elsecout<<"输入错误! "< } //判断函数、判断是否继续查询 voidcheck_average(inti)/*i的值决定查询的学生的类型*/ { charca; cout<<"是否继续查询(y/n)? "< cin>>ca; if(ca=='y') { switch(i) { case1: readMiddle (2); check_find(i); break; case2: readUniversity (2); check_find(i); break; case3: readPostgraduate (2); check_find(i); break; default: cout<<"错误! "< break; } }elseif(ca=='n')return; elsecout<<"输入错误! "< } voidwindow() { switch(menu()) { case1: switch(manage()) { case1: writeMiddle(newmiddle()); check_enter (1); break; case2: writeUniversity(newuniversity()); check_enter (2); break; case3: writePostgraduate(newpostgraduate()); check_enter(3); break; case4: break; default: cout<<"输入错误"< } window();break; case2: switch(manage()) { case1: readMiddle (1); check_find (1); break; case2: readUniversity (1); check_find (2); break; case3: readPostgraduate (1); check_find(3); break; case4: break; default: cout<<"输入错误"< } window();break; case3: switch(manage()) { case1: readMiddle (2); check_average (1); break; case2: readUniversity (2); check_average (2); break; case3: readPostgraduate (2); check_average(3); break; default: cout<<"输入错误"< } window();break; case4: cout<<"已退出! "< break; default: cout<<"输入错误"< break; } } intmain() { window(); return0; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 小型 学生 信息管理 系统 10