VB程序设计课程设计报告Word格式.docx
- 文档编号:20890451
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:22
- 大小:524.10KB
VB程序设计课程设计报告Word格式.docx
《VB程序设计课程设计报告Word格式.docx》由会员分享,可在线阅读,更多相关《VB程序设计课程设计报告Word格式.docx(22页珍藏版)》请在冰豆网上搜索。
利用已掌握的VB程序设计语言基础,以及面向对象的程序设计方法、事件驱动的编程方式,进行应用程序和系统的开发设计。
在强化巩固已有编程知识基础之上,训练新的设计
与编程思路,通过综合应用所学知识设计、编制、调试实用的VisualBasic程序。
四、课程设计要求
1.要求每个同学都要认真对待,积极参与。
2.课程设计结束时,提交完成的所有源程序、相关文件和可执行文件。
同时填写并完成《课程设计报告册》。
3.不符合要求的程序、设计报告、抄袭的设计报告或源程序代码、在设计中完全未参
与的将作不及格处理。
五、考核方式
指导老师负责验收程序的运行结果,并结合学生的工作态度、实际动手能力、创新精神
和设计报告等进行综合考评,百分制计算,具体考核标准主要包含以下几个部分:
1.程序运行情况20分
2.程序功能的完善程度10分
3.程序结构的合理性10分
4.对问题的答辩情况20分
5.创新情况10分
6.学生的工作态度与独立工作能力10分
7.设计报告内容的规范性20分
备注:
1.按规定时间填写各阶段文档,学习态度加5分
2.设计报告内容雷同扣40分,无调试过程问题分析扣10分,无参考文献扣10分
3.源程序无注释则在程序结构合理性扣10分
六、课程设计主要参考资料
《VisualBasic程序设计教程第4版》龚沛曾高等教育出版社
《VisualBasic程序设计实验指导与测试第4版》龚沛曾高等教育出版社
《VisualBasic从入门到精通》清华大学出版社
《VisualBasic课程设计》王栋清华大学出版社
《VisualBasic开发实战1200例》孙秀梅,巩建华清华大学出版社
七、课程设计计划安排
时间
任务
课程设计前一周
选择课程设计题目,分析课题的要求,确定设计方案,完成报告册中
“课程设计概述”
课程设计第1天
按功能模块编写详细设计说明,完成报告册中“总体设计”
课程设计第2天
编写程序、调试程序
课程设计第3天
编写程序、调试程序,完成报告册中“详细设计”
课程设计第4天
调试程序,完成报告册中“调试分析过程”
课程设计第5天
完成报告册中“总结”、“参考文献”、“课程设计评审表”部分内
容,提交课程设计报告、源程序、面试或答辩
一、课程设计概述
课程设计问题描述
本题主要是针对在程序设计中对数值型数据进行排序的问题,这虽然是最基本的数据处理操作,但本题不仅综合了四种不同的排序算法:
比较法、选择法、直接插入法和冒泡法,也涉及到了一些窗体编辑器,快捷菜单的做法,定时器的编码,使得本题更加的复杂,也增加了本题的理解难度。
本程序以动画方式演示上述四种排序算法的排序过程,并可以比较四种算法所需交换数据的次数,从而对四种排序算法有一个比较直观的认识,也可以对四种排序算法的排序效率进行对比。
本程序还可以找出所产生的10个随机数中的最大值、最小值和平均值。
设
计要求
1.对所选题目方案分析比较,确立方案。
2.用户界面良好,有较好的输入输出能力。
3.编制与调试程序,初步掌握程序设计的方法,能熟练调试程序。
4.程序运行情况正常,程序功能完善,程序结构合理。
5.系统设计编程可用,简练,并有一定的容错能力。
6.在完成基本要求后,最好能有一定的创新。
设计目的
1.以《计算机语言程序设计(VB)》课程为基础,目的是进一步培养学生综合应用VB的各种编程知识和技巧进行程序设计的能力对本学期VB课程学习的一个总结,对所学知识的巩固与加深。
2.开发和挖掘我们的创新和实践能力,使我们达到具备设计功能较为复杂的Windows应用程序的能力。
3.通过课程设计,培养我们自主学习和独立创新的精神,也是人才培养体系中极为重要的一环。
4.掌握所学语言程序设计的方法,熟悉所学语言的开发环境及调试过程,熟悉所学语言中的数据类型,数据结构、语句结构、运算方法,巩固和加深对理论课中知识的理解,提高学生对所学知识的综合运用能力。
开
发环境
.操作系统:
WindowslOSever/XP/Professional.处理器:
486DX/66MHz或更高的处理器
.显示器:
VGA或更咼分辨率的显示器
.应用软件:
VisualBasic6.0
二、总体设计
(1)
1.程序启动后,显示图6.1所示的主界面。
首先单击“产生10个随机数”按钮来产生10个随机数,并显示在10个文本框中;
然后选择一种“演示模式”和
“排序方式”,其中演示模式可以直接给出排序结果,也可以通过动画动态演示整
个排序过程,排序方式可以按从小到大顺序,也可以按从大到小顺序排序。
图6.1启动后的主界面
2.在主窗口的空白区单击鼠标右键,弹出如图6.2所示的快捷菜单。
从中选
择“排序算法”命令,打开图6.3所示的对话框,从中选择一种排序方式,单击不
同排序方式时,“算法描述”中简要介绍了这种算法。
单击“确定”按钮返回到主窗口,主窗口中最上方框架控件的标题文字显示当前所选的排序算法。
排序算法从文件读职取据将数据写人文件
图6.2快捷菜单
排序算祛
G比较拄序
「选择扫E序
rffiAfiEJ?
冒泡排序
算法描述
.用比較;
云对娜s中的由小到大的顺亭排列时・斯谓比鞭法瞌是:
第一检从吉[0]弃赠,倣次悔俎[D]与夏陌的所有尢索遜。
进冇讯较“如果苴后的某①无索出讥⑴小,叫将两若对凋,过样结审后订0]中保留由是1。
亍无斋中的最小埴・燃后从或灯毬进钉第二晁比较,第二轮比较洁束后"
1】中凜曹旅小審,臥此类JS,排序结果・
图6.3“排序算法选择”对话框
快捷菜单中有一“从文件读取数据”命令,使用此命令可以从当前目录的data.txt文件中读入10个数。
要使用这个命令,必须事先建立这个文本文件。
3.设置完毕,单击“开始排序”按钮(此按钮在生成数据之前是不可用的)启动
排序过程。
若选择了动画方式(见图6.4),红色背景的文本框表示当前正在比较的
元素,黄色的代表己排序的元素,两个运动的文本框表示交换过程。
在排序过程中
可以调节水平滚动条来控制演示的速度。
排序结束后程序以消息框的形式报告数据
交换的次数(如图6.5)。
可以使用快捷菜单中的“将数据写入文件”命令将排序后的数据保存到“data.txt”中覆盖原有内容。
4.选择窗口主菜单中的“颜色设置”命令,主窗口扩大,底部显示“颜色设
置”框架(如图6.6所示),可以对“文本背景色”、“文本前景色”、“已排序元素色”
是⑴1
百on
图6.7确认退出对话
颜色设置
您真的要退出吗?
和“交换结点色”进行设置。
再选择此命令,窗口恢复到原来大小。
:
-tn.浄“,"
5.选择“退出”命令可退出本程序,程序显示图6.7所示的对话框予以确认。
、总体设计
(2)
系统总体设计框架
窗体设计
编写代码
1.
基本窗体控件设计
2.
菜单编辑器
------快捷菜单的弹出
3.
定时器的编码
4.
窗体编辑器
——多重窗体
1.四种排序方法
(比较法、选择法,直接插入法和冒泡法)
2.最大值,最小值,平均值的计算
3.动画演示
4.对话框弹出
三、详细设计
主要功能模块源程序
功能
硕邑设置當程演示
1.窗体设计
1.四个Frame控件----第一个Frame控件包含此问题的基本运算的也是时刻会发生变化的控件。
第二个和第三个Frame控件主要是对此程序运行方式的选择。
第四个Frame控件实质是菜单项中“颜色设置”单机事件的结果,是对第一个Frame中控件运行时的颜色设置。
2.1个文本框数组----包括10个随机数文本框和两个'
交换时运动着的文本框
3.菜单设计----下拉式菜单门分为两部分,每部
分功能不同。
徘序算法从立件读取数据将数据写入文件
弹出式菜单
分为三部分,第一部分的单
机事件会出现一个新的Form窗体
4•一个水平滚动条----对Frame中控件运动时的速度调控。
5五个command按钮---“产生十个随机数”命令按钮1(0)单击事件会在
前十个文本框中产生十个随机数
“开始排序”命令按钮1
(2)在第二个和第三个Frame中控件都被选择后才会有效,然后对十个随机数进行不同方式的排序。
“默认值”命令按钮2是对文本框数组颜色设置的默认按钮。
演示模式1|
「直接给出排序絃果
&
如示排序过鶴
“停止”命令按钮1
(2)在情况下才有效。
“退出”命令按钮3是用来结束该程序的运行。
6一个timer控件----对此程序运行时的时间间隔控制。
7一个combo数组---包括四个combo控件
Color1(0)文本背景色Color1
(1)文本前景色
Color1
(2)已排序元素色Color1(3)交换元素色
模
块源程序
1.变量声明
OptionExplicit
OptionBase1
Dima(10)AsInteger
DimFirstAsInteger
DimSecondAsInteger
PrivatemblnMovingAsBoolean
DimSpeedAsInteger
DiminColor1AsLong
DiminColor2AsLong
DiminColor3AsLong
DiminColor4AsLong
DiminNumAsLong
PublicinSortMethodAsInteger
随机数数组
文本背景色文本前景色已排序元素色交换元素色交换次数
排序算法0-比较法,1-选3-冒泡法
择法2-直接插入法,
PrivateinSortOrderAsInteger
PrivateinShowModeAsInteger
排序方向0-升序1-降序演示模式,0-直接求解,1-动态演示
2•代码设计
2.1command1(0)---产生十个随机数
~PrivateSubCommand1(0)Click()Randomize
Fori=1To10
a(i)=Int(Rnd*201)-100
Text1(i).Text=a(i)Text1(i).BackColor=inColor1
Text1(i).ForeColor=inColor2Nexti
Command1.Enabled=True
2command1
(1)----开始排序
Frame2
PrivateSubOption1_Click(IndexAsInteger)
Frame3中
intShowMode=Index
option的选
EndSub
择直接关
系到随机
PrivateSubOption2_Click(IndexAsInteger)
数的排序
intSortOrder=Index
方式
yJ亠7
当排序结束后,会弹出如下一个对话框。
代码为:
response=MsgBox("
比较法排序完毕,交换次数为:
”+
Str(Num),vbOKOnly,"
系统提示"
)
3gommand1
(2)---停止程序的运行PrivateSubCommand3_Click()
IfCommand3.Caption="
停止"
Then
Timer1.Enabled=False
Command3.Caption="
继续”Else
IfCommand3.Caption="
继续”ThenTimer1.Enabled=TrueCommand3.Caption="
EndIf
EndIf
——EndSub
4command2——默认颜色的按钮
PrivateSubCommand2_Click()
Color1(0).ListIndex=0inColor1=vbGreen
文本背景色
Color1
(1).ListIndex=
1
inColor2=vbBlack
文本刖景色
Color1
(2).ListIndex=inColor3=vbYellow
2
已排序元素色
Colorl(3).Listlndex=3
inColor4=vbRed交换元素色
5command3----退出按钮
3.combo数组
名称分别为Color1(0)文本背景色Color1
(1)文本前景色
每个combo又有不同的list,都为黑色,绿色,蓝色,青色,红色,黄色
紫色分布。
用index区分
PrivateSubColor1_Click(IndexAsInteger)
DimiAsIntegerSelectCaseIndex
Case0color1(0)文本背景色
SelectCaseColor1(0).ListIndex
Case0
Combo1
inColor1=
vbGreen
Case1
inColor1=vbBlue
(0)的list
Case2
inColor4仁vbRed
Case3
属性,用
inColor4仁vbYellow
index区
EndSelect
ForI=1To10
分背景
Text1(l).BackColor
=inColor1
NextI
颜色。
Text1(i).BackColor
=intColor1
Nexti
Case1color1
(1)文本前景色
inColor4=vbGreen
inColor4=vbBlue
inColor4=vbRed
A
(1)的list
inColor4=
=vbYellow
_J
Text1(I).ForeColor=inColor2
分前景
'
处理正在交换的结点的背景色
Combo
1
(2)
list
index
区分已
排序元
素色。
Combo1(
3)的list
indexI区
分交换元
SelectCaseColor1
(1).Listlndex
Text1(i).ForeColor=intColor2Nexti
SelectCaseColor1
(2)丄istlndexCase0
inColor4=vbRedCase3
inColor4=vbYellow
SelectCaseColor1(3).ListIndexCase0
Text1(l).ForeColor=inColor2
4.开始排序
PrivateSubCommand1
(1)_Click()
DimMinAsInteger,MaxAsInteger,sAsSingle
Min=1000:
Max=-1000:
s=0
Fori=1To10
Ife(i)>
MaxThenMax=e(i)
Ife(i)<
MinThenMin=e(i)
s=s+e(i)
Text4.Text=Max最大值
Text5.Text=Min最小值
Text6.Text=s/10平均值
Command3.Enabled=True
SelectCaseintSortMethod
Case0比较法
comparation_sorte(),intSortOrder
Case1选择法
selection_sorte(),intSortOrder
Case2直接插入法
insertion_sorte(),intSortOrder
Case3冒泡法
bubble_sorte(),intSortOrder
PrivateSubCommand1
(2)_Click()
Exit_Click
5.弹出菜单
PrivateSubForm_MouseUp(ButtonAsInteger,ShiftAsInteger,xAs
Single,YAsSingle)
IfButton=2Then
PopupMenuMenu2
6.下拉式菜单
PrivateSubColor_Click()
Forml.Height=Forml.Height+2000
Frame3.Visible=True
Color.Checked=True
PrivateSubExit_Click()
DimIAsInteger
I=MsgBox("
"
vbYesNo+vbQuestion+vbDefaultButton2,"
请您确认!
"
IfI=vbYesThen
End
8.弹出菜单中排序算法---四种
同时出现新窗体
2个Frame控件——一个包含了一个option数组,是对排序方式的选择另一个包含了一个text控件,是对选中的option的解释
1个command按钮,是和Form1的衔接,决定了Form1中十个随机数的排序方式
四、调试分析过程
(1)
调试过程出现的问题及解决方法
aMs
导致快捷菜单不出现
增加第二个主菜单“弹出式菜单”
,且不可见。
在程序一运行时,没有对speed进行初定量,在程序运行后,动态演示时,负责显示交换元素的两个文本框不运动,也没有排序的作用。
解决:
在Form1的load事件中增加了speed=100语句
2•下拉式菜单与快捷菜单分离不开
下拉式菜单又出现太多选项
3.快捷菜单无法弹出,且无法联系到窗体。
弹岀菜单要用PopupMen方法
在单击“排序算法”时,岀现Form2.shov语句,联系到Forml
4.对四种排序方法的编程混淆不清
在网络上查找资料,先了解四种排序方法的特点和区别。
用简单的语句解释理解,然后随机列举几个数字,用排序方法依次排大小,总结规律。
写出排序方法的代码。
5.动态演示如何演变
用Timer事件进行编程。
四、调试分析过程
(2)
程序运行后,单击下拉式菜单,对颜色进行设置,单击“产生十个随机数”,可以看到随机数所在文本框的背景色和前景色发生改变,然后对演示模式和排序方式进行选择
1.当选择静态演示时,会弹出如下对话框
测试数据及测试结果
2.当动态演示时,正在排序元素和已排序元素文本背景色发生变化,且两个变化文本框会运动,在排序结束后,也会出现系统提示的对话框。
还可以通过对水平滚动条设置来调整交换速度
单击右键会弹出快捷菜单
单击"
停止”按钮时,排序运动会暂停,再次单击时又会重新启动。
单击确定后,发现排序和最值,平均值的运算已完成。
12345678910
划如如也■*・*9吕鞭
昂土值汗昂$矿平賞僧F
肇旳們湘谢|并始徘原]停止|
排障舁法厂比较诽陣
广话入排序广冒泡排序
可
黠<
2.第二个窗体的选择也关系到第一个窗体的运行
排序篦法选擇
确走
Option的选择不同
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 程序设计 课程设计 报告