课程设计(论文)“冒泡法”排序的动画演示

上传人:M****1 文档编号:458273216 上传时间:2023-04-30 格式:DOC 页数:14 大小:267.50KB
返回 下载 相关 举报
课程设计(论文)“冒泡法”排序的动画演示_第1页
第1页 / 共14页
课程设计(论文)“冒泡法”排序的动画演示_第2页
第2页 / 共14页
课程设计(论文)“冒泡法”排序的动画演示_第3页
第3页 / 共14页
课程设计(论文)“冒泡法”排序的动画演示_第4页
第4页 / 共14页
课程设计(论文)“冒泡法”排序的动画演示_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《课程设计(论文)“冒泡法”排序的动画演示》由会员分享,可在线阅读,更多相关《课程设计(论文)“冒泡法”排序的动画演示(14页珍藏版)》请在金锄头文库上搜索。

1、沈 阳 航 空 航 天 大 学 课程设计 学 号 : 班 级 : 9姓 名 : 指导教师 : 2011年 7 月 4 日沈阳航空航天大学课程设计任务书学院:机电工程学院 专业:机械设计制造及其自动化 班级:94060114学号:25 题目:“冒泡法”排序的动画演示一、课程设计时间2011年6月27日7月1日。二、课程设计内容用控件数组技术实现动画演示,用冒泡法对一组随机数据(8个)由小到大排序,演示排序过程中元素变换的完整过程。要求:排序过程中欲交换值的2个元素,使用明显颜色、闪烁效果,并要有延时,延时时间可在界面手动设置。排序过程可以随时停止和继续。三、课程设计要求程序质量: 贯彻事件驱动的

2、程序设计思想。 用户界面友好,功能明确,操作方便;可以增加其它功能或修饰。 代码应适当缩进,并给出必要的注释,以增强程序的可读性。课程设计说明书: 课设结束后,上交课程设计说明书和源程序。课程设计说明书的内容参见提供的模板。四、指导教师和学生签字指导教师: 学生签名: 五、成绩六、教师评语目 录一、需求分析3二、设计分析3三、技术要点3四、总结3五、完整的源程序3六、参考文献3一、需求分析题目要求用“冒泡法”对一组数据进行由小到大排序,并且动画演示排序过程中元素变换的过程。也就是表示,比较相邻两个数大小和交换值得过程要可见,并用明显的颜色来区分正在比较的两个数字。颜色的变换、数字的交换实现了动

3、画的效果。二、设计分析(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轮排序后,所有的数均有序。排序

4、结束。三、技术要点(1)产生随机数,并对标签数组赋值Private Sub Command1_Click()Dim a(9) As Integer, n As IntegerFor n = 1 To 10a(n - 1) = Int(n * 10 * Rnd + 8 - n) 产生随机数Label1(n - 1).Caption = a(n - 1) 对个标签赋值Next nTimer1.Enabled = TrueTimer2.Enabled = FalseTimer3.Enabled = FalseTimer4.Enabled = TrueCommand1.Enabled = FalseC

5、ommand2.Enabled = TrueCommand3.Enabled = FalseCommand4.Enabled = TrueEnd Sub图1产生随机数,并对标签数组赋值(2)正在比较的两个数标签颜色分别为红色和绿色Static a As Integer, b As IntegerIf a = 9 Thena = 0: b = b + 1End IfIf a + 1 Val(Label1(i + 1).Caption) ThenLabel1(i).BorderStyle = 1: Label1(i + 1).BorderStyle = 1 逆序的两个数标签显示边框 j = Lab

6、el1(i).Caption: Label1(i).Caption = Label1(i + 1): Label1(i + 1) = j 将逆序的两个数调换位置 Label1(i).BackColor = QBColor(14) 改变顺序的两个标签颜色改变Label1(i + 1).BackColor = QBColor(14)End Ifi = i + 1Timer3.Enabled = TrueTimer2.Enabled = FalseEnd Sub图3两个label交换数字后颜色变为黄色(4)排序过程中可对时间间隔手动修改Private Sub Command5_Click()Time

7、r1.Interval = Val(Text1.Text)Timer2.Interval = Val(Text1.Text)Timer3.Interval = Val(Text1.Text)Timer4.Interval = Val(Text1.Text)End Sub(5)排序结束后,显示对话框Private Sub Timer4_Timer()Dim k As Integer, l As Integer, t As IntegerFor k = 1 To 9If Label1(k - 1).Caption = Label1(k).Caption Then 对8个数据进行比较 l = l +

8、 1End IfNext kIf l = 9 Then 10个数据从小到大排列Timer1.Enabled = FalseTimer2.Enabled = FalseTimer3.Enabled = FalseTimer4.Enabled = FalseCommand1.Enabled = TrueCommand2.Enabled = FalseMsgBox 冒泡法演示结束End 程序结束End IfEnd Sub图4排序结束后,显示对话框四、总结这次课设我的题目是“冒泡法”排序的动画演示。通过这次课设,我加深了对控件数组和多个timer的控制理解,并能熟练地使用它们。在课设过程中,我遇到了重

9、重困难,例如:多个Timer控件的配合使用,如何设定时间间隔来控制程序运行速度等等。通过老师的指点,自己查阅资料,与同学之间交流讨论,不断试运行程序,我解决了困难,顺利的完成了这次课设。在课设过程中我认识到重要的不是我们把程序做出来,而是我们思考、编程的过程。这个过程对于锻炼我们的思维,熟练编程过程和方法有着重要作用,对于我们日后工作则更重要。在课设过程中,我想了很多方法对自己的程序做进一步的改进,虽然有的成功了,有的失败了。这次课设也让我认识到了vb在生活实践中的广泛应用。我认识到学好vb对我以后的学习工作有很大的帮助,也我明白了一个道理:只会书本上理论知识而没有实践,在千变万化的实际问题面

10、前你永远都会感到力不从心;没有理论的指导而一味的空想得到的设计永远只会是妄想。所以在今后的学习中,我要学以致用,积极地把自己的所学运用在实际问题的解决上,来培养自己的实践能力,也只有这样我才能够成为一名为社会所需的合格的大学生。五、完整的源程序Private Sub Command1_Click()Dim a(9) As Integer, n As IntegerFor n = 1 To 10a(n - 1) = Int(n * 10 * Rnd + 8 - n) 产生随机数Label1(n - 1).Caption = a(n - 1) 对个标签赋值Next nTimer1.Enabled

11、= TrueTimer2.Enabled = FalseTimer3.Enabled = FalseTimer4.Enabled = TrueCommand1.Enabled = FalseCommand2.Enabled = TrueCommand3.Enabled = FalseCommand4.Enabled = TrueEnd SubPrivate Sub Command2_Click()Timer1.Enabled = False 冒泡法排序暂停Timer2.Enabled = FalseTimer3.Enabled = FalseTimer4.Enabled = FalseComm

12、and3.Enabled = TrueCommand4.Enabled = TrueEnd SubPrivate Sub Command3_Click()Timer1.Enabled = True 冒泡法排序继续Timer2.Enabled = FalseTimer3.Enabled = FalseTimer4.Enabled = TrueCommand1.Enabled = FalseCommand2.Enabled = TrueCommand4.Enabled = TrueEnd SubPrivate Sub Command4_Click()End 程序结束End SubPrivate S

13、ub Command5_Click()Timer1.Interval = Val(Text1.Text)Timer2.Interval = Val(Text1.Text)Timer3.Interval = Val(Text1.Text)Timer4.Interval = Val(Text1.Text)End SubPrivate Sub Form_Load()Timer1.Enabled = FalseTimer2.Enabled = FalseTimer3.Enabled = FalseTimer4.Enabled = FalseCommand1.Enabled = TrueCommand2.Enabled = FalseEnd SubPrivate Sub Timer1_Timer()Static a As Integer, b As IntegerIf a = 9 Thena = 0: b = b + 1End IfIf a + 1 = 10 - b - 1 Then 在上一轮比较中最后两个数不参加本轮比较Label1(a).BackColor = QBColor(12) 正在比较的两个数颜色改变Label1(a + 1).BackColor

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

当前位置:首页 > 行业资料 > 国内外标准规范

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