数据结构cai系统项目手册

数据结构cai系统项目手册

ID:1362594

大小:771.00 KB

页数:15页

时间:2017-11-10

数据结构cai系统项目手册_第1页
数据结构cai系统项目手册_第2页
数据结构cai系统项目手册_第3页
数据结构cai系统项目手册_第4页
数据结构cai系统项目手册_第5页
资源描述:

《数据结构cai系统项目手册》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、北京工业大学数据结构课程设计项目书数据结构项目书项目经理:产品经理:测试经理:15北京工业大学数据结构课程设计项目书一、问题描述:以数据结构教材中树和图的内容为例,设计数据结构的CAI(计算机辅助教学)系统,用菜单的形式选择各项功能。用图形化界面的形式显示算法的执行过程。二、程序分析:二叉树的遍历算法演示中,首先定义一个TREE的结构体,里面存放的数据类型分别是char,两个TREE类型指针*lchild(左孩子),*rchild(右孩子),两个int分别是x和y,分别代表了树的x坐标和y坐标。再建立一个名称为OUTPUT的

2、结构体里面存放了三种遍历的x坐标和y坐标。通过对Tree*CreatTree();函数的调用生成二叉树再通过voidPreorder(Tree*t);voidMidorder(Tree*t);voidPosorder(Tree*t);这三个函数进行前中后的遍历来判断左右孩子是否存在。三、程序设计:1、结构化函数设计15北京工业大学数据结构课程设计项目书1、设计工具Win-TC,c文件2、编码头文件:#include#include#include#include<

3、dos.h>#include结构体:typedefstructTREE{chardata;/*树的结点数据*/structTREE*lchild;structTREE*rchild;intx;/*树的x坐标*/inty;/*树的y坐标*/}Tree;structOUTPUT{intx;/*三种遍历的x坐标*/inty;/*三种遍历的y坐标*/intnum;}s;函数:·函数名称:voidDrawTree(Tree*t);·函数描述:用图形显示创建好的树·函数名称:voidPreorder(Tree*t);·函

4、数描述:前序遍历·函数名称:voidMidorder(Tree*t);·函数描述:中序遍历·函数名称:voidPosorder(Tree*t);·函数描述:后序遍历15北京工业大学数据结构课程设计项目书·函数名称:voidDrawNode(Tree*t,intcolor);·函数描述:遍历时显示每个结点的过程·函数名称:voidClrScr();·函数描述:清空树的区域·函数名称:voidClose(void);·函数描述:图形模式结束一、测试与调试:1、调试报告一开始的调试中,我们就碰到了很严重的问题,图形化的界面一直无法

5、正常的显示出来,运行之后,都是一闪即逝,为此,我们上网查阅了很多信息。加了getch();也加了system(“plause”);,这些基本的解决方法毫无用处;又有说要把Egavga.bgi这个文件和生成的exe文件放在一起,起初使用TC3.0时也无法正常显示图形界面。多番尝试无果之后打算试试Win-TC,结果莫名其妙的成功了。并且发现Egavga.bgi的确要和exe文件放在同一个文件夹,不在一起时无法进入图形界面,这是在一次另存为把文件保存到其他文件夹时发现的。还有最开始时,对于一些需要用到的函数所需的头文件不是很了解,

6、不过通过网络的搜索之后,都一一得到解答。但是直到目前为止,依然有个比较大的问题,就是系统自动生成二叉树的时候,经常会出现重复字母的结点,我们想的是能不能一个节点之后就在26个字母之中把这个结点用到的字母抽出去,然后剩下的位置就从剩下的字母中选取,可是二叉树是一下子全部显示出来,好像没有明显的先后顺序,最后还是不会。2、测试结果A:主界面---选择生成树的方式(自动/手动)15北京工业大学数据结构课程设计项目书B:选择1后C:选择2后D:按任意键后,进入二叉树的演示初始界面---图形化界面的初始化15北京工业大学数据结构课程设

7、计项目书E:按任意键后开始遍历,并输出遍历结果一、主要算法分析:(一)二叉树的生成Tree*InitTree(inth,intt,intw){charch;intn;/*自动建立时随机赋值判断是否是NULL的标志*/Tree*node;if(way=='2')/*手动建立需要自己输入*/scanf("%c",&ch);else/*自动建立的赋值*/{n=random(5);if(n==0&&nodeNUM>=3)/*随机赋值时候确保自动建立的二叉树有三个结点*/ch='';elsech=65+random(25);}if(c

8、h=='')/*输入空格代表NULL*/returnNULL;15北京工业大学数据结构课程设计项目书else{if(h==6

9、

10、nodeNUM==26)/*如果树的层次已经到5或者结点树到达26个就自动返回NULL*/returnNULL;node=(Tree*)malloc(sizeof

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。