下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、模拟查找过程设计报告学院材料学院班级 材料074 学号 072017姓名 韩世超成绩、设计思路1. 要达到的目的(1)基本目的:能够完成一批数据的输入并显示,使用Label控件数组显示。对线性查找和折半查找两种算法过程进行模拟。使用Label控件设置查找过程的指针,线性查找只需1个指针,而折半查找需要 3个,在模拟查找的过程中,要求指针动态改变位置,需要用到Timer控件,时间间隔为1秒。除了使用Option控件进行查找方法的选择,还可以使用菜单项进行选择。查找结果的查询要求使用菜单命令调用另一窗体来实现。查找结果的显示可以将找到的数据用特殊的颜色标识出来。(2)创新目的: 如果输入的目标数据
2、不是数字,可以检测并使输入框获得焦点。如果没有找到数据,在查找结果的窗体中作相应的提示。 检测输入的数据,如果不正确那么提示再次输入。 折半查找中批数据必须是有序的,可以对输入的数据进行验证,如果顺序不对,要重新输入。折半查找中如果批数据中有重复数据,可以找到并标出重复数据及位置。如1 23 45556 78 92关键问题的解决1、在Formoad事件中,让数字指针不可见。2、在批数据的输入中,用 INPUTBOX函数进行输入,并显示到标签控件数组上。3、 将批数据的背景颜色设置为最开始的颜色。如果选择的是线性查找,则使1个Label控件指针可见,否则应使3个Label控件指针可见,并根据 查
3、找方法指向相应的初始位置。然后启动Timer1控件。(1)折半查找时指针初始位置如下,由于高度是固定不变的,这里不用考虑。=Label1(nMin).Left + Label1(nMin).Width / 2 -/ 2=Label1( nH alf).Left + Label1( nH alf).Width / 2 -/ 2=Label1( nM ax).Left + Label1( nM ax).Width / 2 -/ 2(2)线性查找时的指针位置设置如下:=Label1( nIn dex).Left + Label1( nIn dex).Width / 2 -/ 2、模块之间的调用关系,
4、或程序流程图三、部分程序关键源代码及注释Private Sub tmer_half_Timer()折半查找过程=Label1( nMin ).Left + Label1( nMin) .Width / 2 -/ 2=Label1( nHalf).Left + Label1( nHalf).Width / 2 -/ 2=Label1( nM ax).Left + Label1( nM ax).Width / 2 -/ 2按升序排列时的查找检验最小值是否为目标值If n lsOrdered( nNum, n Total_Num) = ORDER_UP ThenIf nNum(nMin) = n T
5、arget Then=+ 查找到目标数字” & nTarget & ”位于第” & nMin + 1 & ”位置” & vbCrLfLabel1(nMin).BackColor = RGB(O, 255, 0) bHasF ound = TrueEnd IfIf n Num( nM ax) = n Target The n检验最大值是否是目标值=+ 查找到目标数字” & nTarget & ”位于第” & nMax + 1 & ”位置” & vbCrLfLabel1( nM ax).BackColor = RGB(0, 255, 0)bHasF ound = TrueEnd IfIf n Nu
6、m( nHalf) = n Target The n检验中间值是否是目标值=+ 查找到目标数字” & nTarget & ”位于第” & nHalf + 1 & ”位置” & vbCrLfLabel1( nH alf).BackColor = RGB(0, 255, 0)nMax = nMax -1可以实现重复数据的查找nH alf = (nMin + nM ax) / 2bHasFound = TrueElseIf nNum(nHalf) nTarget Then nMax = nHalf nHalf = (nMin + nMax) / 2End IfIf nMax - nMin = 1 T
7、hen= True= FalseIf bHasFound = False Then= + 没有查找到目标数字End IfEnd IfEnd IfEnd Sub折半查找的过程Private Sub tmer_line_Timer() 线性查找= Label1(nIndex).Left + Label1(nIndex).Width / 2 -/ 2If nNum(nIndex) = nTarget ThenbHasFound = TrueLabel1(nIndex).BackColor = RGB(0, 255, 0)= + 查找到目标数字 & nTarget & 位于第 & nIndex + 1
8、End IfnIndex = nIndex + 1If nIndex nTotal_Num ThennIndex = 0= FalseIf bHasFound = False Then查找到目标数字& 位置 & vbCrLf未查到目标数字的处理End If= 没有找到目标数字= TrueEnd IfEnd Sub四、设计方案的完善及目前存在的问题1设计方案要完善的地方折半查找时, 如果输入了无序数据则要求重新输入, 输入量较大。 如果编辑程序使其实现自动排序将会 使程序更加合理。2. 目前存在的问题折半查找时,由于时钟控件的作用,查找结果可能会在窗体中重复显示。五、本次设计的收获及心得体会通过本次 VB 课程设计, 我不但在程序阅读和编辑方面得到很大的提高, 而且他还增加了我对于计算机 软件的兴趣,为我打开了通往精彩的“程序”世界的大门。程序的成功运行需要无数次的调试,这个过程需 要的是耐心与细心的品质, VB 课程设计再次告诉我,要有耐心与细心才能攻克我们面前的难关,不论是课 程中的还是生活中的。六、对该题目和 VB 设计的意见和建议1. 对该题目的意见和建议此题目有效地提高了学生综合利用 VB语
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025南平松溪县城市管理综合执法大队招聘辅助执法人员4人参考题库附答案
- 2025四川广安市岳池县天平镇人民政府招聘社区专职网格员1人考试备考题库附答案
- 2025年洛阳市公安机关招聘辅警501名备考题库附答案
- 2025广西防城港东兴出入境边防检查站公开招聘警务辅助人员15人参考题库及答案1套
- 2026宜兴农商银行寒假大学生实习开始招募备考题库及答案详解一套
- 2026中国科学院广州地球化学研究所科研助理招聘1人备考题库(高温高压实验学科组)及完整答案详解一套
- 2025中船西南(重庆)装备研究院有限公司招聘机器人应用软件工程师、算法工程师等岗位备考题库及1套完整答案详解
- 2025年漯河市自然资源和规划局所属事业单位人才引进1名备考题库及参考答案详解
- 2025-2030気体分析装置のサンプル注入系統と定量評価技術
- 2025-2030武夷山红茶产业竞争力分析产业链发展投资评估规划
- JT-T 1037-2022 公路桥梁结构监测技术规范
- 综合能源管理系统平台方案设计及实施合集
- 共享单车对城市交通的影响研究
- 学校宿舍楼施工组织设计方案
- GB/T 7216-2023灰铸铁金相检验
- 学术论文的撰写方法
- 上海市汽车维修结算工时定额(试行)
- 贵州省晴隆锑矿采矿权出让收益评估报告
- 中心小学11-12学年度教师年度量化评分实施方案
- SH/T 1627.1-1996工业用乙腈
- JJG 1030-2007超声流量计
评论
0/150
提交评论