“选择法”排序的动画演示
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计任务书
沈阳航空工业学院
课程设计任务书
学院:航宇专业:工程力学班级: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