《冒泡法排序的动画演示课程设计》_精品.doc

《冒泡法排序的动画演示课程设计》_精品.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《冒泡法排序的动画演示课程设计》_精品

沈 阳 航 空 航 天 大 学 课程设计 学 号 :2009040601415 班 级 :姓 名 :赵炀 指导教师 :鲁墨武 2011年 7 月 4 日 沈阳航空航天大学 课程设计任务书 学院:机电工程学院 专业:机械设计制造及其自动化 班级学号:2009040601415 题目:“冒泡法”排序的动画演示 一、课程设计时间 2011年6月27日~7月1日。 二、课程设计内容 用控件数组技术实现动画演示,用冒泡法对一组随机数据(≥8个)由小到大排序,演示排序过程中元素变换的完整过程。 要求:排序过程中欲交换值的2个元素,使用明显颜色、闪烁效果,并要有延时,延时时间可在界面手动设置。排序过程可以随时停止和继续。 三、课程设计要求 程序质量: 贯彻事件驱动的程序设计思想。 用户界面友好,功能明确,操作方便;可以增加其它功能或修饰。 代码应适当缩进,并给出必要的注释,以增强程序的可读性。 课程设计说明书: 课设结束后,上交课程设计说明书和源程序。课程设计说明书的内容参见提供的模板。 四、指导教师和学生签字 指导教师:鲁墨武 学生签名:赵炀 五、成绩 六、教师评语 目 录 一、需求分析 4 二、设计分析 4 三、技术要点 5 四、总结 9 五、完整的源程序 10 六、参考文献 14 一、需求分析 题目要求用“冒泡法”对一组数据进行由小到大排序,并且动画演示排序过程中元素变换的过程。也就是表示,比较相邻两个数大小和交换值得过程要可见,并用明显的颜色来区分正在比较的两个数字。 颜色的变换、数字的交换实现了动画的效果。 二、设计分析 (1)基本原理: 冒泡法”排序——使用Label控件数组,多个Timer控件。分别用来进行数组的输入和控制程序的运行。 (2)总体设计: 从数组第一个数开始,对数组中两个相邻的数比较,即a(0)与a(1)比较,若为逆序,则a(0)与 a(1)交换;然后a(1) 与a(2)比较,···,直到最后a(N-1) 与a(N)比较,这时一轮比较完毕,一个最大的数“沉底 ”,成为数组中的最后一个元素a(N),一些较小的数如同气泡一样“上浮”一个位置。 然后对a(0) 与a(N-1)的N个数进行同(1)的操作,次最大的数放入a(N-1)元素内,完成第二轮排序;依次类推,进行N轮排序后,所有的数均有序。排序结束。 三、技术要点 (1)产生随机数,并对标签数组赋值 Private Sub Command1_Click() Dim a(9) As Integer, n As Integer For n = 1 To 10 a(n - 1) = Int(n * 10 * Rnd + 8 - n) 产生随机数 Label1(n - 1).Caption = a(n - 1) 对个标签赋值 Next n Timer1.Enabled = True Timer2.Enabled = False Timer3.Enabled = False Timer4.Enabled = True Command1.Enabled = False Command2.Enabled = True Command3.Enabled = False Command4.Enabled = True End Sub 图1产生随机数,并对标签数组赋值 (2)正在比较的两个数标签颜色分别为红色和绿色 Static a As Integer, b As Integer If a = 9 Then a = 0: b = b + 1 End If If a + 1 = 10 - b - 1 Then 在上一轮比较中最后两个数不参加本轮比较 Label1(a).BackColor = QBColor(12) 正在比较的两个数颜色改变 Label1(a + 1).BackColor = QBColor(10) End If a = a + 1 Timer2.Enabled = True Timer1.Enabled = False End Sub 图2 在比较大小的两个数 (3)若两个数逆序排列则其标签显示边框并交换数字,交换数字后标签颜色变为黄色 Private Sub Timer2_Timer() Static i As Integer, j As Integer If i = 9 Then i = 0 End If If Val(Label1(i).Caption) Val(Label1(i + 1).Caption) Then Label1(i).BorderStyle = 1: Label1(i + 1).BorderStyle

文档评论(0)

seunk + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档