




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南京工程学院 课课程程设设计计报报告告 论论文文 题题 目目 排排序序演演示示 课课 程程 名名 称称 程程序序设设计计基基础础 VB 院院 系系 部部 中中心心 先先进进制制造造技技术术工工程程中中心心 专专 业业 机机械械制制造造及及其其自自动动化化 班班 级级 D机机加加工工091 学学 生生 姓姓 名名 钱钱丽丽 学学 号号 231090406 设设 计计 地地 点点 图图书书馆馆A307 指指 导导 教教 师师 黄黄陈陈蓉蓉 设设计计起起止止时时间间 2011 年年 1月月4 日日至至 2011 年年 1月月 6日日 成绩 2 目目 录录 一一 设设计计任任 务务 3 3 二二 总总体体设设计计思思 路路 4 4 三三 画画出出程程序序总总体体框框 图图 4 4 四四 系系统统的的调调 试试 6 6 五五 收收获获体体 会会 8 8 六六 源源代代 码码 9 9 七七 主主要要参参考考资资 料料 2 23 3 3 一一 设设计计任任务务 1 程序启动后 显示主界面 首先单击 产生10个随机数 按 钮来产生10个随机数 并显示在 10个文本框中 然后选择一种 演示模式 和 排序方式 其中演示模式可以直接给出排序 结果 也可以通过动画动态演示整个排序过程 排序方式可以 按从小到大顺序 也可以按从大到小顺序排序 2 在主窗口的空白区单击鼠标右键 弹出快捷菜单 从中选择 排序算法 命令 打开对话框 从中选择一种排序方式 单 击不同排序方式时 算法描述 中简要介绍了这种算法 单击 确定 按钮返回到主窗口 主窗口中最上方框架控件的标题 文字显示当前所选的排序算法 3 设置完毕 单击 开始排序 按钮 此按钮在生成数据之 前是不可用的 启动排序过程 若选择了动画方式 红色背景 的文本框表示当前正在比较的元素 黄色的代表已排序的元素 2 个运动的文本框表示交换过程 在排序过程中可以调节水平滚 动条的位置来控制演示过程的速度 排序结束后程序以消息框 的形式报告数据交换的次数 可以使用快捷菜单中的 将数据写入 文件 命令将排序后的数据保存到 data txt 中覆盖原有内容 4 选择窗口主菜单中的 颜色设置 命令 主窗口扩大 底 部显示 颜色设置 框架 可以对 文本背景色 文本前景色 已排序元素色 和 交换结点色 进行设置 再选择此命令 窗口恢复到原来的大小 4 5 选择主菜单中的 退出 命令可退出本程序 程序显示消息 对话框予以确认 2 系系统统总总体体设设计计方方案案 排序方法 多重窗体 窗体编辑器 设计界面 排 序 演 示 模块代码 信息提示框 编写代码 3 画画出出程程序序整整体体框框图图 1 1 快捷菜单 5 2 2 启启动动后后的的主主界界面面 3 3 确确认认退退出出对对话话框框 4 4 颜颜色色设设置置 6 5 5 显显示示交交换换次次数数 6 6 排排序序算算法法选选择择 对对话话框框 4 系系统统的的调调试试 1 问题 停止按钮不能使其在开始运行时候停止 解决 利用了 Boolean 逻辑变量 定义了一个使程序停止的变量f 然后又定义了一个 Private Declare Sub Sleep Lib kernel32 ByVal dwMilliseconds As Long 声明sleep函数 可以使程序暂停一段时 间 最后用时钟 timer 来设定所需暂停的随机时间 s 注意timer 函数设置时的 interval值 以毫秒为单位 1000ms 1s 2 问题 消息对话框 msgbox 的形式 及 msgbox函数的返回值如何 7 的选取 设置 解决 在对 停止 按钮编码时 一开始未给 msgbox赋值 导致程 序不起作用 后来赋值后 采用了msgbox函数里的vbyes与vbno 采 用了if then else 但程序无法退出 最后只对 vbno做了代码编 制 退出程序则采用了 unload 函数 最后程序终于调试成功 3 问题 动态演示如何演变 交换次数无法得到 解决 采用timer函数 以时间来对它进行控制 也可以拖得滚动 条来控制它动态演示时的速度 演示代码 If a k a j And Option1 Value Then Text1 k 1 BackColor yanse1 交换元素颜色 Text1 j 1 BackColor yanse1 DoEvents Call Sleep 1000 调用了函数 sleep linshi a j a j a k a k linshi jiaohuan jiaohuan 1 Text1 k 1 Text a k Text1 j 1 Text a j Text1 k 1 BackColor yanse 已经排序的颜色 Text1 j 1 BackColor yanse End If If a k a 10 Then Text2 0 Text a 1 12 Text2 1 Text a 10 Else Text2 0 Text a 10 Text2 1 Text a 1 End If For i 1 To 10 k a i k Next i Text2 2 Text k 10 End If 动态演示结果 If Form1 Optdongtai Value Then If Form2 Option1 Value Then Timer1 Enabled True ElseIf Form2 Option2 Value Then Timer1 Enabled True ElseIf Form2 Option3 Value Then Timer1 Enabled True ElseIf Form2 Option4 Value Then Timer1 Enabled True End If End If End Sub 暂停运行命令 Private Sub Command4 Click Dim i n s f False Timer1 Enabled False Timer1 Interval 1000 For i 1 To n s n 1 Next i Sleep n End Sub 默认 Private Sub Command5 Click Dim i For i 0 To 9 Combo1 Text 蓝色 Combo2 Text 绿色 Combo3 Text 红色 Combo4 Text 黄色 Text1 i BackColor vbBlue 13 Text1 i ForeColor vbGreen yanse vbRed yanse1 vbYellow Next End Sub 窗体启动的时候加载的程序 Private Sub Form Load Command3 Enabled False Command4 Enabled False Frame4 Visible False Form2 Option1 Value True End Sub 快捷菜单 Private Sub Form MouseDown Button As Integer Shift As Integer X As Single Y As Single If Button 2 Then Form1 PopupMenu youjian End Sub 速度 Private Sub HScroll1 Change Timer1 Interval HScroll1 Smallchange End Sub 菜单退出的按钮 Private Sub mnu end Click Unload Form1 Unload Form2 End Sub 显示设置按钮 Private Sub mnu set Click If mnu set Checked True Then Form1 Height Form1 Height 1650 Frame4 Visible True mnu set Checked False ElseIf mnu set Checked False Then Form1 Height Form1 Height 1650 mnu set Checked True End If End Sub 写入数据 Private Sub shujuxie Click Dim i As Integer Open App Path data txt For Output As 1 For i 1 To 10 Write 1 a i Next i Close 1 14 End Sub 显示窗体 2 Private Sub suanfa Click Form2 Show End Sub 时间控件用来动态演示 Private Sub Timer1 Timer Static k As Integer j As Integer linshi As Integer jiaohuan As Integer i As Integer Dim X As Integer m As Single f True If f False Then Exit Sub End If If Form2 Option1 Value Then 比较法排序 If k 0 Then k 1 j 2 End If If j 11 Then k k 1 j k 1 End If If a k a j And Option1 Value Then 交换元素颜色 Text1 k 1 BackColor yanse1 Text1 j 1 BackColor yanse1 DoEvents Call Sleep 1000 linshi a j a j a k a k linshi jiaohuan jiaohuan 1 Text1 k 1 Text a k Text1 j 1 Text a j Text1 k 1 BackColor yanse 已经排序的元素颜色 Text1 j 1 BackColor yanse End If If a k a 10 Then Text2 0 Text a 1 Text2 1 Text a 10 Else Text2 0 Text a 10 Text2 1 Text a 1 End If For X 1 To 10 m a X m Next X Text2 2 Text m 10 End If j j 1 选择法排序 ElseIf Form2 Option2 Value Then k k 1 linshi a k 1 i k 1 If Option1 Value Then For j k 1 To UBound a If linshi a j Then linshi a j i j End If Next j If a k a i Then Text1 k 1 BackColor yanse1 Text1 i 1 BackColor yanse1 DoEvents Sleep 1000 linshi a i a i a k 16 a k linshi Text1 k 1 Text a k Text1 i 1 Text a i jiaohuan jiaohuan 1 Text1 k 1 BackColor yanse Text1 i 1 BackColor yanse End If End If If Option2 Value Then For j k 1 To UBound a If linshi a j Then linshi a j i j End If Next j If a k a 10 Then Text2 0 Text a 1 Text2 1 Text a 10 Else Text2 0 Text a 10 Text2 1 Text a 1 17 End If For X 1 To 10 m a X m Next X Text2 2 Text m 10 End If ElseIf Form2 Option3 Value Then 插入法排序 i i 1 For j 1 To i If a i a j And Option2 Value Then Text1 i 1 BackColor yanse1 Text1 j 1 BackColor yanse1 DoEvents Sleep 1000 linshi a i For k i To j 1 Step 1 a k a k 1 Next k a j linshi Text1 i 1 BackColor yanse Text1 j 1 BackColor yanse jiaohuan jiaohuan 1 For X j To i Text1 X 1 Text a X Next X End If Next j 18 If i 10 Then i 0 j 0 k 0 Timer1 Enabled False MsgBox Frame1 Caption 排序结束 交换次数为 jiaohuan 次 vbOKOnly vbInformation 系统提示 jiaohuan 0 If a 1 a 10 Then Text2 0 Text a 1 Text2 1 Text a 10 Else Text2 0 Text a 10 Text2 1 Text a 1 End If For X 1 To 10 m a X m Next X Text2 2 Text m 10 End If ElseIf Form2 Option4 Value Then 冒泡法排序 j j 1 If j 10 k Then k k 1 j 1 End If If a j a j 1 And Option1 Value Then Text1 j 1 BackColor yanse1 Text1 j BackColor yanse1 DoEvents Sleep 1000 linshi a j 1 a j 1 a j a j linshi jiaohuan jiaohuan 1 Text1 j 1 Text a j Text1 j Text a j 1 Text1 j 1 BackColor yanse Text1 j BackColor yanse End If If a j a 10 Then Text2 0 Text a 1 Text2 1 Text a 10 Else Text2 0 Text a 10 Text2 1 Text a 1 End If For X 1 To 10 m a X m Next X Text2 2 Text m 10 End If End If End Sub Private Sub wenjiandu Click 从文件中读取数据 Dim i As Integer Open App Path data txt For Input As 1 For i 1 To 10 Input 1 a i Text1 i 1 Text a i Next i Command3 Enabled True Command4 Enabled True End Sub 比较法排序 20 Private Function bijiao paixu As Integer As Integer Dim k As Integer j As Integer linshi As Integer jiaohuan 0 For k 1 To UBound paixu 1 If Option1 Value Then For j k To UBound paixu If paixu k paixu j Then linshi paixu j paixu j paixu k paixu k linshi End If Next j ElseIf Option2 Value Then For j k To UBound paixu If paixu k paixu j 1 Then linshi paixu j 1 paixu j 1 paixu j paixu j linshi End If Next j ElseIf Option2 Value Then For j 1 To UBound paixu k If paixu j paixu j Then linshi paixu j m j End If Next j If paixu k paixu m And Option1 Value Then linshi paixu m paixu m paixu k paixu k linshi End If If Option2 Value Then linshi paixu k 1 m k 1 For j k 1 To UBound paixu If linshi paixu j Then linshi paixu j m j End If Next j If paixu k paixu m Then linshi paixu m paixu m paixu k paixu k linshi End If End If Next k End Function 插入法排序 Private Function charu paixu As Integer As Integer Dim i As Integer j As Integer k As Integer linshi As Integer For i 1 To UBound paixu For j 1 To i 22 If paixu i paixu j And Option2 Value Then linshi paixu i For k i To j 1 Step 1 paixu k paixu k 1 Next k paixu j linshi End If Next j Next i End Function 窗体2的源代码 Option Explicit Private Sub Command1 Click Form2 Visible False End Sub Private Sub Option1 Click Text1 Text Text1 Text 所谓比较法就是 第一轮从a 1 开始 一次讲 A 1 与其后的所有元素逐个进行 比较 如果其后的某一个元素比A 1 小 则将两者对调 这样第一轮结束后A 1 中保留的是 1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 精制盐工内部技能考核试卷及答案
- 耐火材料成型操作工内部技能考核试卷及答案
- 工业废气废水处理解决方案创新创业项目商业计划书
- 多工序数控机床操作调整工特殊工艺考核试卷及答案
- 酶制剂发酵工晋升考核试卷及答案
- 世界舞蹈日策划活动方案
- 电梯屏广告代理营销方案
- 护士模拟考试题及答案解析
- 8 数学探究活动(二) 探究函数性质教学设计-2025-2026学年北师大版2019选择性必修 第二册-北师大版2019
- 化工检修钳工协作考核试卷及答案
- GB/T 46084-2025燃煤锅炉火焰温度图像检测技术规范
- 2025年贵州省毕节市辅警招聘考试题题库(含参考答案)
- 女职工法律培训
- 2025年辅警考试公共基础知识真题库(含答案)
- 2025劳动合同范本下载
- 2025-2026学年高二上学期数学第一次月考立体几何卷全解析【测试范围:沪教版2020必修第三册第十章】(上海专用)
- 小学法律知识竞赛试题(附答案)
- 浙教版(2023)五年级上册信息科技 第1课 身边的算法 课件
- 2025年五年级上学期语文第一单元测试卷含答案
- Unit 3 Places we live in单元整体公开课一等奖创新教学设计表格式(5课时)
- 2025年4月自考02204经济管理试题及答案
评论
0/150
提交评论