《毕业设计论文学生成绩管理系统》由会员分享,可在线阅读,更多相关《毕业设计论文学生成绩管理系统(30页珍藏版)》请在金锄头文库上搜索。
1、大 连 科 技 学 院数据结构毕业设计题 目 单链表的基本操作-建立和遍历 学生成绩管理系统-排列 排序问题-选择排序,直接插入排序学生姓名 李易霖专业班级 计算机10-1指导教师 宋 丽 芳 职 称 副教授 所在单位 信息科学系软件教研室 系 主 任 王立娟 完成日期 2012年1月6日26大连科技学院数据结构毕业设计成绩考核表学生姓名李易霖专业班级计算机10-1学号1001020112题 目单链表的基本操作,学生成绩管理系统,排序问题 考 核 项 目分值评分1出勤情况102完成原理分析103设计分析104完成代码编写与调试105独立工作能力、综合运用所学知识分析和解决问题能力及实际工作能力
2、提高的程度106回答问题207毕业设计报告格式规范性30合计100总评成绩注:总评标准采用优良制:优秀(90分以上)、良好(80-90)、中等(70-80)、及格(60-70)、不及格(60分以下)指导教师签字: 毕业设计任务书一、任务及要求1. 设计(研究)内容和要求研究内容:单链表的基本操作,学生成绩管理系统,二叉树的运算任务和要求:(1)学习数据结构基础知识,掌握数据结构典型的算法的使用。(2)对指导教师下达的题目进行任务分析。(3)根据分析结果完成设计。(4)编程:在计算机上实现题目的代码实现。(5)完成对程序的测试和调试。(6)提交毕业设计报告(约二十页),含程序代码及运行结果。2.
3、 原始依据结合数据结构毕业中的基本理论和基本算法,正确分析出数据的逻辑结构,合理地选择相应的存储结构,并能设计出解决问题的有效算法。提高程序设计和调试能力。学生通过上机实习,验证自己设计的算法的正确性。学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改。二、工作量2周(10个工作日)时间。三、计划安排第1个工作日第2个工作日:查找相关资料、书籍,阅读示例文档,选择题目。第3个工作日:题目分析,设计算法。第4个工作日-5个工作日: 功能模块的划分和设计。第6个工作日:实现具体数据结构和模块。第7个工作日第8个工作日:程序设计与调试,编写毕业设计报告。第9个工作日:上交毕业设计报告。第10
4、个工作日:软件验收、答辩,成绩评定。指导教师签字: 2011年12月26日目 录题目一:单链表的基本操作11 需求分析11.1 问题描述11.2 实现要求12.概要设计12.1逻辑结构设计12.2功能结构设计22.3物理结构设计23 算法设计与实现33.1算法设计33.2算法实现与调试3题目二:线性表的应用学生成绩管理41 需求分析41.1 问题描述41.2 实现要求42.概要设计42.1逻辑结构设计42.2功能结构设计52.3物理结构设计53 算法设计与实现63.1算法设计63.2算法实现与调试7题目三:排序问题81 需求分析81.1 问题描述81.2 实现要求82.概要设计82.1逻辑结构
5、设计82.2功能结构设计82.3物理结构设计93 算法设计与实现93.1算法设计93.2算法实现与调试11总 结13参考文献14附录 全部代码15题目一15题目二22题目三30题目一:单链表的基本操作1 需求分析1.1 问题描述用学过的方法建立单链表,掌握单链表的建立、插入,查找、删除、逆置等基本算法和操作。掌握指针类型的应用和结构体的具体操作,初步掌握采用自底向上,分模块进行的程序的调试与测试。1.2 实现要求(1)建立单链表用尾插法建立带头结点的单链表h,从键盘输入各整型数据元素,以“-1”作为输入结束标志符。 (2) 遍历单链表h依次输出链表中各数据元素。 (3) 按序号查找查找单链表h
6、中第i个元素并输出该元素。(4) 插入在单链表h的第i个元素位置上插入x数据元素 并遍历单链表h(5) 删除删除单链表h的第i个数据元素,并返回第i个元素同时遍历单链表h(6)求表长求单链表的表长并输出表长(7) 逆置单链表逆置带头结点的单链表h,逆置后的单链表利用原表中的结点空间,不重新申请空间,逆置后进行遍历。(8) 将一个元素插入到有序表中使表仍然有序带头结点的单链表中的数据元素是整型数且有序。将x插入到顺序表的适当位置上,保持表的有序性,将两个递增的有序表归并成一个递减的有序表,利用原表空间,不能重新申请空间2.概要设计2.1逻辑结构设计逻辑结构: 线性结构二元组图式 G=(D,S)
7、D=(q,a,z,w,s,x) S=r R=,2.2功能结构设计 图1功能设计图本人在该小组中主要负责完成建立和遍历模块的功能实现2.3物理结构设计物理结构(1) 链式存储示意图如下: 图2链式存储示意图 (2) c语言描述如下: #include /*denition of datatype*/( T ypedef char datatype; typedef struct node datatype data; struct node *next; linklist;3 算法设计与实现3.1算法设计1.用于定义单链表的存储结构的函数 LinkList()。2.用带头结点的尾插法创建链表的函
8、数 createList()。3.用于查找第i位元素的函数 get ()。4.用于遍历单链表的函数 visit()。5.用于获得表长的函数lengthList()。6.用于在第i位元素后插入新元素的函数 insert ()。7.用于删除第i位元素的函数 delete ()。8.用于逆置单链表的函数 reverse ()。9.用于在程序开始输出欢迎和提示信息的函数 start()。10.用于在程序结束时输出提示信息的函数 end()。11.用于调用上述函数的主函数main(),主函数中对各函数的调用次序及方法为:定义了必要的变量后,先使用system()函数设置操作台背景色;再调用程序开始时的输
9、出函数start();然后调用创建单链表的函数createList()并用相应类型的变量接 收它返回的头结点地址;然后询问是否遍历(询问步骤下同),需要的话将刚接收的头结点地址作为参数调用遍历函数visit();遍历后传递头结点的地址调用查找函数get (),该函数具有判断查找位置合法性的功能;查找操作结束后传递头结点地址给inser ()调用它(插入操作带有判断插入位置是否合法的功能,故还要调用lengthList()获得表长作为插入函数的另一个参数)插入操作完成后将再次调用遍历函数visit()显示插入结果;结束插入后将头结点地址作为参数调用删除函数delete (),删除成功后将调用遍历
10、函数显示删除后的结果(插入函数也具有判断位置合法性的功能);最后是调用逆置函数reverse (),同样是以头结点为参数。3.2算法实现与调试(1)建立单链表: 123456 图3建立单链表(2)遍历单链表 图4遍历单链表题目二:线性表的应用学生成绩管理1 需求分析1.1 问题描述编写一个简单的学生信息管理程序,能实现对学生信息的简单管理。编写一个简单的学生信息管理程序,能实现对学生信息的简单管理。1.2 实现要求 (1)创建成绩链表,学生数据包含学生的学号、姓名和成绩。 (2)可以在指定学号学生前插入学生成绩数据。 (3)可以删除指定学号的学生数据。 (4)可以计算学生的总数。 (5)可以按
11、学号和姓名查找学生。 (6)可以显示所有学生的成绩。 (7)可以把学生成绩按从高到低的顺序排列。2.概要设计2.1逻辑结构设计逻辑结构,线性结构二元组图式如下: G=(D,S) D=(q,a,z,w,s,x) S=r R=, 图5二元组图式2.2功能结构设计开 始菜单选择录入?排列?插入?连接链表删除?倒置?遍历?按号查找按名查找成绩成绩成绩成绩成绩成绩成绩成绩成绩结 束是否是是是是是是是是否否否否否否图6功能结构设计图本人在该小组中主要负责完成排列功能实现2.3物理结构设计 物理结构:链式存储, c语言描述如下:#include #include #include #include type
12、def struct Student int score; char sno5,sname8;Student;typedef struct Node Student studentInfo; struct Node * next;LinkList;3 算法设计与实现3.1算法设计1. 定义学生数据类型 stu。2. 定义结点存储类型 LinkList。3. 函数声明部分。4. 学生信息的输入函数 input()。5. 用带头结点的尾插法建立单链表来存储学生信息的函数createTailList()。6. 遍历单链表显示出学生数据的函数 showList(),此函数由罗聪同学编写。7. 按学号查找学生信息的函数getElem(),此函数由贾利洋同学编写。8. 显示单个学生信息的函数showElem(),此函数由罗聪同学编写。9. 按姓名查找学生信息的函数locateElem(),此函数由贾利洋同学编写。10. 求学生总人数(即表长)的函数lengthList(),此函数由华政同学编写。11. 在指定学号前插入学生数据的函数insertElem(),此函数由孟繁章同学编写。12. 删除指定学号学生信息