毕业设计论文:学生成绩管理系统(数据结构).doc
- 文档编号:1662706
- 上传时间:2022-10-23
- 格式:DOC
- 页数:30
- 大小:370.67KB
毕业设计论文:学生成绩管理系统(数据结构).doc
《毕业设计论文:学生成绩管理系统(数据结构).doc》由会员分享,可在线阅读,更多相关《毕业设计论文:学生成绩管理系统(数据结构).doc(30页珍藏版)》请在冰豆网上搜索。
大连科技学院
数据结构毕业设计
题目单链表的基本操作-建立和遍历
学生成绩管理系统-排列
排序问题-选择排序,直接插入排序
学生姓名李易霖 专业班级计算机10-1
指导教师宋丽芳职称 副教授
所在单位信息科学系软件教研室
系主任王立娟
完成日期2012年1月6日
26
大连科技学院
数据结构毕业设计成绩考核表
学生姓名
李易霖
专业班级
计算机10-1
学号
1001020112
题目
单链表的基本操作,学生成绩管理系统,排序问题
考核项目
分值
评分
1
出勤情况
10
2
完成原理分析
10
3
设计分析
10
4
完成代码编写与调试
10
5
独立工作能力、综合运用所学知识分析和解决问题能力及实际工作能力提高的程度
10
6
回答问题
20
7
毕业设计报告格式规范性
30
合计
100
总评成绩
注:
总评标准采用优良制:
优秀(90分以上)、良好(80-90)、中等(70-80)、及格(60-70)、不及格(60分以下)
指导教师签字:
毕业设计任务书
一、任务及要求
1.设计(研究)内容和要求
研究内容:
单链表的基本操作,学生成绩管理系统,二叉树的运算
任务和要求:
(1)学习数据结构基础知识,掌握数据结构典型的算法的使用。
(2)对指导教师下达的题目进行任务分析。
(3)根据分析结果完成设计。
(4)编程:
在计算机上实现题目的代码实现。
(5)完成对程序的测试和调试。
(6)提交毕业设计报告(约二十页),含程序代码及运行结果。
2.原始依据
结合数据结构毕业中的基本理论和基本算法,正确分析出数据的逻辑结构,合理地选择相应的存储结构,并能设计出解决问题的有效算法。
提高程序设计和调试能力。
学生通过上机实习,验证自己设计的算法的正确性。
学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改。
二、工作量
2周(10个工作日)时间。
三、计划安排
第1个工作日-第2个工作日:
查找相关资料、书籍,阅读示例文档,选择题目。
第3个工作日:
题目分析,设计算法。
第4个工作日-5个工作日:
功能模块的划分和设计。
第6个工作日:
实现具体数据结构和模块。
第7个工作日-第8个工作日:
程序设计与调试,编写毕业设计报告。
第9个工作日:
上交毕业设计报告。
第10个工作日:
软件验收、答辩,成绩评定。
指导教师签字:
2011年12月26日
目录
题目一:
单链表的基本操作 1
1需求分析 1
1.1问题描述 1
1.2实现要求 1
2.概要设计 1
2.1逻辑结构设计 1
2.2功能结构设计 2
2.3物理结构设计 2
3算法设计与实现 3
3.1算法设计 3
3.2算法实现与调试 3
题目二:
线性表的应用——学生成绩管理 4
1需求分析 4
1.1问题描述 4
1.2实现要求 4
2.概要设计 4
2.1逻辑结构设计 4
2.2功能结构设计 5
2.3物理结构设计 5
3算法设计与实现 6
3.1算法设计 6
3.2算法实现与调试 7
题目三:
排序问题 8
1需求分析 8
1.1问题描述 8
1.2实现要求 8
2.概要设计 8
2.1逻辑结构设计 8
2.2功能结构设计 8
2.3物理结构设计 9
3算法设计与实现 9
3.1算法设计 9
3.2算法实现与调试 11
总结 13
参考文献 14
附录全部代码 15
题目一 15
题目二 22
题目三 30
题目一:
单链表的基本操作
1需求分析
1.1问题描述
用学过的方法建立单链表,掌握单链表的建立、插入,查找、删除、逆置等基本算
法和操作。
掌握指针类型的应用和结构体的具体操作,初步掌握采用自底向上,分模块进行的程序的调试与测试。
1.2实现要求
(1)建立单链表
用尾插法建立带头结点的单链表h,从键盘输入各整型数据元素,以“-1”
作为输入结束标志符。
(2)遍历单链表h
依次输出链表中各数据元素。
(3)按序号查找
查找单链表h中第i个元素并输出该元素。
(4)插入
在单链表h的第i个元素位置上插入x数据元素
并遍历单链表h
(5)删除
删除单链表h的第i个数据元素,并返回第i个元素
同时遍历单链表h
(6)求表长
求单链表的表长并输出表长
(7)逆置单链表
逆置带头结点的单链表h,逆置后的单链表利用原表中的结点空间,不重新申请空间,逆置后进行遍历。
(8)将一个元素插入到有序表中使表仍然有序
带头结点的单链表中的数据元素是整型数且有序。
将x插入到顺序表的适当位置上,保持表的有序性,将两个递增的有序表归并成一个递减的有序表,利用原表空间,不能重新申请空间
2.概要设计
2.1逻辑结构设计
逻辑结构:
线性结构
二元组图式
G=(D,S)
D=(q,a,z,w,s,x)
S={r}
R={,,
}
2.2功能结构设计
图1功能设计图
本人在该小组中主要负责完成建立和遍历模块的功能实现
2.3物理结构设计
物理结构
(1)链式存储示意图如下:
图2链式存储示意图
(2)c语言描述如下:
#include
/*denitionofdatatype*/(
Typedefchardatatype;
typedefstructnode
{datatypedata;
structnode*next;
}linklist;
3算法设计与实现
3.1算法设计
1.用于定义单链表的存储结构的函数LinkList()。
2.用带头结点的尾插法创建链表的函数createList()。
3.用于查找第i位元素的函数get()。
4.用于遍历单链表的函数visit()。
5.用于获得表长的函数lengthList()。
6.用于在第i位元素后插入新元素的函数insert()。
7.用于删除第i位元素的函数delete()。
8.用于逆置单链表的函数reverse()。
9.用于在程序开始输出欢迎和提示信息的函数start()。
10.用于在程序结束时输出提示信息的函数end()。
11.用于调用上述函数的主函数main(),主函数中对各函数的调用次序及方法为:
定义了必要的变量后,先使用system()函数设置操作台背景色;再调用程序开始时的输出函数start();然后调用创建单链表的函数createList()并用相应类型的变量接收它返回的头结点地址;然后询问是否遍历(询问步骤下同),需要的话将刚接收的头结点地址作为参数调用遍历函数visit();遍历后传递头结点的地址调用查找函数get(),该函数具有判断查找位置合法性的功能;查找操作结束后传递头结点地址给inser()调用它(插入操作带有判断插入位置是否合法的功能,故还要调用lengthList()获得表长作为插入函数的另一个参数)插入操作完成后将再次调用遍历函数visit()显示插入结果;结束插入后将头结点地址作为参数调用删除函数delete(),删除成功后将调用遍历函数显示删除后的结果(插入函数也具有判断位置合法性的功能);最后是调用逆置函数reverse(),同样是以头结点为参数。
3.2算法实现与调试
(1)建立单链表:
123456
图3建立单链表
(2)遍历单链表
图4遍历单链表
题目二:
线性表的应用——学生成绩管理
1需求分析
1.1问题描述
编写一个简单的学生信息管理程序,能实现对学生信息的简单管理。
编写一个简单的学生信息管理程序,能实现对学生信息的简单管理。
1.2实现要求
(1)创建成绩链表,学生数据包含学生的学号、姓名和成绩。
(2)可以在指定学号学生前插入学生成绩数据。
(3)可以删除指定学号的学生数据。
(4)可以计算学生的总数。
(5)可以按学号和姓名查找学生。
(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
typedefstructStudent
{intscore;
charsno[5],sname[8];
}Student;
typedefstructNode
{StudentstudentInfo;
structNode*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.删除指定学号学生信息
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 学生 成绩管理系统 数据结构