欢迎来到天天文库
浏览记录
ID:41513511
大小:136.22 KB
页数:6页
时间:2019-08-26
《c语言二分法查找法的图形演示程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、电子实习报告这次电子实习的目的是为了提高我们的编程能力,与上次的电工实习一样重要,要成为一名合格的大学本科毕业生,这是一个不可或缺的环节,所以我们要把握好这次机会,全力以赴,做到更好。(一)需求分析这次实习,每个同学的题目都不一样,这才能考验学生的水平嘛,我的题目是:编写二分法查找法的图形演示程序,用箭头跟踪指示出二分查找过程中的查找位置。当我刚拿到题目的时候,顿时吃了一惊,这也太难了,让我用二分法查找一个数还说的过去,那个我们学过,可是要用箭头跟踪指示出来可就让我大伤脑筋,用C语言绘图我们压根就没学过,我还想跟指导老师好好商量商量,让她多给点提示,可是仔细一想,要是我学过,这两
2、个星期都花上面都不合算,这也就是实习的目的所在啊,就的现学现用,顺便培养一下我们的自学能力,真是一箭双雕啊。接着,还是在指导老师的指点下,我先去图书馆找找相关的资料,用是碰钉子了,C语言这方面的书是少之又少,而且也是盲目的在那翻阅,见与绘图有关的书都翻翻,还是没有头绪,最后借了本C语言精彩编程。接着我又借了一本C图象处理编程,只有这两本书的紧密结合才能编出我那程序。首先我的想法是只在BorlandC++这个环境下完成,先把头绪给理清一遍,从我这题目中可以看到,要编出来主要有两大步:二分法和跟踪箭头。这二分法查找要求被查找的数据是按照某种顺序排列的有序序列,因此应该先将数据排序,再
3、用二分法查找要查找的数据。二分法查找又称折半查找,是一种效率高的有序顺序表上的查找方法,下面讨论一下二分查找的实现方法:设顺序表存储在一维数组S中,设置三个变量low,high和mid,它们分别指向当前查找范围的下界,上界和中间位置。初始化时,令Iow=0,high=n-1,设置待查找数据元素的关键字为key.(1)mid=[Iow+high/2]・(2)比较Key与s[mid].key值的大小,若s[mid].key=Key,则查找成功,结束查找,若s[mid].key4、d+1,上界指示变量high的值保持不变。若s[mid].key>Key,表明关键字为Key的记录只可能存在于s[mid]的前半部,修改查找范围,令high=mid-1,变量low保持不变。(3)当前变量low与high的值,若low〈二high,重复执行第(1)步和第(2)步,若low>high,表明整个表已经查找完毕,表中不村在关键字为的Key记录。当然这里边也用到了冒泡排序法,所谓的冒泡排序就是指按增加或减少的顺序对一组类似的信息重新进行安排的过程。一般来说,当对信息进行排序时,只有信息中的某一小部分被用作排序的关键字,根据关键字对各元素进行比较。当必须要进行比较时,彼此交5、换的则是整个元素。以上是对数据的查找方法的分析,下面就具体说说跟踪箭头的问题:对于这个箭头也就是光标了,这用到了C语言的图象处理,有对光标的控制程序和显示程序。光标的显示是动态图象,即一个移动的图象在屏幕上的运动,它到某处就遮盖掉部分背景,当再移到别处时原来被覆盖的内容应该被恢复,否则画面要被移动的图象所破坏。动态显示一般由下列4个步骤组成:(1)图符与背景的异或来实现。第1次异或显示光标,第2次异或恢复背景。16色图形显示中的光标通常采用次法,WINDOWS图形编程中还时常采用这种方法。(2)存储背景参数(字符、图象名称等〉,恢复时再重新生成。文字画面或下拉式菜单等通常采用此法6、。DOS环境下的字处理软件常采用这种方法。(3)用存储背景图象像素数据的方法来实现。用get_image0子程序保存背景的图象数据,以后用put_image()子程序恢复数据。复杂的图象画面通常采用的方法。(二〉程序设计本程序用到好几种数据类型,有整型,结构体,字符型主函数的流程图如下:鬲入要从多少个数中查找鬲入那些具体数据鬲入要查找的那个数调用排序函数bubbIesort()调用那写生成箭头的函数settextstyle,inttoch等调用二分法查找函数binarysearch结束这就是主函数的流程图。(三〉调试分析在运行过程中,就是刚开始接触Turboc的时候很不了解,因为7、这那环境下,鼠标不能用,只能用键盘操作。(1)编好的文件也不知道怎么在Turboc下打开,摸索后才发现可以在load中打开,不过的先把文件放在Turboc文件下。(2)这也是调试时出现的错误,本以为程序应该没多大问题了,可出来五个错误,真让我束手无策,同样也是经过许久才找到问题所在,没改路径,所以有好多文件就找不找o这就是那个没修改路径出来错误的界面。出现这些错误都是因为我对那个Turboc环境不熟悉。在运行中也遇到问题,比如说,如果我查找的范围稍微大点,结果可能就看不到,因为设
4、d+1,上界指示变量high的值保持不变。若s[mid].key>Key,表明关键字为Key的记录只可能存在于s[mid]的前半部,修改查找范围,令high=mid-1,变量low保持不变。(3)当前变量low与high的值,若low〈二high,重复执行第(1)步和第(2)步,若low>high,表明整个表已经查找完毕,表中不村在关键字为的Key记录。当然这里边也用到了冒泡排序法,所谓的冒泡排序就是指按增加或减少的顺序对一组类似的信息重新进行安排的过程。一般来说,当对信息进行排序时,只有信息中的某一小部分被用作排序的关键字,根据关键字对各元素进行比较。当必须要进行比较时,彼此交
5、换的则是整个元素。以上是对数据的查找方法的分析,下面就具体说说跟踪箭头的问题:对于这个箭头也就是光标了,这用到了C语言的图象处理,有对光标的控制程序和显示程序。光标的显示是动态图象,即一个移动的图象在屏幕上的运动,它到某处就遮盖掉部分背景,当再移到别处时原来被覆盖的内容应该被恢复,否则画面要被移动的图象所破坏。动态显示一般由下列4个步骤组成:(1)图符与背景的异或来实现。第1次异或显示光标,第2次异或恢复背景。16色图形显示中的光标通常采用次法,WINDOWS图形编程中还时常采用这种方法。(2)存储背景参数(字符、图象名称等〉,恢复时再重新生成。文字画面或下拉式菜单等通常采用此法
6、。DOS环境下的字处理软件常采用这种方法。(3)用存储背景图象像素数据的方法来实现。用get_image0子程序保存背景的图象数据,以后用put_image()子程序恢复数据。复杂的图象画面通常采用的方法。(二〉程序设计本程序用到好几种数据类型,有整型,结构体,字符型主函数的流程图如下:鬲入要从多少个数中查找鬲入那些具体数据鬲入要查找的那个数调用排序函数bubbIesort()调用那写生成箭头的函数settextstyle,inttoch等调用二分法查找函数binarysearch结束这就是主函数的流程图。(三〉调试分析在运行过程中,就是刚开始接触Turboc的时候很不了解,因为
7、这那环境下,鼠标不能用,只能用键盘操作。(1)编好的文件也不知道怎么在Turboc下打开,摸索后才发现可以在load中打开,不过的先把文件放在Turboc文件下。(2)这也是调试时出现的错误,本以为程序应该没多大问题了,可出来五个错误,真让我束手无策,同样也是经过许久才找到问题所在,没改路径,所以有好多文件就找不找o这就是那个没修改路径出来错误的界面。出现这些错误都是因为我对那个Turboc环境不熟悉。在运行中也遇到问题,比如说,如果我查找的范围稍微大点,结果可能就看不到,因为设
此文档下载收益归作者所有