vb课程设计模拟查找过程

上传人:工**** 文档编号:509453468 上传时间:2023-03-20 格式:DOC 页数:4 大小:98KB
返回 下载 相关 举报
vb课程设计模拟查找过程_第1页
第1页 / 共4页
vb课程设计模拟查找过程_第2页
第2页 / 共4页
vb课程设计模拟查找过程_第3页
第3页 / 共4页
vb课程设计模拟查找过程_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《vb课程设计模拟查找过程》由会员分享,可在线阅读,更多相关《vb课程设计模拟查找过程(4页珍藏版)》请在金锄头文库上搜索。

1、模拟查找过程设计报告学院材料学院班级材料 074学号072017姓名韩世超成绩一、设计思路1.要达到的目的( 1)基本目的:能够完成一批数据的输入并显示,使用Label 控件数组显示。对线性查找和折半查找两种算法过程进行模拟。使用 Label 控件设置查找过程的指针,线性查找只需1 个指针,而折半查找需要3 个,在模拟查找的过程中,要求指针动态改变位置,需要用到Timer 控件,时间间隔为1 秒。除了使用Option 控件进行查找方法的选择,还可以使用菜单项进行选择。查找结果的查询要求使用菜单命令调用另一窗体来实现。查找结果的显示可以将找到的数据用特殊的颜色标识出来。( 2)创新目的: 如果输

2、入的目标数据不是数字,可以检测并使输入框获得焦点。 如果没有找到数据,在查找结果的窗体中作相应的提示。 检测输入的数据,如果不正确那么提示再次输入。 折半查找中批数据必须是有序的,可以对输入的数据进行验证,如果顺序不对,要重新输入。 折半查找中如果批数据中有重复数据,可以找到并标出重复数据及位置。如123455567892.关键问题的解决1、 在 Form_load 事件中,让数字指针不可见。2、 在批数据的输入中,用INPUTBOX函数进行输入,并显示到标签控件数组上。3、 将批数据的背景颜色设置为最开始的颜色。如果选择的是线性查找,则使1 个Label 控件指针可见,否则 应使3 个Lab

3、el控件指针可见,并根据查找方法指向相应的初始位置。然后启动Timer1控件。( 1)折半查找时指针初始位置如下,由于高度是固定不变的,这里不用考虑。= Label1(nMin).Left + Label1(nMin).Width / 2 -/ 2= Label1(nHalf).Left + Label1(nHalf).Width / 2 -/ 2= Label1(nMax).Left + Label1(nMax).Width / 2 -/ 2( 2)线性查找时的指针位置设置如下:= Label1(nIndex).Left + Label1(nIndex).Width / 2 -/ 2二、模块

4、之间的调用关系,或程序流程图开始查找Option1线性查找Option2折半查找调用调用tmer_line控件tmer_half控件三、部分程序关键源代码及注释Private Sub tmer_half_Timer()折半查找过程= Label1(nMin).Left + Label1(nMin).Width / 2 -/ 2= Label1(nHalf).Left + Label1(nHalf).Width / 2 -/ 2= Label1(nMax).Left + Label1(nMax).Width / 2 -/ 2If nIsOrdered(nNum, nTotal_Num) = OR

5、DER_UP Then按升序排列时的查找If nNum(nMin) = nTarget Then检验最小值是否为目标值= + 查找到目标数字 & nTarget & 位于第 & nMin + 1 & 位置 & vbCrLf Label1(nMin).BackColor = RGB(0, 255, 0)bHasFound = True End IfIf nNum(nMax) = nTarget Then检验最大值是否是目标值= + 查找到目标数字 & nTarget & 位于第 & nMax + 1 & 位置 & vbCrLf Label1(nMax).BackColor = RGB(0, 25

6、5, 0)bHasFound = TrueEnd IfIf nNum(nHalf) = nTarget Then检验中间值是否是目标值= + 查找到目标数字 & nTarget & 位于第 & nHalf + 1 & 位置 & vbCrLf Label1(nHalf).BackColor = RGB(0, 255, 0)nMax = nMax 1nHalf = (nMin + nMax) / 2可以实现重复数据的查找bHasFound = TrueElseIf nNum(nHalf) nTarget ThennMax = nHalfnHalf = (nMin + nMax) / 2End If

7、If nMax - nMin = 1 Then= True= FalseIf bHasFound = False Then=+ 没有查找到目标数字End IfEnd IfEnd IfEnd SubPrivate Sub tmer_line_Timer()线性查找= Label1(nIndex).Left + Label1(nIndex).Width / 2 -/ 2If nNum(nIndex) = nTarget Then查找到目标数字bHasFound = TrueLabel1(nIndex).BackColor = RGB(0, 255, 0)=+ 查找到目标数字 & nTarget &

8、 位于第 & nIndex + 1 & 位置 & vbCrLfEnd IfnIndex = nIndex + 1未查到目标数字的处理If nIndex nTotal_Num ThennIndex = 0= FalseIf bHasFound = False Then= 没有找到目标数字End If= TrueEnd IfEnd Sub四、设计方案的完善及目前存在的问题1设计方案要完善的地方折半查找时, 如果输入了无序数据则要求重新输入,使程序更加合理。输入量较大。 如果编辑程序使其实现自动排序将会2. 目前存在的问题折半查找时,由于时钟控件的作用,查找结果可能会在窗体中重复显示。五、本次设计的

9、收获及心得体会通过本次 VB 课程设计, 我不但在程序阅读和编辑方面得到很大的提高, 而且他还增加了我对于计算机软件的兴趣,为我打开了通往精彩的“程序”世界的大门。程序的成功运行需要无数次的调试,这个过程需要的是耐心与细心的品质, VB 课程设计再次告诉我,要有耐心与细心才能攻克我们面前的难关,不论是课程中的还是生活中的。六、对该题目和VB 设计的意见和建议1. 对该题目的意见和建议此题目有效地提高了学生综合利用VB语言进行程序设计的能力, 培养了学生利用VB的标准控件和基本算法进行应用程序设计的技能。这已经是一个很成熟的题目了。2对本次设计的意见和建议由于实验设计涉及的知识比课本本身要广很多, 在课堂上学到的知识远远不够。 所以希望课程设计的起步阶段老师可以给予学生更多的帮助和辅导。

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

当前位置:首页 > 资格认证/考试 > 自考

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