《Visual Basic程序设计》针对非计算机专业学生的特点,以知识点为主线,以大量实例为辅助的方式,系统地介绍了Visual Basic相关知识。《Visual Basic程序设计》内容包括引言、可视化编程基础、Visual Basic语言基础、程序流程控制、过程、数组、结构和类、用户界面设计初步、文件操作、数据库编程、程序调试等。《Visual Basic程序设计》是Visual Basic程序设计的入门教材,采用Visual Basic2010 版本,也适合于更高的版本。《Visual Basic程序设计》内容丰富,语言叙述通俗易懂,注重理论与实践相结合。
目录
前言
第1章引言1
1.1Visual Basic简介1
1.1.1计算机语言和程序1
1.1.2从机器语言到汇编语言2
1.1.3从汇编语言到高级语言2
1.1.4Visual Basic的发展史3
1.2Visual Basic开发环境4
1.2.1NET框架4
1.2.2安装Visual Basic6
1.2.3启动Visual Basic学习版9
1.2.4Visual Basic学习版集成开发环境界面10
1.3创建第一个程序11
1.3.1创建一个Windows应用程序11
1.3.2编写一个控制台应用程序13
1.4使用帮助系统.13
思考题16
第2章可视化编程基础17
2.1可视化编程的几个概念17
2.1.1对象和类17
2.1.2属性、方法和事件19
2.2窗体和几个基本控件26
2.2.1窗体26
2.2.2标签控件30
2.2.3文本框控件31
2.2.4命令按钮控件33
2.3开发Windows应用程序的主要步骤34
2.3.1题目分析35
2.3.2创建和保存项目36
2.3.3界面设计37
2.3.4属性设置38
2.3.5编写代码38
2.3.6调试运行39
思考题39
第3章Visual Basic语言基础40
3.1程序编码规则40
3.1.1标识符40
3.1.2编码规则40
3.1.3注释与空白41
3.2基本数据类型42
3.2.1数值型数据类型43
3.2.2字符型数据类型45
3.2.3日期时间型52
3.2.4逻辑型53
3.2.5对象类型53
3.3常量与变量54
3.3.1常量54
3.3.2变量55
3.4数据类型转换61
3.5运算符与表达式63
3.5.1运算符63
3.5.2表达式68
思考题70
第4章程序流程控制71
4.1算法概述71
4.1.1引例71
4.1.2基本概念73
4.1.3流程图74
4.1.4常用算法设计思想举例75
4.2顺序结构84
4.2.1变量的赋值85
4.2.2顺序结构举例87
4.3分支结构90
4.3.1If语句90
4.3.2SelectCase语句93
4.3.3条件函数IIf95
4.4循环结构95
4.4.1For Next循环95
4.4.2Do Loop循环97
4.4.3退出循环99
4.4.4嵌套循环100
4.5综合实例102
思考题103
第5章过程104
5.1过程概述104
5.2Sub过程105
5.2.1Sub过程定义105
5.2.2Sub过程调用107
5.2.3Sub过程执行线索109
5.3事件过程110
5.3.1事件过程定义110
5.3.2事件过程使用方法111
5.3.3事件过程使用方法115
5.4Function过程119
5.4.1Function过程定义119
5.4.2Function过程调用方法122
5.4.3Function过程的执行线索126
5.5过程参数131
5.5.1引用调用和传值调用131
5.5.2带默认值的形式参数136
5.5.3指定实参和形参结合顺序138
5.6过程重载139
5.7递归调用142
5.8变量生存期与作用域145
5.8.1类级变量146
5.8.2过程级变量147
5.8.3程序块级变量149
5.8.4同名变量及其作用域150
思考题151
第6章数组153
6.1数组概述153
6.2数组定义153
6.2.1一维数组定义153
6.2.2多维数组定义154
6.3数组的相关操作155
6.3.1数组初始化155
6.3.2数组空间重分配158
6.3.3数组上界及元素数162
6.3.4数组遍历164
6.3.5形参数组、形参参数数组以及数组返回值170
6.4与一维数组相关的算法举例178
6.4.1冒泡排序178
6.4.2选择排序182
6.4.3输出素数表185
6.4.4输出正整数因子187
6.5与二维数组相关的算法举例189
6.5.1二维数组统计操作189
6.5.2二维数组和一维数组的相互转换192
6.5.3杨辉三角196
思考题198
第7章结构和类199
7.1结构199
7.1.1结构的定义199
7.1.2结构类型变量的使用201
7.1.3常量成员和共享成员203
7.1.4结构成员的作用域204
7.1.5结构的属性205
7.1.6结构的方法209
7.1.7结构的构造方法210
7.1.8一个综合的例子212
7.2类217
7.2.1对象217
7.2.2面向对象的基本特性218
7.2.3类和对象的定义220
7.2.4在类中定义数据成员222
7.2.5对象的定义223
7.2.6在类中定义属性224
7.2.7在类中定义方法226
7.2.8在类中定义事件228
7.2.9构造函数和析构函数231
7.3继承与派生232
7.3.1基类和派生类232
7.3.2派生类的构造函数233
7.4类的多态236
7.4.1重载与重写236
7.4.2多态性及其实现238
7.5结构和类的比较240
思考题241
第8章用户界面设计初步243
8.1菜单设计243
8.1.1菜单类型243
8.1.2菜单对象244
8.1.3下拉式菜单的创建245
8.1.4弹出式菜单的创建248
8.1.5为菜单项编写代码250
8.2工具栏和状态栏250
8.3通用对话框250
8.3.1MessageBox对话框251
8.3.2OpenFileDialog控件和SaveFileDialog控件253
8.3.3FontDialog控件257
8.3.4ColorDialog控件258
8.4多重窗体260
8.4.1添加窗体与设置启动窗体260
8.4.2窗体的实例化与显示261
8.4.3不同窗体间数据的访问263
思考题264
第9章文件操作265
9.1文件概述265
9.1.1文件的基本结构265
9.1.2文件的分类266
9.1.3文件的读写过程267
9.2文件操作概述268
9.2.1文件的打开268
9.2.2文件的关闭270
9.2.3文件的写入271
9.2.4顺序文件的读操作273
9.3随机文件275
9.4二进制文件278
9.5三种文件读写方式的异同279
9.6文件操作相关函数及使用280
思考题282
第10章数据库编程283
10.1数据库概述283
10.1.1关系数据库的基本概念286
10.1.2Access数据库的使用287
10.1.3SQL简介289
10.2ADO.NET292
10.2.1ADO.NET简介292
10.2.2ADO.NET的名称空间293
10.2.3Connection对象294
10.2.4Command对象295
10.2.5DataReader对象296
10.2.6DataSet对象306
10.2.7DataAdapter对象308
10.2.8数据绑定313
思考题319
参考文献320
附录1程序的调试321
附1.1错误的类别321
附1.2程序调试工具323
附1.3异常处理326
附录2内部函数329
附2.1数学函数329
附2.2字符串函数331
附2.3日期与时间函数342
附2.4类型测试函数346
附2.5预定义输入对话框函数InputBox346
附录3常用控件348
附3.1图片框控件348
附3.2复选框控件349
附3.3单选按钮控件351
附3.4列表框控件352
附3.5组合框控件356
附3.6计时器控件357
附3.7框架控件357
附3.8面板控件358
附录4实验任务359
查看全部↓
第1章 引言
1.1 Visual Basic简介
1.1.1 计算机语言和程序
日常生活中,人与人之间的交流需要语言来进行,而人和计算机之间的交流,也需要语言来进行,即需要计算机语言来交流。与人类的语言相似,计算机语言就是一套具有数字、字符、词法和语法规则的系统,由这些规则组成计算机各种指令(或各种语句),实现人与计算机之间的通讯。
那么,计算机语言又是如何实现计算机和人之间沟通的呢?这就是人和计算机之间的“中间人”——程序的功劳了。通过计算机语言(如常见的汇编语言、C语言和Basic语言等)编制程序,在程序中就可以表达我们的意图,而程序则负责调度各种计算机资源(申请内存和执行计算等)来完成我们下达的命令。要通过程序向计算机传达一个命令,必须经过下面的步骤。
首先,在源文件中用程序设计语言表达指令。用户通过计算机语言表达指令,通常,指令是记录在文件中以源代码的形式出现的。在进行具体操作的时候,根据用户所使用的开发平台,具体的操作步骤可能有所不同。
然后,将源代码编译成可执行文件。在源文件中记录的指令通常是以高级程序设计语言表达的,这种语言接近于人类使用的自然语言。但是,对于计算机来说,这些符号是无法理解的,因此需要一个来完成这个“翻译”工作的角色——编译器。它负责将源代码文件中以高级程序设计语言表达的指令翻译成计算机可以理解的机器语言,并记录在可执行文件中(在Windows 开发平台下,可执行程序通常是一个扩展名为.exe的文件)。经过这个编译过程后,就得到了可执行的文件,也就使源代码文件变为了类似于这样的二进制序列。
最后,计算机执行可执行程序。这些二进制指令会被调入计算机,并遵照这些指令执行,完成相关任务。
1.1.2 从机器语言到汇编语言
计算机工作基于二进制,从根本上说,计算机只能识别由1和0组成的指令。在计算机发展的初期,一般计算机的指令长度为16位,即以16个二进制数(0 或1)组成一条指令。16个0和1可以组成各种排列组合。例如,用让计算机进行一次加法运算。用户想要计算机知道和执行自己的意图,就要编写许多条由1 和0 组成的指令,然后用纸袋穿孔机以人工的方法在特质的黑色纸带上穿孔,在指定的位置上有孔代表1,无孔代表0。一个程序往往需要一个长长的纸带,在需要运行此程序时就将纸带装在光电输入机上,当光电输入机从纸带读入信息时,有孔处产生一个电脉冲,指令变成电信号,让计算机执行各种操作。
这种计算机能直接识别和接受的二进制代码称为机器指令(machine instruction) ,机器指令的集合就是该计算机的机器语言(machine language) ,在语言的规则中规定各种指令的表现形式和作用。
显然,机器语言与人们习惯用的语言差别太大,难学、难写、难记、难检查、难修改,且难以推广使用,因此初期只有极少数的计算机专业人员会编写这样的计算机程序。
为了克服机器语言的上述缺点,人们创造出符号语言(symbolic language),它用一些英文字母和数字表示一个指令,如ADD代表“加”,SUB代表“减”,LD代表“传送”等。例如,两个数相加的机器指令可以用下面符号指令代替:
ADD A,B (执行A+B=>A,将寄存器中A 的数与寄存器B中的数相加,放到寄存器A中)
显然,计算机并不能直接识别和执行符号语言的指令,需要用一种称为汇编程序的软件,把符号语言的指令转换为机器指令。一般地,一条符号语言的指令对应转换为一条机器指令,转换的过程称为“代真”或“汇编”语言,因此符号语言又称为符号汇编语言(symbolic assembler language)或汇编语言(assembler language)。
1.1.3 从汇编语言到高级语言
虽然汇编语言比机器语言简单好记一些,但仍然难以普及,只在专业人员中使用。不同型号计算机的机器语言和汇编语言是互不通用的,即用甲机器的机器语言编写的程序在乙机器上不能使用。机器语言和汇编语言是完全依赖于具体机器特征的,是面向机器的语言。由于它“贴近”计算机,或者说离计算机“很近”,因此称为计算机低级语言(low level language) 。
为了克服低级语言的缺点,20 世纪50 年代创造出了第一个计算机高级语言——FORTRAN 语言。它很接近于人们习惯使用的自然语言和数学语言。程序中用到的语句和指令使用英文单词表示,所用的运算符和运算表达式与人们日常所用的数学式子差不多,很容易理解。程序运行的结果用英文和数字输出,十分方便。例如,在FORTRAN 语言程序中,若要输出只需写出下面这样一个语句:
即可得到计算结果,显然这是很容易理解和使用的。
这种语言功能很强,且不依赖于具体机器,用它写出的程序对任何型号的计算机都适用(或只需做很少的修改)。它与具体机器距离较远,故称为计算机高级语言(high level language) 。
当然,计算机是不能直接识别高级语言程序的,首先要进行“翻译”,用一种称为编译程序的软件把用高级语言写的程序(称为源程序,source program) 转换为机器指令的程序(称为目标程序,object program) ,然后让计算机执行机器指令程序,最后得到结果。高级语言的一个语句往往对应多条机器指令。
自从有了高级语言后,一般的科技人员、管理人员、大中学生以及计算机爱好者,都能较容易地学会用高级语言编写程序,指挥计算机进行工作,而完全不顾什么机器指令,也可以不必深入懂得计算机的内部结果和工作原理,就能得心应手地利用计算机进行各种工作,为计算机的推广普及创造了良好的条件。
数十年来,全世界涌现了2500 种以上高级语言,每种高级语言都有其特定的用途,其中应用较广泛的有100 多种,影响较大的有FORTRAN 和ALGOL(适合数值计算)、BASIC 和QBASIC(适合初学者的小型会话语言)、COBOL(适合商业管理)、Pascal(适合数学的结构程序设计语言)、PL/1(大型通用语言)、LISP 和PROLOC(人工智能语言)、C(系统描述语言)、C++(支持面向对象程序设计的大型语言)、Visual Basic(支持面向对象程序设计的语言)和Java(适于网络的语言)等。
1.1.4 Visual Basic 的发展史
BASIC 语言属于高级语言的一种,英文名称的全名是“Beginner’s All-Purpose Symbolic Instruction Code”,取其首字字母简称“BASIC”,就名称的含意来看,是适用于“初学者的多功能符号指令码”。最初,它是为初学计算机的人员设计的,作为交互计算的第一个语言,且附加了很多特征,简单易学而且能适应各种程序设计任务。
到了20 世纪70 年代,BASIC 语言得到了较全面的完善并能处理相当复杂的应用问题。BASIC 语言在早期发展过程中有很多版本,其中微软公司于1987 年推出MSDOS 环境下的Quick BASIC ,克服了原BASIC 结构化程度差和运算速度慢的缺点,具有与FORTRAN 和C 语言相媲美的完善程度,有方便全面的编程环境和库管理功能,可以说Quick BASIC 的易学性和BASIC 差不多,而功能则大为扩充,因此得到了广泛好评。
从20 世纪80 年代末到90 年代初,随着Windows 操作系统的发展和逐步流行,PC 的操作方式由命令行的方式向图形用户界面方式转变。Cooper 公司总裁Alan Cooper 开始开发一个新的开发环境,在这个开发环境中,甚至连基于窗口的用户界面的屏幕布局都用鼠标来驱动,其目标是针对那些为产生一个用户界面连代码都懒得写的程序员。因此,他决定这个产品使用的语言应该是BASIC 语言的一个变种。1991 年,在Alan Cooper 的工作成果基础上,微软公司推出了名为Visual Basic 的产品,版本号为1.0。程序员可以安装它,并能立即写出Windows 界面程序。虽然该产品功能很少,但是它首次集成了可视化的程序界面设计和事件驱动机制,具有划时代的意义。
在Windows 操作系统的不断发展和成熟中,Visual Basic 也在不断地发展中。到1998年时,Visual Basic 发展到了6.0 的版本。在版本的变化中逐步增加了处理关系数据库的功能,也增加了对类和自建控件的支持,并开始支持中文等,最终成为一个非常稳定、强健的开发工具,至今仍然拥有数以百万计的用户。
随着微软提出的.NET 框架思想,在1999 年,微软公司决定将Visual Basic 改成真正的面向对象的语言,并于2002 年在.NET平台中正式推出Visual Basic.NET,2005 年推出Visual Basic 2005 版本。值得注意的是从这个版本开始去掉了“.NET”字样,而且这个版本与前面的版本相比有了很多重大的变革,增加了My伪命名空间、泛型和操作符重载等众多新特性。其后几年间微软公司发布了若干个版本,直到最近的Visual Basic 2015 版本。
本书是基于Visual Basic 2010 版本(书中统称Visual Basic) 编写的。
1.2 Visual Basic 开发环境
1.2.1 .NET 框架
.NET 框架由微软开发,是一个致力于敏捷软件开发、快速应用开发、平台无关性和网络透明化的软件开发平台,其中包含了许多有助于互联网和内部网应用迅捷开发的技术。.NET 框架是以一种采用系统虚拟机运行的编程平台,支持多种语言(C#、Visual Basic 、C++和Python 等)的开发。.NET 也为应用程序接口(Application Programming Interface,API)提供了新功能和开发工具。这些革新使得程序设计员可以同时进行Windows 应用软件和网络应用软件以及组件和服务的开发。.NET 框架的结构如图1-1所示。
图1-1 .NET 框架
.NET 框架是一个多语言组件开发和执行环境,它由以下三个主要部分组成。
1.公共语言运行时
公共语言运行时(Common Language Runtime,CLR)名称不能准确反映它的全部功能。实际上,公共语言运行时在组件的开发及运行过程中,都扮演着非常重要的角色。在组件运行过程中,运行时负责管理内存分配、启动或删除线程和进程、实施安全性策略,同时满足当前组件对其他组件的需求。在开发阶段,运行时的作用有些变化:与现今的组件对象模型(Component Object Model,COM)相比,运行时的自动化程度大为提高(如可自动执行内存管理),因此开发人员的工作变得非常轻松。.NET框架的关键作用在于,它提供了一个跨编程语言的统一编程环境,这也是它能独树一帜的根本原因。
2.统一的编程类
.NET 框架为开发人员提供了一个统一、面向对象、层次化和可扩展的类库集(API)。现今,C++ 开发人员使用的是Microsoft 基类库,Java开发人员使用的是Windows 基类库,而Visual Basic 用户使用的又是Visual Basic API集,只要简单地使用.NET框架就可以统一微软当前的各种不同类框架。这样,开发人员无需学习多种框架就能顺利编程。远不止于此的是,通过创建跨编程语言的公共类库集,.NET框架可实现跨语言继承性、错误处理功能和调试功能。实际上,从JScript 到C++的所有编程语言,都是相互等同的,开发人员可以自由选择理想的编程语言。
3.活动服务器页面
活动服务器页面(Active Server Page,ASP)是使用.NET 框架提供的编程类库构建而成的,它提供了Web 应用程序模型,该模型由一组控件和一个基本结构组成。有了它,Web 应用程序的构建就变得非常容易。
查看全部↓