VB课程设计报告 14.docx

上传人:b****3 文档编号:5453936 上传时间:2022-12-16 格式:DOCX 页数:7 大小:27.18KB
下载 相关 举报
VB课程设计报告 14.docx_第1页
第1页 / 共7页
VB课程设计报告 14.docx_第2页
第2页 / 共7页
VB课程设计报告 14.docx_第3页
第3页 / 共7页
VB课程设计报告 14.docx_第4页
第4页 / 共7页
VB课程设计报告 14.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

VB课程设计报告 14.docx

《VB课程设计报告 14.docx》由会员分享,可在线阅读,更多相关《VB课程设计报告 14.docx(7页珍藏版)》请在冰豆网上搜索。

VB课程设计报告 14.docx

VB课程设计报告14

沈阳航空航天大学

课程设计

学号__

班级_____

姓名____

指导教师_____

2011年3月12日

沈阳航空航天大学

课程设计任务书

学院:

机电工程学院专业:

机械设计制造及其自动化班级:

04060101

学号:

2010040601034题目:

“冒泡法”排序的动漫演示

一、课程设计时间

2012年3月5~9日(第一周),共计一周,20学时。

二、课程设计内容

用控件数组技术实现动画,演示用冒泡法对数组(18,12,16,10,11,19)由小到大排序,元素变换的完整过程。

要求:

准备换值的2个元素,使用明显颜色,闪烁效果。

三、课程设计要求

程序质量:

✧贯彻事件驱动的程序设计思想。

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

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

课程设计说明书:

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

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

四、指导教师和学生签字

指导教师:

______学生签名:

_____

五、成绩

六、教师评语

目录

需求分析4

设计分析4

技术要点5

主要界面截图6

总结7

完整的源程序8

参考文献12

一.需求分析

题目要求用“冒泡法”对一组数据进行由小到大排序,并且动画演示排序过程中元素变换的过程。

也就是表示,比较相邻两个数大小和交换过程要可见,并用明显的颜色来区分正在比较的两个数字。

颜色的变换、数字的交换实现了动画的效果.

二.设计分析

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个数进行同

(1)的操作,次最大的数放入Label(N-1)元素内,完成第二轮排序;一次类推,进行N轮排序后,所有的数均有序。

排序结束。

三.技术要点

1.用Timer的interval属性的运用控制程序的运行。

2.多个Timer控件的共同运用

3.按冒泡法的排序规则大数沉底小数上浮,大的数不断后移,达到数字由小到大排列;

4.用蓝色和红色两个明显颜色区分相邻的两个数,比较的两个数凹凸变换达到动画的效果。

5.当数字大小顺序排列结束后弹出对话框提示您程序运行结束。

四.主要界面截图

图1冒泡法排序主界面

五.总结

这次课设我的题目是用冒泡法排序一组数据,通过这次课设我了解了Timer控件的用法,用Timer控件来控制程序的运行次数,用第三变量来进行大小数的交换,最后还用到Msgbox弹出对话框来提示排序结束。

在课设过程中,我遇到了很多问题,例如:

多个Timer空间的配合使用,如何设定时间间隔来控制程序运行速度等等。

通过老师的指点,自己查阅资料,与同学之间交流讨论,不断试运行程序,我解决了困难,顺利的完成了这次课设。

同时我也知道了VB程序的博大精深,它在生活中各个方面都能发挥巨大的作用,所以,学好VB对我们以后的社会生活会有很多的帮助。

总而言之,这次VB课程设计让我受益匪浅,学习到很多以前弄不懂的知识,与此同时,老师的谆谆教导,同学朋友的热心帮助,自己不断的努力,使我在这段时间感触颇深。

这次的课设作业叫我懂得了很多,以后希望有更多的机会,来多多实践自己。

六.完整的源程序

PrivateSubCommand1_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

EndSub

PrivateSubCommand2_Click()

Timer1.Enabled=True

Timer2.Enabled=True

Timer3.Enabled=True

Timer4.Enabled=True

EndSub

PrivateSubcommand3_click()

End

EndSub

PrivateSubform_load()

Timer1.Enabled=False

Timer2.Enabled=False

Timer3.Enabled=False

Timer4.Enabled=False

Timer5.Interval=200

EndSub

PrivateSubTimer1_Timer()

Statica%'定义交换控制下标

Ifa=5Then

a=0

EndIf

Label1(a).BackColor=vbGreen

Label1(a+1).BackColor=vbGreen'改变欲交换的两个元素的背景颜色变成绿色

IfLabel1(a).Caption>Label1(a+1).CaptionThen

Label1(a).BorderStyle=1:

Label1(a+1).BorderStyle=1'使欲交换的两个元素的样式改变

EndIf

a=a+1

Timer2.Enabled=True

Timer1.Enabled=False

EndSub

PrivateSubtimer2_timer()

Statici%,j%

Ifi=5Then

i=0

EndIf

IfVal(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'使交换中的元素的颜色变成蓝色

EndIf

i=i+1

Timer3.Enabled=True

Timer2.Enabled=False

EndSub

PrivateSubTimer3_Timer()

Staticc%

Ifc=5Then

c=0

EndIf

IfLabel1(c).Caption

Label1(c).BorderStyle=0:

Label1(c+1).BorderStyle=0

Label1(c).BackColor=vbYellow

Label1(c+1).BackColor=vbYellow'使交换后的元素的颜色变为黄色

EndIf

c=c+1

Timer1.Enabled=True

Timer3.Enabled=False

EndSub

PrivateSubTimer4_Timer()

Dimk%,l%

Fork=0To4

IfLabel1(k).Caption

l=l+1'确定最大一个元素排在最后一位

EndIf

Nextk

Ifl=5Then

Timer1.Enabled=False

Timer2.Enabled=False

Timer3.Enabled=False

Timer4.Enabled=False

Fori=0To5

Label1(i).BackColor=vbGreen

Nexti

MsgBox"冒泡法演示结束"

EndIf

EndSub

PrivateSubtimer5_timer()

Callmymove

EndSub

Submymove()

Label2.MoveLabel2.Left+100

IfLabel2.Left>Form1.WidthThenLabel2.Left=0

EndSub

参考文献

[1]龚沛曾.《VisualBasic程序设计教程》.北京:

高等教育出版社,2007.3

[2]沈炜,杨世锡《VisualBasic编程从基础到实践》,北京:

电子工业出版社,2005.9

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1