学生成绩排名系统课程设计报告书.doc

上传人:可****阿 文档编号:46140587 上传时间:2022-09-25 格式:DOC 页数:21 大小:301KB
返回 下载 相关 举报
学生成绩排名系统课程设计报告书.doc_第1页
第1页 / 共21页
学生成绩排名系统课程设计报告书.doc_第2页
第2页 / 共21页
点击查看更多>>
资源描述

《学生成绩排名系统课程设计报告书.doc》由会员分享,可在线阅读,更多相关《学生成绩排名系统课程设计报告书.doc(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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

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

3、面是否友好。2.1.2 课程设计报告针对提交的课程设计报告,应该主要考查下列容:程序设计的报告容是否全面,观点是否正确;设计过程是否符合结构化程序设计方法的基本原则;层次是否清楚,语言是否通顺;各种图表是否规;是否具有良好的程序设计习惯。2.2 课题 设计一个学生成绩排名系统,实现以下功能: 1.具备对成绩的管理功能(添加、删除、排序); 2.具备对成绩的统计功能(最高分、最低分、平均分、与格率); 3.具备按学号、或课程名查询成绩的功能; 备注:成绩记录以下信息:班级、学号、成绩(百分制)。第三章 详细设计说明3.1 模板设计图该系统可以按功能进行模块划分,其模块如图3-1所示:图3-1 模

4、板设计图其中:1.增加学生成绩记录模块可以完成学生成绩的输入,输入信息包括班级、学号、课程名、成绩。2.删除学生成绩记录模块可以完成学生成绩的删除。3.查询学生成绩记录模块可以完成学生成绩的查询,可以通过输入、学号或者是课程 名来查询学生成绩。4.统计学生成绩记录模块可以完成对学生成绩的统计,可以在已有的学生成绩记录中,输出平均分、最高分、最低分、与格率。5.学生成绩排序模块可以完成对学生成绩的排序,按照成绩的高低来进行排序。3.2 函数模块、功能分析、参数说明1.增加学生成绩记录模块(void Manage:add( )对应于总体设计时的系统功能模块图,各个功能模块的处理逻辑如下:主要完成将

5、数据存入单链表中的工作。在这次增加学生成绩记录中,记录可以从二进制形式存储的数据文件中读入,也可以从键盘逐个读入学生记录。如图3-2所示:图3-2 增加学生成绩记录流程图.2.删除学生成绩记录模块(void Manage:del( )要删除某个学生的信息,就要从磁盘文件中将所有同学信息读出来,然后除要删除的学生外,其它的所有记录再重新存入原来的磁盘文件中,如图3-3所示:开始读入信息输入要删除学生的学号是否找到N删除成功Y结束图3-3 删除学生成绩记录流程图3.查询学生成绩记录模块(void Manage:search( )主要完成在单链表中查找满足相关条件的学生记录。用户可以按照学生的学号、

6、或课程名在单链表中进行查找。未找到输出提示信息,如图3-4所示: 图3-4 查询学生成绩记录流程图4.统计学生成绩记录(void Manage:( )主要完成对最高分、最低分、平均分、与格率的统计,如图3-5所示: 图3-5 统计学生成绩记录流程图5.学生成绩排序模块主要完成按照成绩的高低来进行排序,如图3-6所示:结 束初始化指向第一个位置待排序元素为N-1个初始化最大值与位置,计算待比较元素的地址和计算比较次数比较对象小于当前最大值保存新的最大值和它的位置调整指针,准备下一次比较本次比较操作结束?将最大值元素和当前位置元素进行交换,调整到一个位置调整缓冲区对应记录N1个最大值选择结束 开始

7、YNYNNY 图3-6 学生成绩排序流程图3.3 函数流程图系统首先进入欢迎界面并提示用户输入不同的阿拉伯数字会进行不同的操作。在用户做出选择后,根据用户输入的阿拉伯数字,程序将调用相应的功能模块,实现用户要进行的操作。完成一次用户的操作后,再回到欢迎界面,等待用户再做出选择,再调用相应的功能模块,知道用户在欢迎界面选择了退出,该系统结束,终止执行,如图3-7所示:开始 按学号 删除选择2输出最高分、最低分、平均分和与格率 统计选择1选择操作输出界面输入学生的班级、学号、XX、课程名、成绩选择3输入数据 按成绩高低 排序选择6按XX、学号或课程名 查询选择4 退出系统选择5 结束图3-7 函数

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

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

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

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

12、编程的能力的机会,而且让我的综合素质得到了一个全面的发展。我相信,这样的日子一定能成为我以后生活中一段美好的回忆。附录一 参考文献1谭浩强著C+程序设计,清华大学 2严蔚敏、吴伟民编著 数据结构(C语言版),清华大学 3王杰数据结构经典算法实现与习题解答,人民邮电大学附录二 程序清单#include #include using namespace std;class Nodepublic: string banji;/班级 string xuehao; string name; string kcm;/课程名 int score; int index; Node *next; Node()

13、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 Managepublic: Manage(); void app(); void del(string &_xuehao); void sort(); void

14、 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 班级 学号 课程名 成绩 banji; cin xuehao; cin name; cin kcm; cin score; u = new Node(banji, xu

15、ehao, 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 = _xuehao) cout banji xuehao name kcm score endl; break; if (u = NULL) cout 不存在

16、查找对象! 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, max, min, percent; Node *u; int countAll = 0, count = 0; min = max = head-scor

17、e; 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 endl; cout 最高成绩: max endl; cout 最低成绩: min endl; cout 与格率: percent next) s = te

18、mp-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 score endl;int main() Manage m; int operChoice; do coutendl; cout*endl; cout* 主

19、菜 单 *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; 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;20 / 21

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁