1、小型学生信息管理系统10编写一个小型的学生信息管理系统,可以对中学生,大学生你,研究生的信息进行简单的管理。每个学生类都包含学生名,成绩1,成绩2,成绩3和平均成绩,其中平均成绩为(1+2+3)/3。每类学生还有区别于其他类学生的特殊信息,例如中学生有家长,大学生有专业,研究生有导师。要求通过本系统实现以下功能:1 输入学生的基本信息2 根据学生名查询某个学生的信息3 计算并显示某个学生的平均成绩要求屏幕显示如下:*欢迎使用*小型学生信息管理系统*1. 输入学生信息2. 查询学生信息并显示3. 计算平均成绩并显示4. 退出请您选择(1-4):*按学生类别进行管理*学生类别选择*1 中学生类2
2、大学生类3 研究生类4 退出请您选择学生类别:1学生名:王大兵成绩1: 80成绩2 89成绩3 90家长:王大林 信息存储成功!是否继续输入(y/n)?*欢迎使用*小型学生信息管理系统*5. 输入学生信息6. 查询学生信息并显示7. 计算平均成绩并显示8. 退出请您选择(1-4):2*按学生类别进行管理*学生类别选择*1 中学生类2 大学生类3 研究生类4 退出请您选择学生类别:1请输入要查询的学生名:王大兵所要查看的学生信息:学生类别号:1学生名:王大兵成绩1: 80成绩2 89成绩3 90家长:王大林* 是否继续查询(y/n)?1.0版本代码如下:/*/* Author:Tiger Dat
3、e:6/13/2013 Function:小型信息管理系统 Version:1.0 */*/#include#include#include/学生基类class Studentprotected: char name20;/姓名 float score1,score2,score3;/成绩1、2、3、public: void getname(char a); void set(); void show(); void average();void Student:getname(char a) strcpy(a,name);void Student:show() cout学生姓名:namen
4、成绩1:score1n 成绩2:score2n 成绩3:score3n;void Student:set() coutname; coutscore1; coutscore2; coutscore3;void Student:average() cout姓名:nameendl; cout平均成绩:(score1+score2+score3)/3endl;/中学生类class Middle_school_student:public Studentprotected: char householder20;/家长public: Middle_school_student(); void set(
5、); void show();Middle_school_student:Middle_school_student() strcpy(name,张三); score1=0; score2=0; score3=0; strcpy(householder,李四);void Middle_school_student:set() Student:set(); couthouseholder;void Middle_school_student:show() Student:show(); cout家长:householderendl;/大学生类class University_student:pu
6、blic Student char profession20;/专业public: University_student(); void set(); void show();University_student:University_student() strcpy(name,张三); score1=0; score2=0; score3=0; strcpy(profession,无);void University_student:set() Student:set(); coutprofession;void University_student:show() Student:show(
7、); cout专业:professionendl;/研究生类class Postgraduate:public Student char tutor20;public: Postgraduate(); void set(); void show();Postgraduate:Postgraduate() strcpy(name,张三); score1=0; score2=0; score3=0; strcpy(tutor,李四);void Postgraduate:set() Student:set(); couttutor;void Postgraduate:show() Student:s
8、how(); cout导师:tutorendl;/菜单界面int menu() int x; cout*欢迎使用*endl; cout*小型学生信息管理系统*endl; cout1、输入学生信息n2、查询学生信息并显示n 3、计算平均成绩并显示n4、退出nx; return x;/管理界面int manage() int x; cout*按学生类别进行管理*endl; cout*学生类别选择*endl; cout1 中学生类n2 大学生类n 3 研究生类n4 退出nx; return x;/创建一个Middle_school_studentMiddle_school_student newmi
9、ddle() Middle_school_student m; m.set(); return m;/将Middle_school_student对象写进D:middle.txtvoid writeMiddle(Middle_school_student &m) fstream ft; ft.open(D:middle.txt,ios:out|ios:app); if (!ft) cout不能打开文件!endl; return ; ft.write(char*)&m,sizeof(Middle_school_student); ft.close();/读取一个Middle_school_stu
10、dent对象void readMiddle(int j)/*j=1进入查询学生信息、j=2查询学生平均成绩*/ Middle_school_student s; fstream ft; char temp120,temp220; couttemp1; ft.open(D:middle.txt,ios:in); if (!ft) cout不能打开文件!endl; return ; /计算Middle_school_student记录的个数Num ft.seekp(0,ios:end); long Num=ft.tellp()/sizeof(Middle_school_student); for
11、(int i=0;iNum;i+) ft.seekp(sizeof(Middle_school_student)*i); ft.read(char*)&s,sizeof(Middle_school_student); s.getname(temp2); int tbb=strcmp(temp1,temp2); if (!tbb) if(j=1)s.show();break; else if(j=2)s.average();break; else cout错误!endl;break; cout没有该学生!endl; ft.close();/创建一个University_studentUniver
12、sity_student newuniversity() University_student u; u.set(); return u;/将University_student对象写进D:university.txtvoid writeUniversity(University_student &u) fstream ft; ft.open(D:university.txt,ios:out|ios:app); if (!ft) cout不能打开文件!endl; return ; ft.write(char*)&u,sizeof(University_student); ft.close();
13、/读取一个University_student对象void readUniversity(int j)/*j=1进入查询学生信息、j=2查询学生平均成绩*/ University_student s; fstream ft; char temp120,temp220; couttemp1; ft.open(D:university.txt,ios:in); if (!ft) cout不能打开文件!endl; return ; /计算University_student记录的个数 ft.seekp(0,ios:end); long Num=ft.tellp()/sizeof(University
14、_student); for (int i=0;iNum;i+) ft.seekp(sizeof(University_student)*i); ft.read(char*)&s,sizeof(University_student); s.getname(temp2); int tbb=strcmp(temp1,temp2); if (!tbb) if(j=1)s.show();break; else if(j=2)s.average();break; else cout错误!endl;break; cout没有该学生!endl; ft.close();/创建一个PostgraduatePos
15、tgraduate newpostgraduate() Postgraduate p; p.set(); return p;/将Postgraduate对象写进D:postgraduate.txtvoid writePostgraduate(Postgraduate &p) fstream ft; ft.open(D:postgraduate.txt,ios:out|ios:app); if (!ft) cout不能打开文件!endl; return ; ft.write(char*)&p,sizeof(Postgraduate); ft.close();/读取一个Postgraduate对象
16、void readPostgraduate(int j)/*j=1进入查询学生信息、j=2查询学生平均成绩*/ Postgraduate s; fstream ft; char temp120,temp220; couttemp1; ft.open(D:postgraduate.txt,ios:in); if (!ft) cout不能打开文件!endl; return ; /计算Postgraduate记录的个数 ft.seekp(0,ios:end); long Num=ft.tellp()/sizeof(Postgraduate); for (int i=0;iNum;i+) ft.see
17、kp(sizeof(Postgraduate)*i); ft.read(char*)&s,sizeof(Postgraduate); s.getname(temp2); int tbb=strcmp(temp1,temp2); if (!tbb) if(j=1)s.show();break; else if(j=2)s.average();break; else cout错误!endl;break; cout没有该学生!endl; ft.close();/判断函数、判断是否继续输入void check_enter(int i)/*i的取值决定输入的学生的类型*/ char ce; coutce
18、; if (ce=y) switch(i) case 1: writeMiddle(newmiddle(); check_enter(i); break; case 2: writeUniversity(newuniversity(); check_enter(i); break; case 3: writePostgraduate(newpostgraduate(); check_enter(i); break; default: cout错误!endl; break; else if(ce=n)return; else cout输入错误!endl;/判断函数、判断是否继续查询void ch
19、eck_find(int i)/*i的值决定查询的学生的类型*/ char cf; cout是否继续查询(y/n)?cf; if (cf=y) switch(i) case 1: readMiddle(1); check_find(i); break; case 2: readUniversity(1); check_find(i); break; case 3: readPostgraduate(1); check_find(i); break; default: cout错误!endl; break; else if(cf=n)return; else cout输入错误!endl;/判断函
20、数、判断是否继续查询void check_average(int i)/*i的值决定查询的学生的类型*/ char ca; cout是否继续查询(y/n)?ca; if (ca=y) switch(i) case 1: readMiddle(2); check_find(i); break; case 2: readUniversity(2); check_find(i); break; case 3: readPostgraduate(2); check_find(i); break; default: cout错误!endl; break; else if(ca=n)return; els
21、e cout输入错误!endl;void window() switch (menu() case 1:switch(manage() case 1: writeMiddle(newmiddle(); check_enter(1); break; case 2: writeUniversity(newuniversity(); check_enter(2); break; case 3: writePostgraduate(newpostgraduate(); check_enter(3); break; case 4:break; default:cout输入错误endl;break; wi
22、ndow();break; case 2:switch(manage() case 1: readMiddle(1); check_find(1); break; case 2: readUniversity(1); check_find(2); break; case 3: readPostgraduate(1); check_find(3); break; case 4:break; default:cout输入错误endl;break; window();break; case 3:switch(manage() case 1: readMiddle(2); check_average(1); break; case 2: readUniversity(2); check_average(2); break; case 3: readPostgraduate(2); check_average(3); break; default:cout输入错误endl;break; window();break; case 4: cout已退出!endl; break; default: cout输入错误endl; break; int main() window(); return 0;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1