vb6程序设计初步.docx
- 文档编号:9507110
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:74
- 大小:267.64KB
vb6程序设计初步.docx
《vb6程序设计初步.docx》由会员分享,可在线阅读,更多相关《vb6程序设计初步.docx(74页珍藏版)》请在冰豆网上搜索。
vb6程序设计初步
第六章程序设计初步
通过前面五章的学习,我们知道计算机是人们处理信息的有效工具。
但是一切信息的处理最终都要通过执行程序来完成,即首先必须编写程序。
我们平常进行文字处理或表格处理时,事先没有进行程序设计(programming),实际上是使用别人已编写好的程序(program)直接操作。
VisualBasic是一种可视化的、面向对象、采用事件驱动方式的结构化程序设计语言,它不但具有早期Basic语言的一切功能,尤其提供了一种可视化的设计工具,可以直接使用窗体和控件设计程序的界面,极大的提高了程序设计的效率。
本章以VisualBasic(简称VB)为载体,介绍使用VB编制程序的一般步骤和方法,主要包括:
算法的概念和面向对象的程序设计方法,VB的编程环境,Basic语言的基本知识、基本语句,程序的控制结构和简单程序设计。
通过本章学习,不仅要学会可视化编程技术,还要掌握一些解决简单问题的常用算法。
第一节程序设计的基本方法
一、算法的概念
要计算机解决某一个问题,必须编写相应的程序。
编写程序需要确定解决问题的方法和思路,并要正确地写出求解步骤,这就叫解决这个问题的算法(algorithm)。
计算机处理某一问题的过程与我们日常处理事情的过程十分相似,都要按一定的步骤和相应的方法来处理。
例如,邮寄一封信的过程可分为写信、写信封、贴邮票、投入信箱等四个步骤,这些步骤可以看作是写信的算法。
下面举三个计算机处理问题的算法的例子。
【例6-1-1】交换两个变量中的数据。
已知变量x和y中分别存放了数据,现在要交换其中的数据。
为了达到交换的目的,需要引进一个中间变量m,其算法如下:
①将x中的数据送给变量m,即x→m;
②将y中的数据送给变量x,即y→x;
③将m中的数据送给变量y,即m→y。
【例6-1-2】输入三个不相同的数,求出其中的最小数。
先设置一个变量min,用于存放最小数。
当输入a、b、c三个不相同的数后,先将a与b进行比较,把小者送给变量min,再把c与min进行比较,若c ①若a ②再将c与min进行比较,若c 这样,min中存放的即是三个数中的最小数。 【例6-1-3】输入两个正整数a和b(a>b),求它们的最大公约数。 求两个正整数a、b(a>b)的最大公约数,可以归结为求一数列: a,b,r1,r2,……,rn-1,rn,rn+1,0 此数列的首项与第二项是a和b,从第三项开始的各项,分别是前两项相除所得的余数,如果余数为0,它的前项rn+1即是a和b的最大公约数,这种方法叫做欧几里德辗转相除法,其算法如下: ①输入a,b(a>b); ②求a/b的余数r; ③如果r≠0,则将b→a,r→b,再次求a/b的余数r,转至③; ④输出最大公约数b。 对于同一个问题,可以有不同的算法。 例如求1+2+3+…+100的和,可以采用如下方法: 先求1+2,再加3,再加4,一直加到100,最后得到结果5050。 也可以采用这样的方法: 1+2+3+…+100=(1+100)+(2+99)+(3+98)+…+(50+51)=50101=5050。 显然,对于心算来说,后一种方法更简便,而累加更适用于计算机解题。 因此,为了有效的进行解题,不仅要保证算法正确,还要选择好的算法,即方法简单、运算步骤少,能迅速得出正确结果的算法。 二、算法的描述 为了描述一个算法,可以用自然语言、流程图(floatchart)或其他形式进行。 自然语言就是人们日常使用的语言,前面三个例子的算法基本上是用自然语言描述的。 用自然语言描述算法,比较习惯和容易接受,但是叙述较繁琐和冗长,容易出现“歧义性”,一般不采用这种方法。 用流程图描述算法,能够将解决问题的步骤清晰、直观地表示出来,所以本章采用流程图描述算法。 流程图是用一组几何图形表示各种类型的操作,在图形上用扼要的文字和符号表示具体的操作,并用带有箭头的流线表示操作的先后次序。 表6-1列出了流程图的基本符号及其含义。 表6-1 图形符号 名称 含义 起止框 表示算法的开始或结束 输入、输出框 表示输入输出操作 处理框 表示处理或运算的功能 判断框 用来根据给定的条件是否满足决定执行两条路径中的某一路径 流线 表示程序执行的路径,箭头代表方向 连接符 表示算法流向的出口连接点或入口连接点,同一对出口与入口的连接符内,必须标以相同的数字或字母 图6-1、图6-2和图6-3分别是前面三个例子的流程图。 需要注意的是,流程图仅仅描述了算法,但计算机是无法识别和执行用流程图表示的算法的,还必须使用某种计算机语言(如VB)编写出程序,然后让计算机运行此程序,得到所需的结果。 输出x,y N N 图6-1图6-2图6-3 讨论与思考 用自然语言表达问题,容易理解,但往往不严格,易出现“歧义性”,即对于同一段文字,不同的人可能会有不同的理解。 例如请同学们理解“这个人连老张也不认识。 ”这句话的含义。 练习 ⑴什么叫算法? 描述算法有哪几种方法? 并比较它们的优缺点。 ⑵请举出日常生活中几件事情,用自然语言描述其算法。 ⑶画出打电话的流程图。 (拿起听筒;听到允许拔号声吗? 听到,拔号;有忙音吗? 若有,放下听筒;稍等,再拿起听筒;直到打通电话为止) ⑷画出解决下列问题的流程图: ①输入三角形的底和高,计算三角形面积。 ②求10! (即1×2×3×…×10)。 第二节VisualBasic的基本知识 一、VisualBasic的启动和退出 VisualBasic是Microsoft公司于1991年开发推出的基于Windows环境的Basic语言,Visual意为“可视化的”,Basic指的是BASIC(BeginnersAll-PurposeSymbolicInstructionCode,初学者通用符号指令代码)语言。 VB是在早期Basic语言基础上发展起来的一种可视化的、面向对象、采用事件驱动方式的结构化高级程序设计语言,是目前广泛使用的一种程序设计语言(programminglanguage)。 1.VisualBasic的启动 单击任务栏中的“开始”按钮,将指针依次指向“程序(P)”“MicrosoftVisualBasic”“VisualBasic”,然后单击,即可启动VB。 图6-4 启动VB后,显示如图6-4所示的“新建工程”对话框,对话框中有“新建”“现存”“最新”三个标签,可根据需要选择工程的类型。 新建: 建立新工程; 现存: 选择和打开现有工程; 最新: 列出最近使用过的工程。 要新建一个工程时,单击“新建”标签,选择其中的“标准EXE”项,然后单击“打开(O)”按钮,进入VB的工作环境。 2.VisualBasic的退出 单击“文件(F)”菜单中的“退出(V)”命令,或单击主窗中右上角的“关闭”按钮,就可退出VisualBasic。 二、VisualBasic窗口的组成 图6-5 进入VB后,屏幕上显示出如图6-5所示的界面,主要由标题栏、主菜单、工具栏、窗体设计器窗口、工具箱、工程资源管理器窗口、属性窗口、代码编辑器窗口等组成。 ⒈标题栏 标题栏用来显示窗口标题及VisualBasic的工作模式。 VisualBasic有三种工作模式: ⑴设计模式 当设计程序界面、编写代码、设置属性时,标题栏显示“MicrosoftVisualBasic[设计]”,表示VB工作在设计模式下。 ⑵运行模式 当在VisualBasic中运行应用程序时,VB进入运行模式,标题栏自动切换成“MicrosoftVisualBasic[运行]”,执行结束,回到设计模式。 ⑶中断模式 当程序在运行过程中因某种原因中断时,VB进入中断模式,标题栏切换成“MicrosoftVisualBasic[Break]”,此时可修改、调试程序。 ⒉菜单栏 菜单栏显示可使用的VB命令。 除了提供标准“文件(F)”“编辑(E)”“视图(V)”“格式(O)”“窗口(W)”“帮助(H)”菜单之外,还提供了编程专用的菜单,例如“工程(P)”“调试(D)”“运行(R)”等。 ⒊工具栏 VB将一些常用的命令编制成图标形式的命令按钮,便于对常用命令的快速访问。 启动VB后,缺省情况下,只显示其中的“标准”工具栏。 ⒋窗体设计器窗口 窗体设计器窗口是进行界面设计的窗口。 当创建一个新的程序时,VB自动创建一个新的窗体,命名为Form1。 窗体是VisualBasic应用程序的基本构造模块,在程序运行时,是人与程序交互操作的实际窗口。 一个应用程序可包含一个或多个窗体,每一个窗体都有自己的窗体设计器窗口。 设计应用程序的界面时,该窗口就像一个画布,可直接在窗口上用鼠标画出所需的图形,如菜单、按钮、文本框等,而无需为设计界面编写大量的代码。 ⒌工具箱 图6-6 工具箱提供一组工具,如文本框、标签、按钮等,用于在窗体中放置控件设计应用程序的图形界面,如图6-6所示。 ⒍工程资源管理器窗口 工程(project)是指用来建造应用程序的文件的集合,工程资源管理器窗口用于管理应用程序中的文件,如图6-7所示。 一个VB应用程序主要包含以下两大类文件: 图6-7 ⑴窗体模块文件(扩展名为.frm) 用于存放窗体及其中控件的正文描述,包含窗体及控件的属性设置,窗体级的常量、变量,用户自定义过程以及用于响应外部操作的事件过程等。 窗体文件与窗体窗口一一对应。 ⑵标准模块文件(扩展名为.bas) 简单的应用程序可以只有一个窗体,程序的所有代码都保存在一个窗体模块中。 当应用程序比较复杂时,往往包含不止一个窗体,如果几个窗体中都有要执行的公共代码,为了不在几个窗体中重复相同的代码,应建立一个独立模块,其中包含实现公共代码的过程,这样的模块就称为标准模块,标准模块是可选的。 工程资源管理器窗口还有三个小按钮,分别为: 查看代码: 单击此按钮,出现代码编辑器窗口,可以输入、编辑或调试应用程序的代码。 查看对象: 如果当前文件为窗体文件,单击此按钮后,出现窗体设计器窗口,其中显示出该文件所对应的窗体及其中控件的外观和布局。 切换文件夹: 此按钮的作用是使工程中的文件是否按类型分层次显示。 一个应用程序即为一个工程,当把工程中的所有文件分别保存以后,可把整个工程存成一个文件,这就是工程文件(扩展名为.vbp)。 ⒎属性窗口 用来描述各种对象属性的窗口,可在其中对对象的属性进行设置和修改。 属性是指对象的外观特征,如大小、位置、颜色、标题等。 ⒏代码编辑器窗口 代码编辑器窗口是应用程序用来显示和编辑程序代码的窗口。 应用程序的每个窗体和标准模块都有一个单独的代码编辑器窗口。 三、面向对象的程序设计 1.对象 VB是一种面向对象的程序设计语言,VB中的对象(object)主要是系统设计好的对象,包括窗体、控件、菜单、打印机、剪贴板和数据库等,使用得最多的对象是窗体(form)和控件(control)。 控件包含在窗体内部,是指用工具箱中的工具在窗体中画出的、能完成一定功能的部件,如用于输入和编辑文本内容的文本框、用于执行操作的命令按钮等。 ⑴对象的建立 不同类型对象的建立方法不同,下面以命令按钮控件为例介绍控件对象的建立方法: 1单击工具箱中绘制命令按钮控件的工具 。 ②将鼠标指针移到窗体上适当位置,此时指针变成十字线,按住鼠标器左键不放,拖拉出一个大小合适的方框,释放鼠标器左键,就形成一个命令按钮,如图6-8所示。 图6-8 建立控件以后,工具箱中的相应工具和鼠标指针恢复原状。 刚建好控件的四周有8个小方块,表示该控件为活动控件。 用鼠标器单击控件可选定该控件并使其成为活动控件,拖动控件到新的位置放开可移动控件。 用鼠标器拖动控件四周的小方块可改变控件的大小。 ⑵对象的命名 每个对象都有自己的名字,有了名字才能在程序中引用该对象。 在建立对象时,VB会自动提供一个形如Command1、Command2、Label1、Label2之类的缺省名。 为了使程序容易阅读、理解,最好给对象设置一个有意义的名字,如cmdOk等。 一般约定对象名由3个小写字母组成的前缀(指明对象的类型)和表示该对象作用的缩写字母组成,表6-2列出了常用控件的前缀规定和命名举例。 名字是对象的属性之一,可以通过在属性窗口设置名称属性来给对象命名。 表6-2 对象的类型 意义 前缀 名字举例 Form 窗体 frm frmFind Command 命令按钮 cmd cmdOk Label 标签 lbl lblInput TextBox 文本框 txt txtSource Timer 定时器 tmr tmrClock 2.象的属性、方法和事件 VB中的对象具有自己的属性、方法和事件。 可以把属性看作对象的性质,把方法看作对象的动作,把事件看作对象对外部操作的响应,它们构成了对象的三要素。 日常生活中的对象,如小孩玩的气球同样具有属性、方法和事件。 气球的属性包括可以看到的一些性质,如它的直径和颜色,以及其它一些描述气球状态的属性,如充气或未充气。 气球还具有本身所固有的动作,如放气方法(排出气球中的气体)和上升方法(放手让气球飞走)。 气球还有预定义的对某些外部事件的响应,例如,气球对刺破它的事件响应是放气,对放手事件的响应是升空。 ⑴属性 属性(property)是对象的性质,对象的许多属性会影响对象的外观及功能,如窗体的Caption属性决定窗体标题栏中显示的内容,Name属性设置窗体的名称,Height和Width属性决定窗体的初始大小,Top和left属性决定窗体的位置,MaxButton和MinButton属性决定窗体能否最大化或最小化等。 不同的对象有许多相同的属性,也有许多不同的属性。 对象的属性可以在设计程序界面时通过属性窗口设置。 也可以在运行时通过程序代码设置,方法如下: 对象.属性=属性值 例如,给文本框“txtSource”的“Text”属性赋值为字符串"20",代码如下: txtSource.Text="20" 如果要获取对象的状态或特性,这时就要读取对象的属性值,方法如下: 变量=对象.属性 例如,读取文本框“txtSource”的“Text”属性的代码如下: a=txtSource.Text 当然,属性也可以作为表达式的一部分直接参与运算,而不必先将其赋给变量。 ⑵方法 在VB中将一些通用的过程和函数编写好并封装起来,作为方法直接调用,方法(method)是针对特定对象执行一项任务的特殊过程或函数,是对象本身所固有的动作。 调用对象方法的格式如下: [对象].方法[参数名表] 例如: Form1.Print"欢迎使用VisualBasic" 此语句使用Print方法在Form1窗体中显示字符串“欢迎使用VisualBasic”。 在调用方法时,可以省略对象名和参数。 省略了对象名,表示为当前对象,一般指窗体。 ⑶事件及事件驱动 事件(event)是对象对外部操作的响应,如在程序执行时,用鼠标器单击命令按钮会产生一个Click事件。 每个对象都有一系列预先定义的事件集,例如,命令按钮能响应Click(鼠标单击)、GotFocus(获取焦点)、LostFocus(失去焦点)等事件。 尽管系统对每个对象都预先定义了一系列的事件集,但要判定它们是否响应某个具体事件以及如何响应事件,就是编程的事情了,例如,需要命令按钮响应Click事件,就把完成Click事件功能的代码写到Click事件的事件过程中,事件过程是事件的处理程序,与事件一一对应。 事件过程的形式如下: PrivateSub对象_事件名([参数表]) …(事件过程代码) EndSub VB程序没有明显的开始和结束,程序的执行是由事件控制的,代码不是按照预定的路径执行,而是在响应不同的事件时执行不同的代码,事件的顺序决定了代码的执行顺序,这就是VB的事件驱动(eventdriven)的程序设计思想。 需要注意的是,VB虽是一种面向对象的程序设计语言,VB程序主要由界面和代码组成,界面是程序与使用者交互信息的窗口,而具体到解决特定问题或实现事件处理过程时,仍然要编写代码,编写代码时仍然要遵守结构化程序设计的基本原则,仍然必须依据一定的算法,所以在学习VB时,除了要学习界面设计,更要学习灵活运用VB实现各种算法。 实践与探索 VB为我们提供了功能强大的联机帮助功能,尤其是完全汉化的联机手册,它包括VisualBasic文档、多媒体演示和一些不能在打印文档中说明的主题,它是一本集程序设计指南、用户使用手册等于一体的电子词典。 学会使用帮助信息,是进一步学习和掌握VB的一条很好的途径。 VB帮助的使用方法与其它Windiows应用软件相似,请利用VB的帮助功能,查找有关工具箱和窗体属性的帮助信息。 信息卡约翰·凯梅尼与BASIC语言 约翰·凯梅尼(JohnGeorgeKemeny)于1926年5月31日出生于匈牙利的布达佩斯,1940年来到美国。 曾任达特茅斯学院(DartmouthCollege)院长,和托马斯·库尔茨(ThomasKurtz)合作发明了达特茅斯分时操作系统,并且创造了BASIC程序设计语言。 当时,计算机数量少而且价格昂贵,人们想要利用计算机运行自己的程序,必须先将程序做成穿孔卡片交给操作员,操作员将数十、数百个作业作为一批输入计算机,计算机分别运算后输出结果,为了求得一个数字往往要用2~3个星期,这种工作方式对使用计算机很不方便。 人们希望自己上机操作,边运行边修改,当场得到结果。 1959年,凯梅尼和库尔茨决心实施一种当时带有开创性的设想: 使所有大学生能自由地使用计算机,如同他们使用图书馆的藏书一样方便,研究从两个方面进行: 一个是建立分时操作系统,另一个是编写程序设计语言。 分时系统允许一台计算机同时为多个用户服务,操作系统采用时间片轮转的方式为用户服务。 他们用通俗易懂的英语,加上一些中学代数一类的指令,设计成一种语言,外行人只要学会很少的指令,就能亲自动手编写有趣的程序。 1963年9月,凯梅尼开始编写初稿,1964年5月1日凌晨4时,第一个BASIC程序开始运行。 由于凯梅尼的杰出贡献,1983年,获得美国信息处理学会联合会授予的教育奖。 练习 ⑴VisualBasic5.0的窗口主要包含哪几部分? ⑵VisualBasic5.0有几种工作方式? 它们各自的作用是什么? ⑶简述窗体设计器窗口的作用。 ⑷什么叫工程? VisualBasic的工程主要包含哪几类文件? ⑸什么叫对象? 对象的三要素是什么? ⑹简述事件驱动程序的工作机制。 ⑺以命令按钮为例,简述在窗体上建立控件的方法? ⑻在程序代码中如何设置和读取对象的属性? 如何调用对象的方法? 请举例说明。 第三节程序的建立和运行 一、一个简单程序 建立一个完整的VB应用程序,主要包括以下几个步骤: ①建立应用程序界面; ②设置对象的属性; ③编写事件处理程序; ④程序的运行和调试; ⑤保存文件。 下面通过一个简单的实例来说明这一实现过程。 【例6-3-1】我们经常在电影或电视上看到一些字幕的动态变化特技。 本例运用VB的定时器控件定时改变标签控件的Caption属性的文字大小,实现文字的动态缩放效果。 1.建立应用程序界面 图6-9 VB中的一个应用程序即为一个工程。 因此,要建立新的应用程序,也就须建立一个新工程。 单击“文件(F)”菜单中“新建工程(N)”命令,弹出一个与图6-8相似的对话框,提示选择应用程序的类型,一般选择“标准EXE”,单击“确定”按钮后出现窗体设计器窗口。 一个新工程只包含一个窗体,缺省名为Form1。 例共使用了两个控件: 标签和定时器。 标签控件用来在窗体中显示文字,定时器控件用于实现定时缩放。 使用工具箱中的 、 在窗体建立好这两个控件,建立好的程序界面如图6-9所示。 2. 图6-10 设置对象的属性 界面设计好后,必须设置对象的属性。 对象的大多数属性可采用缺省值,设置属性的目的是为了使对象更符合应用程序界面的需要。 一个窗体对应一个属性窗口,在工程资源管理器窗口中选定窗体Form1,单击“视图(V)”菜单中的“属性窗口(W)”命令,就可打开Form1的属性窗口,如图6-10所示。 在Form1窗体上设计的所有控件均存于该窗口的对象框中。 设置属性的方法: 在对象框中选择对象,在属性列表中选定某属性,在右列中输入或选定新的属性值。 有的属性有预定义的设置值清单,单击设置框右边的向下的箭头,可以显示这个清单。 完成本程序界面需要设置的属性如表6-3。 表6-3 缺省的对象名 设置的对象名 属性 设置值 Form1 frmZoom Caption FrmZoom Label1 lblZoom Caption 空白 ForeColor 红色 Timer1 tmrClock Enabled False Interval 100 3.编写事件处理程序 属性设置好后,程序仍不能正常工作,还要考虑用哪些事件触发对象完成相应的功能,想让对象响应某个事件时,就把代码写入这个事件的事件过程之中。 定时器控件(tmrClock)能有规律地以一定的时间间隔(Interval)触发计时器事件(Timer),本例通过对Timer事件过程进行编码,定时改变标签控件lblZoom的Caption属性的文字大小,来实现文字的动态缩放。 一个窗体对应一个代码编辑器窗口,在工程资源管理器窗口中选定窗体frmZoom,从“视图(V)”菜单选取“代码窗口(C)”命令,就可打开一个如图6-11所示的代码编辑器窗口。 代码窗口的左边“对象列表框”列出了该窗体的所有对象,右边的“过程列表框”列出了选定对象的所有事件。 在对象列表框中选择一个对象,在过程列表框中选择指定对象的事件,代码框中自动给出事件过程的定义语句,此时,在Sub和EndSub语句之间输入完成功能的代码。 '字幕特技 代码框 DimsAsString DimsizeAsInteger,deltaszAsInteger '程序的初始化过程 '设置有关变量的初始值 PrivateSubForm_Load() tmrClock.Enabled=True lblZoom.Visible=True s="欢迎使用VisueBasic" size=8: deltasz=5 EndSub PrivateSubtmrClock_Timer() size=size+deltasz Ifsize>50Then'当文字大小达到最大值时, deltasz=-5'将文字大小缩放量设为负值, EndIf'来实现动态缩小 Ifsize<8Then size=8 deltasz=5 EndIf lblZoom.Font.size=size lblZoom.Left=(frmZoom.Width-lblZoom.Width)/2 lblZoom.Top=(frmZoom.Height-l
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vb6 程序设计 初步