c学生成绩管理系统_第1页
c学生成绩管理系统_第2页
c学生成绩管理系统_第3页
c学生成绩管理系统_第4页
c学生成绩管理系统_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、面向对象程序设计报告书项目名称:学生成绩管理系统班级:09自动化一班姓名:蔡晴,彭俊玮,方甜莲,曾穆英学号:0904020129,0904020111, 0904020130,0904020129完成时间:成绩:指导老师签名:时间:系统说明书1 问题描述通过本学生成绩管理系统,可实现对学生姓名,学号,成绩与课程(英语,线代,体育,马克思,复变,电路)的录入,学生成绩及课程信息用文件保存。能按学号完成对学生成绩的录入,修改,能按学号与班级统计学生的成绩,求得学生成绩的总分,平均分,积点,平均绩点并且进行高低排序,能查询学生成绩,按学号输出学生的成绩单。2 类体系设计和程序流程图3 主要数据及函数

2、功能描述函数基本功能包括:1输入数据:根据学生的学号,课程输入该学生的成绩;2增加数据:当增加新的学生成绩时,可以实现增加成绩的录入;3修改数据:当学生成绩发生改变时,可以对该学生的成绩信息进行修改;4删除学生的信息:当学生成绩录入错误时,可以删去该信息;5按姓名查询:可以按姓名查询该生成绩;6按学号查询:可以按学号查询该生成绩;7输出所有学生成绩:可以对输入的所有学生的成绩进行查询; 8按总分高低排序:可按学生成绩的高低进行排序并显示;9保存文件:可以实现对学生数据的保存;10退出系统 。 主要数据包括:学生姓名,学号,各科目成绩,总成绩,平均成绩,平均绩点,绩点。获取课程信息查看考试成绩课

3、程名称考试成绩总分平均分积点平均绩点成绩获取课程信息C+英语线代体育马克思复变电路课程选择课程获取课程信息姓名学号学生类图的绘制参加考试获取考试信息查看考试成绩姓名学号学生 4 拟采用开发平台Visual c+程序代码:#include<iostream.h>#include<string.h>#include<fstream.h>#include<stdlib.h>#include<iomanip.h> class student private: char name4; /姓名 double cpro,english,math,s

4、port,marx,hbpro,circuit,allscore,average,averagecore,core;/课程 int order, number; /名次,学号 public: student() student(char n4,int nu,double cc,double eng,double ma,double sp,double l,double hb,double com,double as,double av,double c1,double ac) strcpy(name,n); number=nu; cpro=cc; english=eng;math=ma;spo

5、rt=sp;marx=l;hbpro=hb;circuit=com;allscore=as;average=av;core=c1;averagecore=ac; friend void main(); ;void main() double allscore; double average; double averagecore; cout<<" 欢迎使用学生管理系统"<<endl; cout<<" *"<<endl; cout<<" * 学生成绩管理系统 *"<<

6、;endl; cout<<" *"<<endl; cout<<" 0、输入数据 "<<endl; cout<<" 1、增加数据 "<<endl; cout<<" 2、修改数据 "<<endl; cout<<" 3、删除学生的信息 "<<endl; cout<<" 4、按姓名查询 "<<endl; cout<<"

7、5、按学号查询 "<<endl; cout<<" 6、输出所有学生成绩 "<<endl; cout<<" 7、按总分高低排序 "<<endl; cout<<" 8、保存文件 "<<endl; cout<<" 9、退出系统 "<<endl; cout<<" ="<<endl; cout<<" 选择0-9数字进行操作"<&

8、lt;endl; cout<<" ="<<endl; char p;char w; student s50; /指针对象,最多存50个学生数据 ofstream *file50; /负责对文件插入操作 int i=0; int j=0; int flag=0;do /flag判断输入是否有效 cin>>p;if(p>='0'&&p<='9') flag=1;else cout<<" 指令错误!请重新输入:"<<endl; while(f

9、lag=0);do switch(p) /接收功能选项 case '0': /输入数据 char c; char name4;int number;double cpro,english,math,sport,marx,hbpro,core,circuit; do cout<<endl<<" 姓名:" cin>>name; cout<<endl<<" 学号:" cin>>number; cout<<endl<<" C+成绩:"

10、; cin>>cpro; cout<<endl<<" 英语成绩:" cin>>english; cout<<endl<<" 线代成绩:" cin>>math; cout<<endl<<" 体育成绩:" cin>>sport; cout<<endl<<" 马克思成绩:" cin>>marx; cout<<endl<<" 复变成绩:

11、" cin>>hbpro; cout<<endl<<" 电路成绩:" cin>>circuit; cout<<endl; allscore=cpro+english+math+sport+marx+hbpro+circuit; cout<<" 总成绩:"<<allscore<<endl; average=(cpro+english+math+sport+marx+hbpro+circuit)/7; cout<<" 平均成绩:&q

12、uot;<<average<<endl; core=(1+(cpro-60.00)/10)*3.5+(1+(english-60.00)/10)*5+(1+(math-60.00)/10)*4+(1+(sport-60.00)/10)*2+(1+(marx-60.00)/10)*2+(1+(hbpro-60.00)/10)*1.5+(1+(circuit-60.00)/10)*2; cout<<" 积点:"<<core<<endl; averagecore=core/20; cout<<" 平

13、均积点:"<<averagecore<<endl; filej=new ofstream("D:student.dat",ios:ate); *filej<<" 姓名 "<<name<<" 学号 "<<number<<" C+成绩 "<<cpro <<" 英语成绩 "<<english<<" 线代成绩 "<<math<

14、<" 体育成绩 " <<sport<<" 马克思成绩 "<<marx<<" 复变成绩 "<<hbpro<<"电路成绩 "<<circuit<<"总成绩"<<allscore<<"平均成绩"<<average<<"积点"<<core<<"平均积点"<<av

15、eragecore<<endl; j+; si= student(name, number,cpro,english,math,sport,marx,hbpro,circuit,allscore,average,core,averagecore); i+; cout<<" 数据输入成功,想继续输入吗(y/n):" cin>>c; cout<<endl;do if(c!='y'&&c!='n') cout<<" 指令错误!请重新输入!"<<

16、;endl<<" " cin>>c; else flag=1; while(flag=0); while(c='y');break; case '1': /增加数据 char name20; int number;double cpro,english,math,sport,marx,hbpro,circuit,core,averagecore; char c; do cout<<" 请输入您要增加的学生的姓名:" cin>>name; cout<<endl<

17、;<" 学号:" cin>>number; cout<<endl<<" C+成绩:" cin>>cpro; cout<<endl<<" 英语成绩:" cin>>english; cout<<endl<<" 线代成绩:" cin>>math; cout<<endl<<" 体育成绩:" cin>>sport; cout<<end

18、l<<" 马克思成绩:" cin>>marx; cout<<endl<<" 复变成绩:" cin>>hbpro; cout<<endl<<" 电路成绩:" cin>>circuit; cout<<endl; allscore=cpro+english+math+sport+marx+hbpro+circuit; cout<<" 总成绩:"<<allscore<<endl;

19、average=(cpro+english+math+sport+marx+hbpro+circuit)/7; cout<<" 平均成绩:"<<average<<endl; core=(1+(cpro-60.00)/10)*3.5+(1+(english-60.00)/10)*5+(1+(math-60.00)/10)*4+(1+(sport-60.00)/10)*2+(1+(marx-60.00)/10)*2+(1+(hbpro-60.00)/10)*1.5+(1+(circuit-60.00)/10)*2; cout<<&

20、quot; 积点:"<<core<<endl; averagecore=core/20; cout<<" 平均积点:"<<averagecore<<endl; filej=new ofstream("d:student.dat",ios:ate); *filej<<" 姓名 "<<name<<" 学号 "<<number<<" C+成绩 "<<cpro&l

21、t;<" 英语成绩 "<<english<<" 线代成绩 "<<math<<" 体育成绩 "<<sport<<" 马克思成绩 "<<marx<<" 复变成绩 "<<hbpro<<" 电路成绩 "<<circuit<<" 总成绩 "<<allscore<<" 平均成绩 &quo

22、t;<<average<<" 积点 "<<core<<" 平均积点 "<<averagecore<<endl; j+; si= student(name, number,cpro,english,math,sport,marx,hbpro,circuit,allscore,average,core,averagecore); i+; cout<<" 数据输入成功,想继续数入吗(y/n):" cin>>c; cout<<endl;

23、 if(c!='y'&&c!='n') cout<<" 指令错误!请重新输入!"<<endl<<" " cin>>c; while(c='y'); break; case '2': /修改数据 char name20;int nu;double cc,eng,ma,sp,l,hb,com,as,av,c1,ac;flag=0; char c; if(i=0) cout<<"系统中找不到这个学生"

24、do cout<<" 请输入您要修改的学生的姓名:" cin>>name; cout<<endl; for(int h=0;h<i;h+) /h纪录要修改学生的位置 if(strcmp(name,)=0) flag=1; cout<<" 新的学号:" cin>>nu; cout<<endl<<" C+成绩:" cin>>cc; cout<<endl<<" 英语成绩:" cin&

25、gt;>eng; cout<<endl<<" 线代成绩:" cin>>ma; cout<<endl<<" 体育成绩:" cin>>sp; cout<<endl<<" 马克思成绩:" cin>>l; cout<<endl<<" 复变成绩:" cin>>hb; cout<<endl<<" 电路成绩:" cin>>co

26、m; as=cc+eng+ma+sp+l+hb+com; cout<<endl<<" 总成绩:"<<as; av=as/7; cout<<endl<<" 平均成绩:"<<av; c1=(1+(cc-60.00)/10)*3.5+(1+(eng-60.00)/10)*5+(1+(ma-60.00)/10)*4+(1+(sp-60.00)/10)*2+(1+(l-60.00)/10)*2+(1+(hb-60.00)/10)*1.5+(1+(com-60.00)/10)*2; cout&l

27、t;<" 积点:"<<c1<<endl; ac=c/20; cout<<" 平均积点:"<<ac<<endl; cout<<endl; sh.cpro=cc; sh.english=eng; sh.math=ma; sh.sport=sp; sh.marx=l; sh.hbpro=hb; sh.number=nu; cout<<" 数据修改成功!"<<endl; if(flag=0) cout<<" 您要修改的学

28、生本来就不存在!请检查重新输入!"<<endl; cout<<" 想继续修改吗(y/n):" cin>>c; cout<<endl; if(c!='y'&&c!='n') cout<<" 指令错误!请重新输入!"<<endl<<" " cin>>c; while(c='y'); break; case '3': cout<<" 请

29、输入你要删除的姓名 :" char m20; cin>>m; for(int a=0;a<i;a+) if(strcmp(,m)=0) int w; w=a; for(w;w<i;w+) sw=sw+1; i=i-1; cout<<" 删除成功!"<<endl; break; case '4': /按姓名查询 char n20;int j=0;char c; if(i=0) cout<<" 管理系统中没有输入数据!"<<endl;break;

30、do int flag=0; cout<<" 请输入你要查询的学生姓名:" cin>>n; cout<<endl; for(int j=0;j<i;j+) if(strcmp(n,(sj).name)=0) flag=1; cout<<" 您要查询的学生是:"<<(sj).name<<endl; cout<<(sj).name<<"的成绩是: "<<" C+: "<<(sj).cpro<

31、;<" 英语: "<<(sj).english<<" 线代:"<<(sj).math<<" 体育:"<<(sj).sport<<" 马克思:"<<(sj).marx<<" 复变:"<<(sj).hbpro<<" 电路 "<<(sj).circuit<<" 总成绩"<<(sj).allscore&l

32、t;<" 平均成绩"<<(sj).average<<" 积点"<<(sj).core<<" 平均积点"<<(sj).averagecore<<endl; if(flag=0) cout<<" 对不起!您要查询的学生不存在!"<<endl; cout<<" 您想继续查询吗?(y/n):" cin>>c; cout<<endl; if(c!='y'

33、&&c!='n') cout<<" 指令错误!请重新输入!"<<endl; cin>>c; while(c='y'); break; case '5': /按学号查询 int n,j=0;char c; if(i=0) cout<<" 管理系统中没有输入数据!"<<endl;break; do int flag=0; cout<<" 请输入你要查询的学生的学号:" cin>>n; cout

34、<<endl; for(int j=0;j<i;j+) if(sj.number=n) flag=1; cout<<" 您要查询的学生是:"<<(sj).name<<endl; cout<<(sj).name<<"的成绩是: "<<" C+:"<<(sj).cpro<<" 英语:"<<(sj).english<<" 线代:"<<(sj).math&

35、lt;<" 体育:"<<(sj).sport<<" 马克思:"<<(sj).marx<<"复变:"<<(sj).hbpro<<" 电路: "<<(sj).circuit<<"总成绩:"<<(sj).allscore<<"平均成绩:"<<(sj).average<<" 积点"<<(sj).core&

36、lt;<" 平均积点"<<(sj).averagecore<<endl; if(flag=0) cout<<" 对不起!您要查询的学生不存在!"<<endl; cout<<" 您想继续查询吗?(y/n):" cin>>c; cout<<endl; if(c!='y'&&c!='n') cout<<" 指令错误!请重新输入!"<<endl; cin>&

37、gt;c; while(c='y'); break; case '6': /输出 cout<<" 本系统所有学生数据如下:"<<endl; if(i=0) cout<<" 管理系统中没有输入数据!"<<endl; cout<<"姓名 学号 c+ 英语 线代 体育 马克思 复变 电路 总成绩 平均成绩 总积点 平均积点 "<<endl; for(int k=0;k<i;k+) cout<<<<

38、;setw(7)<<sk.number<<setw(4) <<(sk).cpro<<setw(5)<<(sk).english<<setw(5) <<(sk).math<<setw(4)<<(sk).sport<<setw(5) <<(sk).marx <<setw(5)<<(sk).hbpro<<setw(6)<<(sk).circuit<<setw(6)<<sk.allscore<&

39、lt;setw(10)<<(sk).average<<setw(7)<<(sk).core <<setw(8)<<(sk).averagecore<<setw(4)<<endl; break; case'7': student temp; for(int t=0;t<i;t+) for(int k=t+1;k<i;k+) while (st.allscore<sk.allscore) temp=st; st=sk; sk=temp; cout<<"已经排好

40、序了,是否需要输出(y/n):" char yn; cin>>yn; while(yn!='y'&&yn!='n') cout<<"操作错误!请重新输入:" cin>>yn; if(yn='y') cout<<"所有学生的成绩按总分从高到低的排名是:"<<endl; cout<<" 本系统所有学生数据如下:"<<endl; if(i=0) cout<<" 管理系统中没有输入数据!"<<endl; cout<<"姓名 学号 c+ 英语 线代 体育 马克思 复变 电路 总成绩 平均成绩 总积点 平均积点 "<<endl; for(int k=0;k&

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论