学生成绩排名系统课程设计WORD.doc

上传人:doc321 文档编号:14077650 上传时间:2022-02-01 格式:DOC 页数:22 大小:313KB
返回 下载 相关 举报
学生成绩排名系统课程设计WORD.doc_第1页
第1页 / 共22页
学生成绩排名系统课程设计WORD.doc_第2页
第2页 / 共22页
学生成绩排名系统课程设计WORD.doc_第3页
第3页 / 共22页
学生成绩排名系统课程设计WORD.doc_第4页
第4页 / 共22页
学生成绩排名系统课程设计WORD.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《学生成绩排名系统课程设计WORD.doc》由会员分享,可在线阅读,更多相关《学生成绩排名系统课程设计WORD.doc(22页珍藏版)》请在三一文库上搜索。

1、文档可能无法思考全面,请浏览后下载! 程序设计基础课程设计 -学生成绩排名系统第1章 课程设计的目的和要求高级语言课程设计的主要目的是培养学生能够提高综合应用语言的能力,通过课程设计的训练,使学生能及时巩固已学的知识,补充未学的但有必要的内容,掌握应用计算机解决实际问题的基本方法,熟悉程序开发的全过程,提高综合应用语言的能力。高级语言程序设计的主要任务是要求学生遵循软件开发过程的基本规范,运用结构程序设计的方法按照课程设计的题目要求,分析,编写,调试和测试高级语言程序及编写设计报告。1.1课程设计的目的1.巩固和掌握高级语言程序设计基本概念; 2.掌握基本的程序设计方法; 3.掌握开发软件所需

2、的需求定义能力; 4.提高书写程序设计说明文档的能力; 5.提高综合运用高级语言的能力,强化编程和调试能力。1.2 课程设计的基本要求 1.根据所给的课程设计题目,分析课程设计题目的要求; 2.对系统功能模块进行分析,写出详细的设计说明文档; 3.编写程序代码,调试所编写程序使其能正确运行; 4.设计完成的软件便于完成和使用; 5.设计完成后提交课程设计报告;21 / 22第2章 课程设计任务内容2.1 考核内容2.1.1 编写的C+语言程序 针对编写的C+程序,应该主要考查下列内容: 是否符合题目要求,是否完成了主要功能; 是否存在语法错误、逻辑错误及运行错误; 程序设计是否合理; 程序是否

3、具有良好的可读性和可靠性; 是否符合结构化程序设计所倡导的基本理念; 用户界面是否友好。2.1.2 课程设计报告 针对提交的课程设计报告,应该主要考查下列内容: 程序设计的报告内容是否全面,观点是否正确; 设计过程是否符合结构化程序设计方法的基本原则; 层次是否清楚,语言是否通顺; 各种图表是否规范;是否具有良好的程序设计习惯。2.2 课题 设计一个学生成绩排名系统,实现以下功能: 1.具备对成绩的管理功能(添加、删除、排序); 2.具备对成绩的统计功能(最高分、最低分、平均分、及格率); 3.具备按学号、姓名或课程名查询成绩的功能; 备注:成绩记录以下信息:班级、学号、姓名、成绩(百分制)。

4、第3章 详细设计说明3.1 模板设计图该系统可以按功能进行模块划分,其模块如图3-1所示:图3-1 模板设计图其中:1.增加学生成绩记录模块可以完成学生成绩的输入,输入信息包括班级、学号、姓名、课程名、成绩。2.删除学生成绩记录模块可以完成学生成绩的删除。3.查询学生成绩记录模块可以完成学生成绩的查询,可以通过输入姓名、学号或者是课程 名来查询学生成绩。4.统计学生成绩记录模块可以完成对学生成绩的统计,可以在已有的学生成绩记录中,输出平均分、最高分、最低分、及格率。5.学生成绩排序模块可以完成对学生成绩的排序,按照成绩的高低来进行排序。3.2 函数模块、功能分析、参数说明1.增加学生成绩记录模

5、块(void Manage:add( )对应于总体设计时的系统功能模块图,各个功能模块的处理逻辑如下:主要完成将数据存入单链表中的工作。在这次增加学生成绩记录中,记录可以从二进制形式存储的数据文件中读入,也可以从键盘逐个读入学生记录。如图3-2所示:图3-2 增加学生成绩记录流程图.2.删除学生成绩记录模块(void Manage:del( )要删除某个学生的信息,就要从磁盘文件中将所有同学信息读出来,然后除要删除的学生外,其它的所有记录再重新存入原来的磁盘文件中,如图3-3所示:开始读入信息输入要删除学生的学号是否找到N删除成功Y结束图3-3 删除学生成绩记录流程图3.查询学生成绩记录模块(

6、void Manage:search( )主要完成在单链表中查找满足相关条件的学生记录。用户可以按照学生的 学号、姓名或课程名在单链表中进行查找。未找到输出提示信息,如图3-4所示: 图3-4 查询学生成绩记录流程图4.统计学生成绩记录(void Manage:( )主要完成对最高分、最低分、平均分、及格率的统计,如图3-5所示: 图3-5 统计学生成绩记录流程图5.学生成绩排序模块主要完成按照成绩的高低来进行排序,如图3-6所示:结 束初始化指向第一个位置待排序元素为N-1个初始化最大值及位置,计算待比较元素的地址和计算比较次数比较对象小于当前最大值保存新的最大值和它的位置调整指针,准备下一

7、次比较本次比较操作结束?将最大值元素和当前位置元素进行交换,调整到一个位置调整缓冲区对应记录N1个最大值选择结束 开始YNYNNY 图3-6 学生成绩排序流程图3.3 函数流程图系统首先进入欢迎界面并提示用户输入不同的阿拉伯数字会进行不同的操作。在用户做出选择后,根据用户输入的阿拉伯数字,程序将调用相应的功能模块,实现用户要进行的操作。完成一次用户的操作后,再回到欢迎界面,等待用户再做出选择,再调用相应的功能模块,知道用户在欢迎界面选择了退出,该系统结束,终止执行,如图3-7所示:开始 按学号 删除选择2输出最高分、最低分、平均分和及格率 统计选择1选择操作输出界面输入学生的班级、学号、姓名、

8、课程名、成绩选择3输入数据 按成绩高低 排序选择6按姓名、学号或课程名 查询选择4 退出系统选择5 结束图3-7 函数流程图第4章 编码与调试4.1 软件与测试打开软件后,界面会出现你所需要的功能,根据你要进行的操作来选择。4.2 运行结果及截图1.此图为程序运行成功后,出现的界面,此为主菜单界面,可依据界面执 行。如图4-1所示:图4-1 主菜单2.首先增加学生成绩记录,输入学生的班级、学号、姓名、课程名、成绩,如图4-2所示:图4-2 增加学生成绩记录3.返回主菜单,进行查询学生成绩记录操作,如图4-3所示:图4-3 查询学生成绩记录4.返回主菜单,选择相应的操作,对学生成绩进行排序,如图

9、4-4所示:图4-4 学生成绩排序5.返回主菜单,进行对学生成绩统计操作,输出最高分、最低分、平均分和及格率,如图4-5所示:图4-5 统计学生成绩6.返回主菜单,进行删除学生成绩记录操作,按照学号来删除学生信息,如图4-6所示:图4-6 删除学生成绩记录第5章 课程设计心得与体会 本次课程设计,使我对数据结构这门课程有了更深入的理解。数据结构是一门实践性较强的课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。一个人的力量是有限的,要想把课程设计做的更好,就要学会参考一定的资料,吸取别人的经验,让自己和别人的思想有机的结合起来,得出属于你自己的灵感。 在本课程设计中,我明白了理论

10、与实际应用相结合的重要性,并提高了自己组织数据及编写大型程序的能力。培养了基本的、良好的程序设计技能以及合作能力。这次课程设计同样提高了我的综合运用所学知识的能力。程序的编写需要有耐心,有些事情看起来很复杂,但问题需要一点一点去解决,分析问题,把问题一个一个划分,划分成小块以后就逐个去解决。再总体解决大的问题。这样做起来不仅有条理也使问题得到了轻松的解决。 在这段时间里,一直修改着相应的程序,并且尝试着调试 各种运行结果。终于,在自己的努力下,课程设计还算是有点起色。经过这次的编程,我学会了很多东西。比如说,如何在网上查找一些有用的东西,如何设计自己的目标,如何规划好自己的学习时间,如何让自己

11、的思想应用到程序的编程过程中去,如何合理运用各种资源来提高自己的编程甚至是学习的能力。另外,还有几点,我深有感触,就是我还问了别人怎样在Word文档中截图、怎样扩大或缩小图片等等。总之,收获真的是挺大的。 通过这段时间的课程设计,我认识到数据结构是一门比较难的课程。需要多花时间上机练习。这次的程序训练培养了我实际分析问题、编程和动手能力,使我掌握了程序设计的基本技能,提高了我适应实际,实践编程的能力。 这次的课程设计我对于专业课的学习有了更加深刻的认识,以为现在学的知识用不上就加以怠慢,等到想用的时候却发现自己的学习原来是那么的不扎实。以后努力学好每门专业课,让自己拥有更多的知识,才能解决更多

12、的问题! 总的来说,这次课程设计让我获益匪浅,对数据结构也有了进一步的理解和认识。不管怎么说,这次C+课程设计不仅给了我提高编程的能力的机会,而且让我的综合素质得到了一个全面的发展。我相信,这样的日子一定能成为我以后生活中一段美好的回忆。附录一 参考文献1谭浩强著C+程序设计,清华大学出版社 2严蔚敏、吴伟民编著 数据结构(C语言版),清华大学出版社 3王杰数据结构经典算法实现与习题解答,人民邮电大学出版社附录二 程序清单#include #include using namespace std;class Nodepublic: string banji;/班级 string xuehao;

13、 string name; string kcm;/课程名 int score; int index; Node *next; Node() index = 0; next = NULL; Node(string _banji, string _xuehao, string _name, string _kcm, int _score, Node *_next) banji = _banji; xuehao = _xuehao; name = _name; kcm = _kcm; score = _score; next = _next; index = 0; ;class Managepub

14、lic: Manage(); void app(); void del(string &_xuehao); void sort(); void stat();/统计 void search(string &_xuehao);private: Node *head, *tail;Manage:Manage() head = tail = NULL;void Manage:app() Node *u; string banji;/班级 string xuehao; string name; string kcm;/课程名 int score; char ch; cout 班级 学号 姓名 课程名

15、成绩 banji; cin xuehao; cin name; cin kcm; cin score; u = new Node(banji, xuehao, name, kcm, score, NULL); if (head = NULL) head = u; tail = u; else tail-next = u; tail = u; cout ch; while (ch = y);void Manage:search(string &_xuehao) Node *u; cout 查找结果: endl; cout 班级 学号 姓名 课程名 成绩 next) if (u-xuehao =

16、_xuehao) cout banji xuehao name kcm score endl; break; if (u = NULL) cout 不存在查找对象! endl;void Manage:del(string &_xuehao) Node *u; Node *p; if (head = NULL) cout error next) if (u-xuehao = _xuehao) if (u = head) head = head-next; break; else p = u-next; break; p = u; void Manage:stat() double aver, m

17、ax, min, percent; Node *u; int countAll = 0, count = 0; min = max = head-score; for (u = head; u; u = u-next) aver += u-score; if (u-score = max) max = u-score; if (min u-score) min = u-score; if (u-score = 60.0) count+; countAll+; aver = aver / countAll; percent = count / countAll; cout 平均分: aver e

18、ndl; cout 最高成绩: max endl; cout 最低成绩: min endl; cout 及格率: percent next) s = temp-score; if (head-next != NULL) for(temp2 = head,temp-index=1; temp2; temp2=temp2-next) if(temp2-score s) temp-index+; cout 班级 学号 姓名 课程名 成绩 next) count+; for (int i = 1; i next) if (s-index = i) cout banji xuehao name kcm

19、score endl;int main() Manage m; int operChoice; do coutendl; cout*endl; cout* 主 菜 单 *endl; cout* *endl; cout* (1) 统计学生成绩 *endl; cout* *endl; cout* (2) 删除学生成绩记录 *endl; cout* *endl; cout* (3) 增加学生成绩记录 *endl; cout* *endl; cout* (4) 查询学生成绩记录 *endl; cout* *endl; cout* (5) 退 出 *endl; cout* (6) 排 序 *endl;

20、cout*endl; coutendl; coutoperChoice; if(operChoice=2) string xuehao; cout xuehao; m.del(xuehao); if(operChoice=3) m.app(); if (operChoice = 1) m.stat(); if (operChoice = 4) string xuehao; cout xuehao; m.search(xuehao); if (operChoice = 6) m.sort(); while (operChoice != 5); return 0; (注:可编辑下载,若有不当之处,请指正,谢谢!)

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

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


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