中南大学计算机课程设计学生成绩管理系统_第1页
中南大学计算机课程设计学生成绩管理系统_第2页
中南大学计算机课程设计学生成绩管理系统_第3页
中南大学计算机课程设计学生成绩管理系统_第4页
中南大学计算机课程设计学生成绩管理系统_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、机电工程学院 中 南 大 学 C+可视化程序设计实践题 目 学生成绩管理系统 成员姓名 班级: 学号: 成员姓名 班级: 学号: 指导教师 夏建芳 学 院 机 电 工 程 学 院 完成时间 年 月 日 目录一、设计任务书-二、总体设计方案-三、成员设计内容简介-四、使用说明及运行实例-五、项目源程序代码-六、课程设计心得-七、成绩评定表-一、设计任务书面向对象程序设计课程设计是计算机科学与技术专业和软件工程专业集中实践性环节之一,是学习完面向对象程序设计课程后进行的一次全面的综合练习。其目的在于加深对面向对象程序设计中基础理论和基本知识的理解,培养学生的实践能力,促进理论与实践的结合。通过课程

2、设计,让学生能够熟练运用C+进行面向对象编程,建立对象模型,降低软件的复杂性,改善软件的重用性和维护性,提高软件的生产效率,全面掌握面向对象编程技术。任务要求1-3人一组(自由组合),明确分工。(1)小组负责人一般进行总体设计(包括总体设计流程图、模块函数原型接口设计);(2)模块的程序设计由组长、成员分别完成,并独立调试自己的程序;(3)组长至少完成2个功能模块的设计,成员至少完成3个功能模块的设计;(4)模块组装调试共同完成。鉴于此,本次以两人组队的方式展开。项目从6月19日展开至6月26日结束,历时8天完成。前期花费一天由小组组长进行总体设计;中期由组长和组员分别完成模块程序的设计,耗时

3、7天;最后由组长完成报告。通过本项目,意在完成一个可以对学生成绩进行各方面管理的系统(主要功能有见下文介绍),同时也将自己所学知识付诸实践,提高自己的能力。二、总体设计方案1.设计思想(1)分析任务要求,完成系统的开始界面,也就是编写主函数;(2)分析系统中的各个实体及它们之间的关系; (3)选择适当的类,完成类的定义; (4)根据要求的系统功能,完成类中各个成员函数的定义; (5)完成系统的应用模块(功能函数); (6)将主函数与功能函数整合在一个程序中;(7)进行多次的功能调试,以查找纠正错误;(8)完成系统总结报告。2.设计功能(1)添加学生记录;(2)删除学生记录;(3)显示学生记录;

4、(4)查询学生记录;(5)统计学生记录;(6)排序学生记录;(7)修改学生记录;(8)退出管理系统(包含保存功能)。3.设计程序流程图(1)层次调用开始判断是否存在文件输入序号选择功能输入数据输出结果结束建立新文件保存数据到文件中(2)结构视图学生成绩管理系统主函数记录学生记录删除学生记录显示学生记录查询学生记录统计学生记录排序学生记录退出管理系统修改学生记录三、成员设计内容简介为了令程序保持清晰和整洁,防止出错,首先由组长根据任务要求选好头文件,同时设计好程序的基类以及main()函数。 然后各种功能实现所需的功能函数由组长和组员合作完成设计。整个管理系统中,添加功能(adds())、删除功

5、能(deletes())、显示功能(shows())、查询功能(inquires())、计算平均分函数(Caculateas())、计算总分函数(Caculatets())由组员xx完成。剩下的打开函数(opens())、统计功能(statistics())、排序功能(ranks())、修改功能(changs())、退出及保存功能(exits())由组长xx完成。经过两人的合作和努力,终于成功设计出了整个学生成绩管理系统。四、使用说明及运行实例1.打开界面(1)没有源文件时(2)有源文件时2.添加功能(1)添加前(2)添加时(3)添加后2.删除功能(1)删除前(2)删除时(3)删除后3.显示功

6、能4.查询功能5.统计功能6.排序功能(1)排序前(2)排序后7.修改功能(1)修改前(2)修改时(3)修改后8.退出并保存文件9.文件显示五、项目源程序代码#include<iostream>#include<fstream>#include<cstring>using namespace std;class student /学生类定义public:int Num;char Name7;char Sex7;double Score3;double Tscore,Ascore;void Register(int num,char * name,char *

7、 sex,double score3,double ascore,double tscore);void Show();void student:Register(int num,char*name,char * sex,double score3,double ascore,double tscore) Num=num;strcpy(Name,name);strcpy(Sex,sex); Tscore=tscore;Ascore=ascore;for(int a=0;a<3;a+)Scorea=scorea;void student:Show() /显示cout<<&quo

8、t;t"<<Num<<"tt"<<Name<<"t"<<Sex<<"t"for(int a=0;a<3;a+)cout<<Scorea<<"t"cout<<Ascore<<"t"<<Tscore<<endl;student stu100;int count=0;double Caculateas(double * b); /计算平均分do

9、uble Caculatets(double * b); /计算总分 void opens(); /打开文件void adds(); /增加void deletes(); /删除void shows(); /显示void inquires(); /查询void statistics(); /统计void ranks(); /排序void changs(); /修改void exits(); /退出并将数据存在文件中int main() /主函数int select;opens();while(1) cout<<"nn" cout<<" 欢迎

10、使用学生管理系统nn" cout<<"*"<<endl; cout<<" 1:添加学生记录"<<endl; cout<<" 2:删除学生记录"<<endl; cout<<" 3:显示学生记录"<<endl; cout<<" 4:查询学生记录"<<endl; cout<<" 5:统计学生记录"<<endl; cout<&

11、lt;" 6:排序学生记录"<<endl; cout<<" 7:修改学生记录"<<endl; cout<<" 0:退出管理系统"<<endl; cout<<"n" cout<<" 请选择:" cin>>select; switch(select) case 1: adds(); break; case 2: deletes(); break; case 3: cout<<"t学号

12、tt姓名t性别t语文t数学t英语t平均分t总分"<<endl; cout<<"*"<<endl; shows(); break; case 4: inquires(); break; case 5: statistics(); break; case 6: ranks(); cout<<"*排序结果为*"<<endl; cout<<"t学号tt姓名t性别t语文t数学t英语t平均分t总分"<<endl; shows(); break; case

13、 7: changs(); break; case 0: char b; cout<<"确定要退出程序吗?Y/N:" cin>>b; if(b='Y'|b='y') exits();cout<<"文件保存成功!"<<endl;return 0; break; default:cout<<"输入错误!请重新出入"<<endl; return 0;double Caculateas(double * b) /计算平均分double c,

14、sum=0.0;for(int a=0;a<3;a+)sum=*(b+a)+sum;c=sum/3;return c;double Caculatets(double * b) /计算总分double sum=0.0; for(int a=0;a<3;a+)sum=*(b+a)+sum;return sum;void opens() / 打开文件ifstream infile("students.txt");if(!infile)ofstream outfile("students.txt");cout<<"未找到成绩文

15、件,重新创建!"<<endl;elsechar initial08,initial18,initial28,initial38,initial48,initial58,initial68,initial78;int num;char name7,sex7;double score3,ascore,tscore;int i=0;infile>>initial0>>initial1>>initial2>>initial3>>initial4>>initial5>>initial6>>

16、;initial7;while(!infile.eof()infile>>num>>name>>sex>>score0>>score1>>score2>>ascore>>tscore;stui.Register(num,name,sex,score,ascore,tscore);i=i+1;count+; for(int b=i;b<=i&&b>0;b+) stub-1=stub; count-;void adds() /添加int num;char name7,sex7

17、;double score3,ascore,tscore;if(count<100) int i=count+;cout<<"请依次输入学号、姓名、性别、语文成绩、数学成绩、英语成绩:"<<endl;cin>>num>>name>>sex>>score0>>score1>>score2;ascore=Caculateas(score);tscore=Caculatets(score);stui.Register(num,name,sex,score,ascore,tscor

18、e);cout<<"添加成功!" elsecout<<"存储空间已满!"void deletes() /删除 int num;int b,a=0;cout<<"请输入要删除学生的学生号:" cin>>num;for(int i=0;i<count;i+)if(stui.Num=num) for(b=i;b<count;b+) stub=stub+1; count-; cout<<endl<<"*删除成功*"<<endl;

19、 a+; break;if(!a) cout<<"该学生不存在,请重新输入!:"void shows() /显示 for(int i=0;i<count;i+)stui.Show();void inquires() /查询int a=0;int num;cout<<"请输入要查询学生的学号:" cin>>num;for(int i=0;i<count;i+)if(num=stui.Num)cout<<"t学号tt姓名t性别t语文t数学t英语t平均分t总分"<<en

20、dl;cout<<"*"<<endl;stui.Show();a+;break;if(!a)cout<<"该学生不存在,请重新输入!"void statistics() /统计 int a,i;double b=0.0,c;cout<<"请输入要统计平均成绩的科目序号1.语文;2.数学;3.英语:"cin>>a;switch(a)case 1: for(i=0;i<count;i+)b=b+stui.Score0; c=b/count; cout<<&quo

21、t;你要统计的"<<a<<"平均分为:"<<c<<endl; break;case 2: for(i=0;i<count;i+)b=b+stui.Score1; c=b/count; cout<<"你要统计的"<<a<<"平均分为:"<<c<<endl;break;case 3: for(i=0;i<count;i+)b=b+stui.Score2; c=b/count; cout<<"

22、;你要统计的"<<a<<"平均分为:"<<c<<endl; break;default:cout<<"输入错误!"<<endl;break;void ranks() /排序student temp;for(int i=0;i<count;i+)for(int j=count-1;j>i;j-)if(stuj-1.Tscore<stuj.Tscore)temp=stuj-1;stuj-1=stuj;stuj=temp;void changs() /修改 in

23、t a;double b,c=0;int num;cout<<"请输入要修改成绩的学生学号:" cin>>num; for(int i=0;i<count;i+)if(num=stui.Num) cout<<"请输入要修改成绩的科目的序号1.语文;2.数学;3.英语:" cin>>a; cout<<"请输入修改后的成绩:" cin>>b; switch(a) case 1: stui.Score0=b; stui.Ascore=Caculateas(stui

24、.Score); stui.Tscore=Caculatets(stui.Score); break; case 2: stui.Score1=b; stui.Ascore=Caculateas(stui.Score); stui.Tscore=Caculatets(stui.Score); break; case 3: stui.Score2=b; stui.Ascore=Caculateas(stui.Score); stui.Tscore=Caculatets(stui.Score); break; default: cout<<"输入错误!"<&l

25、t;endl; c+; break;if(!c) cout<<"该学生不存在,请重新输入!"void exits() /退出并将数据存在文件中 ofstream outfile("students.txt");if(!outfile)cout<<"文件保存失败"<<endl;outfile<<"t学号tt姓名t性别t语文t数学t英语t平均分t总分"<<endl;for(int i=0;i<count;i+)outfile<<"t"<<stui.Num<<"tt"<<stui.Name<<"t

温馨提示

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

评论

0/150

提交评论