vb课程设计论文

合集下载

VB课程设计论文

VB课程设计论文

课程设计任务书学院:xxxxxxxxxx 专业:xxxx 班级:xxxxxxx学号:xxxxxxxxxxxxx 题目:数据库数据的导入与导出一、课程设计时间2012年3月5日~17日(第1、2周),共计2周。

二、课程设计内容将一个文本文件(file01_数据的导入.txt)中的数据导入到Access的某个数据表中,并显示相应的内容;再将数据库的某一个表中的数据导出到一个文本文件中,并显示相应的内容。

要求使用CommonDialog控件和DataGrid 控件。

导入提示:①依据文本文件内容,先在Access数据库中创建出相应的表。

②一方面,用ADO数据控件打开表;另一方面用文件访问技术读取给定的文本文件中的内容,并添加到数据库表中。

三、课程设计要求程序质量:✧贯彻事件驱动的程序设计思想。

✧用户界面友好,修饰适宜,功能明确,操作方便;适当增加1~2项其它功能。

✧代码应规范(适当缩进、必要的注释),以增强程序的可读性。

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

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

四、指导教师和学生签字指导教师:________ 学生签名:________五、成绩目录一、需求分析 (4)二、设计分析 (5)三、技术要点 (6)四、总结 (10)五、完整的源程序 (11)六、参考文献 (12)一、需求分析将一个文本文件(file01_数据的导入.txt)中的数据导入到Access的数据表中,并显示相应的内容;再将数据库Access表中的数据导出到一个文本文件中,并显示相应的内容。

要求:①使用CommonDialog控件②使用DataGrid控件。

分析:导入:①依据文本文件内容,先在Access数据库中创建出相应的表;②一方面,用ADO数据控件打开表;③另一方面用文件访问技术读取给定的文本文件中的内容,并添加到数据库表中。

导出:用SQL语句,将数据库的每个字段的记录读取出来,依次写入文本文档中。

毕业设计(论文)-基于vb实用计算器的设计[管理资料]

毕业设计(论文)-基于vb实用计算器的设计[管理资料]

基于VB实用计算器的设计Design of practical Calculator base on VB作者姓名:学科专业:电子设备技术学院(系部):机电工程系指导教师:2010年12月➢摘要随着科学技术的不断提高,计算机科学日渐成熟 ,它已进入人类社会的各个领域并发挥着越来越重要的作用。

计算器软件系统应该能够为用户提供丰富的手段。

使用计算器运算,、价格便宜、可保存信息等。

这些优点能够极大地提高效率,也是国家的科学化、信息化管理,与世界接轨的重要条件。

本文着重分析计算器的运算法则与代码的关系以及控件数组的创建和使用技巧,并在Microsoft公司出品的一个面向对象的可视化开发工具Visual Basic上,采用VB语言及窗体界面的设计方法,界面设计直接在屏幕上显示出窗口、文本框、按钮等区别类型对象并为每个对象设置属性。

实现了基于Visual Basic ,可视化界面给操作带来很大的方便。

关键词:Visual Basic;计算器;对象;代码➢AbstractWith the continuous improvement of science and technology, computer science increasingly mature, it has access to all areas of human society,and play an increasingly important role.Calculator software system should be able to provide users with a rich means. Use a calculator for mathematical calculations, with an unmatched by other advantages. For example, to find convenient, cheap and save information. These advantages can greatly improve efficiency, is also the country's scientific, information management, an important condition for integration with the world.This article focuses on analysis of algorithms and code calculator relationship and control the creation and use of an array of skills and Microsoft companies produce go in an object-oriented visual development tools, Visual Basic, using the VB language and interface design of form methods, interface design directly on the screen shown window, text boxes, buttons, etc. for each different type of object and object to set properties. Achieved based on Visual Basic software, running on the control design method to design a simple calculator, visual interface to the operator great convenience.Keywords:Visual Basic, Calculator, Object, Code目录摘要 (1)Abstract (2)第一章绪论 (4) (4) (4)系统设计的总体思路 (4)总体方案的设计 (4)第二章VB设计系统 (5)Visual Basic 语言基础 (6)Visual Basic (7)第三章实用计算器的设计 (10) (10) (13) (14)调试运行 (21)保存工程及生成可执行文件 (22)第四章总结 (25)参考文献 (26)致谢 (27)➢第一章绪论✧设计的功能Visual Basic 公司推出的当今最优秀、最流行的可视化快速软件开发工具之一。

vb课程设计题目 设备管理系统本科论文

vb课程设计题目  设备管理系统本科论文

VB程序设计课程设计课程设计题目设备管理系统目录一、课程设计的目的与要求二、任务描述对系统要实现的功能进行确切的描述。

三、设计详细说明程序的设计思想,所用到的算法、数据结构技巧等四、效果及存在问题说明系统的运行效果(附上界面图形)、存在哪些不足以及预期的解决办法五、总结课程设计的目的与要求1、教学目的使学生在理论课程结束后,通过课程设计能进一步巩固对VB编程机制的理解,真正掌握运用VB进行软件开发的方法和原理,从而锻炼学生开发能力、程序调试的能力,及程序错误处理的能力。

2、教学要求从课程设计的目的出发,通过课程设计的各个环节,达到以下教学要求(1)进一步掌握VB语言程序设计的基本思想和方法;(2)掌握面向对象的可视化程序设计的基本原理及应用;任务描述建立设备数据库表,存储设备的信息,包括设备的名称、数量、型号、规格等信息;能够实现对设备的查询、修改、添加等操作。

设计1、设备管理系统的功能1、查看设备:用来实现对设备的浏览、删除2、查询设备:用来实现对设备的查询3、添加设备:用来实现对设备的添加2、连接数据源利用ADO控件将Access数据源连接到程序中建立Access数据库打开Access,建立名为“设备”的数据库。

在数据库中选择“使用设计器创建表”输入名称、型号、单价、数量、规格、购买日期。

保存命名为“设备管理”。

3、窗体(1)登陆界面From1 代码如下:Private Sub Command1_Click() Form2.ShowEnd Sub(2)查看设备Form2 代码如下:Private Sub Command1_Click()Adodc1.Recordset.MovePrevious ’数据移到上一条If Adodc1.Recordset.BOF ThenAdodc1.Recordset.MoveFirstMsgBox "已经是第一条"End IfEnd SubPrivate Sub Command2_Click()Adodc1.Recordset.MoveNext ’数据移到下一条If Adodc1.Recordset.EOF ThenAdodc1.Recordset.MoveLastMsgBox "已经是最后一条"End IfEnd SubPrivate Sub Command3_Click()Form3.ShowEnd SubPrivate Sub Command4_Click()Form4.ShowEnd SubPrivate Sub Command5_Click()On Error Resume NextIf MsgBox("确定删除该记录?", vbOKCancel, "提示") = vbOK Then Adodc1.Recordset.Delete ’删除正显示的记录Adodc1.Recordset.MoveNext ’显示下一条数据If Adodc1.Recordset.EOF ThenAdodc1.Recordset.MoveLastEnd IfEnd IfEnd SubPrivate Sub Command6_Click()EndEnd SubPrivate Sub Command7_Click()Adodc1.Recordset.MoveFirst ’显示第一条数据End SubPrivate Sub Command8_Click()Adodc1.Recordset.MoveLast ’显示最后一条数据End Sub(3)添加设备Form3 代码如下:Private Sub Command1_Click()Adodc1.RefreshAdodc1.Recordset.AddNewAdodc1.Recordset.Fields(1) = Trim(Text1)Adodc1.Recordset.Fields(2) = Trim(Text2)Adodc1.Recordset.Fields(3) = Trim(Text3)Adodc1.Recordset.Fields(4) = Trim(Text4)Adodc1.Recordset.Fields(5) = Trim(Text5)Adodc1.Recordset.Fields(6) = Trim(Text6) ’将文本框中的值赋值给数据库Adodc1.Recordset.UpdateAdodc1.Recordset.MoveLastMsgBox "该设备已添加"End SubPrivate Sub Command2_Click()Text1.Text = ""Text2.Text = ""Text3.Text = ""Text4.Text = ""Text5.Text = ""Text6.Text = ""End SubPrivate Sub Command3_Click()Unload MeForm2.ShowEnd SubForm4 代码如下:Private Sub Command1_Click()Dim check As IntegerAdodc1.RefreshAdodc1.Recordset.MoveFirstM = Trim(Text1)While Adodc1.Recordset.EOF <> TrueIf Adodc1.Recordset.Fields(1) = M ThenText2.Text = Adodc1.Recordset.Fields(2)Text3.Text = Adodc1.Recordset.Fields(3)Text4.Text = Adodc1.Recordset.Fields(4)Text5.Text = Adodc1.Recordset.Fields(5)Text6.Text = Adodc1.Recordset.Fields(6)check = check + 1 ’用循环语句判断文本框中的End If 值是否等于数据库中相应Adodc1.Recordset.MoveNext 的值WendAdodc1.RefreshX = Trim(Text2)While Adodc1.Recordset.EOF <> TrueIf Adodc1.Recordset.Fields(2) = X ThenText1.Text = Adodc1.Recordset.Fields(1)Text3.Text = Adodc1.Recordset.Fields(3)Text4.Text = Adodc1.Recordset.Fields(4)Text5.Text = Adodc1.Recordset.Fields(5)Text6.Text = Adodc1.Recordset.Fields(6)check = check + 1End IfAdodc1.Recordset.MoveNextWendAdodc1.RefreshD = Val(Trim(Text3))While Adodc1.Recordset.EOF <> TrueIf Adodc1.Recordset.Fields(3) = D ThenText1.Text = Adodc1.Recordset.Fields(1)Text2.Text = Adodc1.Recordset.Fields(2)Text4.Text = Adodc1.Recordset.Fields(4)Text5.Text = Adodc1.Recordset.Fields(5)Text6.Text = Adodc1.Recordset.Fields(6)check = check + 1End IfAdodc1.Recordset.MoveNextWendAdodc1.RefreshS = Val(Trim(Text4))Adodc1.Recordset.MoveFirstWhile Adodc1.Recordset.EOF <> TrueIf Adodc1.Recordset.Fields(4) = S ThenText1.Text = Adodc1.Recordset.Fields(1)Text2.Text = Adodc1.Recordset.Fields(2)Text3.Text = Adodc1.Recordset.Fields(3)Text5.Text = Adodc1.Recordset.Fields(5)Text6.Text = Adodc1.Recordset.Fields(6)check = check + 1End IfAdodc1.Recordset.MoveNextWendAdodc1.RefreshG = Trim(Text5)While Adodc1.Recordset.EOF <> TrueIf Adodc1.Recordset.Fields(5) = G ThenText1.Text = Adodc1.Recordset.Fields(1)Text2.Text = Adodc1.Recordset.Fields(2)Text3.Text = Adodc1.Recordset.Fields(3)Text4.Text = Adodc1.Recordset.Fields(4)Text6.Text = Adodc1.Recordset.Fields(6)check = check + 1End IfAdodc1.Recordset.MoveNextWendAdodc1.RefreshR = Trim(Text6)While Adodc1.Recordset.EOF <> TrueIf Adodc1.Recordset.Fields(6) = R ThenText1.Text = Adodc1.Recordset.Fields(1)Text2.Text = Adodc1.Recordset.Fields(2)Text3.Text = Adodc1.Recordset.Fields(3)Text4.Text = Adodc1.Recordset.Fields(4)Text5.Text = Adodc1.Recordset.Fields(5)check = check + 1End IfAdodc1.Recordset.MoveNextWendIf check = 0 ThenMsgBox ("无此设备!")End IfText1.Locked = True ’显示查询结果后,文本框内容不可更改Text2.Locked = TrueText3.Locked = TrueText4.Locked = TrueText5.Locked = TrueText6.Locked = TrueEnd SubPrivate Sub Command2_Click()Text1.Text = ""Text2.Text = ""Text3.Text = ""Text4.Text = ""Text5.Text = ""Text6.Text = ""Text1.Locked = False ’按清除键后,文本框内容不可更改Text2.Locked = FalseText3.Locked = FalseText4.Locked = FalseText5.Locked = FalseText6.Locked = FalseEnd Sub效果及存在问题不能将添加的设备马上显示出来,功能较为简单,不够完善总结通过这次实验周的实践,我感受到了VB设计的趣味性,了解了VB的实用性。

VB课程论文

VB课程论文

长沙理工大学《》课程论文CPU信息查询器的实现学院专业计算机班级学号学生姓名指导教师课程成绩完成日期CPU信息查询器的实现学生姓名:指导老师:摘要随着计算机技术的发展,各种程序设计语言层出不穷,是微软最新平台技术,是.Net FrameWork SDK的一种语言,本学期在完成了课程后对有了一定了解,在这次课程论文的程序设计中,我利用了命名空间(namespace)对注册表进行关联,从而简单的完成了对一台计算机CPU信息的查询。

本程序简洁实用,调试通过。

关键词注册表;命名空间;CPU信息;1 需求分析本次课程论文的程序设计是一个简洁实用的CPU查询器,本程序需要在一台计算机上查找到CPU的相关信息,从而展示给用户以方便了解到当前实用的计算机的配置。

本程序对于设计的有求有如下几点:●能够快速的查找到CUP的硬件信息⏹CPU厂商信息⏹CPU信息描述⏹CPU速度⏹CPU标识●用户界面简洁,人机互动性好●消耗资源低,运行速度快且无错误2功能实现对于本程序的需求,在这次程序设计中采用了比较特殊的处理方法,以达到低资源消耗,运行速度快等要求,其特殊之处在于利用了命名空间,它可以跨多个程序集。

在 .NET Framework 中,命名空间在逻辑设计时提供命名方便,而程序集在运行时确定类型的命名范围。

从而快速确定相关信息。

对于CPU信息的处理,本程序采用对注册表的HKEY_LOCAL_MACHINE\SYSTEM键值引用来解决,其中包含了当前所在计算机的各种软硬件信息,从而达到获取CPU的相关信息的功能。

程序功能如图2.1所示:图2.1 程序功能实现2.1利用命名空间声明命名空间 (namespace) 将相关的类型进行分组的逻辑命名方案。

.NET Framework 使用分层命名方案,将类型分为相关功能的逻辑类别,如 技术或远程处理功能。

设计工具可以使用命名空间,使开发人员在他们的代码中浏览和引用类型更为方便。

VB程序设计论文

VB程序设计论文

中南大学本科生课程设计(实践)任务书、设计报告(数据库技术与应用)题目:历史人物管理信息系统****:*******:***学院:艺术学院专业班级:美术0802班学生学号:**********计算机基础教学实验中心2009年5月28日历史人物管理信息系统摘要随着计算机技术的迅速发展,计算机信息管理系统已成为热门话题。

管理信息系统的实施在技术上已逐步成熟。

管理信息系统是以个不断发展的新型学科。

本文介绍了在Visual Basic6.0及SQL Sever 环境下设计开发历史人物管理信息系统,并且如何利用电脑来对历史人物信息进行方便有效的管理。

关键词历史管理信息系统 VB 数据库开发背景计算机已经成为我们学习和工作的得力助手。

今天,计算机的价格已经十分低廉,性能却有了长足的进步。

它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面:首先,计算机可以代替人工进行许多繁杂的劳动;其次,计算机可以节省许多资源;第三,计算机可以大大的提高人们的工作效率;第四,计算机可以使敏感文档更加安全,等等。

一.历史人物管理信息系统开发设计思想人们常说:“历史是真理的母亲”,“历史是生活的镜子”,这些话都充分说明了历史学科的特有功能。

在茫茫历史长河中,历史人物是历史的重要扮演者,只有了解了历史人物,才能了解整个历史。

而通过学习和了解历史人物,则能培养我们的历史意识、历史思维和历史方法,从而提高整个民族的文化素养和历史认同感。

因此,为了让每个人都了解历史人物,了解历史,设计了历史人物管理信息系统。

二.历史信息系统需求分析1.系统需求历史人物管理信息系统的主要功能是录入和查询各历史人物的各项信息,包括历史人物的姓名,年代,国家,简介,图片等等。

让操作人员方便快捷的查阅各种信息2功能需求根据系统需求分析,本系统的功能要求如下:(1)系统管理系统管理的功能是在该系统运行结束后,用户通过“统管理”下的“退出”命令,能正常退出系统,回到Windows环境。

VB课程论文

VB课程论文

用VBA实现西藏高速公路建设前期可行性分析数据的录入摘要:由于交通工程可行性评价的需要,采集了铁路、公路和航空的数据之后必须进行数据的输入。

但是直接在Excel中输入会出现很多不便,尤其是数据项目过多时很容易出现错误,而且在有需要输入大量重复文字但是又不是全部重复时,会给数据输入造成很大麻烦。

所以,以VBA为基础对,编写了一个程序来直接实现对Excel的编写,从而增加数据输入的效率。

关键字:VBA;软件设计;数据输入;Excel数据;1 引言在交通工程可行性评价里面,经常需要采集问卷和各种不同的信息,但是基本上都是纸质的或者文档形式的,不便于统计运用。

需要将数据输入到Excel表格进行处理,然后分析。

但是数据输入的过程十分繁琐,而且如果形式不当,则很容易出错,所以本文通过设计一个VB程序来辅助输入调查结果产生的数据。

此软件是在青藏高速公路工程可行性研究的背景下进行的,主要是采集了铁路、公路和航空三个方面的入藏人员的调查数据,需要对其进行用户需求分析,所以设置了问卷调查,对在进行了问卷调查,在后期需要对问卷调查的数据进行录入整理。

2 编程实现原理以及功能在实际调查问卷中会出现单选和多选的项目,所以其基本功能需要复选框和选项按钮来实现。

数据输入是在Excel表格中的VBA实现的,输入数据点击保存后会自动将数据存入Excel表,并且由于输入问卷时各个不同,需要加入自动编号机制。

输入数据时,可能会遗漏数据或者问卷本身缺失数据,此时软件应提示是否缺失数据。

程序实现的基本过程详细叙述如下:2.1 功能界面设置首先是登录界面如下:从图上窗体可看出需要铁路、航空和公路三个方面的数据输入,但本论文实现的是铁路部分功能,其他部分功能的实现另有专人负责。

选择铁路,点击确定命令按钮,进入铁路问卷调查数据输入界面。

然后是铁路问卷调查的界面如下输入数据时,按照问卷的选项进行填写之后,9-11、14、16为复选框选项组成,17为文本输入。

vb课程设计参考论文

vb课程设计参考论文

vb课程设计参考论文一、教学目标本课程旨在通过学习Visual Basic编程语言,使学生掌握基本的编程概念和技能,能够运用Visual Basic开发简单的应用程序。

具体目标如下:1.知识目标:–理解Visual Basic的基本概念和编程环境。

–掌握变量、数据类型、运算符和表达式的使用。

–学会编写控制结构,如顺序、选择和循环结构。

–了解数组、过程和函数的定义和使用。

–掌握事件驱动编程的基本概念。

2.技能目标:–能够使用Visual Basic开发环境进行程序设计。

–能够编写和运行Visual Basic程序,调试程序错误。

–能够使用Visual Basic实现常见的小程序,如计算器、记事本等。

–能够利用Visual Basic访问和操作数据库。

3.情感态度价值观目标:–培养学生的逻辑思维能力和问题解决能力。

–激发学生对计算机编程的兴趣,培养学生的创新意识。

–培养学生团队合作精神,提高学生沟通与协作能力。

二、教学内容本课程的教学内容主要包括以下几个部分:1.Visual Basic基本概念和编程环境:介绍Visual Basic的发展历史、特点和应用领域,学习Visual Basic的集成开发环境(IDE)的使用。

2.变量、数据类型、运算符和表达式:学习变量的声明和赋值,掌握数据类型、运算符和表达式的使用。

3.控制结构:学习顺序结构、选择结构和循环结构的使用,掌握条件语句和循环语句的编写。

4.数组、过程和函数:学习数组的声明和操作,掌握过程的定义和调用,了解函数的定义和使用。

5.事件驱动编程:学习事件的概念,掌握事件过程的编写和事件驱动程序的设计。

6.数据库操作:学习Visual Basic中数据库访问技术,掌握数据表的创建、修改和查询。

三、教学方法本课程采用多种教学方法相结合的方式,以激发学生的学习兴趣和主动性:1.讲授法:讲解Visual Basic的基本概念和编程技巧,引导学生掌握关键知识。

vb程序设计论文计算机课程设计论文

vb程序设计论文计算机课程设计论文

- 23 -
南方医学教育 2007 年 3 期
成绩较高,但缺乏实际的编程能力和创新思维。为了 能够综合评价学生,我们改革了考核方式,具体方案 是:10%平时考核+30%上机考核+60%理论考核。
平时考核重点检查学生对英语词汇和概念的掌 握。我们为每一章的内容设计了大量的英语选择题, 每次理论课抽出 5 分钟对学生提问,根据学生回答给 出平时分数。
上机考核配合每章内容设计了一些验证性实验和 设计性实验。验证性实验主要是对教材上现有程序代 码的计算机实现,要求学生在规定时间内完成,目的 是考核学生对书本理论知识的理解。设计性实验是给 出程序的运行结果,要求学生自行设计程序界面,添 加程序代码,并给学生一周的时间完成,目的是考核 学生设计程序和调试程序的能力,培养算法思维和创 新思维。上机实践能加深对程序的理解和掌握,经过 这些训练的学生,基本掌握 VB 的编程技巧,能够根 据实际需要自行开发简单的 Windows 应用程序,程度 较好的学生甚至能开发出一个完整的门诊挂号系统。
4 结束语 总之,加强双语教学研究,提高双语教学质量是 我国推行双语教学改革所面临的迫切任务。目前,关 于 VB 程序设计课程的双语教学还在实践摸索、经验 总结当中,目前尚无一个统一模式,我们应当科学尝 试,排除困难,积极探索出适合自己学校实际情况的 双语教学模式和方法。教学相长,教师和学生都要做 出更多的努力,洒下辛勤的汗水,才能收获甜美的果 实。教师从教学实践中总结出科学规律,采取相应教 学方法并贯穿于教学实践中是提高教学质量的关键环 节。
作者简介:傅蓉 (1979-),女,江西景德镇人,讲师,博士。研究方 向:计算机教学和医学图像处理。
性通用语言开发的,其知识结构和最新的程序设计类 书籍大多源自国外,没有 “双语”根底根本不可能领 会到程序的精髓所在。如果我们在教学过程中采用传 统的中文教学模式,那么我们所传授的知识总是落后 于当前程序设计的最新知识,就很难跟上国际教育发 展的步伐。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Vb课程设计题目排序演示专业自动化学生姓名王亮学号2012118064指导教师王福林目录一、设计任务 (3)二、总体设计思路 (4)三、画出程序总体框图 (4)四、系统的调试 (6)五、收获体会 (8)六、源代码 (9)七、主要参考资料 (23)一、设计任务(1)程序启动后,显示主界面。

首先单击“产生10个随机数”按钮来产生10个随机数,并显示在10个文本框中;然后选择一种“演示模式”和“排序方式”,其中演示模式可以直接给出排序结果,也可以通过动画动态演示整个排序过程,排序方式可以按从小到大顺序,也可以按从大到小顺序排序。

(2)在主窗口的空白区单击鼠标右键,弹出快捷菜单。

从中选择“排序算法”命令,打开对话框,从中选择一种排序方式,单击不同排序方式时,“算法描述”中简要介绍了这种算法。

单击“确定”按钮返回到主窗口,主窗口中最上方框架控件的标题文字显示当前所选的排序算法。

(3)设置完毕,单击“开始排序”按钮(此按钮在生成数据之前是不可用的),启动排序过程。

若选择了动画方式,红色背景的文本框表示当前正在比较的元素,黄色的代表已排序的元素,2个运动的文本框表示交换过程。

在排序过程中可以调节水平滚动条的位置来控制演示过程的速度。

排序结束后程序以消息框的形式报告数据交换的次数。

可以使用快捷菜单中的“将数据写入文件”命令将排序后的数据保存到“data.txt”中覆盖原有内容。

(4)选择窗口主菜单中的“颜色设置”命令,主窗口扩大,底部显示“颜色设置”框架,可以对“文本背景色”、“文本前景色”、“已排序元素色”和“交换结点色”进行设置。

再选择此命令,窗口恢复到原来的大小。

(5)选择主菜单中的“退出”命令可退出本程序,程序显示消息对话框予以确认。

二、系统总体设计方案三、画出程序整体框图1.快捷菜单排序方法多重窗体窗体编辑器设计界面排序演示模块代码信息提示框编写代码2.启动后的主界面3.确认退出对话框4.颜色设置5.显示交换次数6.“排序算法选择”对话框四、系统的调试1、问题:停止按钮不能使其在开始运行时候停止。

解决:利用了Boolean(逻辑变量)定义了一个使程序停止的变量f,然后又定义了一个Pri vate Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) ,声明sleep函数,可以使程序暂停一段时间,最后用时钟(timer)来设定所需暂停的随机时间(s)。

注意ti mer函数设置时的interval值,以毫秒为单位,1000ms=1s。

2、问题:消息对话框(msgbox)的形式,及msgbox函数的返回值如何的选取,设置。

解决:在对“停止”按钮编码时,一开始未给msgbox赋值,导致程序不起作用,后来赋值后,采用了msgbox函数里的vbyes与vbno,采用了if...then...else...但程序无法退出,最后只对vbno做了代码编制,退出程序则采用了“unload”函数,最后程序终于调试成功。

3、问题:动态演示如何演变,交换次数无法得到。

解决:采用timer函数,以时间来对它进行控制,也可以拖得滚动条来控制它动态演示时的速度。

演示代码:If a(k) > a(j) An d O ptio n1.V alue Th enTex t1(k - 1).B ackC olor = y ans e1 '''''''''''''''交换元素颜色Tex t1(j - 1).B ackC olor = y ans e1DoE vent sCal l Sl eep(1000) 调用了函数sl eeplin shi = a(j)a(j) = a(k)a(k) = lins hijia ohua n = jia ohua n + 1Tex t1(k - 1).T ext = a(k)Tex t1(j - 1).T ext = a(j)Tex t1(k - 1).B ackC olor = y ans e '''''''''''''已经排序的颜色Tex t1(j - 1).B ackC olor = y ans eEnd IfIf a(k) < a(j) And Opti on2.Val ue T henTex t1(k - 1).B ackC olor = y ans e1Tex t1(j - 1).B ackC olor = y ans e1lin shi = a(j)a(j) = a(k)a(k) = lins hijia ohua n = jia ohua n + 1DoE vent sSle ep (1000)Tex t1(k - 1).T ext = a(k)Tex t1(j - 1).T ext = a(j)Tex t1(k - 1).B ackC olor = y ans eTex t1(j - 1).B ackC olor = y ans eEnd IfIf k = 9 The nj = 0k = 0Tim er1.Enab led = F alseMsgBo x F rame1.C apti on & "排序结束" & "共用" & ji aohu an & "次", vb OKOn ly + vbInf orma tion, "系统提示"4、问题:快捷菜单无法弹出。

解决:设计到了窗体编辑器,及弹出菜单所使用的方法PopupMenu。

Private Sub Form_Mous eDown(Button As Integer, Shift As Integer, x As Single, Y As Single)If Button = 2 Then Form1.PopupMenu y oujian '''右键弹出菜单End Sub五、收获体会这是我进入大学以来第一次学习vb,第一次知道了什么是vb,第一次了解到了原来平时我们看到计算机上那些普普通通的小程序需要那么多的代码才能够运行起来,终于发现这其中的奥秘。

学习vb首先就是要对所有常用函数了如指掌,这样在编程的时候才能够很快想到并用对地方,做这个程序设计的一开始,简直是一头雾水,无从下手,后来经过翻书,查找资料,网上资料,等等...终于对所要编的程序有了一定的认识,在同学互相讨论的基础上,终于编出排序演示,但是还存在不足,在动态演示的时候,缺了正在交换文本框的动态形式,但是基本能运行起来,大致的符合了设计任务。

程序中所涉及的内容很多,有比较法排序,插入法排序,冒泡发排序,选择法排序,集合了所有的排序,以前对排序的编程就有点不理解,因为它很绕,真正理解它真的有点困难。

还有一些我们vb书上第七章的一些窗体编辑器,快捷菜单的做法,定时器的编码,这些更加巩固了我对这些知识的理解,通过这几天对vb的深入研究,发现其实慢慢的对vb产生了兴趣,从以前的没兴趣到产生兴趣,这是一种好的现象,兴趣是最好的老师,相信我会越学越好的。

六、源代码模块:Option ExplicitPublic Declar e Sub Sleep Lib "ker nel32" (ByV al dw Millisec onds A s Long)颜色设置:Pr ivate Sub Com bo1_Click()Dim i As Int eg erSel ect Ca se Com bo1.ListIndexCase 0For i = 0 T o 9T ext1(i).Ba ckColor= vbBlu eNext iCase 1For i = 0 T o 9T ext1(i).BackC olor = vbGr eenNext iCase 2For i = 0 T o 9T ext1(i).BackC olor = vb RedNext iCase 3For i = 0 T o 9T ext1(i).BackC olor = vbY ellowNext iEnd Sel ectEnd SubPr ivate Sub Com bo2_Click()Dim i As Int eg erSel ect Ca se Com bo2.ListIndex Case 0For i = 0 T o 9T ext1(i).For eColor= vbBlu eNext iCase 1For i = 0 T o 9T ext1(i).For eC olor = vbGr een Next iCase 2For i = 0 T o 9T ext1(i).For eC olor = vb Red Next iCase 3For i = 0 T o 9T ext1(i).For eC olor = vbY ellow Next iEnd Sel ectEnd SubPr ivate Sub Com bo3_Click() Sel ect Ca se Com bo3.ListIndex Ca se 0yan se = vbBlu eCa se 1yan se = vbGr eenCa se 2yan se = vbRedCa se 3yan se = vbY ellowEnd Sel ectEnd SubPr ivate Sub Com bo4_Click() Sel ect Ca se Com bo4.ListIndex Ca se 0yan se1 = vb BlueCa se 1yan se1 = vbGr eenCa se 2yan se1 = vb RedCa se 3yan se1 = vbY ellowEnd Sel ectEnd Sub退出按钮:Pr ivate Sub Com m and1_Click()If Msg Box("您真的要退出吗?", 4 + 32, "请您确认!") = vb No Then Exit SubEnd IfUnload Form1Unload Form2End Sub产生随机数:Pr ivate Sub Com m and2_Click()Dim i As Int eg erRandom iz e Tim eFor i = 1 T o 10a(i) = Rnd * 200T ext1(i - 1).T ext = a(i)Next iComm and3.Enabled = T r ueComm and4.Enabled = T r ueEnd Sub开始排序直接给出排序结果:Pr ivate Sub Com m and3_Click()Dim i As Int eg er, k A s Singl eIf For m1.Optzhij ie.V alu e Th enIf For m2.Option1.V alue ThenCall bij iao(a)For i = 1 T o 10T ext1(i - 1).T ext = a(i)NextEl seIf For m2.Option2.V alue ThenCall xuanz e(a)For i = 1 T o 10T ext1(i - 1).T ext = a(i)NextEl seIf For m2.Option3.V alue ThenCall char u(a)For i = 1 T o 10T ext1(i - 1).T ext = a(i)NextEl seIf For m2.Option4.V alue ThenCall m aopao(a)For i = 1 T o 10T ext1(i - 1).T ext = a(i)NextEnd IfIf a(1) > a(10) ThenT ext2(0).T ext = a(1)T ext2(1).T ext = a(10)El seT ext2(0).T ext = a(10)T ext2(1).T ext = a(1)End IfFor i = 1 T o 10k = a(i) + kNext iT ext2(2).T ext = k / 10End If----------------------------------------------------------------------------------------- 动态演示结果:If For m1.Optdongtai.V alue Th enIf For m2.Option1.V alue ThenTim er1.Enabled = T r ueEl seIf For m2.Option2.V alue ThenTim er1.Enabled = T r ueEl seIf For m2.Option3.V alue ThenTim er1.Enabled = T r ueEl seIf For m2.Option4.V alue ThenTim er1.Enabled = T r ueEnd IfEnd IfEnd Sub暂停运行命令:Pr ivate Sub Com m and4_Click()Dim i%, n%, s%f = Fal seTim er1.Enabled = FalseTim er1.Inter val = 1000For i = 1 T o ns = n + 1Next iSl eep (n)End Sub默认:Pr ivate Sub Com m and5_Click()Dim i%Com bo1.T ext = "蓝色"Com bo2.T ext = "绿色"Com bo3.T ext = "红色"Com bo4.T ext = "黄色"T ext1(i).Bac kColor = vbBlu eT ext1(i).For eColor = vbGr eenyanse = vbRedyanse1 = vbY ellowNextEnd Sub窗体启动的时候加载的程序:Pr ivate Sub For m_Load()Comm and3.Enabled = FalseComm and4.Enabled = FalseFr am e4.V isibl e = Fal seForm2.Option1.V alue = T r ueEnd Sub快捷菜单:Pr ivate Sub For m_MouseDow n(Button As Int eg er, Shift As Int eg er, X A s Singl e, Y As Singl e) If Button = 2 Then For m1.PopupMenu youj ianEnd Sub速度Pr ivate Sub HScr oll1_Chang e()Tim er1.Inter val = H Scr oll1.Sm allchangeEnd Sub菜单退出的按钮:Pr ivate Sub m nu_end_Click()Unload Form1Unload Form2End Sub显示设置按钮:Pr ivate Sub m nu_set_Clic k()If m nu_set.Ch ecked = T r ue ThenFor m1.Height = For m1.Height + 1650Fr am e4.V i sible = T r uem nu_set.Ch ecked = Fal seElseIf m nu_set.Ch ecked = Fal se ThenFor m1.Height = For m1.Height - 1650m nu_set.Ch ecked = T r ueEnd IfEnd Sub写入数据:Pr ivate Sub shuj uxie_Click()Open App.Path + "\data.txt" For Output As #1For i = 1 T o 10W r ite #1, a(i);Next iClose #1End Sub显示窗体2:Pr ivate Sub suanfa_Click()Form2.ShowEnd Sub时间控件用来动态演示:Pr ivate Sub Tim er1_Tim er()Static k A s Int eg er, j As Int eg er, linshi As Integ er, j iaohuan As Int eg er, i A s Int eg er Dim X As Int eg er, m As Singlef = T r ueIf f = Fal se ThenExit SubEnd IfIf For m2.Option1.V alue Then 比较法排序If k = 0 Thenk = 1j = 2End IfIf j = 11 Thenk = k + 1j = k + 1End IfIf a(k) > a(j) And Option1.V alue Th en 交换元素颜色T ext1(k - 1).Ba ckColor = yan se1T ext1(j - 1).Bac kColor = yanse1DoEv entsCall Sl eep(1000)linshi = a(j)a(j) = a(k)a(k) = linshij iaohuan = jiaohuan + 1T ext1(k - 1).T ext = a(k)T ext1(j - 1).T ext = a(j)T ext1(k - 1).Ba ckColor = yan se 已经排序的元素颜色T ext1(j - 1).Bac kColor = yanseEnd IfIf a(k) < a(j) And Option2.V alue Th enT ext1(k - 1).Ba ckColor = yan se1T ext1(j - 1).Bac kColor = yanse1linshi = a(j)a(j) = a(k)a(k) = linshij iaohuan = jiaohuan + 1DoEv entsSl eep (1000)T ext1(k - 1).T ext = a(k)T ext1(j - 1).T ext = a(j)T ext1(k - 1).Ba ckColor = yan seT ext1(j - 1).Bac kColor = yanseEnd IfIf k = 9 Thenj = 0k = 0Tim er1.Enabled = Fal seMsg Bo x Fr am e1.Caption & "排序结束" & "交换次数为:" & j iaohuan & "次", vbOKOnly + vbInform ation, "系统提示"j iaohuan = 0If a(1) > a(10) ThenT ext2(0).T ext = a(1)T ext2(1).T ext = a(10)El seT ext2(0).T ext = a(10)T ext2(1).T ext = a(1)End IfFor X = 1 T o 10m = a(X) + mNext XT ext2(2).T ext = m / 10End Ifj = j + 1 选择法排序ElseIf For m2.Option2.V alue Th enk = k + 1lin shi = a(k + 1)i = k + 1If Option1.V alue ThenFor j = k + 1 T o U Bound(a)If lin shi > a(j) Thenlinshi = a(j)i = jEnd IfNext jIf a(k) > a(i) ThenT ext1(k - 1).Bac kColor = yan se1T ext1(i - 1).BackCol or = y anse1DoEv entsSl eep (1000)lin shi = a(i)a(i) = a(k)a(k) = linshiT ext1(k - 1).T ext = a(k)T ext1(i - 1).T ext = a(i)j iaohuan = j iaohuan + 1T ext1(k - 1).Bac kColor = yan seT ext1(i - 1).BackCol or = y anseEnd IfEnd IfIf Option2.V alue ThenFor j = k + 1 T o U Bound(a)If lin shi < a(j) Thenlinshi = a(j)i = jEnd IfNext jIf a(k) < a(i) And Option2.V alue Th enT ext1(k - 1).Ba ckColor = yan se1T ext1(i - 1).BackC olor = y anse1DoEv entsSl eep (1000)linshi = a(i)a(i) = a(k)a(k) = lin shiT ext1(k - 1).T ext = a(k)T ext1(i - 1).T ext = a(i)j iaohuan = j iaohuan + 1T ext1(k - 1).BackCol or = y anseT ext1(i - 1).Bac kColor = yan seEnd IfEnd IfIf k = 9 Theni = 0j = 0k = 0Tim er1.Enabled = Fal seMsg Bo x Fr am e1.Caption & "排序结束" & "交换次数为:" & j iaohuan & "次", vbOKOnly + vbInform ation, "系统提示"j iaohuan = 0If a(1) > a(10) ThenT ext2(0).T ext = a(1)T ext2(1).T ext = a(10)El seT ext2(0).T ext = a(10)T ext2(1).T ext = a(1)End IfFor X = 1 T o 10m = a(X) + mNext XT ext2(2).T ext = m / 10End IfElseIf For m2.Option3.V alue Th en 插入法排序i = i + 1For j = 1 T o iIf a(i) < a(j) And Option1.V alue Th enT ext1(i - 1).Bac kColor = yan se1T ext1(j - 1).Bac kColor = yan se1DoEv ent sSl eep (1000)linshi = a(i)For k = i T o j + 1 St ep -1a(k) = a(k - 1)Next ka(j) = lin shij iaohuan = j iaohuan + 1For X = j T o iT ext1(X - 1).T ext = a(X)Next XT ext1(i - 1).Ba ckColor = yan seT ext1(j - 1).Ba ckColor = yan seEnd IfIf a(i) > a(j) And Option2.V alue Th enT ext1(i - 1).Bac kColor = yan se1T ext1(j - 1).Bac kColor = yan se1DoEv ent sSl eep (1000)linshi = a(i)For k = i T o j + 1 St ep -1a(k) = a(k - 1)Next ka(j) = lin shiT ext1(i - 1).Ba ckColor = yan seT ext1(j - 1).Ba ckColor = yan sej iaohuan = j iaohuan + 1For X = j T o iT ext1(X - 1).T ext = a(X)Next XEnd IfNext jIf i = 10 Theni = 0j = 0k = 0Tim er1.Enabled = Fal seMsg Bo x Fr am e1.Caption & "排序结束" & "交换次数为:" & j iaohuan & "次", vbOKOnly + vbInform ation, "系统提示"j iaohuan = 0If a(1) > a(10) ThenT ext2(0).T ext = a(1)T ext2(1).T ext = a(10)El seT ext2(0).T ext = a(10)T ext2(1).T ext = a(1)End IfFor X = 1 T o 10m = a(X) + mNext XT ext2(2).T ext = m / 10End IfElseIf For m2.Option4.V alue Th en 冒泡法排序j = j + 1If j = 10 - k Thenk = k + 1j = 1End IfIf a(j) > a(j + 1)And Option1.V alue ThenT ext1(j - 1).BackCol or = y anse1T ext1(j).BackCol or = y anse1DoEv ent sSl eep (1000)linshi = a(j + 1)a(j + 1) = a(j)a(j) = linshij iaohuan = jiaohuan + 1T ext1(j - 1).T ext = a(j)T ext1(j).T ext = a(j + 1)T ext1(j - 1).Bac kColor = yanseT ext1(j).Bac kColor = yanseEnd IfIf a(j) < a(j + 1)And Option2.V alue ThenT ext1(j - 1).BackCol or = y anse1T ext1(j).BackCol or = y anse1DoEv ent sSl eep (1000)linshi = a(j + 1)a(j + 1) = a(j)a(j) = linshij iaohuan = jiaohuan + 1T ext1(j - 1).T ext = a(j)T ext1(j).T ext = a(j + 1)T ext1(j - 1).Bac kColor = yanseT ext1(j).Bac kColor = yanseEnd IfIf k = 9 Thenk = 0j = 0Tim er1.Enabled = Fal seMsg Bo x Fr am e1.Caption & "排序结束" & "交换次序为:" & j iaohuan & "次", vbOKOnly + vbInform ation, "系统提示"j iaohuan = 0If a(1) > a(10) ThenT ext2(0).T ext = a(1)T ext2(1).T ext = a(10)El seT ext2(0).T ext = a(10)T ext2(1).T ext = a(1)End IfFor X = 1 T o 10m = a(X) + mNext XT ext2(2).T ext = m / 10End IfEnd IfEnd SubPr ivate Sub w enj iandu_Click() 从文件中读取数据Dim i As Int eg erOpen App.Path + "\data.txt" For Input As #1For i = 1 T o 10Input #1, a(i)T ext1(i - 1).T ext = a(i)Next iCom m and3.Enabled = T r ueCom m and4.Enabled = T r ueEnd Sub比较法排序Pr ivate Function bij iao(paixu() As Integ er) A s Int eg er Dim k A s Int eg er, j As Int eg er, linshi As Integ erj iaohuan = 0For k = 1 T o UBound(paixu) - 1If Option1.V alue ThenFor j = k T o UBound(paixu)If paixu(k) > paixu(j) Thenlinshi = paixu(j)paixu(j) = paixu(k)paixu(k) = linshiEnd IfNext jEl seIf Option2.V alue ThenFor j = k T o U Bound(paixu)If paixu(k) < paixu(j) Thenlinshi = paixu(j)paixu(j) = paixu(k)paixu(k) = linshiEnd IfNext jEnd IfNext kEnd Function比较法排序Pr ivate Function m aopao(paixu() As Integ er) A s Int eg er Dim k A s Int eg er, j As Int eg er, linshi As Integ erFor k = 1 T o UBound(paixu) - 1If Option1.V alue ThenFor j = 1 T o UBound(paixu) - kIf paixu(j) > paixu(j + 1) Thenlinshi = paixu(j + 1)paixu(j + 1) = paixu(j)paixu(j) = linshiEnd IfNext jEl seIf Option2.V alue ThenFor j = 1 T o UBound(paixu) - kIf paixu(j) < paixu(j + 1) Thenlinshi = paixu(j + 1)paixu(j + 1) = paixu(j)paixu(j) = linshiEnd IfNext jEnd IfNext kEnd Function选择法排序Pr ivate Function xuanz e(paixu() As Int eg er) A s Int eg er Dim k A s Int eg er, j As Int eg er, linshi As Integ er, m As Int eg er For k = 1 T o UBound(paixu) - 1lin shi = paixu(k + 1)m = k + 1For j = k + 1 T o UBound(paixu)If linshi > paixu(j) Thenlin shi = paixu(j)m = jEnd IfNext jIf paixu(k) > paixu(m) And Option1.V alue Th enlin shi = paixu(m)paixu(m) = paixu(k)paixu(k) = linshiEnd IfIf Option2.V alu e Th enlinshi = paixu(k + 1)m = k + 1For j = k + 1 T o U Bound(paixu)If linshi < paixu(j) Thenlin shi = paixu(j)m = jEnd IfNext jIf paixu(k) < paixu(m) Thenlinshi = paixu(m)paixu(m) = paixu(k)paixu(k) = linshiEnd IfEnd IfNext kEnd Function插入法排序:Pr ivate Function charu(paixu() As Integ er) A s Int eg erDim i As Int eg er, j As Integ er, k A s Int eg er, linshi As Integ erFor i = 1 T o U Bound(paixu)For j = 1 T o iIf paixu(i) < paixu(j) And Option1.V alue Thenlinshi = paixu(i)For k = i T o j + 1 St ep -1paixu(k) = paixu(k - 1)Next kpaixu(j) = linshiElseIf paixu(i) > paixu(j) And Option2.V alue Thenlinshi = paixu(i)For k = i T o j + 1 St ep -1paixu(k) = paixu(k - 1)Next kpaixu(j) = linshiEnd IfNext jNext iEnd Function窗体2的源代码::Option ExplicitPr ivate Sub Com m and1_Click()Form2.V isible = Fal seEnd SubPr ivate Sub Option1_Click()T ext1.T ext = ""T ext1.T ext = "所谓比较法就是:第一轮从a(1)开始,一次讲A(1)与其后的所有元素逐个进行比较,如果其后的某一个元素比A(1)小,则将两者对调,这样第一轮结束后A(1)中保留的是10个元素中最小的值。

相关文档
最新文档