学生成绩管理系统 C++.docx
- 文档编号:9322691
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:16
- 大小:33.99KB
学生成绩管理系统 C++.docx
《学生成绩管理系统 C++.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统 C++.docx(16页珍藏版)》请在冰豆网上搜索。
学生成绩管理系统C++
设计题目:
成绩管理系统
设计要求实现如下功能:
输入一个班级的学生基本信息(包括学号,姓名,性别,科目),对N门考试的成绩进行管理(例N=5)
要求:
1.用户录入每个学生每门课程的分数;
2。
能够计算每个学生的各门功课总分和平均分,并按总分将成绩排序,显示每个学生的总分和排名;
3。
计算全班各门功课的平均分,显示没门课程中低于平均分的每一个学生的学号,姓名,性别,科目,成绩等信息;
4。
显示每门科目中,成绩在90分以上的学生信息。
另外还输出每门科目中不及格的学生信息;
5。
能按姓名或者学号查找,增加,删除和保存各个学生的信息.
6文件操作
源码:
class.cpp文件:
#include〈iostream〉
#include〈fstream>
#include usingnamespacestd; classStudent{ private: intno; stringname,sex; public: stringgetName(){returnname;} stringgetSex(){returnsex;} intgetNo(){returnno;} voidsetSex(strings){sex=s;} voidsetNo(intsno){no=sno;} voidsetName(stringnam){name=nam;} voidshow(){ cout〈<”学号: "<〈no<〈endl; cout〈<”姓名: ”< cout〈〈”性别: "〈〈sex〈〈endl; cout〈〈endl; } voidInit(){ stringn; intnum,s; cout<<"请输入学号: ”< cin〉〉num; cout<<"请输入姓名: "〈 cin〉〉n; cout<〈”请选择性别: 男0,女1"〈〈endl; cin〉〉s; no=num; name=n; strings1,s2; if(s=0){s1="boy";Student: : setSex(s1);} else{ s2=”girl”;Student: : setSex(s2); } } }; classClasses{ private: stringname; public: intnumber; Studentc[100]; intgetNumber(){returnnumber;} StudentgetStu(){returnc[100];} voidsetStudent(Studenta[100]){c[100]=a[100];} voidsetNumber(intnum){number=num;} voidInit(){ number=0; stringnam; cout〈〈"请输入班级姓名: ”〈 cin〉〉nam; cout<〈”请输入班级人数: "〈 cin〉>number; for(inti=0;i〈number;i++){ c[i]。 Init(); } ofstreamout; out。 open(”student。 txt",ios: : out); if(! out){ cerr<〈"文件打不开”〈〈endl; abort(); } for(inti=0;i〈number;i++){ out〈 getName()〈<""〈〈c[i]。 getSex()< } out。 close(); } voidsearchByName(){ stringnam; cout〈〈”请输入要查找的学生姓名: "〈 cin>〉nam; inti; for(i=0;i if(c[i].getName()==nam){ c[i]。 show(); } } } voidserchByNo(){ intn; cout〈〈"请输入要查找的学号;"< cin〉〉n; inti; for(i=0;i〈100;i++){ if(c[i].getNo()==n){c[i].show();break;} } } }; classCourse{ private: stringname; intscore; public: stringgetName(){returnname;} voidInit(){ stringnam; cout<〈”请输入课程名: "〈 cin>>nam; setName(nam); } voidsetName(stringnam){name=nam;} }; classOpreatorCou{ public: Classesc1; Courseco[20]; intMark[100][100],StuAll[100],n; voidsetN(intnn){n=nn;} intgetN(){returnn;} intgetMark(){returnMark[100][100];} CoursegetCo(){returnco[20];} voidIN(){ cout〈〈”请输入课程数量: ”〈 cin>>n; for(inti=0;i co[i].Init(); } ofstreamoutS; outS.open("course.txt",ios: : out); if(! outS){ cerr<<"文件打不开"<〈endl; abort(); } for(inti=0;i outS<〈co[i]。 getName()〈〈endl; } outS.close(); } voidinput(Courseco[20],intn,Studentc[],intnumber){ ints; for(inti=0;i for(intj=0;j〈number;j++){ cout<<"请输入”<〈c[j]。 getName()〈<"的”<〈co[i].getName()<〈"成绩"<〈endl; cin>〉s; if(s〈0||s>100){ cout<〈"你输入的成绩有误请重新输入! (成绩范围为0-100! )"〈 j=j-1; } else{ Mark[i][j]=s; } } } ofstreamout; out。 open(”score.txt",ios: : out); if(! out){ cerr〈〈"文件打不开"〈〈endl; abort(); } for(inti=0;i out〈〈co[i].getName(); for(intj=0;j out<〈"”〈 } out〈 } out.close(); } voidCountStu(intMark[100][100],intnumber,intn){ for(inti=0;i ints=0; for(intj=0;j s=s+Mark[j][i]; } StuAll[i]=s; } } voidCountCouAvg(intMark[100][100],Studentc[],intnumber,Courseco[],intn){ floatCouAll[10]; for(inti=0;i floats=0。 0; for(intj=0;j〈number;j++){ s=s+Mark[i][j]; } CouAll[i]=s/n; } for(inti=0;i〈n;i++){ cout〈〈co[i]。 getName()<〈"的平均分是: ”〈〈(CouAll[i])〈〈endl; } for(inti=0;i for(intj=0;j〈number;j++){ if(Mark[i][j]〈CouAll[i]){ cout<〈c[j].getName()<<”的”〈 "〈〈endl;} } } } voidshowUnpass(intMark[100][100],Studentc[],intnumber,Courseco[],intn){ for(inti=0;i〈n;i++){ for(intj=0;j if(Mark[i][j]〈60){ cout<〈c[j]。 getName()〈<”的"< "< } } } } voidshowGood(intMark[100][100],Studentc[],intnumber,Courseco[],intn){ for(inti=0;i for(intj=0;j〈number;j++){ if(Mark[i][j]〉90){ cout〈 成绩为: "〈 } } } } voidorder(Studentc[],intnumber,intStuAll[],intn){ for(inti=0;i〈number;i++){ intsum=0;Studentstu; 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(inti=0;i〈number;i++){ cout〈〈c[i].getName()<<"的排名是: "<〈(i+1)〈〈”总分: ”< } ofstreamout; out。 open(”studentscore。 txt”,ios: : out); if(! out){ cerr<<"文件打不开"〈 abort(); } for(inti=0;i〈number;i++){ out〈 getName()<<””< } out。 close(); } voidDelete(intMark[100][100],Studentc[],intnumber,intn){ stringna; cout<<"请输入要删除的学生姓名: ”〈 cin>〉na; for(inti=0;i〈number;i++){ if(c[i].getName()==na){ for(i;i〈number;i++){ c[i]=c[i+1]; } for(intj=0;j〈n;j++){ for(intk=i;k Mark[j][k]=Mark[j][k+1]; } } } else{cout〈〈”您要删除的学生不存在! "〈〈endl;} } cout<〈”删除成功! "<〈endl; } voidReadText(Studentc[],intnumber,Courseco[],intn){ charsname[30],sex[30]; intsno; ifstreamin(”student。 txt”,ios: : in); if(! in){ cerr<<"文件打不开"〈 abort(); } inti=—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(); charnam[20]; ifstreamins(”course。 txt”,ios: : in); if(! ins){ cerr〈<"文件打不开”<〈endl; abort(); } intj=-1; ins〉〉nam; while(! ins.eof()){ j++; co[j].setName(nam); ins>〉nam; } setN(j+1); ins。 close(); cout〈<"读取文件完毕,请继续操作! ”〈 } }; 主函数: #include”class.cpp" #include voidshowMenue(){ cout〈<"********学生成绩管理系统********”<〈endl; cout〈<”请选择功能: "〈 cout<<”1输入学生成绩”〈〈endl; cout〈<"2根据成绩排序输出."〈 cout〈〈"3显示成绩大于90分的学生"< cout<<”4显示不及格学生"〈〈endl; cout<<"5按姓名查找”<〈endl; cout<〈”6按学号查找"〈〈endl; cout〈〈"7显示成绩小于课程平均分的学生"< cout<<”8删除学生信息”〈 cout〈〈"0退出"< cout〈 } voidmain(){ intchoice,input; cout<〈"请选择初始化方式: 1.手动输入2.从文件读取”< cin>〉input; OpreatorCouop; 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){ case1: op。 input(op。 co,op。 getN(),op.c1。 c,op。 c1.getNumber());break; case2: {op.CountStu(op.Mark,op。 c1.getNumber(),op。 getN()); op.order(op.c1。 c,op.c1.getNumber(),(op.StuAll),op。 getN()); break; } case3: op。 showGood(op。 Mark,op.c1。 c,op.c1.getNumber(),op。 co,op。 getN());break; case4: op.showUnpass(op.Mark,op。 c1.c,op。 c1.getNumber(),op。 co,op.getN());break; case5: op。 c1。 searchByName();break; case6: op。 c1。 serchByNo();break; case7: op.CountCouAvg(op.Mark,op.c1。 c,op.c1。 getNumber(),op。 co,op.getN());break; case8: op。 Delete(op。 Mark,op.c1。 c,op.c1.getNumber(),op。 getN());break; case0: break; default: cout〈<"您输入的有误,请重新输入! "〈〈endl; } }while(choice! =0); } 运行界面:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生成绩管理系统 C+ 学生 成绩管理系统