学生成绩管理系统-C++.doc
《学生成绩管理系统-C++.doc》由会员分享,可在线阅读,更多相关《学生成绩管理系统-C++.doc(9页珍藏版)》请在咨信网上搜索。
设计题目:成绩管理系统 设计要求实现如下功能: 输入一个班级的学生基本信息(包括学号,姓名,性别,科目),对N门考试的成绩进行管理(例N=5) 要求 : 1.用户录入每个学生每门课程的分数; 2.能够计算每个学生的各门功课总分和平均分,并按总分将成绩排序,显示每个学生的总分和排名; 3.计算全班各门功课的平均分,显示没门课程中低于平均分的每一个学生的学号,姓名,性别,科目,成绩等信息; 4。显示每门科目中,成绩在90分以上的学生信息。另外还输出每门科目中不及格的学生信息; 5。能按姓名或者学号查找,增加,删除和保存各个学生的信息。 6 文件操作 源码: class.cpp文件: #include〈iostream〉 #include<fstream〉 #include〈string〉 using namespace std; class Student{ private: int no; string name,sex; public: string getName(){return name;} string getSex(){return sex;} int getNo(){return no;} void setSex(string s){sex=s;} void setNo(int sno){no=sno;} void setName(string nam){name=nam;} void show(){ cout〈〈”学号 :"〈〈no〈〈endl; cout〈<”姓名 :”〈<name〈〈endl; cout〈〈"性别 :"<<sex〈〈endl; cout〈<endl; } void Init(){ string n; int num,s; cout<〈”请输入学号:"〈<endl; cin〉〉num; cout<〈"请输入姓名:”〈<endl; cin〉〉n; cout〈〈”请选择性别:男 0,女 1"〈<endl; cin>>s; no=num; name=n; string s1,s2; if(s=0){s1=”boy”;Student::setSex(s1);} else{ s2=”girl”;Student::setSex(s2); } } }; class Classes{ private: string name; public: int number; Student c[100]; int getNumber(){return number;} Student getStu(){return c[100];} void setStudent(Student a[100]){c[100]=a[100];} void setNumber(int num){number=num;} void Init(){ number=0; string nam; cout<〈”请输入班级姓名:”〈〈endl; cin〉>nam; cout〈<"请输入班级人数:"〈<endl; cin〉〉number; for(int i=0;i〈number;i++){ c[i].Init(); } ofstream out; out。open(”student.txt",ios::out); if(!out){ cerr〈〈”文件打不开”〈〈endl; abort(); } for(int i=0;i〈number;i++){ out〈<c[i]。getNo()〈<” ”<〈c[i]。getName()<<” ”〈<c[i]。getSex()<〈endl; } out.close(); } void searchByName(){ string nam; cout〈<”请输入要查找的学生姓名:”〈<endl; cin〉>nam; int i; for(i=0;i〈number;i++){ if(c[i]。getName()==nam){ c[i]。show(); } } } void serchByNo(){ int n; cout<<”请输入要查找的学号;”<〈endl; cin〉〉n; int i; for(i=0;i〈100;i++){ if(c[i].getNo()==n){c[i]。show();break;} } } }; class Course{ private: string name; int score; public: string getName(){return name;} void Init(){ string nam; cout<<"请输入课程名:"<〈endl; cin〉〉nam; setName(nam); } void setName(string nam){name=nam;} }; class OpreatorCou{ public: Classes c1; Course co[20]; int Mark[100][100],StuAll[100],n; void setN(int nn){n=nn;} int getN(){return n;} int getMark(){return Mark[100][100];} Course getCo(){return co[20];} void IN(){ cout<〈"请输入课程数量:"〈〈endl; cin>>n; for(int i=0;i〈n;i++){ co[i].Init(); } ofstream outS; outS。open(”course.txt”,ios::out); if(!outS){ cerr〈〈”文件打不开"〈〈endl; abort(); } for(int i=0;i〈n;i++){ outS〈<co[i].getName()〈〈endl; } outS。close(); } void input(Course co[20],int n,Student c[], int number ){ int s; for(int i=0;i〈n;i++){ for(int j=0;j〈number;j++){ cout<〈”请输入”<〈c[j].getName()〈<"的”<〈co[i].getName()〈〈"成绩"〈〈endl; cin>>s; if(s〈0||s〉100){ cout〈<"你输入的成绩有误请重新输入!(成绩范围为0-100!)”〈<endl; j=j—1; } else{ Mark[i][j]=s; } } } ofstream out; out。open(”score。txt",ios::out); if(!out){ cerr〈<"文件打不开"<〈endl; abort(); } for(int i=0;i<n;i++){ out〈<co[i]。getName(); for(int j=0;j<number;j++){ out<<” ”<<Mark[i][j]〈〈" "; } out〈<endl; } out。close(); } void CountStu(int Mark[100][100],int number,int n){ for(int i=0;i<number;i++){ int s=0; for(int j=0;j〈n;j++){ s=s+Mark[j][i]; } StuAll[i]=s; } } void CountCouAvg(int Mark[100][100],Student c[],int number,Course co[],int n){ float CouAll[10]; for(int i=0;i〈n;i++){ float s=0.0; for(int j=0;j〈number;j++){ s=s+Mark[i][j]; } CouAll[i]=s/n; } for(int i=0;i〈n;i++){ cout<〈co[i].getName()〈〈”的平均分是:”<〈(CouAll[i])〈〈endl; } for(int i=0;i〈n;i++){ for(int j=0;j<number;j++){ if(Mark[i][j]<CouAll[i]){ cout〈<c[j].getName()〈<"的”<〈co[i].getName()<〈"成绩小于平均分."〈〈endl;} } } } void showUnpass(int Mark[100][100],Student c[],int number,Course co[],int n){ for(int i=0;i〈n;i++){ for(int j=0;j〈number;j++){ if(Mark[i][j]〈60){ cout〈<c[j]。getName()〈<"的"〈〈co[i]。getName()<〈”成绩不及格!"〈<endl; } } } } void showGood(int Mark[100][100],Student c[],int number,Course co[],int n){ for(int i=0;i〈n;i++){ for(int j=0;j〈number;j++){ if(Mark[i][j]〉90){ cout〈<c[j]。getName()<〈”的”〈〈co[i]。getName()<〈”成绩优秀!成绩为:"〈<Mark[i][j]〈〈endl; } } } } void order(Student c[],int number,int StuAll[],int n){ for(int i=0;i<number;i++){ int sum=0;Student stu; if(StuAll[i]〈StuAll[i+1]){ sum=StuAll[i]; StuAll[i]=StuAll[i+1]; StuAll[i+1]=sum; stu=c[i]; c[i]=c[i+1]; c[i+1]=stu; } } for(int i=0;i〈number;i++){ cout<<c[i]。getName()〈〈”的排名是:”〈〈(i+1)〈<" 总分:"〈〈StuAll[i]<<endl; } ofstream out; out。open(”studentscore.txt”,ios::out); if(!out){ cerr〈<"文件打不开"<〈endl; abort(); } for(int i=0;i<number;i++){ out〈〈c[i].getName()〈<” ”<<StuAll[i]<〈” "〈〈(i+1)〈<endl; } out.close(); } void Delete(int Mark[100][100],Student c[],int number,int n){ string na; cout<〈"请输入要删除的学生姓名:"<〈endl; cin〉〉na; for(int i=0;i〈number;i++){ if(c[i].getName()==na){ for(i;i〈number;i++){ c[i]=c[i+1]; } for(int j=0;j〈n;j++){ for(int k=i;k<number;k++){ Mark[j][k]=Mark[j][k+1]; } } } else{cout〈〈”您要删除的学生不存在!”<〈endl;} } cout〈〈"删除成功!"〈<endl; } void ReadText(Student c[],int number,Course co[],int n){ char sname[30],sex[30]; int sno; ifstream in(”student.txt”,ios::in); if(!in){ cerr〈<”文件打不开”〈〈endl; abort(); } int i=—1; in〉>sno〉>sname〉〉sex; while(!in。eof()){ i=i+1; c[i]。setNo(sno); c[i].setName(sname); c[i].setSex(sex); in>〉sno>>sname〉>sex; } c1。setStudent(c); c1。setNumber(i+1); in。close(); char nam[20]; ifstream ins(”course。txt”,ios::in); if(!ins){ cerr〈〈"文件打不开”〈〈endl; abort(); } int j=—1; ins>>nam; while(!ins.eof()){ j++; co[j]。setName(nam); ins〉>nam; } setN(j+1); ins。close(); cout〈<”读取文件完毕,请继续操作!"〈〈endl; } }; 主函数: #include”class。cpp” #include〈iostream〉 void showMenue(){ cout<<”********学生成绩管理系统********”〈<endl; cout〈〈"请选择功能:"〈<endl; cout〈<”1 输入学生成绩”<<endl; cout〈<”2 根据成绩排序输出。"〈〈endl; cout〈〈”3 显示成绩大于90分的学生”〈〈endl; cout<〈”4 显示不及格学生”<<endl; cout<<”5 按姓名查找”〈〈endl; cout〈〈”6 按学号查找"<〈endl; cout〈〈”7 显示成绩小于课程平均分的学生”〈〈endl; cout〈〈”8 删除学生信息”<〈endl; cout<<”0 退出”<〈endl; cout<〈endl; } void main(){ int choice,input ; cout〈<"请选择初始化方式:1.手动输入 2。从文件读取”〈〈endl; cin〉〉input; OpreatorCou op; if(input==1){ op.c1。Init();op。IN();} if(input==2){op.ReadText(op.c1。c,op。c1.getNumber(),op。co,op。getN()); } do{ showMenue(); cin〉〉choice; switch(choice){ case 1: op。input(op。co,op.getN(),op。c1。c,op。c1。getNumber());break; case 2: { op。CountStu(op。Mark,op.c1。getNumber(),op。getN()); op.order(op。c1。c,op。c1.getNumber(),(op.StuAll),op。getN()); break; } case 3: op。showGood(op。Mark,op。c1。c,op。c1。getNumber(),op.co,op.getN()); break; case 4: op.showUnpass(op。Mark,op。c1。c,op.c1。getNumber(),op。co,op。getN());break; case 5: op。c1.searchByName();break; case 6: op。c1。serchByNo(); break; case 7: op.CountCouAvg(op.Mark,op.c1.c,op。c1.getNumber(),op。co,op。getN());break; case 8: op。Delete(op。Mark,op。c1.c,op。c1.getNumber(),op.getN());break; case 0: break; default: cout〈〈”您输入的有误,请重新输入!"<<endl; } }while(choice!=0); } 运行界面:- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统 C+
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文