精品资料(2021-2022年收藏)中南大学计算机课程设计学生成绩管理系统.精讲.doc

上传人:时光煮雨 文档编号:14908129 上传时间:2022-02-23 格式:DOC 页数:38 大小:973.50KB
返回 下载 相关 举报
精品资料(2021-2022年收藏)中南大学计算机课程设计学生成绩管理系统.精讲.doc_第1页
第1页 / 共38页
精品资料(2021-2022年收藏)中南大学计算机课程设计学生成绩管理系统.精讲.doc_第2页
第2页 / 共38页
精品资料(2021-2022年收藏)中南大学计算机课程设计学生成绩管理系统.精讲.doc_第3页
第3页 / 共38页
精品资料(2021-2022年收藏)中南大学计算机课程设计学生成绩管理系统.精讲.doc_第4页
第4页 / 共38页
精品资料(2021-2022年收藏)中南大学计算机课程设计学生成绩管理系统.精讲.doc_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《精品资料(2021-2022年收藏)中南大学计算机课程设计学生成绩管理系统.精讲.doc》由会员分享,可在线阅读,更多相关《精品资料(2021-2022年收藏)中南大学计算机课程设计学生成绩管理系统.精讲.doc(38页珍藏版)》请在三一文库上搜索。

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#include#includeusing namespace std;class student /学生类定义public:int Num;char Name7;char Sex7;double Score3;double Tscore,Ascore;void Register(int num,char * name,char * sex,double score3,double ascore,double tscore

7、);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;a3;a+)Scorea=scorea;void student:Show() /显示couttNumttNametSext;for(int a=0;a3;a+)coutScoreat;coutAscoretTscor

8、eendl;student stu100;int count=0;double Caculateas(double * b); /计算平均分double Caculatets(double * b); /计算总分 void opens(); /打开文件void adds(); /增加void deletes(); /删除void shows(); /显示void inquires(); /查询void statistics(); /统计void ranks(); /排序void changs(); /修改void exits(); /退出并将数据存在文件中int main() /主函数int

9、select;opens();while(1) coutnn; cout 欢迎使用学生管理系统nn; cout*endl; cout 1:添加学生记录endl; cout 2:删除学生记录endl; cout 3:显示学生记录endl; cout 4:查询学生记录endl; cout 5:统计学生记录endl; cout 6:排序学生记录endl; cout 7:修改学生记录endl; cout 0:退出管理系统endl; coutn; coutselect; switch(select) case 1: adds(); break; case 2: deletes(); break; cas

10、e 3: coutt学号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; coutt学号tt姓名t性别t语文t数学t英语t平均分t总分endl; shows(); break; case 7: changs(); break; case 0: char b; coutb; if(b=Y|b=y) exits();cout文件保存成功!endl;return

11、 0; break; default:cout输入错误!请重新出入endl; return 0;double Caculateas(double * b) /计算平均分double c,sum=0.0;for(int a=0;a3;a+)sum=*(b+a)+sum;c=sum/3;return c;double Caculatets(double * b) /计算总分double sum=0.0; for(int a=0;a3;a+)sum=*(b+a)+sum;return sum;void opens() / 打开文件ifstream infile(students.txt);if(!i

12、nfile)ofstream outfile(students.txt);cout未找到成绩文件,重新创建!initial0initial1initial2initial3initial4initial5initial6initial7;while(!infile.eof()infilenumnamesexscore0score1score2ascoretscore;stui.Register(num,name,sex,score,ascore,tscore);i=i+1;count+; for(int b=i;b0;b+) stub-1=stub; count-;void adds() /添

13、加int num;char name7,sex7;double score3,ascore,tscore;if(count100) int i=count+;cout请依次输入学号、姓名、性别、语文成绩、数学成绩、英语成绩:numnamesexscore0score1score2;ascore=Caculateas(score);tscore=Caculatets(score);stui.Register(num,name,sex,score,ascore,tscore);cout添加成功!; elsecout存储空间已满!;void deletes() /删除 int num;int b,a

14、=0;coutnum;for(int i=0;icount;i+)if(stui.Num=num) for(b=i;bcount;b+) stub=stub+1; count-; coutendl*删除成功*endl; a+; break;if(!a) cout该学生不存在,请重新输入!:;void shows() /显示 for(int i=0;icount;i+)stui.Show();void inquires() /查询int a=0;int num;coutnum;for(int i=0;icount;i+)if(num=stui.Num)coutt学号tt姓名t性别t语文t数学t英

15、语t平均分t总分endl;cout*endl;stui.Show();a+;break;if(!a)cout该学生不存在,请重新输入!;void statistics() /统计 int a,i;double b=0.0,c;couta;switch(a)case 1: for(i=0;icount;i+)b=b+stui.Score0; c=b/count; cout你要统计的a平均分为:cendl; break;case 2: for(i=0;icount;i+)b=b+stui.Score1; c=b/count; cout你要统计的a平均分为:cendl;break;case 3: f

16、or(i=0;icount;i+)b=b+stui.Score2; c=b/count; cout你要统计的a平均分为:cendl; break;default:cout输入错误!endl;break;void ranks() /排序student temp;for(int i=0;ii;j-)if(stuj-1.Tscorestuj.Tscore)temp=stuj-1;stuj-1=stuj;stuj=temp;void changs() /修改 int a;double b,c=0;int num;coutnum; for(int i=0;icount;i+)if(num=stui.Nu

17、m) couta; coutb; switch(a) case 1: stui.Score0=b; stui.Ascore=Caculateas(stui.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.Tscor

18、e=Caculatets(stui.Score); break; default: cout输入错误!endl; c+; break;if(!c) cout该学生不存在,请重新输入!;void exits() /退出并将数据存在文件中 ofstream outfile(students.txt);if(!outfile)cout文件保存失败endl;outfilet学号tt姓名t性别t语文t数学t英语t平均分t总分endl;for(int i=0;icount;i+)outfiletstui.Numttstui.Nametstui.Sextstui.Score0tstui.Score1tstu

19、i.Score2tstui.Ascoretstui.Tscoreendl;outfile.close();六、课程设计心得这次的课程设计实验是对我们进入大学以来学习C+语言的一次大考验。自己动手,发现问题和解决问题。并发现了许多自己的不足,平时没掌握的知识在实践中暴露,经过不断的思考,查阅书籍和上网查资料及上机运行,解决了大部分问题,还稍微有些小问题。但是,我相信在今后的学习中,一定能把它解决好。我不仅巩固了计算机程序设计基础课程学习的内容,掌握设计的基本方法,强化上机动手能力,还进一步掌握了以下知识:数据类型,分支控制,循环控制,函数的定义及调用,结构体及数组,指针当我选择成绩个学生成绩管理

20、系统时,首先分析系统主要思路及框架,与同学讨论,联系所学知识,找一些同学帮忙。对一些循环语句进行具体分析,了解其运行路线,尤其是for,while,if等的使用。团队精神不可少,分工合作也是必须的,我们组各成员之间相互配合,做好各自的工作。在开始时,对人员进行整理,分析其特点,然后再分配任务,然后进行综合应运,最后对所需资料及要编的程序进行整理得出最后程序。通过这次课程设计是我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践结合起来,从理论中得出结论,才能服务社会,从而提高自己的实际动手能力和独立思考的能力。七、成绩评定表中 南 大 学C+可视化程序设计实践成绩评定表 姓名班次学号成绩 指导教师签名:_ 2012年_月_日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1