1、第第1 1章章 Visual BasicVisual Basic程序设计概程序设计概述述第1页,共89页。第第1 1章章 Visual BasicVisual Basic程序设计概述程序设计概述 本章主要介绍程序设计的一些基本知识、基本概念和本章主要介绍程序设计的一些基本知识、基本概念和基本方法,为学习和掌握基本方法,为学习和掌握Visual BasicVisual Basic程序设计奠定基础。程序设计奠定基础。第2页,共89页。1.1 计算机程序设计概述计算机程序设计概述 计算机程序就是计算机解决某些特定问题所需的符号计算机程序就是计算机解决某些特定问题所需的符号化指令序列,或者说是用计算机
2、语言描述的特定问题的解化指令序列,或者说是用计算机语言描述的特定问题的解决步骤。编写程序的过程称为程序设计,在程序设计时离决步骤。编写程序的过程称为程序设计,在程序设计时离不开程序设计语言。通常把给计算机编制程序的符号系统不开程序设计语言。通常把给计算机编制程序的符号系统及规则称为计算机的程序设计语言。及规则称为计算机的程序设计语言。这些符号系统及规则这些符号系统及规则构成了计算机的指令系统。当我们利用计算机完成一项工构成了计算机的指令系统。当我们利用计算机完成一项工作时,只需要告诉计算机什么时候、在什么条件下干什么,作时,只需要告诉计算机什么时候、在什么条件下干什么,计算机便根据指令一条一条
3、地执行,并返回结果。计算机便根据指令一条一条地执行,并返回结果。第3页,共89页。1.1.1 1.1.1 程序设计语言简介程序设计语言简介 任何一个计算机系统都是按照人们用某种程序设计语任何一个计算机系统都是按照人们用某种程序设计语言编写的程序进行工作的,人们通过程序设计语言编写的言编写的程序进行工作的,人们通过程序设计语言编写的程序来指挥和控制计算机运行。程序设计语言是人与计算程序来指挥和控制计算机运行。程序设计语言是人与计算机进行交流的有效工具,在计算机科学技术的发展过程中,机进行交流的有效工具,在计算机科学技术的发展过程中,发挥了巨大作用。发挥了巨大作用。程序设计语言经历了从低级到高级的
4、发展阶段。程序设计语言经历了从低级到高级的发展阶段。第4页,共89页。1.机器语言机器语言 计算机能直接识别的程序设计语言只有机器语言。机计算机能直接识别的程序设计语言只有机器语言。机器语言是计算机能执行的指令代码,这种语言是由若干器语言是计算机能执行的指令代码,这种语言是由若干0 0和和1 1的序列组成的指令,也就是人们常说的二进制代码。用机的序列组成的指令,也就是人们常说的二进制代码。用机器语言设计的程序,称为机器语言程序。这是一种最低级器语言设计的程序,称为机器语言程序。这是一种最低级的计算机语言程序。的计算机语言程序。2.汇编语言汇编语言 汇编语言用比较直观、便于记忆的指令符号来代替二
5、汇编语言用比较直观、便于记忆的指令符号来代替二进制数字的机器指令代码,汇编语言的每条指令通常使用进制数字的机器指令代码,汇编语言的每条指令通常使用英文单词的缩写形式表示,也叫助记符。英文单词的缩写形式表示,也叫助记符。第5页,共89页。3.高级语言高级语言 高级语言接近人们熟悉的自然语言(主要指英语),高级语言接近人们熟悉的自然语言(主要指英语),掌握与使用都十分方便。高级语言具有通用性,在其初始掌握与使用都十分方便。高级语言具有通用性,在其初始阶段是面向过程的语言。高级语言与具体的计算机指令系阶段是面向过程的语言。高级语言与具体的计算机指令系统没有直接关系,因此用高级语言设计的程序可以在各种
6、统没有直接关系,因此用高级语言设计的程序可以在各种类型的计算机上运行。类型的计算机上运行。计算机并不能识别与执行用高级语言设计的程序,因计算机并不能识别与执行用高级语言设计的程序,因此,必须将高级语言程序转换为机器语言程序,才能在计此,必须将高级语言程序转换为机器语言程序,才能在计算机上得以执行,这种转换的过程叫算机上得以执行,这种转换的过程叫“翻译翻译”。第6页,共89页。任何一种高级语言系统都包含有专门用于任何一种高级语言系统都包含有专门用于“翻译翻译”的的程序。对高级语言的程序。对高级语言的“翻译翻译”有两种方式,一种是有两种方式,一种是“解释解释”方式,即方式,即“翻译翻译”一句执行一
7、句,负责这种一句执行一句,负责这种“翻译翻译”方式方式的程序叫解释程序;另一种是的程序叫解释程序;另一种是“编译编译”方式,是将整个程方式,是将整个程序序“翻译翻译”完毕后再予以执行,负责这种完毕后再予以执行,负责这种“翻译翻译”方式的方式的程序叫程序叫编译程序编译程序。“翻译翻译”前的程序叫源程序或源代码,源代码通常是前的程序叫源程序或源代码,源代码通常是文本形式;文本形式;“翻译翻译”后的程序叫目标程序或目标代码,目后的程序叫目标程序或目标代码,目标代码是二进制形式。标代码是二进制形式。用解释程序用解释程序“翻译翻译”执行程序比编译程序执行程序比编译程序“翻译翻译”执执行程序慢得多。不论是
8、解释还是编译,在行程序慢得多。不论是解释还是编译,在“翻译翻译”过程中过程中都会自动检查源程序中的语法错误。都会自动检查源程序中的语法错误。第7页,共89页。1.1.2 1.1.2 算法及其描述算法及其描述1.算法的概念算法的概念 什么是算法?当代著名计算机科学家什么是算法?当代著名计算机科学家D.E.KnuthD.E.Knuth称:称:“一个算法,就是一个有穷规则(指令)的集合。其中之一个算法,就是一个有穷规则(指令)的集合。其中之规则规定了一个解决某一特定类型的问题的运算序列。规则规定了一个解决某一特定类型的问题的运算序列。”简单地说,任何解决问题的过程都是由一定的步骤组成的,简单地说,任
9、何解决问题的过程都是由一定的步骤组成的,把解决问题确定的方法和有限的步骤称作为算法。把解决问题确定的方法和有限的步骤称作为算法。通俗地说,算法就是指为解决一个问题而采取的方法通俗地说,算法就是指为解决一个问题而采取的方法和步骤,或者说是解题步骤的精确描述。不要认为只有和步骤,或者说是解题步骤的精确描述。不要认为只有“计算计算”问题才有算法。广义地说,处理任何问题都有一问题才有算法。广义地说,处理任何问题都有一个个“算法算法”问题,例如,菜谱就包含算法,因为它除了列问题,例如,菜谱就包含算法,因为它除了列出做菜的原料以外,还列出操作的每一步骤。当然,这里出做菜的原料以外,还列出操作的每一步骤。当
10、然,这里讨论的是计算机算法,即计算机能执行的算法。讨论的是计算机算法,即计算机能执行的算法。第8页,共89页。2.算法的表示算法的表示 表示一个算法可以采用不同形式。表示一个算法可以采用不同形式。(1)(1)用自然语言表示算法用自然语言表示算法【例【例1-1】计算函数】计算函数M(x)的值:的值:其中其中a,b,c为常数。为常数。axcxcaaxabxxM3)(2)(第9页,共89页。算法分析:本题是一个数值运算问题。其中算法分析:本题是一个数值运算问题。其中M M代表要计代表要计算的函数值,有两个不同的表达式,根据算的函数值,有两个不同的表达式,根据x x的取值决定采用的取值决定采用哪一个算
11、式。根据计算机具有逻辑判断的基本功能,用计哪一个算式。根据计算机具有逻辑判断的基本功能,用计算机解题的算法如下:算机解题的算法如下:1)1)将将a、b、c和和x的的值输入到计算机。值输入到计算机。2)2)判断判断x a,如果条件成立,执行,如果条件成立,执行3),否则执行,否则执行4)。3)3)按表达式按表达式bx+2a计算出结果存放到计算出结果存放到M中,然后执中,然后执行行5)。4)4)按表达式按表达式a(c x)+3c计算出结果存放到计算出结果存放到M中,然中,然后执行后执行5)。5)5)输出输出M M的值。的值。6)6)算法结束。算法结束。第10页,共89页。(2)用流程图表示算法用流
12、程图表示算法 流程图是用一些图框、流程线以及文字说明来描述解决流程图是用一些图框、流程线以及文字说明来描述解决问题的方法与步骤。用流程图来表示算法,直观、形象、问题的方法与步骤。用流程图来表示算法,直观、形象、容易理解。容易理解。1)传统流程图:美国国家标准化协会传统流程图:美国国家标准化协会ANSI(American National Standard Institute)规定了一些常用的流程图)规定了一些常用的流程图符号,见表符号,见表1-1。用流程线将各种操作图符号连接在一起就构成了一个完用流程线将各种操作图符号连接在一起就构成了一个完整的算法流程图。这种流程图称为传统流程图。整的算法流
13、程图。这种流程图称为传统流程图。第11页,共89页。表表1-1 流程图符号流程图符号符号名 称说 明起止框表示算法的开始与结束。判断框用来根据给定的条件是否满足决定执行两条路径中的某一条路径。处理框用来表示赋值等一般操作。输入输出框表示输入或输出操作。流程线表示流程的方向。连接点用于将没有画在一起的同一流程的各部分连接起来。第12页,共89页。例例1-11-1中算法的流程图如图中算法的流程图如图1-11-1所示。所示。图图1-1 传统流程图传统流程图第13页,共89页。2)N-S 2)N-S流程图:传统流程图虽然形象直观,但对流程流程图:传统流程图虽然形象直观,但对流程线未作限制,使用者可以毫
14、无顾忌地使流程线随意转来转线未作限制,使用者可以毫无顾忌地使流程线随意转来转去,使流程变得没有规律,阅读者要花很大精力去追踪流去,使流程变得没有规律,阅读者要花很大精力去追踪流程,从而使人们难以理解程序算法的逻辑。如果程序较复程,从而使人们难以理解程序算法的逻辑。如果程序较复杂,流程线就会如同一团乱麻,人们将这种算法比喻成一杂,流程线就会如同一团乱麻,人们将这种算法比喻成一碗面条(碗面条(A Bowl of SpaghettiA Bowl of Spaghetti),乱无头绪。这种算法难),乱无头绪。这种算法难以阅读和修改,从而使算法的可靠性和可维护性难以保证。以阅读和修改,从而使算法的可靠性
15、和可维护性难以保证。在在N-SN-S流程图中,完全去掉了流程线。全部算法写在一流程图中,完全去掉了流程线。全部算法写在一个大矩形框中,在某一矩形框中还可以包含一些属于它的个大矩形框中,在某一矩形框中还可以包含一些属于它的小矩形框。这种流程图又称为盒图,因为每个矩形如同一小矩形框。这种流程图又称为盒图,因为每个矩形如同一个方盒。个方盒。第14页,共89页。使用使用N-SN-S流程图表示【例流程图表示【例1-11-1】的算法如图】的算法如图1-31-3所示。所示。说明:本书所绘的说明:本书所绘的N-SN-S流程图是经典流程图是经典N-SN-S流程图的改进,流程图的改进,称为称为N-S-ZN-S-Z
16、流程图。流程图。Input a,b,c和和x若若x=a是是M=bx+2a否否M=a(c x)+3cOutput M第15页,共89页。1.1.3 1.1.3 程序设计方法概述程序设计方法概述 程序设计方法种类很多,主要有模块化程序设计方法、程序设计方法种类很多,主要有模块化程序设计方法、结构化程序设计方法、面向对象程序设计方法等。结构化程序设计方法、面向对象程序设计方法等。1.模块化程序设计方法模块化程序设计方法 模块化程序设计方法是一个常用且有效的方法。在设计模块化程序设计方法是一个常用且有效的方法。在设计和编写大型程序时,可以对其进行模块化分解,以降低程和编写大型程序时,可以对其进行模块化
17、分解,以降低程序的复杂性,提高程序的正确性、可靠性、可读性和可维序的复杂性,提高程序的正确性、可靠性、可读性和可维护性。护性。第16页,共89页。模块是数据说明、接口声明和执行语句等程序对象的模块是数据说明、接口声明和执行语句等程序对象的集合,可独立命名,并通过模块名来调用、访问和执行,集合,可独立命名,并通过模块名来调用、访问和执行,如如VBVB语言的子过程、函数、模块等程序对象可看成是模块。语言的子过程、函数、模块等程序对象可看成是模块。模块化就是把大程序划分成若干模块,每个模块完成一个模块化就是把大程序划分成若干模块,每个模块完成一个子功能,模块间相互协调,共同完成特定功能,其实质是子功
18、能,模块间相互协调,共同完成特定功能,其实质是把复杂问题分解成许多容易解决的小问题,如图把复杂问题分解成许多容易解决的小问题,如图1-31-3所示。所示。图图1-3 问题分解问题分解大的、比较复杂的问题子问题1子问题2子问题3子问题4子问题21子问题22第17页,共89页。2.结构化程序设计方法结构化程序设计方法 结构化程序设计方法产生于结构化程序设计方法产生于2020世纪世纪6060年代末,它对后年代末,它对后来的程序设计方法的研究和发展产生了重大影响,直到今来的程序设计方法的研究和发展产生了重大影响,直到今天它仍然是程序设计中采用的主要方法。天它仍然是程序设计中采用的主要方法。结构化程序设
19、计的概念最早由著名计算机科学家结构化程序设计的概念最早由著名计算机科学家E.W.DijkstraE.W.Dijkstra提出。提出。19661966年,年,BohmBohm和和JacopiniJacopini证明了证明了“只只用三种基本的控制结构就能实现任意单入口和单出口的程用三种基本的控制结构就能实现任意单入口和单出口的程序序”。这三种基本控制结构是。这三种基本控制结构是“顺序结构顺序结构”、“判断结构判断结构”和和“循环结构循环结构”,如图,如图1-41-4所示。所示。19721972年,年,IBMIBM公司的公司的MillsMills进一步提出,程序应该只有一个入口和一个出口。进一步提出
20、,程序应该只有一个入口和一个出口。19711971年,年,IBMIBM公司在纽约时报信息库管理系统的设计中首次成功地使公司在纽约时报信息库管理系统的设计中首次成功地使用了结构化程序设计技术。用了结构化程序设计技术。第18页,共89页。图图1-4 1-4 三种基本控制结构的三种基本控制结构的N-S-ZN-S-Z流程图流程图操作A条件条件操作B真操作A循环体操作C假操作B(a)顺序结构(b)判断结构(c)循环结构第19页,共89页。结构化程序设计主要包括:一是使用三种基本控制结结构化程序设计主要包括:一是使用三种基本控制结构;二是采用自顶向下和逐步求精方法。构;二是采用自顶向下和逐步求精方法。自顶
21、向下和逐步求精方法是求解复杂问题的有效方法。自顶向下和逐步求精方法是求解复杂问题的有效方法。自顶向下和逐步求精方法是由抽象到具体、由粗到细的方自顶向下和逐步求精方法是由抽象到具体、由粗到细的方法。第一次细化称为法。第一次细化称为“顶层设计顶层设计”,然后通过一步一步细,然后通过一步一步细化,它们依次称为第二层、第三层设计,直到不需细化为化,它们依次称为第二层、第三层设计,直到不需细化为止。细化结果可得到一个树型层次结构图,如图止。细化结果可得到一个树型层次结构图,如图1-51-5所示。所示。图图1-5 层次结构图层次结构图处理学校事务处理学生事务处理教学事务处理财务事务处理科研事务顶层设计第二
22、层设计第三层设计第20页,共89页。3.面向对象程序设计方法面向对象程序设计方法 模块化和结构化程序设计方法属于传统的程序设计方模块化和结构化程序设计方法属于传统的程序设计方法。但用传统程序设计方法开发的程序不易维护和修改,法。但用传统程序设计方法开发的程序不易维护和修改,一旦需要修改,将牵一发而动全局,修改工作量将会大幅一旦需要修改,将牵一发而动全局,修改工作量将会大幅度增加。针对传统程序设计方法的不足和缺陷,在度增加。针对传统程序设计方法的不足和缺陷,在2020世纪世纪8080年代,开始研究面向对象程序设计方法,进入年代,开始研究面向对象程序设计方法,进入2020世纪世纪9090年代,面向
23、对象程序设计方法趋于完善和成熟,同时基于年代,面向对象程序设计方法趋于完善和成熟,同时基于面向对象的程序设计语言不断出现,高级语言开始引入面面向对象的程序设计语言不断出现,高级语言开始引入面向对象概念和理念,如向对象概念和理念,如C+C+语言。语言。第21页,共89页。面向对象的程序设计通过类、对象、继承、多态等机面向对象的程序设计通过类、对象、继承、多态等机制形成一个完善的编程体系。面向对象编程(制形成一个完善的编程体系。面向对象编程(Object-Object-Oriented ProgrammingOriented Programming,OOPOOP)将程序设计中的数据与对数)将程序设
24、计中的数据与对数据的操作作为一个不可分割的整体,通过由类生成的对象据的操作作为一个不可分割的整体,通过由类生成的对象来组织程序。对象包含属性与方法,能识别和响应一定的来组织程序。对象包含属性与方法,能识别和响应一定的事件。事件。面向对象程序设计面向对象程序设计并不绝对排斥结构化程序设计方法,并不绝对排斥结构化程序设计方法,而将结构化程序设计方法中的三种基本结构变为其程序设而将结构化程序设计方法中的三种基本结构变为其程序设计中局部代码设计的基本结构,例如,在面向对象程序设计中局部代码设计的基本结构,例如,在面向对象程序设计中,对象的事件方法、属性等代码的设计仍然遵循三种计中,对象的事件方法、属性
25、等代码的设计仍然遵循三种基本结构的原则。基本结构的原则。第22页,共89页。面向对象程序设计方法一般分三级设计:概念级、系面向对象程序设计方法一般分三级设计:概念级、系统级和规范级统级和规范级。概念级设计:从实际问题出发,分析用户需求和功能概念级设计:从实际问题出发,分析用户需求和功能需求,识别问题中所涉及的所有对象需求,识别问题中所涉及的所有对象(实体实体)及相互关系,及相互关系,根据分析结果建立求解问题的概念模型(用图形表示)。根据分析结果建立求解问题的概念模型(用图形表示)。详细描述每一对象的属性(一组变量、数据结构、状态)详细描述每一对象的属性(一组变量、数据结构、状态)和操作(置初值
26、、查询、修改、运算)和操作(置初值、查询、修改、运算)。系统级设计:进一步分析对象及相互作用,对对象进系统级设计:进一步分析对象及相互作用,对对象进行取舍,增加附加对象,选择控制流方法,创建对象实例,行取舍,增加附加对象,选择控制流方法,创建对象实例,将概念级创建的概念模型转换成现实模型将概念级创建的概念模型转换成现实模型。规范级设计:分析现实模型,建立和绘制规范级设计:分析现实模型,建立和绘制“类结构类结构表表”,明确描述类层次结构及其继承关系,描述类的所有,明确描述类层次结构及其继承关系,描述类的所有操作和方法,将现实模型转换成便于程序实现的设计规范,操作和方法,将现实模型转换成便于程序实
27、现的设计规范,程序员根据设计规范设计算法和编写程序程序员根据设计规范设计算法和编写程序。第23页,共89页。1.2 Visual Basic简介简介 Visual Basic(简称(简称VB)是美国微软()是美国微软(Microsoft)公司推出的公司推出的Windows环境下的软件开发工具,使用环境下的软件开发工具,使用VB可可以既快又简单地开发以既快又简单地开发Windows应用软件。应用软件。1.2.1 Visual Basic1.2.1 Visual Basic概述概述 Visual是指开发图形用户界面(是指开发图形用户界面(GUI)的方法。)的方法。Visual的意思是的意思是“视觉
28、的视觉的”或或“可视的可视的”,也就是直观的,也就是直观的编程方法。在编程方法。在VB中引入了控件的概念,如各种各样的按钮、中引入了控件的概念,如各种各样的按钮、文本框、复选框等。文本框、复选框等。VB把这些控件模式化,并且每个控件把这些控件模式化,并且每个控件都由若干属性来控制其外观、工作方法。这样,采用都由若干属性来控制其外观、工作方法。这样,采用Visual方法无需编写大量代码去描述界面元素的外观和位方法无需编写大量代码去描述界面元素的外观和位置,而只要把预先建立的控件加到窗体上。置,而只要把预先建立的控件加到窗体上。第24页,共89页。1.2.2 Visual Basic1.2.2 V
29、isual Basic的发展过程的发展过程 早在早在1991年,为了简化年,为了简化Windows应用程序的开发,应用程序的开发,微软公司推出了微软公司推出了Visual Basic 1.0。比尔。比尔盖茨说,盖茨说,Visual Basic 1.0的推出是的推出是“惊世骇俗的惊世骇俗的”、“令人震惊的新奇令人震惊的新奇迹迹”。它极大地改变了人们对。它极大地改变了人们对Windows的看法以及使用的看法以及使用Windows的方式。的方式。1992年,经过对年,经过对Visual Basic 1.0的修改后,微软推的修改后,微软推出了出了Visual Basic 2.0。1993年经再次修改完
30、善后,年经再次修改完善后,Visual Basic 3.0上市。上市。第25页,共89页。1.2.2 Visual Basic1.2.2 Visual Basic的发展过程的发展过程 1995年,随着年,随着Windows 95轰轰烈烈的发布,轰轰烈烈的发布,Visual Basic 4.0也随之问世。也随之问世。1997年,微软公司开始推出年,微软公司开始推出Windows开发工具套件开发工具套件Microsoft Visual Studio 1.0,其中包括了,其中包括了Visual Basic 5.0,1998年发布的年发布的Microsoft Visual Studio 98则包含了则
31、包含了Visual Basic 6.0。Visual Basic 5.0以前的版本主要应用于以前的版本主要应用于DOS和和Windows 3.x环境中环境中16位程序的开发,从位程序的开发,从Visual Basic 5.0以后的版本则只能运行在以后的版本则只能运行在Windows 95或或Windows NT操作系统下,是一个操作系统下,是一个32位应用程序的开发工具。位应用程序的开发工具。第26页,共89页。Visual Basic 6.0共有共有3个版本:标准版、专业版、企业个版本:标准版、专业版、企业版。其中标准版主要是为初学者了解基于版。其中标准版主要是为初学者了解基于Windows
32、的应用的应用程序开发而设计的;专业版主要是为专业人员创建客户程序开发而设计的;专业版主要是为专业人员创建客户服服务器应用程序而设计的;企业版则是为创建更高级的分布务器应用程序而设计的;企业版则是为创建更高级的分布式、高性能的客户式、高性能的客户服务器或服务器或InternetIntranet上的应用程上的应用程序而设计的。序而设计的。2003年推出年推出Visual Basic.NET,2005年推出年推出Visual Basic 2005。第27页,共89页。1.2.3 Visual Basic1.2.3 Visual Basic的特点的特点 VB是从是从BASIC发展而来的,对于开发发展而
33、来的,对于开发Windows应用程应用程序而言,序而言,VB是目前所有开发语言中最简单、最容易使用的是目前所有开发语言中最简单、最容易使用的语言。作为程序设计语言,语言。作为程序设计语言,VB程序设计具有以下特点。程序设计具有以下特点。1.可视化的设计平台可视化的设计平台 2.面向对象的设计方法面向对象的设计方法 3.事件驱动的编程机制事件驱动的编程机制 4.结构化的设计语言结构化的设计语言 5.充分利用充分利用Windows资源资源 6.开放的数据库功能与网络支持开放的数据库功能与网络支持第28页,共89页。1.3 Visual Basic程序设计的基本概念程序设计的基本概念 传统的编程方法
34、使用的是面向过程、按顺序进行的机制,传统的编程方法使用的是面向过程、按顺序进行的机制,其缺点是程序员始终要关心什么时候发生什么事情,处理其缺点是程序员始终要关心什么时候发生什么事情,处理Windows环境下的事件驱动方式工作量太大。环境下的事件驱动方式工作量太大。VB采用的采用的是面向对象、事件驱动编程机制,程序员只需编写响应用是面向对象、事件驱动编程机制,程序员只需编写响应用户动作的程序,如移动鼠标、单击事件等,而不必考虑按户动作的程序,如移动鼠标、单击事件等,而不必考虑按精确次序执行的每个步骤,编写代码相对较少。另外,精确次序执行的每个步骤,编写代码相对较少。另外,VB提供的多种提供的多种
35、“控件控件”可以快速创建强大的应用程序而不需可以快速创建强大的应用程序而不需涉及不必要的细节。涉及不必要的细节。第29页,共89页。1.3.1 1.3.1 可视化编程与事件驱动编程可视化编程与事件驱动编程 VB使用的使用的“可视化编程可视化编程”方法,是方法,是“面向对象编程面向对象编程”技技术的简化版。在术的简化版。在VB环境中所涉及到的窗体、控件、部件和环境中所涉及到的窗体、控件、部件和菜单项等均为对象,程序员不仅可以利用控件来创建对象,菜单项等均为对象,程序员不仅可以利用控件来创建对象,而且还可以建立自己的而且还可以建立自己的“控件控件”,这是,这是Windows环境下的环境下的编程新概
36、念。编程新概念。第30页,共89页。1.3.1 1.3.1 可视化编程与事件驱动编程可视化编程与事件驱动编程 利用可视化编程,程序员通过对鼠标进行单击操作就能利用可视化编程,程序员通过对鼠标进行单击操作就能够创建图形用户界面(够创建图形用户界面(GUI)。程序员编写代码来描述用)。程序员编写代码来描述用户与这个户与这个GUI交互时(单击、按键、双击等)所发生的事交互时(单击、按键、双击等)所发生的事件,这些称为事件的内容是由件,这些称为事件的内容是由Windows操作系统传递给程操作系统传递给程序的。序的。编写响应这些事件的代码称为事件驱动编程。利用事件编写响应这些事件的代码称为事件驱动编程。
37、利用事件驱动编程,用户(不是程序员)可以指明程序执行的顺序。驱动编程,用户(不是程序员)可以指明程序执行的顺序。实际上是用户实际上是用户“驱动驱动”程序,而不是程序程序,而不是程序“驱动驱动”用户,用户,这样计算机将变得更加这样计算机将变得更加“友好友好”。第31页,共89页。1.3.2 1.3.2 对象的属性、事件和方法对象的属性、事件和方法 在现实生活中,任何一个实体都可以视为一个对象在现实生活中,任何一个实体都可以视为一个对象(Object)。如一只气球是一个对象,一台电脑也是一个)。如一只气球是一个对象,一台电脑也是一个对象。对象。在在VB中,常用的对象有工具箱中的控件、窗体、菜单、中
38、,常用的对象有工具箱中的控件、窗体、菜单、应用程序的部件以及数据库等。从可视化编程的角度来看,应用程序的部件以及数据库等。从可视化编程的角度来看,这些对象都具有属性(数据)和行为方式(方法)。简单这些对象都具有属性(数据)和行为方式(方法)。简单地说,属性用于描述对象的一组特征,方法为对象实施一地说,属性用于描述对象的一组特征,方法为对象实施一些动作,对象的动作则常常要触发事件,而触发事件又可些动作,对象的动作则常常要触发事件,而触发事件又可以修改属性。一个对象建立以后,其操作就通过与该对象以修改属性。一个对象建立以后,其操作就通过与该对象有关的属性、事件和方法来描述。有关的属性、事件和方法来
39、描述。第32页,共89页。1.对象的属性对象的属性 每一种对象都有一组特定的属性。有许多属性可能为大每一种对象都有一组特定的属性。有许多属性可能为大多数对象所共有,如多数对象所共有,如BackColor属性定义对象的背景色。属性定义对象的背景色。还有一些属性只局限于个别对象,如只有命令按钮才有还有一些属性只局限于个别对象,如只有命令按钮才有Cancel属性,该属性用来确定命令按钮是否为窗体默认的属性,该属性用来确定命令按钮是否为窗体默认的取消按钮。取消按钮。第33页,共89页。1.对象的属性对象的属性 每一个对象属性都有一个默认值,如果不明确地改变该每一个对象属性都有一个默认值,如果不明确地改
40、变该值,程序就将使用它。通过修改对象的属性能够控制对象值,程序就将使用它。通过修改对象的属性能够控制对象的外观和操作。对象属性的设置一般有两条途径。的外观和操作。对象属性的设置一般有两条途径。1)选定对象,然后在属性窗口中找到相应属性直接设置。选定对象,然后在属性窗口中找到相应属性直接设置。这种方法的特点是简单明了,每当选择一个属性时,在属这种方法的特点是简单明了,每当选择一个属性时,在属性窗口的下部就显示该属性的一个简短提示,缺点是不能性窗口的下部就显示该属性的一个简短提示,缺点是不能设置所有所需的属性。设置所有所需的属性。2)在代码中通过编程设置,格式为:在代码中通过编程设置,格式为:对象
41、名对象名.属性名属性名 属性值属性值 如下述代码可以设置标签控件如下述代码可以设置标签控件Label1的标题为的标题为“轻轻松轻轻松松学用松学用VB6.0”:Label1.CaptionLabel1.Caption 轻轻松松学用轻轻松松学用VB6.0VB6.0第34页,共89页。2.对象的事件对象的事件 事件(事件(Event)就是对象上所发生的事情。在)就是对象上所发生的事情。在VB中,事中,事件是预先定义好的、能够被对象识别的动作,如单击件是预先定义好的、能够被对象识别的动作,如单击(Click)事件、双击()事件、双击(DblClick)事件、装载()事件、装载(Load)事件、鼠标移动
42、(事件、鼠标移动(MouseMove)事件等,不同的对象能)事件等,不同的对象能够识别不同的事件。当事件发生时,够识别不同的事件。当事件发生时,VB将检测两条信息,将检测两条信息,即发生的是哪种事件和哪个对象接收了事件。即发生的是哪种事件和哪个对象接收了事件。每种对象能识别一组预先定义好的事件,但并非每一种每种对象能识别一组预先定义好的事件,但并非每一种事件都会产生结果,因为事件都会产生结果,因为VB只是识别事件的发生。为了使只是识别事件的发生。为了使对象能够对某一事件做出响应(对象能够对某一事件做出响应(Respond),就必须编写),就必须编写事件过程。事件过程。第35页,共89页。事件过
43、程是一段独立的程序代码,它在对象检测到某个事件过程是一段独立的程序代码,它在对象检测到某个特定事件时执行(响应该事件)。一个对象可以响应一个特定事件时执行(响应该事件)。一个对象可以响应一个或多个事件,因此可以使用一个和多个事件过程对用户或或多个事件,因此可以使用一个和多个事件过程对用户或系统的事件作出响应。程序员只需编写必须响应的事件过系统的事件作出响应。程序员只需编写必须响应的事件过程,而其他无用的事件过程则不必编写,如命令按钮的程,而其他无用的事件过程则不必编写,如命令按钮的“单击单击”(Click)事件比较常见,其事件过程需要编写,)事件比较常见,其事件过程需要编写,而其而其Mouse
44、Down或或MouseUp事件则可有可无,程序员可事件则可有可无,程序员可根据需要选择。根据需要选择。第36页,共89页。3.对象的方法对象的方法 一般来说,方法就是要执行的动作。上面所述的气球本一般来说,方法就是要执行的动作。上面所述的气球本身就具有其固有的方法和动作。如:充气方法(用氦气充身就具有其固有的方法和动作。如:充气方法(用氦气充满气球的动作),放气方法(排出气球中的气体)和上升满气球的动作),放气方法(排出气球中的气体)和上升方法(放手让气球飞走)。用户对具体实现过程并不关心,方法(放手让气球飞走)。用户对具体实现过程并不关心,关键是最终收到的效果。关键是最终收到的效果。VB的方
45、法与事件过程类似,它可能是函数,也可能是过的方法与事件过程类似,它可能是函数,也可能是过程,它用于完成某种特定功能而不能响应某个事件。如对程,它用于完成某种特定功能而不能响应某个事件。如对象打印(象打印(Print)方法、显示窗体()方法、显示窗体(Show)方法、移动)方法、移动(Move)方法等。每个方法完成某个功能,但其实现步骤)方法等。每个方法完成某个功能,但其实现步骤和细节用户既看不到、也不能修改,用户能做的工作就是和细节用户既看不到、也不能修改,用户能做的工作就是按照约定直接调用它们。按照约定直接调用它们。第37页,共89页。方法方法只能在代码中使用,其用法依赖于方法所需的参只能在
46、代码中使用,其用法依赖于方法所需的参数的个数以及它是否具有返回值。当方法不需要参数并且数的个数以及它是否具有返回值。当方法不需要参数并且也没有返回值时,可用下面的格式调用对象方法。也没有返回值时,可用下面的格式调用对象方法。对象名对象名.方法名方法名 如如图片框图片框Picture1有刷新显示方法有刷新显示方法Refresh,在事件,在事件过程代码中调用该方法的代码为:过程代码中调用该方法的代码为:Picture1.RefreshPicture1.Refresh第38页,共89页。1.3.3 Visual Basic1.3.3 Visual Basic的编程环境的编程环境1.集成开发环境介绍集
47、成开发环境介绍 启动启动VB后,出现后,出现“新建工程新建工程”对话框,如图对话框,如图1-6所示。所示。使用使用VB开发的应用程序或其他程序都被称为开发的应用程序或其他程序都被称为“工程工程”。选择选择“新建新建”选项卡可以建立一个新的工程,选择选项卡可以建立一个新的工程,选择“现存现存”选项卡可以打开原来已有的工程,选择选项卡可以打开原来已有的工程,选择“最新最新”选项卡可以选项卡可以打开最近建立或使用过的工程。打开最近建立或使用过的工程。图图1-6 “新建工程新建工程”对话框对话框第39页,共89页。在在“新建新建”选项卡中选中选项卡中选中“标准标准EXE”,然后单击,然后单击“打开打开
48、”按钮,出现集成开发环境的主界面,如图按钮,出现集成开发环境的主界面,如图1-7所示。所示。图图1-7 VB 6.0集成开发环境集成开发环境 VB 6.0集成开发环境除了具有标准集成开发环境除了具有标准Windows环境的标题环境的标题栏、菜单栏、工具栏外,还有工具箱、属性窗口、工程管理栏、菜单栏、工具栏外,还有工具箱、属性窗口、工程管理器窗口、窗体设计器、立即窗口、窗体布局窗口等开发工具。器窗口、窗体设计器、立即窗口、窗体布局窗口等开发工具。第40页,共89页。VB集成开发环境中的默认工具栏是集成开发环境中的默认工具栏是“标准标准”工具栏,工具栏,“标准标准”工具按钮见表工具按钮见表1-2。
49、表表1-2 “标准标准”工具按钮工具按钮图标名称与功能快捷键添加标准EXE工程用来添加新的工程到工作组中。单击其右边的箭头,将弹出一个下拉菜单,可以从中选择需要添加的工程类型添加窗体用来添加新的窗体到工程中,单击其右边的箭头,将弹出一个下拉菜单,可以从中选择需要添加的窗体类型菜单编辑器显示菜单编辑器对话框Ctrl+E打开工程用于打开已有的工程文件Ctrl+O保存工程用于保存当前的工程文件启动开始运行当前的工程F5中断暂时中断当前工程的运行Ctrl+Break结束结束当前工程的运行工程资源管理器打开工程资源管理器窗口Ctrl+R属性窗口打开属性窗口F4窗体布局窗口打开窗口布局窗口对象浏览器打开对
50、象浏览器对话框F2工具箱打开工具箱窗口数据视图窗口打开数据视图窗口可视化部件管理器打开可视化部件管理器第41页,共89页。2.控件工具箱控件工具箱 新建或打开新建或打开“标准标准EXE”工程时,工程时,VB将同时打开控件工将同时打开控件工具箱。具箱。VB的控件工具箱包含了建立应用程序所需的各种控件,的控件工具箱包含了建立应用程序所需的各种控件,如图如图1-8左所示。另外,左所示。另外,VB还提供了很多还提供了很多ActiveX控件。使控件。使用这些控件有两种方法:一是向工具箱中添加需要的控件,用这些控件有两种方法:一是向工具箱中添加需要的控件,二是自己定义一张二是自己定义一张“选项卡选项卡”。