学生成绩管理数据结构课程设计1

上传人:仙*** 文档编号:33403808 上传时间:2021-10-17 格式:DOC 页数:28 大小:239.51KB
收藏 版权申诉 举报 下载
学生成绩管理数据结构课程设计1_第1页
第1页 / 共28页
学生成绩管理数据结构课程设计1_第2页
第2页 / 共28页
学生成绩管理数据结构课程设计1_第3页
第3页 / 共28页
资源描述:

《学生成绩管理数据结构课程设计1》由会员分享,可在线阅读,更多相关《学生成绩管理数据结构课程设计1(28页珍藏版)》请在装配图网上搜索。

1、计算机工程学院实 践 报 告课程名称:数据结构课程设计设计题目: 学生成绩管理 设计任务书课题名称学生成绩管理设计目的综合运用程序设计、算法设计的方法,对实际应用中的问题进行数据分析和组织、算法设计和分析、程序设计和调试等环节,将理论与实践相结合,掌握利用计算机解决实际问题的基本方法和基本步骤,培养学生良好的程序设计风格、算法设计和分析能力。实验环境P IV以上计算机,Window XP以上操作系统;编程语言不限。任务要求要求学生结合课程体系的实际需求及实践能力、实验条件等外部因素,完成学生成绩管理课题的设计任务。课题功能:1)实现对学生成绩的录入;2)对输入的数据进行查询、修改、删除、排序等

2、操作;任务要求:1)界面友好,函数功能要划分好;2)总体设计应画流程图;3)程序要加必要的注释。4)学生完成设计任务后,按要求提交算法设计报告,设计报告规范化,并能够反映算法设计的实际内容。工作进度计划序号起止时间工 作 内 容116周制定课程设计计划,编写课程设计指导书21318周下发任务,学生选题,分组,查阅资料319周上机系统调试,课程设计报告,课程设计答辩420周上交报告电子及打印文档指导教师:周海岩 年 月 日 摘要:学生成绩管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强,数据安全性强

3、,数据安全性好的库。而对于后者则要求应用程序功能完备易使用等特点。该系统主要实现,添加、修改、删除、读出、写入、查找、排序、计算总分、平均分、分类汇总等功能。系统的核心是添加、修改和删除三者之间的联系,每个表的修改都将联动的影响其他的表,当完成添加或删除操作时系统会自动地完成学生成绩的修改。查询功能也是系统的核心之一,在系统中主要根据学生姓名和学号进行查询,其目的就是为了方便用户使用。系统有完整的用户添加、修改、删除和密码修改功能,并具备报表打印功能。关键词:添加;修改;删除;查找;排序;总分;平均分目录1 需求分析:11.1任务及要求11.2程序设计思想11.3实现功能12 概要设计:22.

4、1线性顺序表的抽象数据定义:32.2程序框图32.3程序模块33 详细设计:53.1声明一个student的结构体类型并且定义变量53.2声明类system且构造函数63.3调用添加函数63.4调用查询函数73.5调用显示函数73.6调用修改函数83.7调用删除函数93.8调用排序函数93.9 dowhile判断是否循环114 调试分析:125 测试结果:135.1主菜单135.2添加学生成绩135.3查询学生成绩145.4显示学生成绩145.5修改学生成绩155.6删除学生成绩155.7对学生成绩排序155.8退出165.9源程序文件名清单166 附录:171需求分析1.1 任务及要求该系统

5、主要实现,添加、修改、删除、读出、查找、排序、计算总分、平均分、分类汇总等功能。1.2 程序设计思想该系统需要解决多个问题,数据类型特征并不都相同。为了解决问题的方便化,采用结构体来做程序。并且很多数据在输出时采用了循环语句人为完成。1.3 实现功能1)录入数据:将学生学号、姓名、成绩写入文件。2)增加人员:增加学生,并将学生姓名、学号和成绩写入文件。3)删除人员:删除学生信息和成绩。4)修改数据:修改学生成绩。5)按学号查询:根据学号查询学生成绩,包括平均分。6)按姓名查询:根据学生姓名查询学生成绩,包括总分和平均分。7)输出所有学生成绩。8)按照总分、平均分从高到低排序。2概要设计2.1

6、涉及到的基础知识所用到的基础知识有结构体和简单的do-while循环语句和“break”跳出循环语句同时还有多处用到了for循环语句。通过多个函数的结合完成预期的结果。1.结构、类和构造函数声明结构类型时,首先指定关键字struct和结构名,然后用一对花括号将若干个结构成员数据类型说明括起来。(1).Struct student /声明一个名为student的结构体类型/定义变量;int main()/定义student的结构变量,分配变量空间(2)class systempublic:System() /成员函数Private: /数据成员2循环结构:(1) switch语句switch语句

7、,它也称为多选择语句。它可以根据给定的条件,从多个分支语句序列中选择执行一个分支的语句序列。switch语句的一般格式为:switch(表达式) case常量表达式1:语句; break; case常量表达式n:语句; default:语句;(2)for语句这种循环语句不仅用于循环次数已知的情况,还能用于循环次数预先不能确定只给出循环结束条件的情况下。for 语句的一般形式:for (表达式1;表达式2;表达式3)语句; /循环体(3)dowhile语句Do循环体While(条件表达式)当流程到达do后,立即执行循环体语句,然后再对表达式进行测试。若条件表达式的值为真,则重复循环,否则退出。2

8、.2 程序框图成绩管理系统输入学生成绩显示学生成绩修改学生成绩删除学生成绩成绩排序计算总分平均分查询学生成绩退出2.3程序模块2.3.1主程序模块void main() SYSTEM person;2.3.2添加模块“学生成绩管理系统”包括几个模块:添加学生成绩,显示学生成绩,查询学生成绩、修改学生成绩、删除学生成绩、将学生成绩进行排序,最后退出程序主要程序的模块说明:1)查询学生成绩模块void SYSTEM:search()/查询case 1:/按照学号查询for( ) if(stui.number=num ) 输出学生成绩 break; if(stui.number!=num)cout未

9、找到该学生信息!endl;break;case 2:/按照姓名查询方法同上2)修改学生成绩模块void SYSTEM:change() /修改for( ) if(stui.number=num) 输入新的学生成绩break; if(stui.number!=num)cout无此学生信息!endl; 3)删除学生成绩void SYSTEM:del() /删除输入新的学生成绩for( ) if(stui.number=num) for( ) 用后一个学生信息覆盖前一个学生信息,学生人数减少一个 break; 4)将学生成绩进行排序模块void SYSTEM:PX() /排序 switch (k)

10、case 1:/按学生总分排序 for( ) for( ) if( ) 冒泡排序法 break; case 2:/按学生平均分排序方法同上5)各个模块之间的关系如下: 主程序模块 添加 查询 显示 修改 删除 排序 按学号 按姓名 按总分 按平均分3.详细设计3.1声明一个名为student的结构体类型并且定义变量struct Student string name; long number; double shuxue; double yingyu; double Cyuyan; double tiyu; double ZF; double PJF; ; 3.2 声明类system且构造函数

11、 class SYSTEM public: SYSTEM()n=0; /构造函数void add();/添加void show();/显示void search();/查询void change();/修改void del();/删除void PX();/排序private:Student stu1000;/定义一个结构体类型student的变量stu,其最大值为1000int n;3.3 调用添加函数void SYSTEM:add()/添加 cout学号:stun.number; cout姓名:stun.name; cout数学:stun.shuxue; cout英语:stun.yingyu

12、; coutC语言:stun.Cyuyan; cout体育:stun.tiyu; stun.ZF= stun.shuxue+ stun.yingyu+ stun.Cyuyan+ stun.tiyu;stun.PJF=( stun.shuxue+ stun.yingyu+ stun.Cyuyan+ stun.tiyu)/4; n+;/学生个数增加一个3.4 调用查询函数void SYSTEM:search()/查询cout请选择查询方式:endl;cout1.按学号查询endl; cout2.按姓名查询c; switch (c) case 1:/按照学号查询long num;cout请输入要查询

13、的学号:num;for(i=0;in;i+) if(stui.number=num) cout学号 姓名 数学 英语 C语言 体育 总分 平均分endl;coutstui.number stui.name stui.shuxue stui.yingyu stui.Cyuyan stui.tiyu stui.ZF stui.PJFendl;break; if(stui.number!=num)cout未找到该学生信息!endl;break;case 2:/按照姓名查询与按学号查询相似3.5调用显示函数void SYSTEM:show()/显示 cout学号 姓名 数学 英语 C语言 体育 总分

14、平均分endl; for(int i=0;in;i+) coutstui.number stui.name stui.shuxue stui.yingyu stui.Cyuyan stui.tiyu stui.ZF stui.PJFendl; 3.6 调用修改函数void SYSTEM:change() /修改long num; cout请输入要修改的学生学号:num; for(int i=0;in;i+)if(stui.number=num)cout该学号的学生信息如下:endl; cout学号 姓名 数学 英语 C语言 体育 总分 平均分endl; coutstui.number stui

15、.name stui.shuxue stui.yingyu stui.Cyuyan stui.tiyu stui.ZF stui.PJFendl;cout请输入新的学生信息:endl; cout学号:stui.number;stun.number=stui.number; cout姓名:stui.name;stun.name=stui.name; cout数学:stui.shuxue;stun.shuxue=stui.shuxue; cout英语:stui.yingyu;stun.yingyu=stui.yingyu; coutC语言:stui.Cyuyan;stun.Cyuyan=stui.

16、Cyuyan; cout体育:stui.tiyu;stun.tiyu=stui.tiyu; stui.ZF= stui.shuxue+ stui.yingyu+ stui.Cyuyan+ stui.tiyu; stui.PJF=( stui.shuxue+ stui.yingyu+ stui.Cyuyan+ stui.tiyu)/4; break;if(stui.number!=num)cout无此学生信息!endl;void SYSTEM:change()来实现对学生成绩的修改。实现这个功能用到了先查找即用学号作为处理对象用change ()函数与已存入的学号作对比,用循环语句控制查找,如果

17、相同输出该学生的已存在的信息,再输入修改信息;如果不是就输出“未找到”。3.7 调用删除函数void SYSTEM:del() /删除 long num; cout请输入要删除学生的学号,然后按回车确认:num; for(int i=0;in;i+) if(stui.number=num) for(int j=i;jn-1;j+) stuj=stuj+1; n-; /学生人数减少一个该代码主要实现了删除学生成绩的功能,首先要找到删除的是那个学生信息”stuj=stuj+1;”将后面的学生信息向前移。最后再输出学生成绩。cout已成功删除该学生信息!endl;break; 3.8 调用排序函数v

18、oid SYSTEM:PX() /排序cout请选择排序方式:endl; cout1.按学生总分排序endl; cout2.按学生平均分排序endl; cout3.返回k; switch (k) case 1:/按学生总分排序 Student p; /定义一个Student类型的变量pfor(int i=0;in;i+) for(int j=0;jn-i;j+) if(stuj.ZFstuj+1.ZF) p=stuj; stuj=stuj+1; stuj+1=p; 该程序实现了对学生成绩的排序,其中“p”为函数参数是中间变量,利用该变量实现了两个数据的交换。而利用结构体则可以方便快捷的将一个学

19、生的所有信息进行交换。按照总分的高低来进行的排序。由高到低排序。利用“for”循环语句的嵌套实现了学生之间总分的比较。cout学号 姓名 数学 英语 C语言 体育 总分endl;for(int m=0;mn;m+)coutstum.number stum.name stum.shuxue stum.yingyu stum.Cyuyan stum.tiyu stum.ZFendl; break; case 2:/按学生平均分排序 与总分排序类似 break;case 3:return;/返回 3.9 dowhile判断是否循环void main() SYSTEM person; int b; d

20、o/do-while循环语句是先执行循环体里的语句,再进行判断,如果不符合while条件(即b7)时要执行一次循环体,直到b的值大于或等于7是才退出循环。 cout*endl; cout 1.添加 6.排 序endl; cout 2.查询 7.退 出endl; cout 3.显示 endl; cout 4.修改 endl; cout 5.删除 endl;cout*endl; coutb; switch(b) case 1: cout请依次输入该学生的相关信息:endl; person.add(); break; case 2: person.search(); break; case 3: p

21、erson.show(); break; case 4: person.change(); break; case 5: person.del(); break; case 6: person.PX(); break; case 7: cout谢谢使用本系统!endl; while(b7);4.调试分析1)本程序的算法都比较合理,尽可能的减少不必要的麻烦。模块的划分也十分的合理,根据题目的要求,将模块十分分成六个大的模块,由于测验数据对象并比较少,所以都是采用最简便最有效的方式。然后通过主函数直接调用这些函数来达到完成所需要的命令。2)由于学生成绩数字不是很多,所以在查找的选择上没有使用其他计

22、较麻烦的查找方式而是直接使用比较简便的、针对查找对象较少的情况下使用的直接查找法。3)但是在定义学生成绩管理是直接使用结构体去定义,设定了好几个数组,在现实生活中使用,数据多的情况下显得非常麻烦。5.测试结果5.1主菜单图5-15.2 添加学生成绩 图5-2图5-3图5-2,5-3是输入两个学生的成绩,题目中以依次输入7个学生成绩为例5.3 查询学生成绩图5-4 按学号查询图5-5 按姓名查询5.4显示学生成绩 图5-65.5修改学生成绩图5-7 图5-8 显示修改后的所有学生成绩5.6删除学生成绩图5-95.7对学生成绩排序图5-10 按总分排序图5-11 按平均分排序5.8退出图5-125

23、.9源程序文件名清单#include #include 6附录总 结通过这次的课程设计,我巩固了以往学过的知识。第一次尝试着将以前学过的东西按照自己的想法写出来。虽然写的代码还显得幼稚也不成熟,但我觉得这是一次新的尝试。对于自己开说也是一个挑战。培养了编程能力,为后续课程的学习提供知识和能力支撑。回顾起此次课程设计,至今我们仍感慨颇多综合起来,主要体现在以下几个方面:首先,对数据结构的掌握还不够。虽然完成了程序,但是只用到了基本的结构体、数组和类,以及一些简单的循环语句,像for循环,dowhile语句和switchcase选择语句。只覆盖了书上很少的知识,例如链表,指针之类的知识都没有用到。

24、其次,在程序整体的设计上还不够完善,编写的程序是通过手动输入学生的各个成绩,调试时只是输入七组数据做实验,一旦有几千个数据通过这样的程序来运行时非常不可取的。但是,我觉得该程序还有很大的改进空间,譬如可以用多文件做,这样功能更强大,也便于以后更好地改进和完善程序;而在程序的内容方面,还能增加更多功能,以满足不同需要的各种要求。当然,值得欣慰的是,该程序基本完成里设计要求,并能顺利运行,界面清晰易理解,且具备各项基本功能,易于操作。比如在做查询的时候,按照学号、姓名查询,做排序的时候,按照总分、平均分排序的思想就考虑的非常全面,基本能够满足不同使用者的需求。在写课程设计的过程中,和同学之间的交流

25、也让我受益良多。在写代码时教了我许多也启发了我很多。让我能够一遍遍的不断完善。通过一个学期的学习,我认为要学好数据结构这门课程,不仅要认真阅读课本知识,更重要的是要通过上机实践才可以学以致用。总之,这次课程设计是我真正的去做的一个系统,肯定会有很多不足,但是我很欣慰。致 谢这次的课程设计最终能够顺利的完成,许多人给了我很大的帮助。首先,我要谢谢淮阴工学院计算机工程系给我提供了这次难得的实践机会,以及实验室人员提供的方便舒适的实验环境!其次,我要谢谢这次课程设计的辅导老师给予我的帮助和辛勤指导,以及和我一起合作的同学的共同互助。在设计过程中,我遇到了诸多的困难与麻烦,若没有他们的悉心指导与共同研

26、讨,我也不能这么顺利的完成本次的课程设计,在这里衷心得对他们表示深深的谢意,谢谢!最后,我要谢谢我的其他同学,多谢他们给我所提的建议以及他们给予我的帮助。当然,在本次课程设计的完成过程中,我也参考了很多资料参考书,以及浏览了很多网站。所以我也要谢谢这些书籍的著作者,及各网站提供信息的作者们。在这里还要特别谢谢网站给我的指导和帮助。同时谢谢淮阴工学院图书馆,给我提供了丰富的书籍资料!参考文献1 严蔚敏,吴伟民. 数据结构(C语言版).清华大学出版社2 殷人昆. 数据结构(C+版).清华大学出版社3 金远平. 数据结构(C+描述).清华大学出版社4 许卓群.数据结构与算法.高等教育出版社5 Fra

27、nkM.Carrano. 数据结构与C+高级教程.清华大学出版社19指导教师评语学号 1114101128姓名陆君班级计科1111选题名称学生成绩管理序号评价内容权重(%)得分1考勤记录、学习态度、工作作风与表现。52自学情况:上网检索机时数、文献阅读情况(笔记)。103论文选题是否先进,是否具有前沿性或前瞻性。54成果验收:是否完成设计任务;能否运行、可操作性如何等。205报告的格式规范程度、是否图文并茂、语言规范及流畅程度;主题是否鲜明、重心是否突出、论述是否充分、结论是否正确;是否提出了自己的独到见解。306文献引用是否合理、充分、真实。57答辩情况: 自我陈述、回答问题的正确性、用语准

28、确性、逻辑思维、是否具有独到见解等。25合计指导教师(签章): 年 月 日 毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕

29、业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年 月 日学位论文版权使用授权书本学位论文作者完全

30、了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期: 年 月 日导师签名: 日期: 年 月 日注 意 事 项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词 5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要

31、时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。4.文字、图表要求:1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3)毕业论文须用A4单面打印,论文50页以上的双面打印4)图表应绘制于无格子的页面上5)软件工程类课题应有程序清单,并提供电子文档5.装订顺序1)设计(论文)2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订3)其它

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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