《数据结构》中典型算法的动态演示毕业设计论文.doc
《《数据结构》中典型算法的动态演示毕业设计论文.doc》由会员分享,可在线阅读,更多相关《《数据结构》中典型算法的动态演示毕业设计论文.doc(48页珍藏版)》请在咨信网上搜索。
1、目 录中文摘要III英文摘要IV前言11 绪论21.1 问题背景21.2 开发环境21.3 开发工具简介21.3.1 C语言图形程序设计21.3.2 图形模式下的汉字显示51.3.3 Turboc(V2.0)编译错误信息61.4 其它相关工具软件71.4.1 Dos屏幕下程序截图工具介绍及Dos抓图技巧71.4.1 拓扑图制作工具亿图V1.6.372 需求分析82.1 问题定义82.1.1 问题分析82.1.2 用户目标82.2 系统的功能需求82.2.1 正确表达算法82.2.2 功能实用化82.2.3 具体演示功能82.3 系统的其他需求92.3.1 界面友好性92.3.2 系统的运行环境
2、及可靠性要求93 概要设计103.1 方案确定103.2 系统结构103.2.1 系统结构总框图103.2.2 模块功能说明113.2.3 算法演示子模块中要注意的问题114 详细设计124.1 数据设计124.2 系统主程序界面设计124.3 演示模块流程图124.3.1 冒泡演示流程图124.3.2 汉诺塔演示流程图144.3.3 二叉树演示流程图154.3.4 单链表演示流程图165 系统功能实现175.1 欢迎界面模块编码175.2 主程序模块编码195.3 冒泡排序模块编码225.4 汉诺塔模块编码245.5 二叉树遍历模块编码295.6 链表模块编码335.7 退出模块编码366
3、系统测试396.1 系统测试常用的测试方法396.2 测试范围与主要内容396.3 黑盒测试用例396.4 测试报告406.5 改进建议与措施40结束语41参考文献42致谢43数据结构中典型算法的动态演示计算机科学与技术专业 刘俊坤 指导老师:符开耀摘 要:数据结构作为计算机专业的一门综合性专业基础课,对后续课程的学习极其重要。但该课程涉及大量的概念、定义、模型和算法,显得很抽象和深奥。在教学过程中,如果能加以计算机辅助教学,可以提高教学效果,所以编写这样的程序不仅有助于学习数据结构,同时也大大增强了学生的学习兴趣,提高学生的编程能力。这是因为,一方面利用算法演示系统的生动性和直观性,使教学内
4、容条理化和形象化,降低了对知识理解的难度;另一方面,由于演示系统的趣味性和交互性,有利于激发学生浓厚的学习兴趣,使其愿学、乐学。 本系统以清华大学出版社出版的C语言版数据结构为蓝本,合理地选择数据结构中四个经典算法并在系统中进行有机地组合,形成优化的动态演示系统。 它可适应读者对算法的演示数据和过程执行的控制方式的不同需求, 在计算机的屏幕上显示算法执行过程中数据的逻辑结构或存储结构的变化状况或递归算法执行过程中栈的变化状况。 可视化是演示系统应该具备的要求。本系统采用C语言图形编程技术来实现软件的可视化。因为C语言的图形编程对大多数人来说比较陌生,甚至让人误解C不能进行图形编程。通过本系统的
5、设计,让大家知道C语言也可以进行图形编程,从而进行可视化设计与开发。关键词:算法;动态演示;图形编程;可视化The dynamic demonstration of typical algorithm in the Data Structures Computer Science and Technology Liu Junkun Tutor:Fu KaiyaoAbstract:As one computer -specialized comprehensive basic course, the construction of data is extremely important to t
6、he following curriculum study. Because this curriculum involves massive concepts, definitions, models and operation algorithms, thus it seems very abstract and abstruse. In the teaching process, however,if itbe performed through computer- aided instruction, it mayimprove the teaching effect, therefo
7、re compiling such procedures can not only be helpful to the study of construction of data, but also greatly strengthen the students study interest, sharpen the students programming ability. This is because, on the one hand, algorithm demonstration systems vivid ness and direct-viewing, make the cont
8、ent in orderl and visual, reduce the knowledge itself difficulty degree; On the other hand , interest and the interaction as a result of the demonstration system,are advantageous to stimulate the students strong study interest, cause them to be willing to study .This system takes Qinghua University
9、publishing house publication C language version Construction of data as a main source, reasonably chooses four classical algorithms in the construction of data and carries on in the system organically combinations, forms the optimized dynamic demonstration system. It may adapt the readers different
10、demands to the algorithm data-in and control modes the process execution, and demonstrates in the algorithm implementation on the computer screen the data logical organization either the memory structure change condition or the stack change condition in the recursion algorithm implementation. Visual
11、ization demonstration system should be available. The system used C programming language graphics software technology to achieve the visualization. C programming language for graphics is unfamiliarto us,or we even mislead Cnot forgraphics programming . Through the design of this system, we know C pr
12、ogramming language can be graphic, and can carry out visible design. Keywords : Data structures; Dynamic demonstration; Graph programming; Visible44前 言 学习编写计算机程序设计仅仅了解计算机语言是不够的,还必须掌握数据组织、存储和运算的一般方法,这些都是数据结构研究的内容,也是我们进行计算机程序设计的重要基础。 由于数据结构的原理和算法比较抽象,因此要理解和掌握其中的原理就比较困难。本文通过对几个经典算法的研究,并进行动态演示,使得能更好地了解算
13、法的来龙去脉,更好地理解算法,抓住算法的本质,因而更好地学习数据结构这门课程。 本文的目的是将抽象算法转为形象的演示。本文从软件工程的角度出发,严格按照软件开发的基本步骤,开发了一个数据结构中几个典型算法的可视化演示系统,并给出了C语言实现各功能模块的思想及相关核心代码,充分体现了C语言知识的综合运用,特别是平时大家接触较少的图形编程。 由于编程水平有限以及时间仓促,故本系统难免有各种各样的不足,希望各位老师和朋友提出意见,在此衷心感谢! 1 绪论1.1 问题背景数据结构是一门比较难学的课程,在教学过程中,如果能加以计算机辅助教学,可以提高教学效果,所以编写这样的程序不仅有助于学习数据结构,同
14、时也大大增强了学生的学习兴趣,提高学生的编程能力。由于数据结构的原理和算法比较抽象,因此要理解和掌握其中的原理就比较困难。本系统通过对几个经典的算法进行动态演示,让人能更好地了解算法的来龙去脉,更好地理解算法,抓住算法的本质,从而更好地学习数据结构这门课程。1.2 开发环境 开发环境:TurboC(V2.0) 运行环境:Windows98/2000/XP/DOS系列平台1.3 开发工具简介 1.3.1 C语言图形程序设计 计算机图形程序设计是程序设计中比较困难而且又吸引人的部分。为了方便用户设计图形程序,不同版本的C语言编译程序提供了许多图形的库函数。用户在设计图形程序时,只需要调用相应的库函
15、数即可。在ANSI C中没有对图形库函数的要求,各版本的C语言编译环境图形库函数都不相同,下面以Turboc 2.0的图形库来介绍图形程序设计2。 Turboc 2.0为用户提供了一个功能很强的图形函数库,又称为Borland 图形接口(BGI)。编写图形程序时用到的一些图形库函数均包括在graphics.lib中。用到这些函数时,必须把图形头文件graphics.h包含进来6。 计算机显示器的显示模式按功能可以分为字符模式和图形模式两大类。因此要进行图形编程,首先要对图形模式进行初始化。不同的显示器适配器有不同的图形分辨率。即使是同一显示器适配器,在不同模式下也有不同分辨率。因此,在屏幕作图
16、之前,必须根据显示器适配器的种类将显示器设置成为某种图形模式。在未设置图形模式之前,微机系统默认屏幕为文本模式(80列,25行字符模式),此时所有图形函数均不能工作。 设置屏幕为图形模式,可用下列图形初始化函数: void far initgraph (int far* gdriver,int far *gmode,char *path); 其中gdriver和gmode分别表示图形驱动器和模式,path是指图形驱动程序所在的目录路径。图形驱动程序由Turbo C出版商提供,文件扩展名为BGI。根据不同的图形适配器有不同的图形驱动程序。例如对于EGA、VGA图形适配器的图形驱动程序为EGAVG
17、A.BGI。 有时编程者并不知道所用的图形显示器适配器种类,而且我们为了将编写的程序可以用于不同图形驱动器,增强程序的通用性,我们通常不指定图形显示器适配器种类,而使用Turbo C提供了一个自动检测显示器硬件的函数,其调用格式为:void far detectgraph ( int *gdriver, *gmode);例1:自动进行硬件测试后进行图形初始化2 #include graphics.h main( ) int gdriver, gmode; detectgraph(&gdriver, &gmode); /*自动测试硬件*/ printf(driver is %d, mode is
18、 %dn, gdriver,gmode); /*输出结果*/ getch(); initgraph(&gdriver, &gmode, ); /* 根据测试结果初始化图形*/ circle(320,240,50); getch(); closegraph(); 上例程序中先对图形显示器自动检测,然后再用图形初始化函数进行初始化设置。其中,closegraph()为退出图形状态的函数,其调用格式为:voidfarclosegraph(void);调用该函数后可退出图形状态而进入文本方式,并释放用于保存图形驱动程序和字体的系统内存。同时TurboC提供了一种更简单的初始化图形的方法,即用gdriv
19、er=DETECT语句后再跟initgraph()函数就行了。比如,上例可改为如例2的情形2。例2:对例1的修改 #include graphics.h main() int gdriver=DETECT, gmode; initgraph(&gdriver, &gmode, ); circle(320,240,50); getch(); closegraph(); 对图形模式进行了初始化后,接下来要进行的工作是对于图形模式的屏幕颜色设置以及如何清屏。对于图形模式的屏幕颜色设置,分为背景色的设置和前景色的设置。在Turbo c中分别使用以下两个函数:n 背景色设置函数:void far set
20、bkcolor (int color); 该函数将使背景按照参数color指定的颜色来进行显示。n 前景色设置函数:void far setcolor (int color); 该函数将使前景按照参数color指定的颜色来进行显示。清除图形屏幕内容使用清屏函数,其调用格式如下void far cleardevice(void);该函数清除整个屏幕的内容,可以在绘图前调用这个函数进行清屏或者在画新图形时调用该函数清除以前画的图形。有关颜色设置、清屏函数的使用请看例3的示例2。例3:清屏函数的使用 #include stdio.h #include graphics.h main() int gd
21、river, gmode, i,j; gdriver=DETECT; initgraph(&gdriver, &gmode, ); /*图形初始化*/ setbkcolor(0); /*设置图形背景*/ cleardevice(); setcolor(1); /*设置不同作图色*/ circle(319, 239, 20); /*画圆*/ setbkcolor(1); /*设置不同背景色*/ cleardevice(); getch(); closegraph(); 另外,TURBOC也提供了几个获得现行颜色设置情况的函数。n int far getbkcolor(void); 返回现行背景颜
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 典型 算法 动态 演示 毕业设计 论文
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。