1、VB课程设计报告 14沈 阳 航 空 航 天 大 学 课程设计学 号 _ _班 级 _ _ 姓 名 _ 指导教师 _ _ 2011年 3 月 12 日沈阳航空航天大学课程设计任务书学院:机电工程学院 专业:机械设计制造及其自动化 班级:04060101学号:2010040601034 题目:“冒泡法”排序的动漫演示一、课程设计时间2012年3月59日(第一周),共计一周,20学时。二、课程设计内容 用控件数组技术实现动画,演示用冒泡法对数组(18,12,16,10,11,19)由小到大排序,元素变换的完整过程。 要求:准备换值的2个元素,使用明显颜色,闪烁效果。三、课程设计要求程序质量: 贯彻
2、事件驱动的程序设计思想。 用户界面友好,功能明确,操作方便;可以增加其它功能或修饰。 代码应适当缩进,并给出必要的注释,以增强程序的可读性。课程设计说明书: 课程结束后,上交课程设计说明书和源程序。课程设计说明书的内容参见提供的模板。四、指导教师和学生签字指导教师: _ 学生签名:_五、成绩六、教师评语目 录需求分析 4设计分析 4技术要点 5主要界面截图 6总结 7完整的源程序 8参考文献 12一需求分析题目要求用“冒泡法”对一组数据进行由小到大排序,并且动画演示排序过程中元素变换的过程。也就是表示,比较相邻两个数大小和交换过程要可见,并用明显的颜色来区分正在比较的两个数字。颜色的变换、数字
3、的交换实现了动画的效果.二设计分析1基本原理:“冒泡法”排序使用Label,Timer控件。分别用来进行数组的输入和控制程序的运行。2总体设计思想:(1)从第一个元素开始,对数组中两辆相邻的元素比较,Label(0)与Label (1)比较,若为逆序,则Label (0)与Label (1)交换;然后Label (1) 与Label (2)比较,直到最后Label (N-1) 与Label (N)比较,这时一轮比较完毕,一个最大的数“沉底 ”,成为数组中的最后一个元素Label (N),一些较小的数如同气泡一样“上浮”一个位置。(2)然后对Label (0) 与Label (N-1)的N个数进
4、行同(1)的操作,次最大的数放入Label (N-1)元素内,完成第二轮排序;一次类推,进行N轮排序后,所有的数均有序。排序结束。三技术要点1.用Timer的interval属性的运用控制程序的运行。2.多个Timer控件的共同运用3. 按冒泡法的排序规则大数沉底小数上浮,大的数不断后移,达到数字由小到大排列;4. 用蓝色和红色两个明显颜色区分相邻的两个数,比较的两个数凹凸变换达到动画的效果。5. 当数字大小顺序排列结束后弹出对话框提示您程序运行结束。四主要界面截图图1 冒泡法排序主界面五总结 这次课设我的题目是用冒泡法排序一组数据,通过这次课设我了解了Timer控件的用法,用Timer控件来
5、控制程序的运行次数,用第三变量来进行大小数的交换,最后还用到Msgbox弹出对话框来提示排序结束。 在课设过程中,我遇到了很多问题,例如:多个Timer空间的配合使用,如何设定时间间隔来控制程序运行速度等等。通过老师的指点,自己查阅资料,与同学之间交流讨论,不断试运行程序,我解决了困难,顺利的完成了这次课设。 同时我也知道了 VB程序的博大精深,它在生活中各个方面都能发挥巨大的作用,所以,学好VB对我们以后的社会生活会有很多的帮助。总而言之,这次VB课程设计让我受益匪浅,学习到很多以前弄不懂的知识,与此同时,老师的谆谆教导,同学朋友的热心帮助,自己不断的努力,使我在这段时间感触颇深。 这次的课
6、设作业叫我懂得了很多,以后希望有更多的机会,来多多实践自己。六完整的源程序Private Sub Command1_Click() Label1(0).Caption = 18 Label1(1).Caption = 12 Label1(2).Caption = 16 Label1(3).Caption = 10 Label1(4).Caption = 11 Label1(5).Caption = 19 End SubPrivate Sub Command2_Click()Timer1.Enabled = TrueTimer2.Enabled = TrueTimer3.Enabled = Tr
7、ueTimer4.Enabled = TrueEnd SubPrivate Sub command3_click()EndEnd Sub Private Sub form_load() Timer1.Enabled = False Timer2.Enabled = False Timer3.Enabled = False Timer4.Enabled = False Timer5.Interval = 200End SubPrivate Sub Timer1_Timer() Static a% 定义交换控制下标 If a = 5 Then a = 0End If Label1(a).BackC
8、olor = vbGreen Label1(a+1).BackColor=vbGreen 改变欲交换的两个元素的背景颜色变成绿色 If Label1(a).Caption Label1(a + 1).Caption Then Label1(a).BorderStyle=1: Label1(a+1).BorderStyle = 1 使欲交换的两个元素的样式改变End If a = a + 1Timer2.Enabled = TrueTimer1.Enabled = FalseEnd SubPrivate Sub timer2_timer()Static i%, j% If i = 5 Then
9、i = 0End If If Val(Label1(i).Caption) Val(Label1(i + 1).Caption) Then j = Label1(i).Caption: Label1(i).Caption = Label1(i + 1): Label1(i + 1) = j 按顺序交换两个元素,使大的一个在后面 Label1(i).BackColor = vbBlue Label1(i+1).BackColor=vbBlue 使交换中的元素的颜色变成蓝色End Ifi = i + 1 Timer3.Enabled = True Timer2.Enabled = FalseEnd
10、 SubPrivate Sub Timer3_Timer() Static c% If c = 5 Then c = 0End If If Label1(c).Caption Label1(c + 1).Caption Then Label1(c).BorderStyle = 0: Label1(c + 1).BorderStyle = 0 Label1(c).BackColor = vbYellow Label1(c+1).BackColor=vbYellow 使交换后的元素的颜色变为黄色End If c = c + 1 Timer1.Enabled = True Timer3.Enabled = FalseEnd SubPrivate Sub Timer4_Timer()Dim k%, l%For k = 0 To 4If Label1(k).Caption Form1.Width Then Label2.Left = 0End Sub参考文献1 龚沛曾Visual Basic程序设计教程北京:高等教育出版社,2007.32 沈炜,杨世锡Visual Basic 编程从基础到实践,北京:电子工业出版社,2005.9
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1