当前位置:文档之家› “选择法”排序的动画演示

“选择法”排序的动画演示

课程设计任务书
沈阳航空工业学院
课程设计任务书
学院:航宇专业:工程力学班级:6403401
学号:200604034026 题目:“选择法”排序的动画演示
一、课程设计时间
2007~08第2学期第1~2周,共计2周,40学时。

二、课程设计内容
用控件数组技术实现动画,演示用选择法对数组(18,12,16,10,11,19,13,19)由大到小排序、元素变换的完整过程。

要求:准备换值的2个元素,使用显眼颜色、闪烁效果。

三、课程设计要求
程序质量:
✧贯彻事件驱动的程序设计思想。

✧用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。

✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。

课程设计说明书:
✧课程结束后,上交课程设计说明书和源程序。

课程设计说明书的内容参见提
供的模板。

四、指导教师和学生签字
指导教师:________ 学生签名:________
五、成绩
六、教师评语
目录
需求分析------------------------------- 2 设计分析------------------------------- 2 关键技术------------------------------- 5 总结------------------------------- 7 完整程序------------------------------- 8 参考文献------------------------------- 11
需求分析
1.用控件数组技术实现动画,演示用选择法对数组(18,12,16,10,11,19,13,19)由大到小排序、元素变换的完整过程。

2要求:准备换值的2个元素,使用显眼颜色、闪烁效果3用户界面友好,功能明确,操作方便;可以加以其它功能或修饰
4代码应适当缩进,并给出必要的注释,以增强程序的可读性。

设计分析
1基本原理:运用选择法排序,用循环体实现,并通过设置颜色来展示动画。

2. 总体设计:选择法排序,将数组全部陈列出来,再用颜色区别相交换的两个数,分六步来实现,从而实现动态效果。

3详细设计:将数组都陈列出来,每一步就是数组变化的过程。

第一列是出现原数组。

第二列是第一步选择出最大的数和第一位的数进行交换。

第三列是在剩余的数中悬出最大的数再和第二位的数进行交换。

依次类推,直到将数
组按照从大到小的顺序排列出来。

最后的一列既是所求。

关键技术
1、界面设计如下:
2、运行界面如下:
3、选择法排序程序如下:
For i = 1 To n
b(1, i) = a(i)
Label1(i).Caption = b(1, i)
Next i
For i = 1 To n - 1
max = i
For j = i + 1 To n
If a(j) > a(max) Then max = j
Next j
c(i) = max
b(i, max) = a(max)
t = a(i)
a(i) = a(max)
a(max) = t
For m = 1 To 8
b(i, m) = a(m)
Next m
Next i
4、结束语句如下:
Private Sub Command2_Click()
Unload Me
End Sub
总结
这次我的题目是选择法排序,通过这次实习,我知道了排序的基本程序段,并且解决了实现动画效果这一关键技术.在课设过程中,我遇到了重重困难,但通过老师的指点和自己查阅资料,我克服了困难,顺利的完成了任务。

同时我也了解了VB的出现是一场技术革命,它给人们的生活带来了很多方便和好处,它在生活中各个方面都能发挥巨大的作用,所以,对于我们大学生来说,学好VB不仅是自己的需要,更是社会发展的需要
完整程序
Option Base 1
Private Sub Command1_Click()
Dim a%(1 To 8), max%, n%, i%, j%, t%, b%(8, 8), c%(7)
a(1) = 18: a(2) = 12: a(3) = 16: a(4) = 10: a(5) = 11: a(6) = 19: a(7) = 13: a(8) = 19
n = 8
For i = 1 To n
b(1, i) = a(i)
Label1(i).Caption = b(1, i)
Next i
For i = 1 To n - 1
max = i
For j = i + 1 To n
If a(j) > a(max) Then max = j Next j
c(i) = max
b(i, max) = a(max)
t = a(i)
a(i) = a(max)
a(max) = t
For m = 1 To 8
b(i, m) = a(m)
Next m
Next i
For i = 1 To 8
Label2(i).Caption = b(1, i)
Label3(i).Caption = b(2, i)
Label4(i).Caption = b(3, i)
Label5(i).Caption = b(4, i)
Label6(i).Caption = b(5, i)
Label7(i).Caption = b(6, i)
Next i
Label1(1).BackColor = vbRed: Label1(c(1)).BackColor = vbRed Label2(2).BackColor = vbRed: Label2(c(2)).BackColor = vbRed Label3(3).BackColor = vbRed: Label3(c(3)).BackColor = vbRed Label4(4).BackColor = vbRed: Label4(c(4)).BackColor = vbRed Label5(5).BackColor = vbRed: Label5(c(5)).BackColor = vbRed Label6(6).BackColor = vbRed: Label6(c(6)).BackColor = vbRed Label7(7).BackColor = vbRed: Label7(c(7)).BackColor = vbRed End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Timer1_Timer()
Dim o As Integer
For o = 1 To 8
If Label1(o).BackColor = vbRed Then Label1(o).Visible = Not Label1(o).Visible
If Label2(o).BackColor = vbRed Then Label2(o).Visible = Not Label2(o).Visible
If Label3(o).BackColor = vbRed Then
沈阳航院设计用纸
Label3(o).Visible = Not Label3(o).Visible
If Label4(o).BackColor = vbRed Then Label4(o).Visible = Not Label4(o).Visible
If Label5(o).BackColor = vbRed Then Label5(o).Visible = Not Label5(o).Visible
If Label6(o).BackColor = vbRed Then Label6(o).Visible = Not Label6(o).Visible
If Label7(o).BackColor = vbRed Then Label7(o).Visible = Not Label7(o).Visible
Next o
End Sub
参考文献
[1] 龚沛曾陆慰民杨志强编.《Visual Basic程序设计简明教程》(第二版).北京:高等教育出版社,2003
第11页,共11页。

相关主题