




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C+学生学籍管理系统1、基本要求:为方便管理一个班同学的学籍,编写一个学籍管理系统软 件。系统记录必须包括学生姓名、学号、数学、物理、化学、英语、网络 等课程成绩。2、基本管理功能:(1)添加:增加一个同学的记录到管理系统中。(2)查询:可以根据姓名或学号查找某人的相关信息,若找到则显示其 信息。(3)修改:在管理系统中修改一个同学的记录。(4)保存:将所有学生学籍信息保存在一个文件中(数据库文件或普通 的文本文件)。(5)读取:从文件中读取已保存了数据。(6)删除:从管理系统中删除一条记录。(7)恢复:能恢复被删除的记录。(8) 统计:(A)计算各门课程全班平均成绩及总成绩;(B)统计其课程
2、全班得:100 分、90 :99 分、80:89 分、7079 分、60:69 分、59 分 以下学生人数及全班总人数的百分比;(C)以表格形式打印全部学生的平均成绩(?包括各课总的平均成绩)。(9)其他:可以根据自己的思路设计其他功能。PS:我们报告是手写的,所以报告没有弄上来,不过源程序大家可以看一下, 下面是运行的界面剩下的功能大家自己试吧,这里就不截图了。源程序:(头文件 #include stdafx.h 和主函数 int main(int argc, char* argv) 是建工程时自带的,把之前的清掉后直接复制即可) #include stdafx.h#include #inc
3、lude #include#include#include#include #include using namespace std;int n=0,u=0;int number56=0,0,0,0,0; / 各门学科分段成绩的人 数double point56=0,0,0,0,0;double eva5=0,0,0,0,0;string find_name;string find_num;int p;void search(string);void search(int);void cunqu_data();/*存取文件 */void save_data();/*保存文件 */void re
4、ad_data();/*读取文件 */void renew_data();/*删除恢复 */void delete_data(int m);/*删除记录 */void recover_data();/*恢复记录 */void set_eva2();/*课程的平均成绩 */void put_result1();void put_result2();void put_result3();class Student/*定义一个 Student 类*/public:Student();/*构造函数 */void set_eva();friend void set_massage(int m,Stude
5、nt j);/*友元函数 */friend void add_massage(int m,Student j);/*友元函数 */friend void put_massage(int m,Student j);friend void change_data(int m,Student j);/*修改学生信息 */friend void search_data();/*查找学生信息 */friend void search_name(string name);friend void search_num(string num);friend void set_number();friend v
6、oid set_point();friend void save_data();/*保存文件 */friend void read_data();/*friend void delete_data(int m);/*friend void recover_data();/*/*姓名*/学号*/性别*/学习水平 */数学成绩 */物理成绩 */化学成绩 */英语成绩 */网络成绩 */定义构造函数 */friend void set_eva2(); friend void put_result1(); private:string name; /*string num; /* string se
7、x; /* double eva; /*double shuxue; /*double wuli; /*double huaxue; /*double yingyu; /* double wangluo; /* stud200,studl200; Student:Student() /* name=wu; num=wu; sex=wu;读取文件 */删除记录 */恢复记录 */课程的平均成绩 */shuxue=0;wuli=0;huaxue=0;yingyu=0;wangluo=0;void Student:set_eva() / 计算平均成绩 eva=(shuxue+wuli+huaxue+
8、yingyu+wangluo)/5;void set_massage(int m,Student j)int i;for(i=0;im;i+)cout 输入第 i+1 个学生的信息 endl;cout 姓名 学号 性别 数学成绩 物理成绩 化学成绩 英语成绩 网络成绩 ji.numji.sexji.shuxueji.wuliji. huaxueji.yingyuji.wangluo;coutn;system(cls);void add_massage(int m,Student j)/ 增加学生信息int i;for(i=n;in+m;i+)cout 输入第 i+1 个学生的信息
9、 endl;cout 姓名 学号 性别 数学成绩 物理成绩 化学成绩 英语成绩 网络成绩 ji.numji.sexji.shuxueji.wuliji. huaxueji.yingyuji.wangluo;system(cls);n=n+m;void change_data(int m,Student j)/ 修改学生信息if(m=0|mn)cout 输入错误! endl;getch();elsecoutendl;cout 输入该同学的新学籍信息 endl;cout endl;cout 姓名 学号 性别 数学成绩 物理成绩 化学成绩 英语成 绩 网络成绩 jm-
10、1.numjm-1.sexjm-1.shuxuejm-1.w ulijm-1.huaxuejm-1.yingyujm-1.wangluo;system(cls);coutendlendlendlendlendlendlendlendlendlendlvendlvv修改成功A_A,按任意键返回主菜单endl;getch();void put_massage(int m,Student j)int i;coutvvvvendl;coutvvI序号I姓 名I 学 号 |性别|数学|物理|化学丨英语丨网络丨e ndl;coutvvI I I I I I I I I I vvendl;for(i=0;i
11、vm;i+)coutvvI ;coutvvvvsetfill(0)vvsetw(3)vvsetiosflags(ios:left)vvsetiosflags(ios:fixed)vvsetprecision(0)vvi+1;coutvvI ;coutvvsetfill(0)setw(7)setiosflags(ios:left)setiosflags(ios:fixed)setprecision(0);cout| ;coutsetfill(0)setw(10)setiosflags(ios:left)setiosflag s(ios:fixed)setprecision(0)ji
12、.num;cout| ;coutsetfill(0)setw(3)setiosflags(ios:left)setiosflags(io s:fixed)setprecision(0)ji.sex;cout| ;coutsetfill(0)setw(3)setiosflags(ios:left)setiosflags(io s:fixed)setprecision(0)ji.shuxue;cout| ;coutsetfill(0)setw(3)setiosflags(ios:left)setiosflags(io s:fixed)setprecision(0)ji.wuli;cout| ;co
13、utsetfill(0)setw(3)setiosflags(ios:left)setiosflags(io s:fixed)setprecision(0)ji.huaxue;cout| ;coutsetfill(0)setw(3)setiosflags(ios:left)setiosflags(io s:fixed)setprecision(0)ji.yingyu;cout| ;coutsetfill(0)setw(3)setiosflags(ios:left)setiosflags(ios:fixed)setprecision(0)ji.wangluo;cout| ;coutn;coutv
14、vI I I I I I II II endl;void search_data()/ 查找功能char a; for(a=0;a=0|a!=4;)system(cls);cout1. 按姓名查找 endl2. 按学号查找 endl3. 输出所有学生 信息 endl4. 返回主菜单 a;system(cls);switch(a) case 1:coutfind_name;search_name(find_name);break;case 2:coutfind_num;search_num(find_num);break;case 3:coutendl;cout学生学籍信息endl;put_ma
15、ssage(n,stud);getch();break;case 4:break;default:coutendlendlendlendlendlendlendlendl endlendlendl 错误指令!按任意键返 回。 endl;getch();break;void search_name(string name)/ 按姓名查找int i;bool flag=false;for(i=0;in;i+)if(=name)coutendl;coutvvI序号I姓 名I 学 号 |性别|数学|物理I化学丨英语丨网络丨e ndl;coutI I I I I I I I I I
16、endl;coutI ;coutsetfill(0)setw(3)setiosflags(ios:left)i+1;coutIcoutsetfill(0)setw(7)setiosflags(ios:left);coutvv I coutsetfill(0)setw(10)setiosflags(ios:left)studi.nu m;cout I ;coutsetfill(0)setw(3)setiosflags(ios:left)studi.sex;co ut I ;coutsetfill(0)setw(3)setiosflags(ios:left)studi.shux
17、ue ;cout I ;coutsetfill(0)setw(3)setiosflags(ios:left)studi.wuli;c out I ;coutsetfill(0)setw(3)setiosflags(ios:left)studi.huaxue ;cout I ;coutsetfill(0)setw(3)setiosflags(ios:left)studi.yingyu ;cout I ;coutsetfill(0)setw(3)setiosflags(ios:left)studi.wanglu o;cout I ;coutn;coutvvI I I I I I I endl;fl
18、ag=true;break;if(flag=false)cout 对不起,暂无此学生信息 ;getch();void search_num(string num)/ 按学号查找int i;bool flag=false;for(i=0;in;i+)if(studi.num=num)coutendl;coutvvI序号I姓 名I 学 号 I性别I数学I物理I化学I英语I网络I vve ndl;coutvvI I I I I I vvendl;coutvv;coutvvsetfill(0)setw(3)setiosflags(ios:left)i+1;coutcoutsetfill(0)setw(
19、7)setiosflags(ios:left);c outvv I ;coutsetfill(0)setw(10)setiosflags(ios:left)studi.nu m;cout I ;coutsetfill(0)setw(3)setiosflags(ios:left)studi.sex;co ut I ;coutsetfill(0)setw(3)setiosflags(ios:left)studi.shuxue ;cout I ;coutsetfill(0)setw(3)setiosflags(ios:left)studi.wuli;c out I ;coutse
20、tfill(0)setw(3)setiosflags(ios:left)studi.huaxue ;cout I ;coutsetfill(0)setw(3)setiosflags(ios:left)studi.yingyu;cout I ;coutsetfill(0)setw(3)setiosflags(ios:left)studi.wanglu o;cout I ;coutn;coutvvI I I I _ endl;flag=true;break;if(flag=false)cout 对不起,暂无此学生信息 ;getch();void set_number()/number 开始int
21、e,f,i,t;for(e=0,f=0,t=0,i=0;in;i+) /100if(studi.shuxue=100)t+;numberef=t;for(e=1,f=0,t=0,i=0;in;i+)if(studi.wuli=100)t+; numberef=t; for(e=2,f=0,t=0,i=0;in;i+) if(studi.huaxue=100) t+; numberef=t;for(e=3,f=0,t=0,i=0;in;i+) if(studi.yingyu=100) t+; numberef=t;for(e=4,f=0,t=0,i=0;in;i+) if(studi.wangl
22、uo=100) t+; numberef=t;for(e=0,f=1,t=0,i=0;i=90&studi.shuxue=99) t+;numberef=t;for(e=1,f=1,t=0,i=0;i=90&studi.wuli=99) t+;numberef=t;for(e=2,f=1,t=0,i=0;i=90&studi.huaxue=99) t+;numberef=t;for(e=3,f=1,t=0,i=0;i=90&studi.yingyu=99) t+;numberef=t;for(e=4,f=1,t=0,i=0;i=90&studi.wangluo=99) t+;numberef=
23、t;for(e=0,f=2,t=0,i=0;i=80&studi.shuxue=89)t+;numberef=t;for(e=1,f=2,t=0,i=0;i=80&studi.wuli=89)t+;numberef=t;for(e=2,f=2,t=0,i=0;i=80&studi.huaxue=89) t+;numberef=t;for(e=3,f=2,t=0,i=0;i=80&studi.yingyu=89)t+;numberef=t;for(e=4,f=2,t=0,i=0;i=80&studi.wangluo=89)t+;numberef=t;for(e=0,f=3,t=0,i=0;i=9
24、0&studi.shuxue=99) t+;numberef=t;for(e=1,f=3,t=0,i=0;i=70&studi.wuli=79)t+;numberef=t;for(e=2,f=3,t=0,i=0;i=70&studi.huaxue=79) t+;numberef=t;for(e=3,f=3,t=0,i=0;i=70&studi.yingyu=79) t+;numberef=t;for(e=4,f=3,t=0,i=0;i=70&studi.wangluo=79) t+;numberef=t;for(e=0,f=4,t=0,i=0;i=60&studi.shuxue=69) t+;
25、numberef=t;for(e=1,f=4,t=0,i=0;i=60&studi.wuli=69)t+;numberef=t;for(e=2,f=4,t=0,i=0;i=60&studi.huaxue=69) t+;numberef=t;for(e=3,f=4,t=0,i=0;i=60&studi.yingyu=69)t+;numberef=t;for(e=4,f=4,t=0,i=0;i=60&studi.wangluo=69) t+;numberef=t;for(e=0,f=5,t=0,i=0;i=0&studi.shuxue=59) t+;numberef=t;for(e=1,f=5,t
26、=0,i=0;i=0&studi.wuli=59)t+;numberef=t;for(e=2,f=5,t=0,i=0;i=0&studi.huaxue=59)t+;numberef=t;for(e=3,f=5,t=0,i=0;i=0&studi.yingyu=59)t+;numberef=t;for(e=4,f=5,t=0,i=0;i=0&studi.wangluo=59) t+;numberef=t;void set_point() /pointint e,f;for(e=0;e5;e+)for(f=0;f6;f+)pointef=numberef/(n*1.0)*100;void set_
27、eva2() /* 课程的平均成绩 */ double s;int i;for(i=0,s=0;in;i+)s=s+studi.shuxue;eva0=s/(n*1.0);for(i=0,s=0;in;i+)s=s+studi.wuli;eva1=s/(n*1.0);for(i=0,s=0;in;i+)s=s+studi.huaxue;eva2=s/(n*1.0);for(i=0,s=0;in;i+)s=s+studi.yingyu;eva3=s/(n*1.0);for(i=0,s=0;in;i+)s=s+studi.wangluo;eva4=s/(n*1.0);void put_result
28、() / 输出统计结果char g;for(g=0;g=0|g!=4;)system(cls);cout1. 查询每位学生的总平均分 endl2. 查询各课的成绩分布及平 均成绩 endl3. 查询各段成绩所占的百分比 endl4. 返回主菜单g;system(cls);switch(g)case 1:put_result1();getch();break;case 2:put_result2();getch();break;case 3:put_result3();getch();break;case 4:break;default:coutendlendlendlendlendlendle
29、ndlendlend lendlendl 错误指令!按任意键返回。 endl;getch();break;void put_result1()/ 每位学生的总平均分int e;cout 学生的总平均分endl;coutendl;coutvv丨姓名丨平均成绩|endl;coutendl;for(e=0;en;e+)coutvvI;coutsetfill(0)setw(6)setiosflags(ios:right)I;coutsetfill(0)setw(6)setiosflags(ios:right)stude.eva I endl;coutI I Iendl;void p
30、ut_result2() / 输出统计结果 2int e,f;cout各课的成绩分布及平均成绩endl;coutendl;coutvvI 课程 I 100 I 9099 I 80 89 I 7079 I 60 69 I 60以下I平均分I endl;coutvvI I I I I I学|;cout理|;cout学|;cout语|;cout络|coutvv|”;cout数;for(e=0,f=0;f6;f+)coutsetfill(0)setw(4)setiosflags( ios:right)numberef|setfill(0)setw(5)setiosflags(ios:left)seti
31、osflags(io s:fixed)setprecision(1)eva0| endl;cout|;cout 物;for(e=1,f=0;f6;f+)coutsetfill(0)setw(4)setiosflags( ios:right)numberef|setfill(0)setw(5)setiosflags(ios:left)setiosflags(io s:fixed)setprecision(1)eva1| endl;cout|;cout 化;for(e=2,f=0;f6;f+)coutsetfill(0)setw(4)setiosflags( ios:right)numberef|
32、setfill(0)setw(5)setiosflags(ios:left)setiosflags(io s:fixed)setprecision(1)eva2| endl;cout|;cout 英;for(e=3,f=0;f6;f+)coutsetfill(0)setw(4)setiosflags( ios:right)numberef|setfill(0)setw(5)setiosflags(ios:left)setiosflags(io s:fixed)setprecision(1)eva3| endl;cout|;cout 网;for(e=4,f=0;f6;f+)coutsetfill
33、(0)setw(4)setiosflags(ios:right) nu mberefvv|;coutsetfill(0)setw(5)setiosflags(ios:left)setiosflags(io s:fixed)setprecision(1)eva4| endl;cout| | | | | | | | endl;void put_result3() / 输出统计结果 3int e,f;cout各段成绩所占的百分比endl;cout endl;cout| 课程 |100| 9099 | 80 89 | 7079 | 60 69| 60 以下|平均分| endl;cout| | | |
34、| | | | endl;cout|;cout 数 学 |;for(e=0,f=0;f6;f+)coutsetfill(0)setw(5)setiosflags( ios:right)pointef|;coutsetfill(0)setw(5)setiosflags(ios:left)setiosflags(ios:fixed)setprecision(1)eva0endl;cout;cout 物;for(e=1,f=0;f6;f+)coutsetfill(0)setw(5)setiosflags(ios:right)pointefsetfill(0)setw(5)setiosflags(io
35、s:left)setiosflags(ios:fixed)setprecision(1)eva1endl;cout;cout 化;for(e=2,f=0;f6;f+)coutsetfill(0)setw(5)setiosflags(ios:right)pointefsetfill(0)setw(5)setiosflags(ios:left)setiosflags(ios:fixed)setprecision(1)eva2endl;cout;cout 英;for(e=3,f=0;f6;f+)coutsetfill(0)setw(5)setiosflags(ios:right)pointefset
36、fill(0)setw(5)setiosflags(ios:left)setiosflags(ios:fixed)setprecision(1)eva3endl;cout;cout 网;for(e=4,f=0;f6;f+)coutsetfill(0)setw(5)setiosflags(ios:right)pointefsetfill(0)setw(5)setiosflags(ios:left)setiosflags(ios:fixed)setprecision(1)eva4endl;cout理 I;cout学I;cout语 I;cout络 I;cout IIIendl;void cunqu_
37、data() / 存取文件char g;for(g=0;g=0|g!=3;)system(cls);cout1. 保 存 文 件 endl2. 读 取 文 件 endl3. 返 回 主 菜 单 g;system(cls);switch(g)case 1:save_data();break;case 2:read_data();break;case 3:break;default:coutendlendlendlendlendlendlendlendlend lendlendl 错误指令!按任意键返回。 endl;getch();break;void save_data() / 保存文件int
38、i;remove( 学生学籍信息 .dat);ofstream outfile( 学生学籍信息 .dat,ios:out);if(outfile=0)cerr 打开失败! endl;exit(1);elsefor(i=0;in;i+) ;outfilestudi.num ;outfilestudi.sex ;outfilestudi.shuxue ;outfilestudi.wuli ;outfilestudi.huaxue ;outfilestudi.yingyu ;outfilestudi.wangluo ;n=i;coutendlendlendlendl
39、endlendlendlendlendlendlendl保存成功A_A,按任意键返回主菜单endl;outfile.close();getch();void read_data() / 读取文件 int i;ifstream infile( 学生学籍信息 .dat,ios:in); if(!infile)cerr 打开失败! endl;exit(1);else for(n=0,i=0;; infilestudi.num; infilestudi.sex;infilestudi.shuxue; infilestudi.wuli;infilestudi.huaxue; inf
40、ilestudi.yingyu; infilestudi.wangluo; n+;if(studi.wangluo=0&studi.wuli=0&studi.huaxue=0) i=200;n-; coutendlendlendlendlendlendlendlendlendlendl vendlvv读取成功A_A,按任意键返回主菜单。h; system(cls);switch(h)case 1:system(cls);coutvvendlvvendlvvendl;coutvv原始学生学籍信息endl;put_massage(n,stud);coutendl;cout输入您需要删除的学籍的序号: p;if(pn)coutendl错误指令! endl;getch();break; delete_data(p);getch();break;case 2:recover_data();break;case 3:break;default:coutendlendlendlendlendlendlendlendlendlendlendl错误指令!按任意键
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 出售沙石合同范例
- 农村婚庆物品采购合同范例
- 2025年市场营销学试题及答案
- 介绍资源居间合同范例
- 公司股东投资项目合同范例
- 行政管理与社会信任建设的跨学科研究试题及答案
- 云联惠合同范例
- 冲压模具订单合同范例
- 充电宝订购合同范例
- 关于编写 合同范例
- 2025年入团考试各科目试题及答案分析
- 电网工程设备材料信息参考价2025年第一季度
- 成都设计咨询集团有限公司2025年社会公开招聘(19人)笔试参考题库附带答案详解
- 2024年湖南省长沙市中考英语真题(原卷版)
- 2025年高三高考冲刺主题教育班会:《高三考前心理调适指南:减压赋能 轻松备考》-2024-2025学年高中主题班会课件
- 学校设计施工及运营一体化(EPC+O)招标文件
- 小学一年级数学20以内进位、退位加减法口算
- 2024年全国高中数学联赛(浙江预赛)试题含参考答案
- 2024年安徽省初中学业水平考试生物试题含答案
- 2024年浙江省中考英语试题卷(含答案解析)
- MOOC 理解马克思-南京大学 中国大学慕课答案
评论
0/150
提交评论