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)进行多次的功能调试,以查找
4、纠正错误; (8)完成系统总结报告。 2.设计功能 (1)添加学生记录; (2)删除学生记录; (3)显示学生记录; (4)查询学生记录; (5)统计学生记录; (6)排序学生记录; (7)修改学生记录; (8)退出管理系统(包含保存功能) 。 3.设计程序流程图 (1)层次调用 判断是否存 在文件 输入序号 选择功能 输入数据 输出结果 结束 建立新文件 保存数据 到文件中 开始 (2)结构视图 学生成绩管理 系统 主函数 记 录 学 生 记 录 删 除 学 生 记 录 显 示 学 生 记 录 查 询 学 生 记 录 统 计 学 生 记 录 排 序 学 生 记 录 退 出 管 理 系 统 修
5、 改 学 生 记 录 三、成员设计内容简介 为了令程序保持清晰和整洁,防止出错,首先由组长根据任务要求选好头文件, 同时设计好程序的基类以及 main()函数。 然后各种功能实现所需的功能函数由组长和 组员合作完成设计。整个管理系统中,添加功能(adds()) 、删除功能(deletes()) 、 显示功能(shows()) 、查询功能(inquires()) 、计算平均分函数(Caculateas()) 、 计算总分函数(Caculatets())由组员 xx 完成。剩下的打开函数(opens()) 、统计功 能(statistics()) 、排序功能(ranks()) 、修改功能(chan
6、gs()) 、退出及保存功能 (exits())由组长 xx 完成。经过两人的合作和努力,终于成功设计出了整个学生成 绩管理系统。 四、使用说明及运行实例 1.打开界面 (1)没有源文件时 (2)有源文件时 2.添加功能 (1)添加前 (2)添加时 (3)添加后 2.删除功能 (1)删除前 (2)删除时 (3)删除后 3.显示功能 4.查询功能 5.统计功能 6.排序功能 (1)排序前 (2)排序后 7.修改功能 (1)修改前 (2)修改时 (3)修改后 8.退出并保存文件 9.文件显示 五、项目源程序代码 #include #include #include using namespace
7、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); void Show(); ; void student:Register(int num,char*name,char * sex,double score3,double ascore,double tscore)
8、 Num=num; strcpy(Name,name); strcpy(Sex,sex); Tscore=tscore; Ascore=ascore; for(int a=0;aselect; switch(select) case 1: adds(); break; case 2: deletes(); break; case 3: coutb; if(b=Y|b=y) exits();coutinitial0initial1initial2initial3initial4initial5initial6init ial7; while(!infile.eof() infilenumname
9、sexscore0score1score2ascoretscore; stui.Register(num,name,sex,score,ascore,tscore); i=i+1; count+; for(int b=i;b0;b+) stub-1=stub; count-; void adds() /添加 int num; char name7,sex7; double score3,ascore,tscore; if(countnumnamesexscore0score1score2; ascore=Caculateas(score); tscore=Caculatets(score);
10、stui.Register(num,name,sex,score,ascore,tscore); coutnum; for(int i=0;inum; for(int i=0;ia; switch(a) case 1: for(i=0;inum; for(int i=0;ia; 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=Cacula
11、teas(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“输入错误!“endl; c+; break; if(!c) cout“该学生不存在,请重新输入!“; void exits() /退出并将数据存在文件中 ofstream outfile(“students.txt“); if(!outfile)
12、 cout“文件保存失败“endl; outfile“t 学号tt 姓名t 性别t 语文t 数学t 英语t 平均分t 总分“endl; for(int i=0;icount;i+) outfile“t“stui.Num“tt“stui.Name“t“stui.Sex“t“stui.Sco re0“t“stui.Score1“t“stui.Score2“t“stui.Ascore“t“stui.T scoreendl; outfile.close(); 六、课程设计心得 这次的课程设计实验是对我们进入大学以来学习C+语言的一次大考验。自己动手, 发现问题和解决问题。并发现了许多自己的不足,平时没
13、掌握的知识在实践中暴露, 经过不断的思考,查阅书籍和上网查资料及上机运行,解决了大部分问题,还稍微有 些小问题。但是,我相信在今后的学习中,一定能把它解决好。 我不仅巩固了计算机程序设计基础课程学习的内容,掌握设计的基本方法, 强化上机动手能力,还进一步掌握了以下知识:数据类型,分支控制,循环控制,函数 的定义及调用,结构体及数组,指针 当我选择成绩个学生成绩管理系统时,首先分析系统主要思路及框架,与同学讨 论,联系所学知识,找一些同学帮忙。对一些循环语句进行具体分析,了解其运行路 线,尤其是for,while,if等的使用。 团队精神不可少,分工合作也是必须的,我们组各成员之间相互配合,做好各自 的工作。在开始时,对人员进行整理,分析其特点,然后再分配任务,然后进行综合 应运,最后对所需资料及要编的程序进行整理得出最后程序。 通过这次课程设计是我们懂得了理论与实际相结合是很重要的,只有理论知识是 远远不够的,只有把所学的理论知识与实践结合起来,从理论中得出结论,才能服务 社会,从而提高自己的实际动手能力和独立思考的能力。 七、成绩评定表 中 南 大 学 C+可视化程序设计实践成绩评定表 姓名 班次 学号 成绩 指导教师签名:_ 2012 年_月_日