第2章 Visual Basic 程序设计基础.docx
- 文档编号:24208950
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:41
- 大小:796.68KB
第2章 Visual Basic 程序设计基础.docx
《第2章 Visual Basic 程序设计基础.docx》由会员分享,可在线阅读,更多相关《第2章 Visual Basic 程序设计基础.docx(41页珍藏版)》请在冰豆网上搜索。
第2章VisualBasic程序设计基础
第2章VisualBasic程序设计基础
内容提要:
本章介绍了程序设计的基本定义、结构化程序设计的概念、特点和如何学习程序设计的方法,进一步阐述可视化编程的特点,通过实例说明窗体的使用。
目的是让读者进一步了解VB程序设计的过程和可视化编程的知识。
2.1程序设计概述
2.1.1程序设计定义
1.程序
程序(Program)是计算机的一组指令,经过编译和执行,计算机才可以完成一个具体的任务。
2.程序设计语言
程序设计语言(ProgrammingLanguage)是用于编写计算机程序的语言。
语言的基础是一组记号和一组规则。
根据规则由记号构成的记号串的总体就是语言。
在程序设计语言中,这些记号串就是程序。
程序设计语言包含三个方面,即语法、语义和语用。
语法表示程序的结构或形式,就是表示构成程序的各个记号之间的组合规则,但不涉及这些记号的特定含义,也不涉及使用者。
语义表示程序的含义,即表示按照各种方法所表示的各个记号的特定含义,但也不涉及使用者。
语用表示程序与使用的关系。
程序设计语言的基本成分有:
①数据成分,用于描述程序所涉及的数据;②运算成分,用以描述程序中所包含的运算;③控制成分,用以描述程序中所包含的控制;④传输成分,用以表达程序中数据的传输。
3.程序设计
简单地说,程序设计就是设计程序的过程。
具体地说,程序设计(Programming)就是指设计、编制、调试程序的方法和过程。
抽象地说,程序就是数据(DataStructure)+算法(Algorithm)。
数据就是指我们要解决问题中所使用的数据,并且解决这些数据的形式和如何存放问题;算法就是解题的方法和具体步骤。
4.一般程序设计步骤
(1)分析问题
对于接任务要进行认真的分析,研究给定的条件,分析最后应达到的目标,找出解决问题的规律,选择解题的方法,完成实际问题。
(2)设计算法
设计解题的方法和具体步骤。
(3)编写程序
根据得到的算法,用一种高级语言编写出源程序,并通过测试。
(4)对源程序进行编辑、编译和连接
(5)运行程序,分析结果
运行可执行程序,得到运行结果。
能得到运行结果并不意味着程序正确,要对结果进行分析,看它是否合理。
不合理要对程序进行调试,即通过上机发现和排除程序中的故障的过程。
例如:
找出3个自然数的最大数的算法。
我们可以把要解决的问题分解成一步一步所执行的动作。
你直接让计算机告诉3个数谁是最大数,它是没办法的,所以你必须接受数据和设计算法:
首先让计算机接受这三个数,即将3个数放入3个内存变量中R1,R2,R3;第二步要将三个一一比较,比较后判断(先是R1与R2比找出最大的,再将较大的与R3比,则这次较大的数是三个数中最大的);最后把它输出出来。
对于这个过程我们指的是一个算法设计过程,接下来用计算机程序设计语言实现,比如用VB程序设计语言。
‘将3个数放入3个内存变量中R1,R2,R3
R1=6
R2=7
R3=9
‘R1与R2比找出最大的
Ifr1>r2then
‘较大的与R3比
Ifr1>r3then
‘找出最大的
Printr1;”为最大”
Else
‘找出最大的
Printr3;”为最大”
Endif
Else
‘较大的与R3比
Ifr2>r3then
‘找出最大的
Printr2;”为最大”
Else
‘找出最大的
Printr3;”为最大”
Endif
Endif
将上面代码放到计算机上运行即可得到结果。
2.2结构化程序设计基础
2.2.1结构化程序设计基本概念
计算机实际上就是一台能够快速执行指令的机器,这些指令来源于特定的指令集,指令集的内容清晰、简单,仅仅包括四类指令:
算术运算、逻辑运算、数据传送和控制转移指令。
通过这四类指令能够支持计算机完成运算处理所需要的三种基本控制结构:
顺序控制结构、分支控制结构、以及循环控制结构。
可以证明,通过这三种基本控制结构可以构成任何复杂的计算处理过程。
而这三种基本控制结构被称为结构化程序设计。
结构化程序设计的原则:
自顶向下:
程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。
不要一开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化。
逐步细化:
对复杂问题,应设计一些子目标作为过渡,逐步细化。
模块化设计:
一个复杂问题,肯定是由若干稍简单的问题构成。
模块化是把程序要解决的总目标分解为子目标,再进一步分解为具体的小目标,每一个小目标称为一个模块。
限制使用GOTO语句:
结构化程序设计方法的起源来自对GOTO语句的认识和争论。
肯定的结论是,在块和进程的非正常出口处往往需要用GOTO语句,使用GOTO语句会使程序执行效率较高;在合成程序目标时,GOTO语句往往是有用的,如返回语句用GOTO。
否定的结论是,GOTO语句是有害的,是造成程序混乱的祸根,程序的质量与GOTO语句的数量呈反比,应该在所有高级程序设计语言中取消GOTO语句。
取消GOTO语句后,程序易于理解、易于排错、容易维护,容易进行正确性证明。
2.2.2结构化程序设计图的表示
1.图示元素
结构化程序设计的逻辑形式可以通过流程图(FlowChart)和盒图(N-S图)形象地表达描述。
图示工具能够更清晰、更直观地表述程序的具体工作流程,是算法设计的有力工具。
结构化程序设计流程图的基本元素如图2-1所示。
图2-1流程图的基本元素
通过N-S图同样可以描述程序所需要的任何操作。
因为N-S图的元素本身就以基本控制结构为基础,所设计的控制过程结构严谨、清晰,可以保证程序具有良好的结构化风格,从而得到结构更为优化的设计结果。
N-S图的基本元素如图2-2所示。
图2-2N-S图的基本元素
2.三种控制结构的画法
(1)顺序控制结构:
顺序控制结构的命令主要包括变量设置、表达式计算、数据的输入和输出。
顺序控制结构的特点是:
指令执行的次序与指令在程序中书写的次序一致;即写在前边的指令一定先执行。
顺序控制结构的流程图以及对照的N-S图如图2-3所示。
图2-3顺序控制结构的流程图(左)与N-S图(右)
(2)分支控制结构:
分支控制结构中包括一个控制条件和A、B两个操作过程。
在程序执行过程中,根据指定条件是否被满足选择执行A部分或者B部分操作,并形成不同条件的不同操作结果。
分支控制结构的流程图与对照的N-S图如图2-4所示。
图2-4分支控制结构流程图(左)N-S图(右)
(3)循环控制结构:
循环控制中主要包括一个循环控制条件和一个循环体处理过程。
在程序执行过程中,根据控制条件是否被满足,决定是否重复执行循环体处理过程。
在循环结构中最主要的是:
什么情况下执行循环?
哪些操作需要循环执行?
循环结构的基本形式有两种:
当型循环和直到型循环。
两种典型的循环控制过程的流程图与对照的N-S图直到型循环见图2-5所示、2-6所示。
直到型循环:
表示从结构入口处直接执行循环体,在循环终端处判断条件,如果条件不满足,返回入口处继续执行循环体,直到条件为真时再退出循环到达流程出口处,是先执行后判断。
因为是“直到条件为真时为止”,所以称为直到型循环。
当型循环:
表示先判断条件,当满足给定的条件时执行循环体,并且在循环终端处流程自动返回到循环入口;如果条件不满足,则退出循环体直接到达流程出口处。
因为是“当条件满足时执行循环”,即先判断后执行,所以称为当型循环。
这三种基本控制结构能够构成任何复杂的算法处理过程,也就是说,只要掌握了这三种基本控制结构的控制思想方法,就可以完成任何复杂的算法设计。
实际上,在所有计算机高级语言中,提供的都只是这三种控制结构。
程序设计者通过这些基本控制结构既可以完成简单计算(例如数据排序、检索),也可以完成高精度、高难度的复杂计算(例如航天器的控制程序)。
因此,可以认为,只要真正掌握了程序的这三种基本控制结构的思想,在学习不同的计算机高级语言时,需要学习掌握的就仅仅只是控制指令的不同表达形式而已。
3.伪码表示
还有一种用接近高级语言的代码描述程序设计的结构,例如:
VB语言分支结构可以用如下语句的描述:
IF条件描述THEN
条件满足时的计算过程
ELSE
条件不能满足时的计算过程
ENDIF
又如VB语言循环结构可以用如下语句的描述:
WHILE(循环执行的逻辑条件描述)
条件满足时的执行过程
Loop
伪码非常类似地以接近自然语言的形式表达了所需要的控制流程。
因此,在学习VB时,最重要的就是掌握基本控制结构的思想,即使用自然语言描述也是可以的。
图2-5直到型循环控制结构流程图(左)N-S图(右)
图2-6当型循环控制结构流程图(左)N-S图(右)
2.3可视化编程的基础
传统的面向过程的结构化程序设计,用户界面是通过编写代码来实现,开发者在设计过程中看不到界面的实际显示效果,只有等到编译后程序运行时才能观察到,若对界面要作修改,必须返回到程序中去修改,显然影响了软件开发效率。
而“可视化编程”是在一个便于理解的可视化的编程环境中,仅用鼠标即可完成基本操作,无需为处理数据而编写复杂的程序的一种编程方式。
在VB中,应用的是面向对象的程序设计(Object-OrientedProgramming),把程序和数据封装起来成为一个对象(Object),每个对象都是可视的(Visual),依靠VB提供的可视化设计平台,开发者不必再为界面的设计而编写大量的程序代码,只需按照设计要求的屏幕布局,在屏幕上“画”出各种“部件”即对象,如窗口、命令按钮、菜单等,并设置这些图形对象的位置、大小、颜色等属性,VB将自动产生出界面设计代码,开发者需要编写的只是实现程序功能的那部分代码,这种“所见即所得”(WhatYouSeeIsWhatYouGet)的可视化用户界面设计大大提高了程序开发效率。
2.3.1对象的概念
VB是基于对象的程序设计语言。
用VB进行应用程序的设计过程,实际上就是与一组标准对象进行交互的过程。
对象是具有特殊属性(数据)和行为方式的(方法)的实体,在现实生活中到处可以见到,例如一个气球可以是一个对象,它的材料、颜色、大小等特性称为属性,它们都具有自己的行为,比如一个球可以滚动、停止或旋转。
人也是一个对象,人的姓名、性别、身高、年龄、出生地等特征为属性,一个人能够执行的动作和行为有呼吸、吃饭、跑步、唱歌和跳舞等。
在面向对象的程序设计中,对象的概念就是对现实世界中对象的模型化,它是代码和数据的组合,同样具有自己的状态和行为。
只不过在这里对象的状态用数据来表示,称为对象的属性;而对象的行为用对象中的代码实现,称为对象的方法。
不同的对象有不同的方法,当然也不排除有部分重叠。
对象可以是应用程序中一个自包含的组件:
一方面它具有私有的功能,供自己使用;另一方面又提供公用的功能,供其他用户使用。
对象包含数据及其代码。
在面向对象的程序设计中,对象是系统中的基本运行实体。
在VB中对象的概念和面向对象的程序设计中的对象概念是一致的,但在使用上有很大的区别。
在VB中,对象分为两类:
一类是由系统设计好的,称为预定义对象,可以直接使用或对其进行操作;另一类由用户定义,可以建立用户自己的对象。
在VB中,窗体和控件就是预定义对象,是由系统设计好提供给用户使用的,其移动、缩放等操作都是由系统预先定义好的,使用非常方便,比如对象的移动。
除窗体控件外,VB还提供了其他一些对象,如打印机、调试、剪贴板、屏幕等。
VB系统中的常用对象有窗体、标签、文本框、命令按钮、数据库、图表等。
如图2-9所示。
对象的应具备的三要素:
属性(一个对象的性质,即特征参数的集合)、事件(对象可以响应的,在对象上发生的事情)、方法(对象的动作)。
图2-9VB系统中的常用对象
2.3.2属性
对象的属性是指一个对象所具有的性质或者描述对象的数据、特征。
在可视化编程中,每一种对象都有一组特定的属性。
对象常见的属性有标题(Caption)、名称(Name)、颜色(Color)、字体大小(FontSize)、是否可见(Visible)等。
有许多属性可能为大多数对象所共有,还有一些属性仅局限于个别对象,例如只有命令按钮才有Cancel属性。
一个对象属性都有一个默认值,如果不明确地改变该属性值,程序就将使用它的默认值。
通过修改对象的属性能够控制对象的外观和操作。
而有些属性在运行时是只读的。
当改变对象的属性,可以控制对象在程序中作用。
有些是可见属性,例如属性的种类、形状、颜色等;有些是不可见属性,例如寿命、年龄等。
图2-10对象的属性设置
对象属性的设置一般有两条途径:
(1)通过属性窗口设置
选定对象,在属性窗口(如图2-10所示)中找到相应属性,直接进行设置。
这种方法的特点是简单明了,其缺点是不能在属性窗口设置所有需要的属性。
(2)通过代码设置
对象的属性也可以在代码中通过编程来设置,一般格式为:
对象名.属性名=属性值
例如,设置标签Text1的Text为“属性设置”,代码为:
Text1.Text="属性设置"
●注意:
对象的大多数属性都可以通过以上两种方式进行设置,而有些属性只能使用程序代码或属性窗口设置其中之一进行设置。
2.3.3事件
对象的事件(Event)就是对象上所发生的事情。
在VisualBasic中,事件是预先定义好的、能够被对象识别的动作,如Click(单击)、DblClick(双击)、Load(装入)、MouseMove(移动鼠标)、Change(改变)等。
不同的对象能够识别不同的事件。
当事件由用户触发(如Click)或由系统触发(Load)时,对象就会对该事件做出响应。
例如,把一个吹大的气球看成是一个对象,那么气球对刺破它的事件响应是放气,对气球松开手的事件的响应是升空。
再如,我们可以编写一个程序,该程序响应用户的Click事件,只要单击鼠标左键即可在屏幕上显示指定的信息。
响应某个事件后所执行的操作通过一段程序代码来实现,这样的代码叫做事件过程(EventProcedure)。
一个对象可以识别一个或多个事件,因此可以使用一个或多个事件过程对用户或系统的事件做出响应。
虽然一个对象可以拥有许多事件过程,但在程序中能使用多少事件过程,则要由设计者根据程序的具体要求来确定。
VisualBasic中的事件分为:
系统事件和用户事件。
(1)系统事件
由其他事件或Windows操作系统触发的事件称为系统事件,系统事件无需任何用户干预。
例如:
Timer事件就是一个系统事件。
(2)用户事件
由用户执行的某些操作所触发的事件称为用户事件。
例如,简单的用户操作,单击窗体上的命令按钮;在文本框中可显示“欢迎您学习VB程序设计”,是因为在代码窗口有代码“Text1.Text=“欢迎您学习VB程序设计””。
如图2-11所示。
图2-11单击命令按钮执行结果
2.3.4方法
对象的方法(Method)就是要执行的动作。
VB的方法与事件过程类似,是一种特殊的过程和函数,它用于完成某种特定功能而不能响应某个事件,如Print(打印对象)、Show(显示窗体)、Move(移动)方法等。
每个方法完成某个功能,用户无法看到其实现的步骤和细节,更不能修改,用户能做的工作只是按照约定直接调用它们。
如图2-12表示调用Form1的Circle方法,执行结果。
图2-12窗体上画圆的方法(Circle)
综上所述,我们可以把属性看成是对象的特征,把事件看成是对象的响应,把方法看成是对象的行为,属性、事件和方法构成了对象的三要素。
2.3.5窗体
1.窗体对象特点
窗体是在Windows环境下建立直观的应用程序的基础,是VB程序设计的对象,它如同一块画布,在窗体上可以直观地建立应用程序。
窗体可以看作是控件的容器,用户界面的控件一般都放置到窗体中。
VB的窗体具有Windows窗体的基本特性,图2-13所示是一个窗体的说明图。
标题栏是大多数窗体顶部的彩条,缺省为蓝色。
利用标题栏可以在屏幕上拖拽此窗体,双击标题栏将在最大化和恢复该窗体之间做切换。
标题是在窗体标题栏中所见到的文字。
系统菜单(控制菜单)是一个简单的菜单,位于窗体左上角,双击该图标将关闭窗体,单击该图标将显示系统命令菜单。
最小化、最大化、关闭按钮分别起使窗体缩小到Windows的任务条上、扩大至整个屏幕、关闭窗体的功能。
图2-13窗体说明图
窗体的边框给窗体提供了一定的灵活性,可以根据要显示的不同窗体,设定不同的边框值,这些值可以在BorderStyle属性中设置。
VB中的应用程序可以包含许多个窗体,一个标准“.exe”类型的VisualBasic应用程序至少有一个窗体。
最初打开新工程时,默认情况下会新建窗体,也可以通过菜单栏上的“工程”菜单项选择“添加窗体”菜单项将其他窗体添加到工程中。
2.窗体的属性
在VB中应用程序的界面是通过设置窗体的属性实现的,窗体的属性决定了窗体外观。
对大部分窗体属性,既可以在属性窗口设置,也可以在程序中设置,只有少量的属性只能在设计状态中设置,或只能在窗体运行期间设置。
(1)Name(名称)属性
Name属性是所有对象都具有的属性,是所创建对象的名称。
所有的控件在创建时由VB提供一个默认名称。
Name属性可以在Name属性窗口的“名称”栏进行修改。
在程序中,对象名称是作为对象的标识在程序中引用,不会显示在窗体上。
Name是只读属性,在运行时不可更改。
(2)Caption(标题)属性
Caption属性决定了控件上显示的标题内容。
可以在设计时通过属性窗口设置,也可以在运行时通过代码设置。
格式为:
对象.Caption[=字符串]
例如:
Form1.Caption="设置标题属性"
(3)Left、Top(左、顶)属性
Left、Top属性分别指定对象的左上角在容器中的横向及纵向坐标(左上角为0,0),即Left属性确定窗体最左端和它的容器最左端之间的距离;Top属性确定窗体最上端和它的容器最上端之间的距离。
控件的容器指的是窗体,窗体的容器指的是屏幕(Screen)。
度量单位由容器的ScaleMode属性指定,默认的单位是Twip。
通常Left和Top属性在一个窗体中总是成对出现的,当用户移动窗体时,这两个属性值都会随之改变。
(4)Width、Height(宽、高)属性
Width、Height属性决定了对象的宽度和高度。
度量单位由容器的ScaleMode属性指定,默认的单位是Twip。
可以在属性窗口中设置,也可通过代码设置,格式为:
对象.Height[=数值]和对象.Width[=数值]
它们的最大值由系统决定。
(5)ScaleMode属性
ScaleMode属性为设置对象坐标的度量单位。
取值及对应的度量单位如表2-1所示。
表2-1ScaleMode属性取值及对应度量单位表
取值
度量单位
0
User(用户自定义模式)
1
Twip(缇,系统缺省设置)
2
Point(点或磅)
3
Pixel(像素)
4
Character(字符)
5
Inch(英寸)
6
Millimeter(毫米)
7
Centimeter(厘米)
其中0(用户自定义模式)和3(像素模式)不可用于打印机(Printer)对象。
(6)Enabled(可用)属性
Enabled属性设置对象是否可以操作。
值为True时允许操作,值为False时禁止操作,对可视对象,显示为灰色。
同样该属性可以在属性窗口中或通过代码设置,格式为:
对象.Enabled=[Boolean]
默认值为True。
(7)Visible(可见)属性
Visible属性为设置对象是否可见。
值为True时,对象在程序运行时可见;值为False时,对象在程序运行时隐藏起来,用户看不见,但对象本身存在。
(8)Font(字体)属性
Font属性为设置输出字符的字体类型,改变文本的外观。
字体本身又是一个对象,又有自己的属性,包括字体类型(FontName)、字体大小(FontSize)、是否粗体(FontBold)、是否斜体(FontItalic)、是否加下划线(FontUnderline)等。
设置时通过属性窗口,点击Font右边的“…”可弹出字体对话框,如图2-14所示,可通过字体对话框来设置各种属性。
图2-14字体属性设置对话框
此外,还可以在运行时通过编写代码来实现对字形属性的设置,具体设置方式如下:
①字体类型
字体类型可以通过FontName属性设置,格式为:
对象名称.FontName[="字体名称"]
FontName可以作为窗体、控件或打印机的属性,返回或设置显示文本所用的字体。
VisualBasic中可用的字体取决于系统的配置、显示设备和打印设备。
与字体相关的属性只能设置为真正存在的字体的值。
②字体大小
字体大小通过FontSize属性来设置,格式为:
对象名称.FontSize[=点数]
FontSize属性返回,显示文本所用的字体的大小,单位为磅。
例如:
Form1.FontSize=20'设置窗体(Form1)的字体大小为20磅
FontSize的最大值为2160磅,在默认情况下,FontSize为9磅。
③其他属性
a)粗体
粗体字通过FontBold属性设置,格式为:
对象名称.FontBold[=Boolean]
当FontBold属性为True时,文本以粗体字输出,否则按正常字输出。
该属性的默认值为False。
b)斜体
斜体字通过FontItalic属性设置,格式为:
对象名称.FontItalic[=Boolean]
当FontItalic属性为True时,文本以斜体字输出,否则按正常字输出。
该属性的默认值为False。
c)加下划线
加下划线通过FontUnderline属性设置,格式为:
对象名称.FontUnderline[=Boolean]
如果把FontUnderline属性设置为True,则可使输出的文本加下划线。
该属性的默认值为False。
d)加删除线
删除线即在文本中部画一条直线。
通过对FontStrikethru属性的设置可以使输出的文本加删除线。
格式为:
对象名称.FontStrikethru[=Boolean]
如果把FontStrikethru属性设置为True,则可使输出的文本加删除线。
该属性的默认值为False。
在上面的各种属性中,可以省略方括号中的内容,此时,将返回属性的当前值;如果省略对象名称,则默认为当前窗体的属性。
(9)ForeColor(前景色)属性
ForeColor属性为设置或返回对象的前景颜色。
其值是一个十六进制常数,用户可以在调色板中直接选择所需的颜色,如图2-15所示。
图2-15前景色属性值设置
(10)BackColor(背景色)属性
BackColor属性为设置或返回对象的背景颜色。
其设置与ForeColor属性的设置相同。
(11)MaxButton、MinButton(最大、最小化按钮)属性
MaxButton、MinButton这两个属性决定窗体是否具有最大化和最小化按钮。
MaxButton属性为True时,表明窗
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第2章 Visual Basic 程序设计基础 程序设计 基础