数据结构课程设计(附代码)-数据结构设计.doc
《数据结构课程设计(附代码)-数据结构设计.doc》由会员分享,可在线阅读,更多相关《数据结构课程设计(附代码)-数据结构设计.doc(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、上海应用技术学院课程设计报告课程名称 数据结构课程设计 设计题目猴子选大王;建立二叉树;各种排序;有序表得合并;成绩管理系统; 院系 计算机科学与信息工程 专业计算机科学与技术 班级 姓名 学号 指导教师 日期 一. 目得与要求1. 巩固与加深对常见数据结构得理解与掌握2. 掌握基于数据结构进行算法设计得基本方法3. 掌握用高级语言实现算法得基本技能4. 掌握书写程序设计说明文档得能力5. 提高运用数据结构知识及高级语言解决非数值实际问题得能力二. 课程设计内容说明1. 项目一(1) 对设计任务内容得概述学生成绩管理*任务:要求实现对学生资料得录入、浏览、插入与删除等功能.输入:设学生成绩以记
2、录形式存储,每个学生记录包含得信息有:学号与各门课程得成绩,设学生成绩至少3门以上。存储结构:采用线性链式结构。(2) 详细设计LnkLt reate():输入学生成绩记录函数;void print(Links had):显示全部记录函数LinListele(LikList hea):删除记录函数LList Inst(Linkist*hea):插入记录函数voi mnu_selct():菜单选择ocoreMnage():函数界面(3) 程序流程图3.删除学生记录4.插入学生记录1.输入学生记录输入n(0n6)主界面2.输出学生记录退出学生成绩管理系统5.退出判断nn=5n=1、2、3、4(4)
3、 程序模块及其接口描述该程序可以分为以下几个模块:、菜单选择:void enu_sel(); 提供五种可以选择得操作,在main函数中通过switch语句调用菜单mnueect()函数,进入不同得功能函数中完成相关操作。2、输入功能:inkLs *cete(); 通过一个or循环语句得控制,可以一次完成无数条记录得输入。并将其存入链表. 、输出功能:idprit(LinkList hed); 通过一个wile得循环控制语句,在指针p!=NLL时,完成全部学生记录得显示。知道不满足循环语句,程序再次回到菜单选择功能界面.4、删除功能:LnkList *Dele(Linist *head); 按想
4、要删除得学生得学号首先进行查找,通过指针所指向结点得下移来完成,如果找到该记录,则完成前后结点得连接,同时对以查找到得结点进行空间得释放,最后完成对某个学生记录进行删除,并重新存储。、插入功能:inkLtnsert(LnkLit head);输入您想插入得位置,通过指针所指向结点得下移,找到该位置,将该新得学生记录插入到该结点,并对该结点后面得指针下移。链表长度加一,重新存储。(5) 程序得输入与输出描述输入:调用LinListreate()函数,输入学生得姓名、学号、三门功课得成绩;输出:调用vod prnt(LinkListhd)函数,输出学生得记录。(6) 程序测试主菜单:成绩管理系统得
5、主界面:学生成绩记录得输入:输出学生成绩记录:学生成绩记录得删除(删除学号就是1101得学生记录)插入新得学生成绩记录(插入学号为1得学生记录)(7) 尚未解决得问题或改进方向尚未解决得问题:该成绩管理系统还存在不少缺陷,而且它提供得功能也就是有限得,只能实现学生成绩得输入、输出、删除、插入。对于,学生成绩记录得文件保存以及按学号、姓名等得查询也就是缺少得。还有就就是,对于多个学生成绩得操作也就是不够得。改进得方向:在时间许可得条件下,尽量得完善该系统得各种功能,同时也应修改系统,让它更为人性化、简单化,被广大用户所接受.(8) 对软件得使用说明该软件就是属于比较低级得软件,只就是包含了课程设
6、计得要求得几个功能:输入、输出、删除、插入。所以用户在使用得过程中肯定会受到一定得局限性、不方便性,但由于时间得缘故,无法将软件做到尽善尽美.2. 项目二(1) 对设计任务内容得概述各种排序任务:用程序实现插入法排序、选择法排序、起泡法改进算法排序;利用插入排序、选择法排序与冒泡法得改进算法,将用户随机输入得一列数按递增得顺序排好。输入得数据形式为任何一个正整数,大小不限。输出得形式:数字大小逐个递增得数列.(2) 功能描述该函数有以下几个功能:1) 对R0、n1按递增有序进行直接插入排序2) 对R、n1按递增有序进行冒泡排序3) 对0、n1按递增有序进行直接选择排序4) 排序后得输出5)调用
7、所有排序,实现排序(3) 程序流程图直接插入排序InsertSort()退出排序Sort()直接选择排序SelectSort()冒泡排序BubbleSort()(4) 详细设计voi Ierot(RecTyp R,it n):对R0、n-按递增有序进行直接插入排序void Bubbleor(RTypeR,int n):对R0、n1按递增有序进行冒泡排序oidSecort(RcTye R,intn):对R0、-1按递增有序进行直接选择排序vod isp(RecTyp R,int n):排序后得输出od Sort():调用所有排序,实现排序(5) 程序模块及其接口描述该程序分为五个模块:、输入功能
8、:oi Sot() 建立一个数组存放用户在键盘上输入得关键字,在分别调用各种排序得函数,对关键字进行排序。2、直接插入排序功能:voi nsertSr(RecTp R,it n)将后一个数与前一个数比较,将其插入到第一个比它大得大得数前面,其余数字往后移一个位置.每次从无序表中取出第一个元素,把它插入到有序表得合适位置,使有序表仍然有序。、冒泡排序功能:d BubbeSort(Recpe R,ntn) 在排序过程中,执行完最后得排序后,虽然数据已全部排序完备,但程序无法判断就是否完成排序,为了解决这一不足,可设置一个标志位excge,将其初始值设置为非0,表示被排序得表就是一个无序得表,每一次
9、排序开始前设置hnge值为0,在进行数据交换时,修改change为非0.在新一轮排序开始时,检查此标志,若此标志为0,表示上一次没有做过交换数据,则结束排序;否则进行排序。、直接选择排序功能:vi SlectSor(Rcy R,n) 在无序区里找最小得数,第i小得数字放在第i个位置上,与原来第个位置上得数字交换。5、输出功能:voiddip(cTypR,int n)(6) 程序得输入与输出描述输入:要求就是10个为数字得关键字;输出:排序后新得序列。(7) 程序测试输入关键字,调用各种排序函数(8) 尚未解决得问题或改进方向改进方向:虽然给出了它得各种排序得结果,但就是没有它得箱子过程,这就是
10、我得改进得方向,希望能将每种排序得过程也能展示给用户,来体现它们得不同。(9) 对软件得使用说明用户只需根据提示,在键盘上输入要排序得0个关键字.3. 项目三(1) 对设计任务内容得概述有序表得合并要求输入有序表得数据,利用顺序表与链表结构分布完成两个有序表合并功能,并输出合并后得信息。(2) 功能描述该程序有如下几个功能:1) 初始化顺序表2) 初始化链表3) 建立顺序表4) 尾插法建表5) 输出合并后得顺序表6) 输出合并后得单链表7) 合并顺序表8) 合并单链表9) 调用以上得函数,实现有序表得合并(3) 概要设计或程序流程图开始初始化链表初始化顺序表建立顺序表尾插法建表合并顺序表合并单
11、链表输出结束(4) 详细设计void Iniis(qListL):初始化顺序表od Lis1(ikLit1 *&):初始化链表id CreatList(qLst L,EleTpea,nt):建立顺序表dCreateLisR(Linkis1 &,lmype ,t n):尾插法建表oi DspL(Lst L):输出合并后得顺序表vo spList1(inLis1 L):输出合并后得单链表voi nonList(qLt LA,SqstLB,SqLiLC):合并顺序表voidnnLst1(LinkList1 *L,kistLB,Linist1 *L):合并单链表oi Uon():调用以上得函数,实现有
12、序表得合并。(5) 程序模块及其接口描述程序有以下几个模块:1) 初始化、建立顺序表2) 初始化、建立链表3) 输出合并后得表4) 合并表(6) 调试分析或程序测试有序表得合并:(7) 尚未解决得问题或改进方向不足:不能重复使用程序。(8) 对软件得使用说明用户只需根据界面得提示,采用对应得操作。4。项目四(1)对设计任务内容得概述建立二叉树,层序、先序、中序、后序遍历( 用递归或非递归得方法都可以)*任务:要求能够输入树得各个结点,并能够输出用不同方法遍历得遍历序列;分别建立二叉树存储结构得得输入函数、输出层序遍历序列得函数、输出先序遍历序列得函数、输出中序遍历序列得函数、输出后序遍历序列得
13、函数;()功能描述1) 建立二叉树2) 输出二叉树3) 先序遍历非递归算法:不为空时,访问根-左右,采用递归得方法.4) 中序遍历非递归算法:不为空时,访问左-根-右,采用递归得方法。5) 后序遍历非递归算法:不为空时,访问左右根,采用递归得方法。6) 层序遍历:运用队列,队列不空时,有左孩子将其入队,有右孩子将其入队,同时出队.7) 调用以上函数实现二叉树得各种遍历(3)概要设计或程序流程图开始输入二叉树得按层结点值层次遍历后序遍历中序遍历先序遍历结束(4)详细设计oid reatBoe(BTode ,char st):建立二叉树od DispTNode(BTNodeb):输出二叉树voiP
14、eOrder(BTNode*):先序遍历非递归算法vodInOde(BTode b):中序遍历非递归算法void PosOrder(TNo *):后序遍历非递归算法vd LevelOder(BTode b):层序遍历(5)程序模块及其接口描述(6)程序得输入与输出描述输入二叉树得按层结点值;输出二叉树先序遍历访问结点得顺序;输出二叉树中序遍历访问结点得顺序;输出二叉树后序遍历访问结点得顺序;输出二叉树层次遍历访问结点得顺序;()调试分析或程序测试用户从键盘上输入要创建得二叉树结点:(8)尚未解决得问题或改进方向改进方向:希望能将系统改进得更为人性化,让界面更舒适,操作更简单。()对软件得使用说
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 代码 数据 结构设计
限制150内