ImageVerifierCode 换一换
格式:DOCX , 页数:45 ,大小:156.33KB ,
资源ID:16211134      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16211134.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《数据结构》中典型算法的动态演示毕业设计论文Word格式文档下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

《数据结构》中典型算法的动态演示毕业设计论文Word格式文档下载.docx

1、 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, therefore compiling such procedures can not only be helpful to the study of construction of data, but also great

2、ly 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 content in orderl and visual, reduce the knowledge itself difficulty degree; On the other hand , interest and

3、 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 publishing house publication C language version Construction of data as a main source, reasonably chooses

4、 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 demands to the algorithm data-in and control modes the process execution, and demonstrates in the algorit

5、hm 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. Visualization demonstration system should be available. The system used C programming language graphics softwar

6、e 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 programming language can be graphic, and can carry out visible design. Keywords : Data structures; Dynamic

7、demonstration; Graph programming; Visible前 言 学习编写计算机程序设计仅仅了解计算机语言是不够的,还必须掌握数据组织、存储和运算的一般方法,这些都是数据结构研究的内容,也是我们进行计算机程序设计的重要基础。 由于数据结构的原理和算法比较抽象,因此要理解和掌握其中的原理就比较困难。本文通过对几个经典算法的研究,并进行动态演示,使得能更好地了解算法的来龙去脉,更好地理解算法,抓住算法的本质,因而更好地学习数据结构这门课程。 本文的目的是将抽象算法转为形象的演示。本文从软件工程的角度出发,严格按照软件开发的基本步骤,开发了一个数据结构中几个典型算法的可视化演

8、示系统,并给出了C语言实现各功能模块的思想及相关核心代码,充分体现了C语言知识的综合运用,特别是平时大家接触较少的图形编程。 由于编程水平有限以及时间仓促,故本系统难免有各种各样的不足,希望各位老师和朋友提出意见,在此衷心感谢! 1 绪论1.1 问题背景数据结构是一门比较难学的课程,在教学过程中,如果能加以计算机辅助教学,可以提高教学效果,所以编写这样的程序不仅有助于学习数据结构,同时也大大增强了学生的学习兴趣,提高学生的编程能力。由于数据结构的原理和算法比较抽象,因此要理解和掌握其中的原理就比较困难。本系统通过对几个经典的算法进行动态演示,让人能更好地了解算法的来龙去脉,更好地理解算法,抓住

9、算法的本质,从而更好地学习数据结构这门课程。1.2 开发环境 开发环境:TurboC(V2.0) 运行环境:Windows98/2000/XP/DOS系列平台1.3 开发工具简介 1.3.1 C语言图形程序设计 计算机图形程序设计是程序设计中比较困难而且又吸引人的部分。为了方便用户设计图形程序,不同版本的C语言编译程序提供了许多图形的库函数。用户在设计图形程序时,只需要调用相应的库函数即可。在ANSI C中没有对图形库函数的要求,各版本的C语言编译环境图形库函数都不相同,下面以Turboc 2.0的图形库来介绍图形程序设计2。 Turboc 2.0为用户提供了一个功能很强的图形函数库,又称为B

10、orland 图形接口(BGI)。编写图形程序时用到的一些图形库函数均包括在graphics.lib中。用到这些函数时,必须把图形头文件graphics.h包含进来6。 计算机显示器的显示模式按功能可以分为字符模式和图形模式两大类。因此要进行图形编程,首先要对图形模式进行初始化。不同的显示器适配器有不同的图形分辨率。即使是同一显示器适配器,在不同模式下也有不同分辨率。因此,在屏幕作图之前,必须根据显示器适配器的种类将显示器设置成为某种图形模式。在未设置图形模式之前,微机系统默认屏幕为文本模式(80列,25行字符模式),此时所有图形函数均不能工作。 设置屏幕为图形模式,可用下列图形初始化函数:

11、void far initgraph (int far* gdriver,int far *gmode,char *path); 其中gdriver和gmode分别表示图形驱动器和模式,path是指图形驱动程序所在的目录路径。图形驱动程序由Turbo C出版商提供,文件扩展名为BGI。根据不同的图形适配器有不同的图形驱动程序。例如对于EGA、VGA图形适配器的图形驱动程序为EGAVGA.BGI。 有时编程者并不知道所用的图形显示器适配器种类,而且我们为了将编写的程序可以用于不同图形驱动器,增强程序的通用性,我们通常不指定图形显示器适配器种类,而使用Turbo C提供了一个自动检测显示器硬件的函

12、数,其调用格式为:void far detectgraph ( int *gdriver, *gmode);例1:自动进行硬件测试后进行图形初始化2 #include graphics.h main( ) int gdriver, gmode; detectgraph(&gdriver, &gmode); /*自动测试硬件*/ printf(driver is %d, mode is %dn, gdriver,gmode); /*输出结果*/ getch(); initgraph(&gmode, ); /* 根据测试结果初始化图形*/ circle(320,240,50); closegrap

13、h(); 上例程序中先对图形显示器自动检测,然后再用图形初始化函数进行初始化设置。其中,closegraph()为退出图形状态的函数,其调用格式为:voidfarclosegraph(void);调用该函数后可退出图形状态而进入文本方式,并释放用于保存图形驱动程序和字体的系统内存。同时TurboC提供了一种更简单的初始化图形的方法,即用gdriver=DETECT语句后再跟initgraph()函数就行了。比如,上例可改为如例2的情形2。例2:对例1的修改 main() int gdriver=DETECT, gmode; 对图形模式进行了初始化后,接下来要进行的工作是对于图形模式的屏幕颜色设

14、置以及如何清屏。对于图形模式的屏幕颜色设置,分为背景色的设置和前景色的设置。在Turbo c中分别使用以下两个函数: 背景色设置函数:void far setbkcolor (int color);该函数将使背景按照参数color指定的颜色来进行显示。 前景色设置函数:void far setcolor (int color);该函数将使前景按照参数color指定的颜色来进行显示。清除图形屏幕内容使用清屏函数,其调用格式如下void far cleardevice(void);该函数清除整个屏幕的内容,可以在绘图前调用这个函数进行清屏或者在画新图形时调用该函数清除以前画的图形。有关颜色设置、清

15、屏函数的使用请看例3的示例2。例3:清屏函数的使用stdio.h int gdriver, gmode, i,j; gdriver=DETECT; /*图形初始化*/ setbkcolor(0); /*设置图形背景*/ cleardevice(); setcolor(1); /*设置不同作图色*/ circle(319, 239, 20); /*画圆*/ setbkcolor(1); /*设置不同背景色*/ 另外,TURBOC也提供了几个获得现行颜色设置情况的函数。 int far getbkcolor(void); 返回现行背景颜色值。 int far getcolor(void); 返回现

16、行作图颜色值。 int far getmaxcolor(void); 返回最高可用的颜色值。接下来介绍一些基本的图形函数: 画点函数:void far putpixel(int x, int y, int color); 画线函数:Turboc提供了一系列画线函数,下面介绍其中最常用的一种:void far line(int x0, int y0, int x1, int y1); 画(x0, y0)到(x1, y1)的直线。 图形填充函数:void far setfillstyle(int pattern, int color); color的值是当前屏幕图形模式时颜色的有效值。 图形模式下

17、的文本输出函数:void far outtextxy(int x, int y, char far *textstring);该函数输出字符串指针textstring所指的文本在规定的(x, y)位置。其中x和y为象元坐标。1.3.2 图形模式下的汉字显示在编写一些应用软件时,为了使软件更为通俗浅显、易学易用,具备汉字的用户界面是必不可少的条件。在文本模式下,只要有汉字操作系统的支持,显示汉字是不成问题的。只要用printf或cprintf就可以了。在图形模式下显示汉字就稍稍麻烦些。我们可以定义一个函数来用于汉字的显示。这个函数不需要汉字系统的支持,但用到其中的字库文件2。下面我看一个例子是如

18、何实现汉字显示的。例4:图形模式下16点阵汉字的显示void HZ16(int x0,int y0,int w,int color,char *s)/*横坐标,纵坐标,字间隔,汉字颜色,汉字字符串*/ FILE *fp; register char buffer32; register char str2; unsigned long fpos;/*fpos为最终偏移动量*/ register int i,j,k; fp=fopen(hzk16,r/*打开16*16汉字库*/ while(*s)/*一直到字符串结束为止*/ if(*s0)/*汉字输出*/ str0=(*s)-0xa0; str

19、1=*(s+1)-0xa0; fpos=(str0-1)*94+(str1-1)*32L;/*计算汉字在hzk16的偏移量*/ fseek(fp,fpos,SEEK_SET);/*指针移动到当前位置*/ fread(buffer,32,1,fp);/*读取一个汉字到数组中*/ for(i=0;i16;i+)/*16行*/ for(j=0;j2;j+)/*两个字节*/ for(k=0;k(7-k)&0x1)!=NULL)/*是一就画点*/ putpixel(x0+8*j+k,y0+i,color); s+=2;/*一个汉字占两个字节,现在将指针移动两个字节*/ x0+=w;/*显示坐标也按照间隔

20、移动*/ else/*显示非汉字字符*/ settextstyle(0,0,1); setcolor(color); str0=*s;str1=0; outtextxy(x0,y0+7,str);/*显示单个字符*/ x0+=w-7;/*显示单个字符后的x坐标变化*/ s+;/*指针移动到下一个字节*/ fclose(fp);/* 关闭16*16汉字库*/ 1.3.3 Turboc(V2.0)编译错误信息 为了帮助读者调试程序和分析程序,下面简单介绍程序出错的种类1。Turboc(V2.0)的源程序错误分为三种类型:致命错误、一般错误和警告。其中,致命错误通常是内部编译出错;一般错误指程序的语

21、法错误、磁盘或内存存取错误或命令行错误等;警告则只是指出一些得怀疑的情况,它并不防止编译的进行。下面按字母顺序AZ分别列出致命错误及一般错误信息,英汉对照及处理方法:(1)致命错误英汉对照及处理方法:A-B致命错误Bad call of in-line function (内部函数非法调用)分析与处理:在使用一个宏定义的内部函数时,没能正确调用。一个内部函数以两个下划线(_)开始和结束。Irreducable expression tree (不可约表达式树)这种错误指的是文件行中的表达式太复杂,使得代码生成程序无法为它生成代码。这种表达式必须避免使用。Register allocation

22、failure (存储器分配失败)这种错误指的是文件行中的表达式太复杂,代码生成程序无发把它生成代码。此时应简化这种繁杂的表达式或干脆避免使用它。(2)一般错误信息英汉照及处理方法详见参考文献11.4 其它相关工具软件1.4.1 Dos屏幕下程序截图工具介绍及Dos抓图技巧现在的抓图软件基本上都只能在Windows 下运行,可有时候我们还需要在纯DOS 下(注意:不是Windows 中的DOS 模式)进行屏幕抓取工作。可以通过安装虚拟机来解决这个问题,但是很麻烦,怎么办呢?下面介绍一个工具Graffix,帮你完成纯DOS下的截图任务。用Graffix 完成抓图操作一般情况下都要分成两个主要步骤

23、:先将屏幕捕捉AT格式然后用附带的转换工具将ATF 格式转换为GIF 或者PCX 图像格式。(1)ATF 文件的获得进入纯DOS 后,在命令行后输入“DGFX”并回车,将出现用法提示(图1),可以看到抓取热键是“C t r l + A L T空格键”。从内存卸载此程序的命令是“DGFX/U”。运行需要抓图的程序,出现待抓画面后,按下热键,屏幕弹出提示(图2 ),输入文件名后按F1 键可以将画面抓取为A T F 格式,如果直接按E n t e r 键,则得到的是TXT 文本格式。(2)将ATF 转换为GIF/PCX 图像格式ATF 格式的图片不能被Windows 下应用程序所识别,因此我们需要将

24、前面抓取到的ATF 格式转换为GIF 或者PCX 格式。在DOS 提示符后输入“A2B”,回车,输入ATF 文件名,之后在屏幕上会显示该ATF 文件的内容。再次按下热键“CTRL+ALT+ 空格”,会出现“SAVE IN WHICH FORMATGIF OR PCX(G/P)”的提示(询问你是将文件保存为GIF 还是PCX 格式),此时若按下字母G,则通过下面的步骤会将ATF 转换为GIF 格式;如按字母“P”则可得到PCX 格式。输入最终要得到的文件的主文件名并回车。现在进入软件目录看看,是不是得到所需要的GIF 或PCX 图像文件了?若要抓取的程序画面本身是图形模式,则将直接得到GIF 或

25、PCX 图像格式的文件,从而可以省略转换步骤。1.4.1 拓扑图制作工具亿图V1.6.3 亿图是一款类似Visio的流程图、网络图绘制软件,新颖小巧,功能强大,可以很方便的绘制各种专业的业务流程图,程序流程图,数据流程图,网络拓扑图等。它在设计时采用全拖曳式操作,最大限度的简化用户的工作量,方便易用;提供各种图形模板库,方便专业人士的使用;提供强大的图文混排和所见即所得的图形打印。 2 需求分析2.1 问题定义2.1.1 问题分析本系统要完成的工作是通过对数据结构中经典算法的模拟,经用户输入数据和对数据处理后最终以图形的方式实时显示在屏幕上,从而使得抽象的算法形象化、生动化。用户通过使用这个动

26、态的演示软件就能很好的理解算法的含义。2.1.2 用户目标 本系统可适应读者对算法的输入数据和过程执行的控制方式的不同需求, 在计算机的屏幕上显示算法执行过程中数据的逻辑结构或存储结构的变化状况或递归算法执行过程中栈的变化状况。整个系统使用键盘操作和菜单驱动方式。每个菜单项对应一个动作或一个子菜单。系统一直处于选择菜单项或执行动作状态, 直到选择了退出动作为止。用户的目标也就是该演示系统所希望达到的目的。2.2 系统的功能需求 系统的功能需求也即是本系统要实现的具体内容。算法演示系统要求能够动态演示数据结构中的算法的执行过程。用户可以自由选择演示的算法,且在执行某一个特定算法操作演示前提示用户

27、输入操作元素及操作方法。由于时间有限而要演示的算法很多,故这里我以几个经典算法为例子,实现它们的动态演示并掌握这种方法,起到抛砖引玉的作用,希望大家能够不断完善这个系统。本系统要演示的内容包括四个经典算法:冒泡排序、汉诺塔的递归算法、单链表建立和二叉树的建立与遍历,由主界面菜单显示。2.2.1 正确表达算法这是最基本的一项要求,算法演示的目的本来就是让大家更好地学习理解算法,演示只是一种手段,目的是降低知识难度,传递知识,因此首先得保证知识的正确性。2.2.2 功能实用化 为了真正起到深入理解算法的效果,系统使用多种演示手段如单步跟踪和连续执行等多种调用方式来演示算法的执行过程。为了针对用户的各种需要,演示的速度可以由用户自己调节。2.2.3 具体演示功能A. 冒泡排序算法选择系统自动产生随机数据和手动输入数据两种方式;选择自动排序和手动单步排序两种方式 ;屏幕上显示算法执行过程并输出所有排序序列。B. 汉诺塔递归算法任意输入演示的个数;选择电脑自动演示和手

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1