




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学号2013-2014学年 第二学期高级语言程序设计课程设计报告题目:成绩排序专业:计算机科学与技术班级:姓名:指导教师:成绩:计算机与信息工程系2014年 6月 2日目录1设计目的及要求11.1课程设计的目的11.2课程设计的基本要求12设计内容22.1模块说明22.2 模块结构图22.3详细设计说明42.31程序流程图42.3.2删除学生成绩记录模块52.3.3查询学生成绩记录模块62.3.4学生成绩排序模块72.4函数流程图83程序测试93.1软件测试93.2运行结果及截图94参考文献115总结126源代码131设计目的及要求1.1课程设计的目的(1).巩固和掌握高级语言程序设计基本概念
2、;(2).掌握基本的程序设计方法;(3).掌握开发软件所需的需求定义能力;(4).提高书写程序设计说明文档的能力;(5).提高综合运用高级语言的能力,强化编程和调试能力。1.2课程设计的基本要求1)根据所给的课程设计题目,分析课程设计题目的要求;2)对系统功能模块进行分析,写出详细的设计说明文档;3)编写程序代码,调试所编写程序使其能正确运行;4)设计完成的软件便于完成和使用;5)设计完成后提交课程设计报告;课程设计报告内容包括:课程设计的目的、设计任务与要求、设计说明 书、设计成果和心得五个部分,具体要求见设计报告模板;6)总结:调试分析过程描述:包括测试数据、测试输出结果以及对程序调试过程
3、中的存在问题的思考(列出主要问题的出错现象、出错原因等) 包括课程设计过程中的学习体会与收获;7)任务:设计一个学生成绩排序系统,该系统的主要功能如下:具备对成绩的管理功能(添加、删除、排序)具备对成绩的统计功能(最高分,最低分,平均分,及格率等)具备按学号、姓名、或课程名查询成绩的功能。学生成绩应该保存在文件中。备注:成绩记录以下信息:班级,学好,姓名,课程名,成绩(百分制)。可以用表示学生成绩的结构体数组存储数据。2设计内容2.1模块说明本次程序设计中我设计了五个模块,分别是增加信息、查询成绩、删除成绩、成绩排序、统计成绩。这几个模块总原本的信息,查找、添加、删除、排序作为主函数的子函数。
4、2.2 模块结构图系统可以按功能进行模块划分,其模块如图a所示:用户界面主函数增加学生成绩记录删除学生成绩记录查询学生成绩记录统计学生成绩记录学生成绩排序创建图a 模板设计图其中:(1).增加学生成绩记录模块可以完成学生成绩的输入,输入信息包括班级、学号、姓名、课程名、成绩。(2)删除学生成绩记录模块可以完成学生成绩的删除。(3)查询学生成绩记录模块可以完成学生成绩的查询可以通过输入姓名、学号或者是课程 名来查询学生成绩。(4)统计学生成绩记录模块可以完成对学生成绩的统计可以在已有的学生成绩记录中,输出平均分、最高分、最低分、及格率。(5)学生成绩排序模块可以完成对学生成绩的排序按照成绩的高低
5、来进行排序。2.3详细设计说明2.31程序流程图YNNY开始进入目录选择判断是否有排序保存删除查询添加统计及格率统计单科统计单科最高统计单科最低统计单科平均是否继续退出系统图b 系统流程图2.3.1函数模块、功能分析、参数说明增加学生成绩记录模块(void Manage:add( )对应于总体设计时的系统功能模块图,各个功能模块的处理逻辑如下: 主要完成将数据存入单链表中的工作。在这次增加学生成绩记录中,记录 可以从二进制形式存储的数据文件中读入,也可以从键盘逐个读入学生记录。如图c所示: 开始输入班级学号姓名课程成绩结束图c 增加学生成绩记录流程图.2.3.2删除学生成绩记录模块(void
6、Manage:del( )要删除某个学生的信息,就要从磁盘文件中将所有同学信息读出来,然后除要删除的学生外,其它的所有记录再重新存入原来的磁盘文件中,如图d所示:开始读入信息输入要删除学生的学号是否找到N删除成功Y结束图d 删除学生成绩记录流程图2.3.3查询学生成绩记录模块(void Manage:search( )主要完成在单链表中查找满足相关条件的学生记录。用户可以按照学生的 学号、姓名或课程名在单链表中进行查找。未找到输出提示信息,如图3-4所示:NY开始读入信息输入要查找学生的学号、姓名、或课程名是否找到该学生不存在查找对象输出该学生信息结束 图3-4 查询学生成绩记录流程图主要完成
7、对最高分、最低分、平均分、及格率的统计,如图e所示:开始读入信息输出所有学生的平均分、最高分、最低分和及格率结束 图e 统计学生成绩记录流程图2.3.4学生成绩排序模块主要完成按照成绩的高低来进行排序,如图f所示:结 束初始化指向第一个位置待排序元素为N-1个初始化最大值及位置,计算待比较元素的地址和计算比较次数比较对象小于当前最大值保存新的最大值和它的位置调整指针,准备下一次比较本次比较操作结束?将最大值元素和当前位置元素进行交换,调整到一个位置调整缓冲区对应记录N1个最大值选择结束 开始YNYNNY 图f学生成绩排序流程图2.4函数流程图系统首先进入欢迎界面并提示用户输入不同的阿拉伯数字会
8、进行不同的操作。在用户做出选择后,根据用户输入的阿拉伯数字,程序将调用相应的功能模块,实现用户要进行的操作。完成一次用户的操作后,再回到欢迎界面,等待用户再做出选择,再调用相应的功能模块,知道用户在欢迎界面选择了退出,该系统结束,终止执行,如图g所示:开始 按学号 删除选择2输出最高分、最低分、平均分和及格率 统计选择1选择操作输出界面输入学生的班级、学号、姓名、课程名、成绩输入数据选择3 退出系统选择5 结束图g 函数流程图、3程序测试3.1软件测试打开软件后,界面会出现你所需要的功能,根据你要进行的操作来选择。3.2运行结果及截图1)此图为程序运行成功后,出现的界面,此为主菜单界面,可依据
9、界面执 行。如图4-1所示:图4-1 主菜单2)首先增加学生成绩记录,输入学生的班级、学号、姓名、课程名、成绩,如图4-2所示:图4-2 增加学生成绩记录3)返回主菜单,进行查询学生成绩记录操作,如图4-3所示:图4-3 查询学生成绩记录4)返回主菜单,选择相应的操作,对学生成绩进行排序,如图4-4所示:图4-4 学生成绩排序5)返回主菜单,进行对学生成绩统计操作,输出最高分、最低分、平均分和及格率,如图4-5所示:图4-5 统计学生成绩6)返回主菜单,进行删除学生成绩记录操作,按照学号来删除学生信息,如图4-6所示:图4-6 删除学生成绩记录4参考文献1 谭浩强C程序设计题解与上机指导北京:
10、清华大学出版社,2009 2 廖雷C语言程序设计北京:高等教育出版社,20063 贾学.宋海民C语言程序设计北京:中国铁道出版社,20074 赵海廷C语言程序设计北京:人民邮电出版社,20065 范刚龙.王康平.C程序设计.武汉:武汉理工大学出版社,20066 张强华. C 语言程序设计.北京:人民邮电出版社,20107 徐新华. C 语言程序设计教程.北京: 清华大学出版社,20108 谭浩强. C 语言程序设计.北京: 清华大学出版社,20119.C语言课程设计案例精编,吴启武等编著,清华大学出版社出版,10.C语言课程设计案例精编,郭翠英等编著,中国水利水电出版社出版。5总结 本次课程设
11、计,使我对数据结构这门课程有了更深入的理解。数据结构是一门实践性较强的课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。一个人的力量是有限的,要想把课程设计做的更好,就要学会参考一定的资料,吸取别人的经验,让自己和别人的思想有机的结合起来,得出属于你自己的灵感。 在本课程设计中,我明白了理论与实际应用相结合的重要性,并提高了自己组织数据及编写大型程序的能力。培养了基本的、良好的程序设计技能以及合作能力。这次课程设计同样提高了我的综合运用所学知识的能力。程序的编写需要有耐心,有些事情看起来很复杂,但问题需要一点一点去解决,分析问题,把问题一个一个划分,划分成小块以后就逐个去解决。再
12、总体解决大的问题。这样做起来不仅有条理也使问题得到了轻松的解决。 在这段时间里,一直修改着相应的程序,并且尝试着调试 各种运行结果。终于,在自己的努力下,课程设计还算是有点起色。经过这次的编程,我学会了很多东西。比如说,如何在网上查找一些有用的东西,如何设计自己的目标,如何规划好自己的学习时间,如何让自己的思想应用到程序的编程过程中去,如何合理运用各种资源来提高自己的编程甚至是学习的能力。另外,还有几点,我深有感触,就是我还问了别人怎样在Word文档中截图、怎样扩大或缩小图片等等。总之,收获真的是挺大的。 通过这段时间的课程设计,我认识到数据结构是一门比较难的课程。需要多花时间上机练习。这次的
13、程序训练培养了我实际分析问题、编程和动手能力,使我掌握了程序设计的基本技能,提高了我适应实际,实践编程的能力。 这次的课程设计我对于专业课的学习有了更加深刻的认识,以为现在学的知识用不上就加以怠慢,等到想用的时候却发现自己的学习原来是那么的不扎实。以后努力学好每门专业课,让自己拥有更多的知识,才能解决更多的问题! 总的来说,这次课程设计让我获益匪浅,对数据结构也有了进一步的理解和认识。不管怎么说,这次C+课程设计不仅给了我提高编程的能力的机会,而且让我的综合素质得到了一个全面的发展。我相信,这样的日子一定能成为我以后生活中一段美好的回忆。6源代码#include #include using
14、namespace std;class Nodepublic: string banji;/班级 string xuehao; 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 =
15、_kcm; score = _score; next = _next; index = 0; ;class Managepublic: 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; stri
16、ng name; string kcm;/课程名 int score; char ch; cout 班级 学号 姓名 课程名 成绩 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
17、*u; cout 查找结果: endl; cout 班级 学号 姓名 课程名 成绩 next) if (u-xuehao = _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; e
18、lse p = u-next; break; p = u; void Manage:stat() double aver, max, 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
19、= aver / countAll; percent = (double)count / countAll; cout 平均分: aver endl; 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;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 助动车维修技术交流考核试卷
- 机器视觉与图像处理技术考核试卷
- 智能仪器仪表项目规划考核试卷
- 医用针灸贴的种类和使用建议考核试卷
- 供应链数字化转型案例与启示考核试卷
- 木纹设计与加工考核试卷
- 苗圃白蚁防治合同范本
- 留置权合同范本
- 业扩报装培训课件
- 8.3 摩擦力(共28张) 2024-2025学年人教版物理八年级下册
- 《完善中国特色社会主义法治体系》课件
- 2025版 高考试题分析-数学-部分4
- 湘教版三年级美术下册教案全册
- 重症监护-ICU的设置、管理与常用监测技术
- 2024版高一上册语文模拟试卷
- 法律顾问服务投标方案(完整技术标)
- 知道网课智慧树《哲学导论(湖南师范大学)》章节测试答案
- 防止员工集体离职合同
- 加油站合作协议书
- 福建省厦门市2023届高三二模语文试题(解析版)
- Office办公软件理论知识考核试卷
评论
0/150
提交评论