




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、编写一个小型的学生信息管理系统,可以对中学生,大学生你,研究生的信息进行简单的管理。每个学生类都包含学生名,成绩1,成绩2,成绩3和平均成绩,其中平均成绩为(1+2+3)/3。每类学生还有区别于其他类学生的特殊信息,例如中学生有家长,大学生有专业,研究生有导师。要求通过本系统实现以下功能:1 输入学生的基本信息2 根据学生名查询某个学生的信息3 计算并显示某个学生的平均成绩要求屏幕显示如下:*欢迎使用*小型学生信息管理系统*1. 输入学生信息2. 查询学生信息并显示3. 计算平均成绩并显示4. 退出请您选择(1-4):*按学生类别进行管理*学生类别选择*1 中学生类2 大学生类3 研究生类4
2、退出请您选择学生类别: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:TigerDate:6/13/2013Fu
3、nction:小型信息管理系统Version:1.0 */*/#include<iostream.h>#include<fstream.h>#include<string.h>/学生基类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 S
4、tudent:show()cout<<"学生姓名:"<<name<<'n'<<"成绩1:"<<score1<<'n'<<"成绩2:"<<score2<<'n'<<"成绩3:"<<score3<<'n'void Student:set()cout<<"学生姓名:"cin>&g
5、t;name;cout<<"成绩1:"cin>>score1;cout<<"成绩2:"cin>>score2;cout<<"成绩3:"cin>>score3;void Student:average()cout<<"姓名:"<<name<<endl;cout<<"平均成绩:"<<(score1+score2+score3)/3<<endl;/中学生类cl
6、ass Middle_school_student:public Studentprotected:char householder20;/家长public:Middle_school_student();void set();void show();Middle_school_student:Middle_school_student()strcpy(name,"张三");score1=0;score2=0;score3=0;strcpy(householder,"李四");void Middle_school_student:set()Student
7、:set();cout<<"家长:"cin>>householder;void Middle_school_student:show()Student:show();cout<<"家长:"<<householder<<endl;/大学生类class University_student:public Studentchar profession20;/专业public:University_student();void set();void show();University_student:U
8、niversity_student()strcpy(name,"张三");score1=0;score2=0;score3=0;strcpy(profession,"无");void University_student:set()Student:set();cout<<"专业:"cin>>profession;void University_student:show()Student:show();cout<<"专业:"<<profession<<end
9、l;/研究生类class Postgraduate:public Studentchar tutor20;public:Postgraduate();void set();void show();Postgraduate:Postgraduate()strcpy(name,"张三");score1=0;score2=0;score3=0;strcpy(tutor,"李四");void Postgraduate:set()Student:set();cout<<"导师:"cin>>tutor;void Postg
10、raduate:show()Student:show();cout<<"导师:"<<tutor<<endl;/菜单界面int menu()int x;cout<<"*欢迎使用*"<<endl;cout<<"*小型学生信息管理系统*"<<endl;cout<<"1、输入学生信息"<<'n'<<"2、查询学生信息并显示"<<'n'<
11、<"3、计算平均成绩并显示"<<'n'<<"4、退出"<<'n'<<"请您选择(1-4):"cin>>x;return x;/管理界面int manage()int x;cout<<"*按学生类别进行管理*"<<endl;cout<<"*学生类别选择*"<<endl;cout<<"1 中学生类"<<'
12、n'<<"2 大学生类"<<'n'<<"3 研究生类"<<'n'<<"4 退出"<<'n'<<"请您选择学生类别:"cin>>x;return x;/创建一个Middle_school_studentMiddle_school_student newmiddle()Middle_school_student m;m.set();return m;/将Middle_s
13、chool_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_student对象void readMidd
14、le(int j)/*j=1进入查询学生信息、j=2查询学生平均成绩*/Middle_school_student s;fstream ft;char temp120,temp220;cout<<"请输入要查询的学生名:" cin>>temp1;ft.open("D:middle.txt",ios:in);if (!ft)cout<<"不能打开文件!"<<endl;return ;/计算Middle_school_student记录的个数Numft.seekp(0,ios:end);lo
15、ng Num=ft.tellp()/sizeof(Middle_school_student);for (int i=0;i<Num;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<<"错误
16、!"<<endl;break; cout<<"没有该学生!"<<endl;ft.close();/创建一个University_studentUniversity_student newuniversity()University_student u;u.set();return u;/将University_student对象写进D:university.txtvoid writeUniversity(University_student &u)fstream ft;ft.open("D:university
17、.txt",ios:out|ios:app);if (!ft)cout<<"不能打开文件!"<<endl;return ;ft.write(char*)&u,sizeof(University_student);ft.close();/读取一个University_student对象void readUniversity(int j)/*j=1进入查询学生信息、j=2查询学生平均成绩*/University_student s;fstream ft;char temp120,temp220;cout<<"请输入
18、要查询的学生名:" cin>>temp1;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_student);for (int i=0;i<Num;i+)ft.seekp(sizeof(University_student)*i);ft.rea
19、d(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();/创建一个PostgraduatePostgraduate newpostgradua
20、te()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();/读取一
21、个Postgraduate对象void readPostgraduate(int j)/*j=1进入查询学生信息、j=2查询学生平均成绩*/Postgraduate s;fstream ft;char temp120,temp220;cout<<"请输入要查询的学生名:" cin>>temp1;ft.open("D:postgraduate.txt",ios:in);if (!ft)cout<<"不能打开文件!"<<endl;return ;/计算Postgraduate记录的个数ft.
22、seekp(0,ios:end);long Num=ft.tellp()/sizeof(Postgraduate);for (int i=0;i<Num;i+)ft.seekp(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<<"错误!"&
23、lt;<endl;break; cout<<"没有该学生!"<<endl;ft.close();/判断函数、判断是否继续输入void check_enter(int i)/*i的取值决定输入的学生的类型*/char ce;cout<<"信息存储成功!是否继续输入(y/n)?"cin>>ce;if (ce='y')switch(i)case 1:writeMiddle(newmiddle();check_enter(i);break;case 2:writeUniversity(newu
24、niversity();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 check_find(int i)/*i的值决定查询的学生的类型*/char cf;cout<<
25、;"是否继续查询(y/n)?"<<endl;cin>>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; el
26、se cout<<"输入错误!"<<endl;/判断函数、判断是否继续查询void check_average(int i)/*i的值决定查询的学生的类型*/char ca;cout<<"是否继续查询(y/n)?"<<endl;cin>>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; else cout<<"输入错误!"<<endl;void window()switch (menu()case 1:switch(mana
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水体污染治理的协同机制计划
- 营造和谐班级关系的措施计划
- 建立仓库风险管理机制计划
- 创造性思维在小班教育中的培养计划
- 藏书楼艺术活动的策划计划
- 不同管理风格的年度工作计划比较
- 制定年底总结与展望的工作计划
- 福建省福清市海口镇高中数学 第一章 三角函数 1.6 同角三角函数的基本关系教学实录 新人教A版必修4
- 二年级上册数学教案-6.4 倍的认识(二) ︳西师大版
- 2025年湿法磷酸合作协议书
- 2025年日语n2考前试题及答案
- 2025年山西同文职业技术学院单招综合素质考试题库带答案
- 防洪防涝知识培训课件
- 2025年安徽卫生健康职业学院单招职业技能测试题库审定版
- 高等职业学校办学能力评价的策略及实施方案
- 2025年01月中国疾控中心信息中心公开招聘1人笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 安徽2025年安徽汽车职业技术学院教职工校园招聘笔试历年参考题库附带答案详解
- 中央2025年中国科协所属单位招聘社会在职人员14人笔试历年参考题库附带答案详解-1
- 2025年中国移动通信集团贵州限公司招聘高频重点模拟试卷提升(共500题附带答案详解)
- 2025年江苏电子信息职业学院高职单招职业适应性测试近5年常考版参考题库含答案解析
- 2025年北京卫生职业学院高职单招职业技能测试近5年常考版参考题库含答案解析
评论
0/150
提交评论