版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、真诚为您提供优质参考资料,若有不当之处,请指正。VB程序设计课程设计报告(2016 2017 学年第 1 学期)题 目: 排序演示 学 院: 经济与管理学院 班 级: 物流管理1502 学 号: 姓 名: 指导教师: 阮冰 时 间:起 2017年1月3日 止 1月6日 28 / 28一、 课程设计基本信息课程代码:05190124课程名称:计算机基础课程设计课程英文名称: Computer-based Course Design课程所属单位(院(系)、教研室):数学与计算机学院计算机基础课程群课程面向专业:生物科学类、制药工程、制药工程(生物制药)、药物制剂、物流管理课程类型:必修课先修课程:
2、大学计算机基础通识选修课程、Visual Basic程序设计课程学分:1 总学时:16二、 课程设计目标掌握所学语言程序设计的方法,熟悉所学语言的开发环境及调试过程,熟悉所学语言中的数据类型,数据结构、语句结构、运算方法,巩固和加深对理论课中知识的理解,提高学生对所学知识的综合运用能力。通过综合设计要求达到下列基本技能:1培养查阅参考资料、手册的自学能力,通过独立思考深入钻研问题,学会自己分析、解决问题。 2通过对所选题目方案分析比较,确立方案,编制与调试程序,初步掌握程序设计的方法,能熟练调试程序。 3系统设计编程简练,可用,功能全面,并有一定的容错能力。用户界面良好,有较好的输出功能。在完
3、成课题基本要求后,具有创新型设计,具有一定的实用价值。4根据个人的设计调试过程,撰写设计报告。三、 课程设计内容利用已掌握的VB程序设计语言基础,以及面向对象的程序设计方法、事件驱动的编程方式,进行应用程序和系统的开发设计。在强化巩固已有编程知识基础之上,训练新的设计与编程思路,通过综合应用所学知识设计、编制、调试实用的Visual Basic程序。四、 课程设计要求1. 要求每个同学都要认真对待,积极参与。2. 课程设计结束时,提交完成的所有源程序、相关文件和可执行文件。同时填写并完成课程设计报告册。3. 不符合要求的程序、设计报告、抄袭的设计报告或源程序代码、在设计中完全未参与的将作不及格
4、处理。五、 考核方式指导老师负责验收程序的运行结果,并结合学生的工作态度、实际动手能力、创新精神和设计报告等进行综合考评,百分制计算,具体考核标准主要包含以下几个部分:1. 程序运行情况20分2. 程序功能的完善程度10分3. 程序结构的合理性10分4. 对问题的答辩情况20分5. 创新情况10分6. 学生的工作态度与独立工作能力10分7. 设计报告内容的规范性20分备注:1. 按规定时间填写各阶段文档,学习态度加5分2. 设计报告内容雷同扣40分,无调试过程问题分析扣10分,无参考文献扣10分3. 源程序无注释则在程序结构合理性扣10分六、 课程设计主要参考资料Visual Basic程序设
5、计教程 第4版龚沛曾 高等教育出版社Visual Basic程序设计实验指导与测试 第4版龚沛曾 高等教育出版社Visual Basic从入门到精通 清华大学出版社Visual Basic课程设计 王栋 清华大学出版社Visual Basic开发实战1200例 孙秀梅,巩建华 清华大学出版社七、 课程设计计划安排时 间任 务课程设计前一周选择课程设计题目,分析课题的要求,确定设计方案,完成报告册中“课程设计概述”课程设计第1天按功能模块编写详细设计说明,完成报告册中“总体设计”课程设计第2天编写程序、调试程序课程设计第3天编写程序、调试程序,完成报告册中“详细设计”课程设计第4天调试程序,完成
6、报告册中“调试分析过程”课程设计第5天完成报告册中“总结”、“参考文献”、“课程设计评审表”部分内容,提交课程设计报告、源程序、面试或答辩一、课程设计概述课程设计问题描述本题主要是针对在程序设计中对数值型数据进行排序的问题,这虽然是最基本的数据处理操作,但本题不仅综合了四种不同的排序算法:比较法、选择法、直接插入法和冒泡法,也涉及到了一些窗体编辑器,快捷菜单的做法,定时器的编码,使得本题更加的复杂,也增加了本题的理解难度。本程序以动画方式演示上述四种排序算法的排序过程,并可以比较四种算法所需交换数据的次数,从而对四种排序算法有一个比较直观的认识,也可以对四种排序算法的排序效率进行对比。本程序还
7、可以找出所产生的10个随机数中的最大值、最小值和平均值。设计要求1. 对所选题目方案分析比较,确立方案。2. 用户界面良好,有较好的输入输出能力。3. 编制与调试程序,初步掌握程序设计的方法,能熟练调试程序。4. 程序运行情况正常,程序功能完善,程序结构合理。5. 系统设计编程可用,简练,并有一定的容错能力。6. 在完成基本要求后,最好能有一定的创新。设计目的1. 以计算机语言程序设计(VB)课程为基础,目的是进一步培养学生综合应用VB的各种编程知识和技巧进行程序设计的能力对本学期VB课程学习的一个总结,对所学知识的巩固与加深。2. 开发和挖掘我们的创新和实践能力,使我们达到具备设计功能较为复
8、杂的Windows应用程序的能力。3. 通过课程设计,培养我们自主学习和独立创新的精神,也是人才培养体系中极为重要的一环。4. 掌握所学语言程序设计的方法,熟悉所学语言的开发环境及调试过程,熟悉所学语言中的数据类型,数据结构、语句结构、运算方法,巩固和加深对理论课中知识的理解,提高学生对所学知识的综合运用能力。开发环境.操作系统:Windows10 Sever/XP/Professional .处理器:486DX/66 MHz或更高的处理器 .显示器:VGA或更高分辨率的显示器 .应用软件:Visual Basic 6.0二、总体设计(1)系统功能需求分析1. 程序启动后,显示图6.1所示的主
9、界面。首先单击“产生10个随机数”按钮来产生10个随机数,并显示在10个文本框中;然后选择一种“演示模式”和“排序方式”,其中演示模式可以直接给出排序结果,也可以通过动画动态演示整个排序过程,排序方式可以按从小到大顺序,也可以按从大到小顺序排序。图6.1 启动后的主界面2. 在主窗口的空白区单击鼠标右键,弹出如图6.2所示的快捷菜单。从中选择“排序算法”命令,打开图6.3所示的对话框,从中选择一种排序方式,单击不同排序方式时,“算法描述”中简要介绍了这种算法。单击“确定”按钮返回到主窗口,主窗口中最上方框架控件的标题文字显示当前所选的排序算法。图6.2 快捷菜单图6.3 “排序算法选择”对话框
10、 快捷菜单中有一“从文件读取数据”命令,使用此命令可以从当前目录的data.txt文件中读入10个数。要使用这个命令,必须事先建立这个文本文件。3. 设置完毕,单击“开始排序”按钮(此按钮在生成数据之前是不可用的)启动排序过程。若选择了动画方式(见图6.4),红色背景的文本框表示当前正在比较的元素,黄色的代表己排序的元素,两个运动的文本框表示交换过程。在排序过程中可以调节水平滚动条来控制演示的速度。排序结束后程序以消息框的形式报告数据交换的次数(如图6.5)。可以使用快捷菜单中的“将数据写入文件”命令将排序后的数据保存到“data.txt”中覆盖原有内容。图6.4 程序主界面 4. 选择窗口主
11、菜单中的“颜色设置”命令,主窗口扩大,底部显示“颜色设置”框架(如图6.6所示),可以对“文本背景色”、“文本前景色”、“已排序元素色”和“交换结点色”进行设置。再选择此命令,窗口恢复到原来大小。 图6.5 显示交换次数 图6.6系统主菜单 图6.7确认退出对话颜色设置5. 选择“退出”命令可退出本程序,程序显示图6.7所示的对话框予以确认。二、总体设计(2)系统总体设计框架1. 基本窗体控件设计2. 菜单编辑器-快捷菜单的弹出3. 定时器的编码4. 窗体编辑器-多重窗体1. 四种排序方法(比较法、选择法,直接插入法和冒泡法)2. 最大值,最小值,平均值的计算3. 动画演示4. 对话框弹出编写
12、代码窗体设计排 序 演 示三、详细设计主要功能模块源程序1. 窗体设计1四个Frame 控件-第一个Frame 控件包含此问题的基本运算的也是时刻会发生变化的控件。 第二个和第三个 Frame 控件主要是对此程序运行方式的选择。 第四个Frame 控件实质是菜单项中 “颜色设置”单机事件的结果,是对第一个Frame中控件运行时的颜色设置。2 .1个文本框数组-包括10个随机数文本框和两个交换时运动着的文本框3. 菜单设计-下拉式菜单分为两部分,每部分功能不同。 弹出式菜单分为三部分,第一部分的单机事件会出现一个新的Form窗体。三、详细设计主要功能模块源程序4 .一个水平滚动条-对Frame中
13、控件运动时的速度调控。5 五个command按钮-“产生十个随机数” 命令按钮1(0)单击事件会在前十个文本框中产生十个随机数 “开始排序”命令按钮1(2)在第二个和第三个 Frame 中控件都被选择后才会有效,然后对十个随机数进行不同方式的排序。 “ 默认值”命令按钮2是对文本框数组颜色设置的默认按钮。 “停止”命令按钮1(2)在 情况下才有效。 “退出”命令按钮3是用来结束该程序的运行。6 一个timer控件-对此程序运行时的时间间隔控制。7 一个combo数组-包括四个combo控件 Color1(0)文本背景色 Color1(1)文本前景色 Color1(2)已排序元素色 Color1
14、(3)交换元素色2. 代码设计1. 变量声明Option ExplicitOption Base 1 Dim a(10) As Integer 随机数数组Dim First As IntegerDim Second As IntegerPrivate mblnMoving As BooleanDim Speed As IntegerDim inColor1 As Long 文本背景色Dim inColor2 As Long 文本前景色Dim inColor3 As Long 已排序元素色Dim inColor4 As Long 交换元素色Dim inNum As Long 交换次数Public
15、 inSortMethod As Integer 排序算法0-比较法,1-选择法 2-直接插入法,3-冒泡法Private inSortOrder As Integer 排序方向 0-升序 1-降序Private inShowMode As Integer 演示模式,0-直接求解,1-动态演示21 command1(0) -产生十个随机数 Private Sub Command1(0)_Click() Randomize For i = 1 To 10 a(i) = Int(Rnd * 201) - 100 Text1(i).Text = a(i) Text1(i).BackColor=inC
16、olor1 Text1(i).ForeColor = inColor2 Next i Command1.Enabled = TrueFrame2 Frame3中option的选择直接关系到随机数的排序方式2 command1(1)-开始排序 Private Sub Option1_Click(Index As Integer) intShowMode = IndexEnd SubPrivate Sub Option2_Click(Index As Integer) intSortOrder = IndexEnd Sub当排序结束后,会弹出如下一个对话框。response = MsgBox(比较
17、法排序完毕,交换次数为: + Str(Num), vbOKOnly, 系统提示)代码为: 3 command1(2)- 停止程序的运行 Private Sub Command3_Click() If Command3.Caption = 停止 Then Timer1.Enabled = False Command3.Caption = 继续 ElseIf Command3.Caption = 继续 Then Timer1.Enabled = TrueCommand3.Caption = 停止 End If End IfEnd Sub 4 command2 -默认颜色的按钮Private Sub
18、 Command2_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 交换元素色5 command3-退出按钮bo数组 名称分别为 Color1(0)文本背景色 Color1(1)文本前景色 Color1(2)已排序元素色 Color1(3)交换元素色
19、每个combo又有不同的list,都为黑色,绿色,蓝色,青色,红色,黄色紫色分布。 用index区分 Private Sub Color1_Click(Index As Integer) Dim i As Integer Select Case Index Case 0 color1(0)文本背景色 Select Case Color1(0).ListIndex Combo1(0)的list属性,用index区分背景颜色。 Case 0 inColor1 = vbGreen Case 1 inColor1 = vbBlue Case 2 inColor41= vbRed Case 3 inCo
20、lor41= vbYellow End Select For I = 1 To 10 Text1(I).BackColor = inColor1 Next I End Select For i = 1 To 10 Text1(i).BackColor = intColor1 Next i Case 1 color1(1)文本前景色 Select Case Color1(1).ListIndexCombo1(1)的list属性,用index区分前景颜色。 Case 0 inColor4 = vbGreen Case 1 inColor4 = vbBlue Case 2 inColor4 = vb
21、Red Case 3 inColor4 = vbYellow End Select For I = 1 To 10 Text1(I).ForeColor = inColor2 Next I End Select For i = 1 To 10 Text1(i).ForeColor = intColor2 Next iCombo1(2)的list属性,用index区分已排序元素色。 Case 2 Select Case Color1(2).ListIndex Case 0 inColor4 = vbGreen Case 1 inColor4 = vbBlue Case 2 inColor4 =
22、vbRed Case 3 inColor4 = vbYellow End Select For I = 1 To 10 Text1(I).ForeColor = inColor2 Next I End Select Case 3 处理正在交换的结点的背景色 Select Case Color1(3).ListIndex Case 0Combo1(3)的list属性,用index区分交换元素色。 inColor4 = vbGreen Case 1 inColor4 = vbBlue Case 2 inColor4 = vbRed Case 3 inColor4 = vbYellow End Se
23、lect For I = 1 To 10 Text1(I).ForeColor = inColor2 Next I End SelectEnd Sub4.开始排序 Private Sub Command1(1)_Click() Dim Min As Integer, Max As Integer, s As Single Min = 1000: Max = -1000: s = 0 For i = 1 To 10 If e(i) Max Then Max = e(i) If e(i) Min Then Min = e(i) s = s + e(i) Next i Text4.Text = Ma
24、x 最大值 Text5.Text = Min 最小值 Text6.Text = s / 10 平均值 Command3.Enabled = True Select Case intSortMethod Case 0 比较法 comparation_sort e(), intSortOrder Case 1 选择法 selection_sort e(), intSortOrder Case 2 直接插入法 insertion_sort e(), intSortOrder Case 3 冒泡法 bubble_sort e(), intSortOrder End SelectPrivate Sub
25、Command1(2)_Click() Exit_Click End Sub5弹出菜单 Private Sub Form_MouseUp(Button As Integer, Shift As Integer, x As Single, Y As Single) If Button = 2 Then PopupMenu Menu2 End IfEnd Sub6.下拉式菜单 Private Sub Color_Click() Form1.Height = Form1.Height + 2000 Frame3.Visible = True Color.Checked = True End Sub
26、Private Sub Exit_Click() Dim I As Integer I = MsgBox(您真的要退出吗?, vbYesNo + vbQuestion + vbDefaultButton2, 请您确认!) If I = vbYes Then End End IfEnd Sub8. 弹出菜单中排序算法 - 四种同时出现新窗体 2个Frame控件-一个包含了一个option数组,是对排序方式的选择 另一个包含了一个text控件,是对选中的option的解释 1个command按钮,是和Form1的衔接,决定了Form1中十个随机数的排序方式四、调试分析过程(1)调试过程出现的问题及
27、解决方法1.在程序一运行时,没有对speed进行初定量,在程序运行后,动态演示时,负责显示交换元素的两个文本框不运动,也没有排序的作用。 解决:在Form1的load事件中增加了 speed = 100 语句。2下拉式菜单与快捷菜单分离不开 导致快捷菜单不出现 下拉式菜单又出现太多选项 解决:增加第二个主菜单“弹出式菜单”,且不可见。3.快捷菜单无法弹出,且无法联系到窗体。弹出菜单要用PopupMenu方法 在单击“排序算法”时,出现 Form2.show 语句,联系到Form14.对四种排序方法的编程混淆不清在网络上查找资料,先了解四种排序方法的特点和区别。用简单的语句解释理解,然后随机列举
28、几个数字,用排序方法依次排大小,总结规律。写出排序方法的代码。5. 动态演示如何演变用Timer事件进行编程。四、调试分析过程(2)测试数据及测试结果程序运行后,单击下拉式菜单,对颜色进行设置,单击“产生十个随机数”,可以看到随机数所在文本框的背景色和前景色发生改变,然后对演示模式和排序方式进行选择1.当选择静态演示时,会弹出如下对话框。单击确定后,发现排序和最值,平均值的运算已完成。 2.当动态演示时,正在排序元素和已排序元素文本背景色发生变化,且两个变化文本框会运动,在排序结束后,也会出现系统提示的对话框。还可以通过对水平滚动条设置来调整交换速度单击右键会弹出快捷菜单 单击“停止”按钮时,排序运动会暂停,再次单击时又会重新启动。 单击“退出按钮时”,会出现对话框2. 第二个窗体的选择也关系到第一个窗体的运行Option的选择不同,窗体一中的排序方法也不同。五、总结设计用到的知识点 1 多窗体的设计与衔接 2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 春游出行活动策划书(3篇)
- 租赁合同附带担保抵押合同(3篇)
- 高中体育教学反思【15篇】
- 入职培训心得(12篇)
- 天津市2024-2025学年高一上学期11月期中考试 化学试题(无答案)
- 河南省通许县2024-2025学年八年级上学期期中考试道德与法治试卷
- 2024-2025学年浙江省金兰教育合作组织高一上学期期中考试数学试题(含答案)
- 绿色环保安全生产协议
- 调研报告:智障儿童家庭教育问题现状研究及建议
- 证券交易指定银行协议
- 边坡监测合同(与甲方)
- 《等边三角形》教学设计
- 血管外科试题合集
- 相贯线过渡线画法(课堂PPT)
- 医院传染病质控自查表
- 广告机质量检测报告(共6页)
- 中国 美国 日本水洗标志对比
- 通用横版企业报价单模板
- 潜油泵及潜油泵加油机讲义
- 物业服务公司各岗位规范用语
- 医患沟通内容要求记录模板(入院、入院三日、术前、术后、出院)
评论
0/150
提交评论