- Visual Basic程序设计教程
- 隋玉敏 苏宝茹
- 3257字
- 2025-03-22 05:43:16
1.1 Visual Basic简介
1.1.1 程序设计语言概述
计算机程序设计语言是人和计算机交流的工具,是计算机可以识别的语言。程序设计语言也像人类的语言一样,由语法和语义构成,语法是一组规则,它描述程序的结构形式和规则,只有合法的程序(语法正确)才能被编译和执行。语义也是一组规则,它定义的是程序的执行意义。
例如:下面是两个程序片段
… If Mark > 60 Then Print " 恭喜你!你及格了 。" Else Print " 很遗憾!你不及格 。" End If
… If Mark > 60 Then Print " 恭喜你!你及格了。" Else Print " 很遗憾!你不及格。"
以上是两个语义相同的双分支结构的If条件语句。但是由于它们一个是块If语句,另一个是行If语句,所以要按照不同的语法规则来书写,否则就不能被计算机编译和执行。
1.程序设计语言分类
计算机程序语言的分类可以从不同的角度进行。
从应用范围可分为:专用语言(如CAD系统中的绘图语言,DBMS中的数据库查询语言(SQL)等)和通用语言(如C、VB、C++、Java等)。
从计算机执行的角度来看,程序设计语言可分为:机器语言、汇编语言和高级语言。
(1)机器语言:是用二进制代码(0和1)表示的计算机能直接识别和执行的一种机器指令的集合。它是程序设计人员通过计算机的硬件结构赋予计算机的操作功能。例如运算符号“+”的机器代码10000000。它的特点是可以直接执行且运算速度快,但因与计算机的指令系统密切相关,故不可移植,又因可读性差,查错比较困难,很难掌握。现在,除了计算机生产厂家的专业人员外,绝大多数程序员已经不再学习机器语言了。
(2)汇编语言:是在20世纪50年代在机器语言的基础上发展起来的。它用与指令代码实际含义相近的英文缩写词、字母和数字等助记符号来代替1、0码组成的指令代码,以方便人们理解和记忆。例如用ADD表示运算符号“+”的机器代码10000000。汇编语言不能直接执行,要经过汇编才可执行。由于机器语言和汇编语言都依赖于计算机硬件,所以又称低级程序设计语言。
(3)高级程序设计语言:高级程序设计语言和计算机的硬件基本无关,它比较接近人类的自然语言。
20世纪60年代至80年代面向过程的程序设计语言被广泛使用,如:BASIC、Quick BASIC、Pascal、FORTRAN、COBOL、C等,它主要适用于DOS环境,程序的执行是流水线式的,在一个模块被执行完成前,人们不能干别的事,也无法动态地改变程序的执行方向。程序模块和数据结构是紧密地结合在一起的,当程序比较复杂时,容易出错且难以维护。
在20世纪90年代出现了面向对象程序设计语言,如:Visual Basic、Visual C++、Delphi、Java等,主要适用于Windows环境,面向对象技术被认为是程序设计方法学的一场实质性的革命。它将客观事物抽象为一系列的对象和类,大多数的类都是由系统设计好的功能模块,又称为软件集成块。它与具体应用无关,但能相互组合,完成具体的应用功能,同时又能重复使用。本书要介绍的Visual Basic 6.0是一种高级程序设计语言,具有一定的面向对象程序设计功能。
2.翻译方式
高级语言编写的源程序要经过翻译才能被计算机执行,翻译的方式有解释方式和编译方式两种。
(1)解释方式:事先编好的一个叫作解释程序的机器语言程序放在计算机中,当高级语言源程序输入计算机后,解释程序自动地逐句分析,如果没有错误,即将该语句翻译成相应的机器指令并执行,即翻译一句执行一句。如果发现错误,则立即停止执行。解释方式不产生可执行程序。其工作过程如图1-1所示。

图1-1 解释方式的工作过程
(2)编译方式:事先编好的一个叫作编译程序的机器语言程序放在计算机中,当高级语言编的源程序输入计算机时,编译程序就自动把源程序整个地翻译成用机器指令表示的目标程序。通常在目标程序中还可能调用一些其他语言编写的程序和标准程序库中的标准子程序。因此需要使用连接程序将目标程序和有关的程序库组合成一个完整的可执行程序,产生的可执行程序可以脱离源程序和语言处理程序独立存在,并可以重复运行。其工作过程如图1-2所示。

图1-2 编译方式的工作过程
作为高级程序设计语言,它们的本质性的、规律性的东西是相通的,掌握了一种高级语言后再学另一种语言就很容易了。
1.1.2 Visual Basic的版本和特点
Visual Basic(简称VB)是一种由微软(Microsoft)公司开发的基于初学者通用符号指令代码(Beginner’s All-purpose Symbolic Instruction Code,BASIC)的可视化的、具有面向对象功能、采用事件驱动编程机制的结构化程序设计语言。它主要用于开发在Windows环境下运行的具有图形用户界面(Graphic User Interface,GUI)的应用程序。
微软公司自1991年推出Visual Basic1.0版本获得巨大成功后,于1992年、1993年、1995年、1997年和1998年相继推出了2.0版、3.0版、4.0版、5.0版和6.0版。随着版本的改进,Visual Basic已经成为了一种简单易学,功能强大的编程工具。为了适应网络技术快速发展和广泛应用的需要,2002年微软推出了Visual Basic.Net。Visual Basic.Net与Visual Basic并不完全兼容,它增加了更多的特性,将Visual Basic语言提升到了全新的高度,使之演化为完全面向对象的程序设计语言。VB是目前国内外最流行的程序设计语言之一,也是一种很适合初学者学习开发Windows应用程序的程序设计语言。
本书以Visual Basic 6.0为标准进行讲解。Visual Basic 6.0包括3种版本,分别是学习版、专业版和企业版。学习版主要是为初学者学习和开发比较简单的Windows应用程序设计的;专业版是为专业人员开发基于客户/服务器的应用程序而设计的;企业版则是为编程人员开发高级的分布式、高性能的客户/服务器或网络(Internet)上的应用程序而设计的。
Visual Basic具有很多与传统程序设计语言不同的特点,其中最主要的特点有两个,即可视化的界面设计和事件驱动的编程机制。
1.可视化的界面设计
使用过Windows应用程序的用户一定对窗口界面不陌生。图1-3和图1-4所示的过程是一个简单的窗体界面。这样一个简单的界面用传统的语言来生成就必须编写一大段程序对其进行描述,并且设计阶段还看不到实际效果,只有程序运行时才可以观察到结果,所以需要反复修改和运行,直到结果满意为止,费时又费力。而VB的可视化特点使界面的设计变得非常容易,只需要从系统提供的工具箱中选择合适的控件,在界面的适当位置上画出来就可以了,相当于将各种零部件从库中取出来往“纸”上摆放。那些相当复杂的编写界面的程序代码由VB系统全权负责了,因此大大提高了程序设计的效率。

图1-3 程序运行的初始状态

图1-4 单击“显示图片”按钮后的状态
【例1-1】 编写一个小程序使一个图片显示在图片框里或从图片框中消失。程序运行的初始界面如图1-3所示。当单击“显示图片”按钮,图片显示在图片框中,如图1-4所示。当单击“清除图片”按钮,图片框中的图片消失,如图1-3所示。
(1)界面设计:从VB集成开发环境所提供的工具箱中取出所需要的控件(本示例包括一个图片框和两个命令按钮),摆放在窗体的适当位置上,再调整好大小即可,如图1-5所示。

图1-5 【例1-1】界面设计
(2)代码设计:
Private Sub Form_Load() Command2.Enabled = False ' 程序开始运行时按钮Command2不可用 End Sub ___________________________________________________________________________ Private Sub Command1_Click() Picture1.Picture = LoadPicture (App.Path & "\1.jpg") ' 单击"显示图片"按钮显示图片 Command1.Enabled = False ' 按钮Command1不可用 Command2.Enabled = True ' 按钮Command2可用 End Sub ____________________________________________________________________________ Private Sub Command2_Click() Picture1.Picture = LoadPicture("") ' 单击"清除图片"按钮图片消失 Command1.Enabled = True ' 按钮Command1可用 Command2.Enabled = False ' 按钮Command2不可用 End Sub
2.“事件驱动”的编程机制
传统的面向过程的编程思路是根据程序实现功能,编写一个主程序和若干子程序,执行时从主程序第一句执行起并不断转向子程序且中间常需要暂停输入数据,这样一旦出错就得一步一步去检查;但VB程序是面向对象编写的,程序的执行是通过事件来驱动的。所谓事件就是能够被对象识别的动作,例如,用鼠标单击某个命令按钮就产生一个Chick(单击)事件。VB中的事件是预先定义好的,不同的对象具有不同的事件。VB编程的主要任务就是为对象的事件过程编写相应的程序代码,这样的一段代码称为事件过程,也可称为子程序。执行时一般是一个子程序执行一个单一的功能,也就是说,一个主程序统一控制的局面被分解成许多独立的小模块,每个模块又独立地由各种事件来驱动,各个事件之间不一定有联系,程序的运行也没有固定的顺序,这种工作模式称为事件驱动方式。由于每个事件过程的程序代码较短,使程序的编写简单且容易维护。
如果希望图片显示在图片框里,就要单击“显示图片”命令按钮,这时产生一个Chick(单击)事件,如图1-3和图1-4所示。针对这个按钮编写的程序就会独立地响应这一事件而与其他事件无关。同样,如果希望图片消失,就单击“清除图片”按钮,从而触发相应的单击事件。