数据结构课设任务书

上传人:大米 文档编号:551798808 上传时间:2023-04-09 格式:DOC 页数:33 大小:764.50KB
返回 下载 相关 举报
数据结构课设任务书_第1页
第1页 / 共33页
数据结构课设任务书_第2页
第2页 / 共33页
数据结构课设任务书_第3页
第3页 / 共33页
数据结构课设任务书_第4页
第4页 / 共33页
数据结构课设任务书_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《数据结构课设任务书》由会员分享,可在线阅读,更多相关《数据结构课设任务书(33页珍藏版)》请在金锄头文库上搜索。

1、课 程 设 计 报 告课程名称 数据结构 课题名称 二叉树遍历演示 专 业 网络工程 班 级 网络工程1102 学 号 201103120202 姓 名 吴琪 指导教师 陈淑红 张晓清 李杰君 2013年 7 月 3 日湖南工程学院课 程 设 计 任 务 书课程名称 数据结构 课 题 二叉树遍历演示 专业班级 网络工程 学生姓名 吴琪 学 号 201103120201 指导老师 陈淑红 张晓清 李杰君 审 批 任务书下达日期 2013 年 6 月 25 日任务完成日期 2013年 7 月 3 日 课程设计报告任务书1、设计内容与设计要求 1.1设计内容 算术24游戏演示由系统随机生成4张扑克牌

2、,用户利用扑克牌的数字及运算符号“+”、“”、“*”、“/”及括号“(”和“)”从键盘上输入一个计算表达式,系统运行后得出计算结果,如果结果等于24,则显示“Congratulation!”,否则显示“Incorrect!”设计思路:从键盘输入中缀表达式,然后将中缀表达式转换为后缀表达式,利用后缀表达式求值。 迷宫探索随机生成一个迷宫图,迷宫大小为N*N,N预定义为常数,修改N的值可以改变迷宫的大小。用白色表示可走的路,蓝色表示墙壁不可以通过。系统设计两种运行方式:一种是系统自动探索(用递归方法实现);另一种是由人工操作探索通路。设计思路:程序首先要考虑迷宫的表示,这是一个二维关系图,所以可选

3、择二维数组来存储。数组元素只有两种值0和1,分别代表通路和墙壁。图形的显示可以根据数组元素的值来确定。如果是人工探索,则依据按键来确定探索物的位置坐标,利用循环语句实现。如果是系统自动探索,可采用递归算法实现。 二叉树遍历演示演示遍历二叉树的过程,所以首先建立二叉树,并用图形显示出树的形状。建立的过程是采用前序便利的方法来创建,设计两种生成树的方式:一种是系统随机生成,另一种是人工输入。考虑到屏幕界面的有限性,限定二叉树不超过5层,最多26个字符,输入字符小数点“.”代表NULL。初始树为某种颜色的结点,三种情况的遍历采用填充另外一种醒目的颜色,来表示当前遍历的结点,同时显示该结点的访问序号。

4、同时在遍历的过程中在遍历图形的下方显示出遍历序列。 拓扑排序演示演示拓扑排序的过程。按照有向图给出的次序关系,将图中顶点排成一个线性序列,对于有向图中没有限定次序关系的顶点,则可以人为加上任意的次序关系。要求每输出一个顶点后就演示从图中删去此顶点以及所有以它为尾的弧。 图的遍历演示图的深度优先, 广度优先遍历过程,并输出原图结构及遍历结果。要求图的结点数不能少于6个。可以由系统随机生成图,也可以由用户手动输入图。报告中要写出画图的思路;画出图的结构,有兴趣的同学可以进一步改进图的效果。1.1.6 双链表创建演示建立一个递增有序的双链表。功能是随机生成8个结点数据,每生成一个结点则申请空间得到一

5、个指针,将数据存放到指针所指的数据域中,然后将结点插入到已经排好序的双链表中。所以第一步工作是判断新结点的插入位置,第二演示插入过程中指针的变化,第三步显示插入后的链表结果。1.1.7 选作课题:公园导游图给出一张某公园的导游图,游客通过终端询问可知:从某一景点到另一景点的最短路径。游客从公园大门进入,选一条最佳路线,使游客可以不重复地游览各景点,最后回到出口(出口就在入口旁边)。要求用图示展示最佳路径。 最小生成树算法演示随机生成一个网,并用图形展示,然后依据Prim算法或Kruskal算法求该图的最小生成树,并用图形展示相应的过程步骤。1.2 选题方案:所选题目根据学号确定,学号模6加1,

6、即(学号%6+1)。如你的学号为13,则所选题目号为:13%6+1(题目2)。注意,所有的课题都要求用图形方式演示步骤和结果。有兴趣的同学可以可以选择选做课题七或课题八,也可以自己针对数据结构课程中所讲算法来设计一个演示过程的算法,但要预先告知老师,经过审批,方可确定课题。1.3设计要求: 课程设计报告规范(1)需求分析a. 程序的功能。b. 输入输出的要求。(2)概要设计a. 程序由哪些模块组成以及模块之间的层次结构、各模块的调用关系;每个模块的功能。b. 课题涉及的数据结构和数据库结构;即要存储什么数据,这些数据是什么样的结构,它们之间有什么关系等。(3)详细设计a. 采用C语言定义相关的

7、数据类型。b. 写出各模块的类C码算法。c. 画出各函数的调用关系图、主要函数的流程图。(4)调试分析以及设计体会a. 测试数据:准备典型的测试数据和测试方案,包括正确的输入及输出结果和含有错误的输入及输出结果。b. 程序调试中遇到的问题以及解决问题的方法。c. 课程设计过程经验教训、心得体会。(5)使用说明用户使用手册:说明如何使用你编写的程序,详细列出每一步的操作步骤。 (6)书写格式a. 设计报告要求用A4纸打印成册:b. 一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。(7)附录a. 源程序清单(带注释) 考核方式指导老师负责验收程序的运行结果,并结合学生的工

8、作态度、实际动手能力、创新精神和设计报告等进行综合考评,并按优秀、良好、中等、及格和不及格五个等级给出每位同学的课程设计成绩。具体考核标准包含以下几个部分:(1)平时出勤 (占10%)(2)系统需求分析、功能设计、数据结构设计及程序总体结构合理与否(占10%)(3)程序能否完整、准确地运行,个人能否独立、熟练地调试程序(占40%)(4)设计报告(占30%)注意:不得抄袭他人的报告(或给他人抄袭),一旦发现,成绩为零分。(5)独立完成情况(占10%)。 课程验收要求(1)运行所设计的系统。(2)回答有关问题。(3)提交课程设计报告。(4)提交软盘(源程序、设计报告文档)。(5)依内容的创新程度,

9、完善程序情况及对程序讲解情况打分。2 、进度安排第 18 周:星期二 14:3016:30 上课 星期二 18:0022:00 上机星期三 18:0022:00 上机 星期四 18:0022:00 上机第 19 周:星期一 14:0018:00 上机 星期二 14:0018:00 上机 星期三 8:0012:00 上机 附:课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。 正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗, 三级标题用小四号宋体加粗,正文用小四号宋体;行距为22。正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块

10、图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。正文总字数要求在5000字以上(不含程序原代码) 目录一、需求分析:11.1功能需求:11.2输入输出的要求:11.2.2输出:1二、概要设计:12.1数据结构:12.2抽象数据类型:22.3功能模块图:33.1流程图43.1.1创建二叉树:43.1.2先序遍历:53.1.4中序遍历:73.2.1创建二叉树:73.2.2先序遍历二叉树:83.2.3中序遍历二叉树:83.2.4后序遍历二叉树:83.2.5人工输入二叉树:83.2.6随机生成二叉树:9四、调试与

11、测试:104.2.1程序调试及分析:104.2.2测试结果及分析:11五、心得体会:14六、参考文献:15七、附录:15 课程设计报告一、需求分析: 1.1功能需求: 演示遍历二叉树的过程,所以首先建立二叉树,并用图形显示出树的形状。建立的过程是采用前序便利的方法来创建,设计两种生成树的方式:一种是系统随机生成,另一种是人工输入。考虑到屏幕界面的有限性,限定二叉树不超过5层,最多26个字符,输入字符小数点“.”代表NULL。初始树为某种颜色的结点,三种情况的遍历采用填充另外一种醒目的颜色,来表示当前遍历的结点,同时显示该结点的访问序号。同时在遍历的过程中在遍历图形的下方显示出遍历序列。 1.2

12、输入输出的要求: 输入: (1)人工输入二叉树的序列; (2)随机产生二叉树的序列。 输出: 用图形的方式演示二叉树的三种遍历: 先序遍历、中序遍历、后序遍历。 二、概要设计: 2.1数据结构:typedef struct nodechar data;struct node*lchild;struct node*rchild;int x;int y;int num;BTNode; 2.2抽象数据类型: 数据对象D:D是具有相同特性的数据元素的集合。各个数据元素均含有类型相同,可惟一标识数据元素的关键字。 数据关系R:数据元素同属一个集合。 基本操作P: node*createBTNode(BT

13、Node*&t,char*str) 操作结果:先序遍历创建二叉树。 PreOrder(BTNode*t,int m,int v) 初始条件:二叉树存在; 操作结果:先序遍历二叉树。 inOrder(BTNode*t,int m,int v) 初始条件:二叉树存在; 操作结果:中序遍历二叉树。 postOrder(BTNode*t,int w,int v) 初始条件:二叉树存在; 操作结果:后序遍历二叉树。 node*DrawOriginTree(BTNode*t,char*str,int x,int y) 初始条件:二叉树存在; 操作结果:将二叉树用图形表示出来。 rgcreate() 操作结果:人工输入二叉树序列。 sjcreate() 操作结果:随机生成二叉树序列。 2.3功能模块图: 用户在主界面中选择出输入模块,继续执行小界面中的其他模块。 系统总模块: 主界面 1、人工输入 2、随机生成 3、退出 用户

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号