版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C + 学 生 成要求用C+语言编写学生成绩管理系统,要求能进行添加删除修改输入输岀等的操作,并能使用面相对像 原理对此系统进行实现。学生成绩管理系统分析 :学生成绩管理系统分为8个模块,分别是:添加学生信息,输岀学生成绩,查找学生成绩,修改学生成绩,删除学生成绩,学生成绩排序,保存数据到文件和读取文件中学生成绩的模块。学生成绩管理系统结构:各个子函数功能及其流程:1.首先定义一个学生类Class Stude nt;并定义其各个私有变量和公有函数2. Student ();构造函数,用于初始化学生类中的各个变量并记录3. Add();函数:用于添加学生信息的函数包括学号姓名成绩等的内容4. O
2、utput();函数:用于输岀学生信息,包括学号姓名各科及总分平均成绩5. Find ();函数:用于查找学生各项信息。6.7. delete。;函数:用于删除学生信息8.sort();函数:对学生各项信息进行排序操作8. save()和load();函数:将学生信息保存到文件中,并在需要的时候调用该文件将其中的学生信息显示岀 来9.“ = ”“ << ”“ >> ”符号的重载:在各个函数处理数据过程中对这些的调用处理 函数源代码:此函数源代码在VisualC+6.0环境下编译通过。具体如下:#i nclude"iostream.h"#i nclud
3、e"c on io.h"#i nclude"ioma ni p.h"#i nclude"stdio.h"#i nclude"stri ng.h"#i nclude"stdlib.h"#i nclude"fstream.h"class stude nt /定义学生类char name20; / 名字char sex5; / 性别int number; / 学号int score3; / 分数int total; / 总分int average; / 平均分public: /公有
4、成员stude nt(); /学生构造函数,用于学生数据的初始化及保存学生数据void add(); /添加学生信息函数void output。; /输岀学生信息函数void find(); /查找学生数据函数void modify。; /修改学生信息函数void deleted(); /删除学生信息函数void sort(); / 排序函数void save(); /保存学生信息并写入文件函数void load (); /打开写有学生信息的文件的函数stude nt & operator=(stude nt & T); / 重载"=”符号friend istream
5、 & operator >> (istream & scin, student &s1); / 重载" >>”符号 friend ostream & operator << (ostream & scout, student &s2); / 重载" >>”符号;student stu100;int n=0;void student:add() / 添加函数char flag='Y' while(toupper(flag)='Y') cin>&
6、gt;stun; n+;cout<<" 要继续添加吗 (y/n)" cin>>flag;if(toupper(flag)!='Y') if(toupper(flag)='N') break;else cout<<" 错误,请重输: cin>>flag;void student:output() / 输出函数if(n!=0)cout<<" n"averagen"cout<<" number name sex math C+
7、English totalcout<<" n"for(int t=0;t<n;t+)cout<<stut;getch();void student:find() / 查找函数int f3=0;char n120;student temp;cout<<" 输入你要查找的人的姓名 cin>>n1;for(int j=0;j<n;j+)if(strcmp(,n1)=0)temp=stuj;f3=1;if(f3=0)cout<<" 对不起,没有你要查找的学生成绩 "
8、;<<endl;elsecout<<" n"cout<<" number name sex math C+ English total averagen"cout<<" n"cout<<" "<<temp.number<<" "<<<<" "<<temp.sex<<" "<<temp.score0
9、<<" "<<temp.score1<<" "<<temp.score2<<" "<<temp.total<<" "<<temp.average<<endl; getch();void student:modify() / 修改函数int f4=0;int t;char n250;cout<<" 输入你要修改的人的姓名 :"cin>>n2;for(int j=0;j
10、<n;j+)if(strcmp(,n2)=0)t=j;f4=1;if(f4=0)cout<<" 对不起,没有你要修改的学生成绩 "<<endl;elsecout<< " 请输入学号 : "cin>>stut.number;cout<< " 姓名 : "cin>>;cout<< " 性别 : "cin>>stut.sex;cout<< " 数学成绩 : &qu
11、ot;cin>>stut.score0;cout<< " C+ 成绩 : "cin>>stut.score1;cout<< " 英语成绩 : "cin>>stut.score2; stut.total=stut.score0+stut.score1+stut.score2; stut.average=stut.total/3;cout<<" 修改成功 !"<<endl;getch();void student:deleted() / 删除函数char
12、n320;bool f5=0;char c;docout<<" 请输入您要删除的学生姓名: "cin>>n3;for(int i=0;i<n;i+)if(strcmp(n3,)=0)f5=1;n-;do stui=stui+1; i+;while(i<=n);if(f5=0)cout<<" 您要求删除的对象本来就不存在! "cout<<" 要继续删除吗? (y/n)"<<endl;cin>>c; if(toupper(c)!='
13、;Y'&&toupper(c)!='N')cout<<" 输入指令错误!请重新输入Y 或 N ! "<<endl;cin>>c;while(toupper(c)='Y');getch();void student:sort() / 排序函数int i,j,k;student s3;for( i=0;i<(n-1);i+)k=i;for(j=i+1;j<n;j+)if(stuj.average>stui.average)k=j;if(k!=i)s3=stui;stui
14、=stuk;stuk=s3;cout<<"nn 排序成功 !nn"void student:save() / 保存函数char filename120;cout<<" 请输入文件名 : "cin>>filename1;ofstream fout(filename1,ios:app);if(!fout)cout<<" 文件不能打开 !"<<endl;elsefor(int i=0;i<n;i+)fout<<' '<<stui.nam
15、e<<' '<<stui.sex<<' '<<stui.number<<' '<<stui.score0<<' '<<stui.score1<<' '<<stui.score2<<' '<<stui.total<<' '<<stui.average<<' ' cout<<&quo
16、t; 保存成功 !"<<endl;fout.close();getch();void student:load() / 读取函数char filename220;cout<<" 请输入你要读取的文件名 : "cin>>filename2;ifstream fin(filename2,ios:in);if(!fin)cout<<" 文件打不开 !"<<endl;elsefor(int i=0;i+,n=i-1)if(fin.eof()break;fin>>&
17、gt;>stui.sex>>stui.number >>stui.score0>>stui.score1>>stui.score2>>stui.total>>stui.average; cout<<" 文件已读取成功 !"<<endl;fin.close();getch();student & student:operator=(student & T) / 重载 = strcpy(name,T.name); strcpy(sex,T.sex); numbe
18、r=T.number; for(int i=0;i<3;i+)scorei=T.scorei; total=T.total;average=T.average;return ( * this );ostream & operator << (ostream & scout, student &s2) / 重载 << cout<<setw(6)<<s2.number<<setw(10)<<<<setw(8)<<s2.sex<<setw(8)<
19、;<s2.score0<<setw(8)<<s2.score1<<setw(10)<<s2.score2<<setw(10)<<s2.total<<setw(8)<<s2.average<<endl; return scout;istream & operator >> (istream & scin,student &s1) / 重载 >>cout<< " t 学号 :" scin>>s1
20、.number;cout<< " t 姓名 :" scin>>;cout<< " t 性别 :" scin>>s1.sex;cout<< " t 数学成绩 :" scin>>s1.score0;cout<< " tC+ 成绩 :" scin>>s1.score1;cout<< " t 英语成绩 :" scin>>s1.score2; s1.total=s1.sco
21、re0+s1.score1+s1.score2;s1.average=s1.total/3;return scin;student:student() / 构造函数 strcpy(name," "); strcpy(sex," "); number=0;for(int i=0;i<3;i+)scorei=0;total=0;average=0;void menu() / 菜单函数"<<endl;cout<<"nnn 学生成绩管理系统主菜单 cout<<"nnn1. 添加学生信息 "<<endl; cout<<"2. 输出学生信息 &
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年智能电网储能系统工程师充放电策略优化
- 施肥机械操作工岗中岗位适应能力考核试卷含答案
- 酵母制备工技术知识测试考核试卷含答案
- 2026年能耗大数据高级管控师招聘笔试试卷 招录10人通关秘籍题库
- 2026年航天智能化高级专家招聘笔试试卷 招录11人大全
- 2026年铁路通信高级工程师招聘笔试试卷 招录12人真题题库
- 2026年云南省大理市高三数学下册期末考试模拟卷【培优】附答案
- 2026年山东省青州市高三数学下册期末考试模拟卷及完整答案(各地真题)
- 2026年河南省禹州市高三数学下册期末考试模拟卷附答案(模拟题)
- 2026年湖北省当阳市高三数学下册期末考试模拟考试卷含答案(培优)
- 2026年《安全生产技术基础》68个高频考点总结
- Unit 4 Our Memory Section B 1a-1e 课件2026-2027学年人教版九年级英语上册
- 2026年北京市定向招录选调生录用考试真题及答案解析
- 2026年高等教育法学类自考-00261行政法学历年参考题库含答案解析
- 2026年初级会计职称考试基础试题(含解答)及答案
- 医疗器械生产质量管理规范(2025年第107号)自查表格
- 2026年自考康复护理学试题及答案
- 2026年景德镇市公开招聘大学生乡村医生笔试备考试题及答案详解
- 食堂营养配餐设计方案
- 中国电动两轮车换电行业市场现状及投资态势分析报告(智研咨询)
- 八年级英语上册Unit 2 Understanding ideas(The Selfish Giant)深度阅读教案
评论
0/150
提交评论