- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
最近下载
- 供方评价表(物流服务).docx VIP
- 给排水国标图集-02S404:防水套管.pdf VIP
- Unit3ComparisonandContrast市公开课一等奖省赛课微课金奖PPT课件.pptx
- 60kW-258kWh磷酸铁锂储能系统项目方案书.pdf
- 数量指标 质量指标 时效指标 成本指标.xls VIP
- 2024年联通新融合发展技能竞赛(业务管理及稽核赛道)试题库(含答案).docx
- 江苏开放大学维修电工第3次形考作业答案.pdf
- 2023冠状动脉造影日间手术专家共识(完整版).pdf
- DB51/T 2919-2022FDIS古树名木养护和抢救复壮及管理技术规程.pdf
- BS EN 16314-2013 国外国际规范.pdf
文档评论(0)