VB程序设计课程设计报告.docx
- 文档编号:6165686
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:25
- 大小:220.23KB
VB程序设计课程设计报告.docx
《VB程序设计课程设计报告.docx》由会员分享,可在线阅读,更多相关《VB程序设计课程设计报告.docx(25页珍藏版)》请在冰豆网上搜索。
VB程序设计课程设计报告
《VB程序设计》
课程设计报告
(2016—2017学年第1学期)
题目:
排序演示
学院:
经济与管理学院
班级:
物流管理1502
学号:
姓名:
指导教师:
阮冰
时间:
起2017年1月3日止1月6日
一、课程设计基本信息
课程代码:
05190124
课程名称:
计算机基础课程设计
课程英文名称:
Computer-basedCourseDesign
课程所属单位(院(系)、教研室):
数学与计算机学院计算机基础课程群
课程面向专业:
生物科学类、制药工程、制药工程(生物制药)、药物制剂、物流管理
课程类型:
必修课
先修课程:
大学计算机基础通识选修课程、VisualBasic程序设计课程
学分:
1总学时:
16
二、课程设计目标
掌握所学语言程序设计的方法,熟悉所学语言的开发环境及调试过程,熟悉所学语言中的数据类型,数据结构、语句结构、运算方法,巩固和加深对理论课中知识的理解,提高学生对所学知识的综合运用能力。
通过综合设计要求达到下列基本技能:
1.培养查阅参考资料、手册的自学能力,通过独立思考深入钻研问题,学会自己分析、解决问题。
2.通过对所选题目方案分析比较,确立方案,编制与调试程序,初步掌握程序设计的方法,能熟练调试程序。
3.系统设计编程简练,可用,功能全面,并有一定的容错能力。
用户界面良好,有较好的输出功能。
在完成课题基本要求后,具有创新型设计,具有一定的实用价值。
4.根据个人的设计调试过程,撰写设计报告。
?
三、课程设计内容
利用已掌握的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.掌握所学语言程序设计的方法,熟悉所学语言的开发环境及调试过程,熟悉所学语言中的数据类型,数据结构、语句结构、运算方法,巩固和加深对理论课中知识的理解,提高学生对所学知识的综合运用能力。
开发环境
.操作系统:
Windows10Sever/XP/Professional
.处理器:
486DX/66MHz或更高的处理器
.显示器:
VGA或更高分辨率的显示器
.应用软件:
VisualBasic6.0
二、总体设计
(1)
系统功能需求分析
1.程序启动后,显示图6.1所示的主界面。
首先单击“产生10个随机数”按钮来产生10个随机数,并显示在10个文本框中;然后选择一种“演示模式”和“排序方式”,其中演示模式可以直接给出排序结果,也可以通过动画动态演示整个排序过程,排序方式可以按从小到大顺序,也可以按从大到小顺序排序。
图6.1启动后的主界面
2.在主窗口的空白区单击鼠标右键,弹出如图6.2所示的快捷菜单。
从中选择“排序算法”命令,打开图6.3所示的对话框,从中选择一种排序方式,单击不同排序方式时,“算法描述”中简要介绍了这种算法。
单击“确定”按钮返回到主窗口,主窗口中最上方框架控件的标题文字显示当前所选的排序算法。
图6.2快捷菜单
图6.3“排序算法选择”对话框
快捷菜单中有一“从文件读取数据”命令,使用此命令可以从当前目录的data.txt文件中读入10个数。
要使用这个命令,必须事先建立这个文本文件。
3.设置完毕,单击“开始排序”按钮(此按钮在生成数据之前是不可用的)启动排序过程。
若选择了动画方式(见图6.4),红色背景的文本框表示当前正在比较的元素,黄色的代表己排序的元素,两个运动的文本框表示交换过程。
在排序过程中可以调节水平滚动条来控制演示的速度。
排序结束后程序以消息框的形式报告数据交换的次数(如图6.5)。
可以使用快捷菜单中的“将数据写入文件”命令将排序后的数据保存到“data.txt”中覆盖原有内容。
图6.4程序主界面
4.选择窗口主菜单中的“颜色设置”命令,主窗口扩大,底部显示“颜色设置”框架(如图6.6所示),可以对“文本背景色”、“文本前景色”、“已排序元素色”和“交换结点色”进行设置。
再选择此命令,窗口恢复到原来大小。
图6.5显示交换次数图6.6系统主菜单
图6.7确认退出对话
颜色设置
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
(2)在
情况下才有效。
“退出”命令按钮3是用来结束该程序的运行。
6一个timer控件----对此程序运行时的时间间隔控制。
7一个combo数组---包括四个combo控件
Color1(0)文本背景色Color1
(1)文本前景色
Color1
(2)已排序元素色Color1(3)交换元素色
2.代码设计
1.变量声明
OptionExplicit
OptionBase1
Dima(10)AsInteger随机数数组
DimFirstAsInteger
DimSecondAsInteger
PrivatemblnMovingAsBoolean
DimSpeedAsInteger
DiminColor1AsLong文本背景色
DiminColor2AsLong文本前景色
DiminColor3AsLong已排序元素色
DiminColor4AsLong交换元素色
DiminNumAsLong交换次数
PublicinSortMethodAsInteger排序算法0-比较法,1-选择法2-直接插入法,3-冒泡法
PrivateinSortOrderAsInteger排序方向0-升序1-降序
PrivateinShowModeAsInteger演示模式,0-直接求解,1-动态演示
2.1command1(0)---产生十个随机数
PrivateSubCommand1(0)_Click()
Randomize
Fori=1To10
a(i)=Int(Rnd*201)-100
Text1(i).Text=a(i)
Text1(i).BackColor=inColor1Text1(i).ForeColor=inColor2
Nexti
Command1.Enabled=True
Frame2
Frame3中option的选择直接关系到随机数的排序方式
2command1
(1)----开始排序
PrivateSubOption1_Click(IndexAsInteger)
intShowMode=Index
EndSub
PrivateSubOption2_Click(IndexAsInteger)
intSortOrder=Index
EndSub
当排序结束后,会弹出如下一个对话框。
response=MsgBox("比较法排序完毕,交换次数为:
"+Str(Num),vbOKOnly,"系统提示")
代码为:
3command1
(2)---停止程序的运行
PrivateSubCommand3_Click()
IfCommand3.Caption="停止"Then
Timer1.Enabled=False
Command3.Caption="继续"
Else
IfCommand3.Caption="继续"Then
Timer1.Enabled=True
Command3.Caption="停止"
EndIf
EndIf
EndSub
4command2-----默认颜色的按钮
PrivateSubCommand2_Click()
Color1(0).ListIndex=0
inColor1=vbGreen文本背景色
Color1
(1).ListIndex=1
inColor2=vbBlack文本前景色
Color1
(2).ListIndex=2
inColor3=vbYellow已排序元素色
Color1(3).ListIndex=3
inColor4=vbRed交换元素色
5command3----退出按钮
bo数组
名称分别为Color1(0)文本背景色Color1
(1)文本前景色
Color1
(2)已排序元素色Color1(3)交换元素色
每个combo又有不同的list,都为黑色,绿色,蓝色,青色,红色,黄色紫色分布。
用index区分
PrivateSubColor1_Click(IndexAsInteger)
DimiAsInteger
SelectCaseIndex
Case0color1(0)文本背景色
SelectCaseColor1(0).ListIndex
Combo1(0)的list属性,用index区分背景颜色。
Case0
inColor1=vbGreen
Case1
inColor1=vbBlue
Case2
inColor41=vbRed
Case3
inColor41=vbYellow
EndSelect
ForI=1To10
Text1(I).BackColor=inColor1
NextI
EndSelect
Fori=1To10
Text1(i).BackColor=intColor1
Nexti
Case1color1
(1)文本前景色
SelectCaseColor1
(1).ListIndex
Combo1
(1)的list属性,用index区分前景颜色。
Case0
inColor4=vbGreen
Case1
inColor4=vbBlue
Case2
inColor4=vbRed
Case3
inColor4=vbYellow
EndSelect
ForI=1To10
Text1(I).ForeColor=inColor2
NextI
EndSelect
Fori=1To10
Text1(i).ForeColor=intColor2
Nexti
Combo1
(2)的list属性,用index区分已排序元素色。
Case2
SelectCaseColor1
(2).ListIndex
Case0
inColor4=vbGreen
Case1
inColor4=vbBlue
Case2
inColor4=vbRed
Case3
inColor4=vbYellow
EndSelect
ForI=1To10
Text1(I).ForeColor=inColor2
NextI
EndSelect
Case3'处理正在交换的结点的背景色
SelectCaseColor1(3).ListIndex
Case0
Combo1(3)的list属性,用index区分交换元素色。
inColor4=vbGreen
Case1
inColor4=vbBlue
Case2
inColor4=vbRed
Case3
inColor4=vbYellow
EndSelect
ForI=1To10
Text1(I).ForeColor=inColor2
NextI
EndSelect
EndSub
4.开始排序
PrivateSubCommand1
(1)_Click()
DimMinAsInteger,MaxAsInteger,sAsSingle
Min=1000:
Max=-1000:
s=0
Fori=1To10
Ife(i)>MaxThenMax=e(i)
Ife(i) s=s+e(i) Nexti 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 EndSelect PrivateSubCommand1 (2)_Click() Exit_Click EndSub 5.弹出菜单 PrivateSubForm_MouseUp(ButtonAsInteger,ShiftAsInteger,xAsSingle,YAsSingle) IfButton=2Then PopupMenuMenu2 EndIf EndSub 6.下拉式菜单 PrivateSubColor_Click() Form1.Height=Form1.Height+2000 Frame3.Visible=True Color.Checked=True EndSub PrivateSubExit_Click() DimIAsInteger I=MsgBox("您真的要退出吗? ",vbYesNo+vbQuestion+vbDefaultButton2,"请您确认! ") IfI=vbYesThen End EndIf EndSub 8.弹出菜单中排序算法---四种 同时出现新窗体 2个Frame控件-----一个包含了一个option数组,是对排序方式的选择 另一个包含了一个text控件,是对选中的option的解释 1个command按钮,是和Form1的衔接,决定了Form1中十个随机数的排序方式 四、调试分析过程 (1) 调试过程出现的问题 及解决方法 1.在程序一运行时,没有对speed进行初定量,在程序运行后,动态演示时,负责显示交换元素的两个文本框不运动,也没有排序的作用。 解决: 在Form1的load事件中增加了speed=100语句。 2.下拉式菜单与快捷菜单分离不开 导致快捷菜单不出现 下拉式菜单又出现太多选项 解决: 增加第二个主菜单“弹出式菜单”,且不可见。 3.快捷菜单无法弹出,且无法联系到窗体。 弹出菜单要用PopupMenu方法 在单击“排序算法”时,出现Form2.show语句,联系到Form1 4.对四种排序方法的编程混淆不清 在网络上查找资料,先了解四种排序方法的特点和区别。 用简单的语句解释理解,然后随机列举几个数字,用排序方法依次排大小,总结规律。 写出排序方法的代码。 5.动态演示如何演变 用Timer事件进行编程。 四、调试分析过程 (2) 测试数据 及测试结果 程序运行后,单击下拉式菜单,对颜色进行设置,单击“产生十个随机数”,可以看到随机数所在文本框的背景色和前景色发生改变,然后对演示模式和排序方式进行选择 1.当选择静态演示时,会弹出如下对话框。 单击确定后,发现排序和最值,平均值的运算已完成。 2.当动态演示时,正在排序元素和已排序元素文本背景色发生变化,且两个变化文本框会运动,在排序结束后,也会出现系统提示的对话框。 还可以通过对水平滚动条设置来调整交换速度 单击右键会弹出快捷菜单 单击“停止”按钮时,排序运动会暂停,再次单击时又会重新启动。 单击“退出按钮时”,会出现对话框 2.第二个窗体的选择也关系到第一个窗体的运行 Option的选择不同,窗体一中的排序方法也不同。 五、总结 设计用到的知识点 1多窗体的设计与衔接 2四种排序方法的运用与编程 3弹出式菜单的运用 4最大值,最小值,平均值的计算 5定时器的运用使文本框进行移动 6滚动条与Frame控件的运用 7读入与读出数据 收获与体会 在此次课程设计中,我才真正了解到VB的魅力,生活的方方面面都体现了vb知识,计算机上那些普普通通的小程序也同样需要那么多的代码才能够运行起来在,而在已经结束的半年VB课程学习中,我们学到的只是VB知识的冰山一角,要想探索到vb的奥秘,我们还需更将努力。 在完成该课题的过程中,我也深刻体会到只有对vb事件和方法真正理解,我们在看到题目时才会胸有成竹,下笔如有神。 在编程程序时,我们应该多思考,多提问,从仿照和借鉴中学习和积累属于自己的知识。 不足与努力方向 本程序涉及的知识点很广,不仅包括有比较法排序,插入法排序,冒泡发排序,选择法排序,集合了所有的排序,还包括多窗体的设计与衔接,弹出式菜单的运用,读入数据与数据写入,定时器的运用,各种事件和方法联系比较密切,让我对题目的理解变得困难。 而且控件数量十分多,十分容易混杂。 而且我对多窗体完全不了解,对读入数据与写入
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 程序设计 课程设计 报告