
本书从教学实践的角度系统地介绍了Visual Basic .NET的编程环境、程序设计基本知识、程序控制结构、数组、过程、数据结构及常用算法、常用控件的用法、菜单、工具框、对话框、面向对象程序设计、文件操作、多媒体、数据库和网络程序设计技术。全书共12章,每章通过大量丰富的实例以图文并茂的形式给予说明。
本书内容丰富翔实,涉及范围广泛,并做到概念清晰、逻辑性强,阐述时由浅入深、循序渐进。本书注重结构化程序设计、面向对象程序设计等编程方法的训练。本书中的大量实例大多来自作者多年的工作和应用软件开发实践,其中有些还颇具趣味性,因而具有较高的实用性和参考性。
随书配有一张光盘,其中包含与本书相配套的动态演示教学课件,以备教师授课或学生自学之用;光盘还包含本书的辅导教材《Visual Basic .NET实验指导与编程实例》一书中两个编程实例的文档、源代码和可执行文件,程序都在Windows .XP平台和Visual Studio .NET环境下调试通过并经过严格测试。
本书可作为高等院校非计算机专业或计算机科学与技术、软件工程专业程序设计的教材,也可供广大软件设计爱好者参考
前 言
学好一门课程的关键因素在于对该学科领域有着强烈的兴趣!
21世纪初入校的大学生大多都有使用计算机玩游戏、上网、聊天和收发电子邮件的经历。当阅读完此书之后,您会发现自己也可以编写出电子邮件发送程序、简单的游戏软件以及具有Windows风格的应用程序。编著这本实用教程的目的就是引导学生快速有效地进入编程世界。
Visual Studio .NET是Microsoft公司推出的新一代可视化开发工具,它作为Microsoft创建企业规模的Web应用程序以及高性能的应用程序所推出的.NET框架构件,在很多方面较其他可视化开发工具有很大的改进。Visual Basic .NET(简称VB .NET)是其中一个重要的组成部分,它支持许多新的面向对象语言的特性,并增添了一些新的数据类型。同时,VB .NET为广大编程人员提供了操控.NET平台的最简单的切入点。使用VB .NET,编程人员可以开发基于Windows平台的富有新特色的应用程序,这将对程序开发产生深远的影响。
本书的编著者有着多年从事一线教学的经验。就非计算机专业的“程序设计”课程而言,我们经历了早期的ALGO 60、BASIC,20世纪90年代初的True BASIC,以及随后的Visual Basic和目前的VB .NET这一过程,在近30年的程序设计教学过程中,本书作者始终重视课程建设、教学内容,以及教学方法、教学手段的改革。20世纪90年代,我们主讲的“True BASIC程序设计”课程获得了省级优秀课程,进入21世纪后,我们正在实施可视化程序设计精品课程建设。
本书共12章,系统地介绍了VB .NET程序设计语言的各个部分。重点对程序设计的基础知识、基本语法、编程方法、界面设计、面向对象程序设计概念、数据结构及常用算法、文件操作、多媒体、数据库等内容进行了较详细的介绍,其目的在于让学生学会如何分析问题,以及掌握简单问题的编程能力。可视化界面设计是开发程序中的另一项重要内容,但与前一部分相比,是比较容易实现的。本书力图将这两部分有机地结合起来,以提高学生的学习积极性和教师的教学效果。
与现有教材相比,本教材具有以下特点:
1.注重编程实践能力的培养
Visual Basic .NET程序设计是一门实践性很强的课程。为了提高学生的编程、调试程序的能力,我们还编写了与本书配套的《Visual Basic .NET实验指导与编程实例》一书。书中包括调试程序的基本方法和技巧,涉及VB .NET各知识点的27个实验,另外还包括全国计算机等级考试Visual Basic真题解析和教学信息管理系统、电子相册应用程序编程实例。
2.重点难点突出
VB .NET具有较强的功能,本书没有罗列大量的语言成分,不介绍不常用的属性、方法和事件,而是对VB .NET进行了大胆的取舍,较详细地介绍了其中的主要语言成分,重点讲述程序设计的概念和方法。
3.注重数据结构和算法设计
VB .NET提供了较为丰富的数据类型,在此基础上本书还介绍了复杂程序设计中涉及的线性表、栈、队列、树、二叉树和图等数据结构的基本概念及其基本操作算法和实现,以及常用的查找和排序算法,这些内容对于初学者都是有难度的。作者编写这部分知识的目的是兼顾学习能力强的学生,并考虑到全国计算机等级考试大纲中对大学生掌握程序设计技术提出的更高要求。
4.实例具有较强的趣味性
本书的每一章都提供了丰富的实例,这些实例大多来自作者多年的工作和应用软件开发实践,其中有的实例具有较强的趣味性,例如游戏、电子邮件发送程序等,其目的是激发学生对程序设计的兴趣。
本书由李印清等编著,于浩杰编写了第1、4章和第2章的2.1、2.2两节,李印清编写了第5章,余建国编写了第6、7章,陈建辉编写了第8章,赵小雨编写了第9、10章及第2章的2.3、2.4、2.5三节,薛海燕编写了第11、12章,李筱宁编写了第3章。于浩杰对第3章的程序实例进行了调试,并负责全书的排版工作,陈建辉对第5章的程序实例进行了调试,李筱宁负责第3、5、8章书稿和目录以及参考文献的录入和校对。李印清负责全书的统稿。
与本书配套的教学课件由李印清和赵小雨策划与设计,刘华、金秋春、薛海燕、王杰和傅尔胜参与了课件的制作。
本书在编写过程中得到了许多同志的支持和帮助。承蒙甘勇教授审阅了全部书稿,并提出了许多宝贵意见和建议。另外,在编写过程中,编著者还参考了大量的文献资料。在此,对甘勇教授和这些资料的作者一并致以衷心的感谢。
由于计算机技术的发展十分迅速,虽然我们力创精品,但由于水平有限,本书错误和疏漏之处在所难免,敬请广大读者不吝赐教,编著者的邮箱是liyinqing@zzia.edu.cn。
编著者
2006年5月于熊耳河畔
目 录
第1章 Visual Basic .NET概述 1
1.1 Visual Basic .NET简介 1
1.1.1 Visual Basic语言的特点 1
1.1.2 Visual Basic .NET及其新特性 2
1.2 Visual Basic .NET的安装、启动与
退出 2
1.2.1 Visual Basic .NET的安装要求 3
1.2.2 Visual Basic .NET的安装 3
1.2.3 Visual Basic .NET的启动与退出 6
1.3 Visual Basic .NET的集成开发
环境(IDE)简介 8
1.3.1 IDE启动界面及其组成 8
1.3.2 定制自己的IDE环境 16
1.4 窗体和常用控件 18
1.4.1 窗体(Form) 18
1.4.2 按钮控件(Button) 18
1.4.3 标签框控件(Label) 18
1.4.4 文本框控件(TextBox) 19
1.5 一个简单应用程序的开发示例 19
1.5.1 创建应用程序界面 20
1.5.2 设置对象属性 20
1.5.3 编写事件过程代码 21
1.5.4 程序运行与保存 22
习题一 22
第2章 Visual Basic .NET语法基础 24
2.1 数据类型 24
2.1.1 基本数据类型 24
2.1.2 复合数据类型 26
2.1.3 枚举类型 28
2.1.4 类型转换 28
2.2 常量和变量 30
2.2.1 常量 30
2.2.2 变量 31
2.3 数组 32
2.3.1 数组的定义 32
2.3.2 数组的初始化 34
2.3.3 数组元素的引用 35
2.3.4 动态数组 35
2.4 运算符与表达式 37
2.4.1 算术运算符 37
2.4.2 字符串运算符 38
2.4.3 关系运算符 38
2.4.4 逻辑运算符 39
2.4.5 表达式 39
2.5 常用内部函数 40
2.5.1 转换函数 40
2.5.2 字符串操作函数 42
2.5.3 日期函数 43
2.5.4 System.Math的方法 45
2.5.5 Rnd函数 46
习题二 46
第3章 基本控制结构 49
3.1 结构化程序设计概述 49
3.2 顺序结构程序设计 51
3.2.1 赋值语句 51
3.2.2 数据的输入和输出 52
3.2.3 注释和结束语句 54
3.3 选择结构程序设计 55
3.3.1 If…Then语句 55
3.3.2 If…Then…Else语句 57
3.3.3 If…Then…ElseIf语句 58
3.3.4 Select Case语句 59
3.3.5 选择的嵌套结构 60
3.3.6 条件函数 61
3.3.7 选择结构应用举例 62
3.4 循环结构程序设计 65
3.4.1 For…Next循环语句 66
3.4.2 Do…Loop循环语句 72
3.4.3 While…Wend循环语句 75
3.4.4 For Each…Next循环语句 76
3.4.5 循环出口语句 76
3.4.6 循环嵌套 77
3.4.7 Go To语句 81
习题三 82
第4章 过程 86
4.1 模块化程序设计概述 86
4.1.1 程序的模块化 86
4.1.2 模块间的层次结构 86
4.1.3 “自顶向下、逐步求精”的程序
设计方法 87
4.2 Sub过程 87
4.2.1 Sub过程的定义 87
4.2.2 Sub过程的调用 88
4.3 Function过程 89
4.3.1 Function过程的定义 89
4.3.2 Function过程的调用 90
4.4 参数传递 90
4.4.1 形参与实参 91
4.4.2 传值 91
4.4.3 引用 92
4.4.4 数组参数 92
4.5 变量的作用域与生存期 93
4.5.1 变量的作用域 93
4.5.2 静态变量 96
4.6 递归 97
习题四 99
第5章 数据结构与算法设计 100
5.1 算法与数据结构的基本概念 100
5.1.1 算法及其特征 100
5.1.2 数据结构 101
5.2 线性表 104
5.2.1 线性表的定义 104
5.2.2 线性表的顺序存储结构 104
5.2.3 线性表的链式存储结构 106
5.3 栈和队列 109
5.3.1 栈 109
5.3.2 队列 111
5.4 树和二叉树 112
5.4.1 树 112
5.4.2 二叉树 115
5.5 查找 119
5.5.1 查询表的概念 119
5.5.2 顺序表的查找 119
5.5.3 有序表的查找 120
5.6 排序 121
5.6.1 选择排序 122
5.6.2 交换排序 122
5.6.3 插入排序 123
习题五 124
第6章 常用控件 126
6.1 控件概述 126
6.1.1 Windows窗体控件 126
6.1.2 Windows窗体常用控件举例 128
6.1.3 控件的基本操作 128
6.1.4 控件的公用属性、方法和事件 130
6.2 文本控件 132
6.2.1 Label控件 132
6.2.2 TextBox控件 134
6.3 按钮控件 136
6.4 单选按钮、复选框和分组框控件 139
6.4.1 RadioButton控件 139
6.4.2 CheckBox控件 141
6.4.3 GroupBox控件 143
6.5 列表框和组合框控件 145
6.5.1 ListBox控件 145
6.5.2 ComboBox控件 149
6.6 图片框控件 151
6.6.1 PictureBox控件的常用属性 151
6.6.2 PictureBox控件的应用 152
6.7 设置值、日期和时间的控件 155
6.7.1 滚动条控件 155
6.7.2 TrackBar控件 156
6.7.3 ProgressBar控件 157
6.7.4 日期控件 157
6.7.5 Timer组件 159
6.8 焦点与Tab键顺序 160
习题六 162
第7章 界面设计 164
7.1 窗体 164
7.1.1 概述 164
7.1.2 添加窗体 164
7.1.3 窗体的设置 165
7.1.4 窗体的事件和方法 166
7.2 对话框设计 167
7.2.1 简单对话框 167
7.2.2 输入对话框 169
7.2.3 通用对话框 169
7.2.4 自定义对话框 172
7.3 菜单设计 173
7.3.1 菜单概述 173
7.3.2 主菜单设计 174
7.3.3 弹出式菜单设计 178
7.4 高级界面设计控件 179
7.4.1 TabControl控件 179
7.4.2 ListView和TreeView控件 180
7.4.3 ToolBar控件 180
7.4.4 StatusBar控件 182
7.4.5 扩展界面组件(控件)与应用 183
7.5 多文档界面设计 184
习题七 186
第8章 面向对象的程序设计 187
8.1 面向对象编程基础 187
8.1.1 对象和类 187
8.1.2 消息 188
8.1.3 封装、继承和多态性 188
8.2 Visual Basic .NET中面向
对象的实现 189
8.2.1 创建类 189
8.2.2 对象的实例化和初始化 192
8.2.3 对象的生命周期 193
8.2.4 共享成员 195
8.3 命名空间 197
8.3.1 命名空间的概念 197
8.3.2 命名空间的定义 197
8.3.3 命名空间的使用 198
8.4 类的继承 198
8.4.1 继承的实现 198
8.4.2 继承的范围 201
8.4.3 事件的继承 202
8.4.4 可视化继承 203
8.5 重载 203
8.6 界面(接口) 204
8.6.1 界面声明 205
8.6.2 用Implements语句执行界面 205
8.6.3 实现多个界面 206
习题八 207
第9章 文件 208
9.1 文件概述 208
9.2 文件对话框组件 209
9.2.1 文件对话框的结构 210
9.2.2 文件对话框的常用属性 210
9.3 文件处理函数 213
9.3.1 文件的打开与关闭 213
9.3.2 文件操作函数 215
9.3.3 顺序文件的读/写操作 216
9.3.4 随机文件的读/写操作 221
9.3.5 二进制文件的读/写操作 227
9.4 流与流式文件访问 228
9.4.1 流的基本概念 228
9.4.2 StreamReader类和
StreamWriter类 228
9.4.3 FileStream类 230
9.4.4 BinaryReader类和
BinaryWriter类 231
习题九 234
第10章 多媒体程序设计 236
10.1 动画制作 236
10.2 图形技术 238
10.2.1 绘制图形的一般步骤 239
10.2.2 创建Graphics对象 240
10.2.3 坐标系统 241
10.2.4 颜色 243
10.2.5 画笔 244
10.2.6 画刷与填充 249
10.2.7 绘制文字 254
10.2.8 删除Graphics对象和清屏 257
10.3 图像技术 257
10.4 媒体播放 259
习题十 262
第11章 数据库开发 264
11.1 数据库基本知识 264
11.1.1 数据库的基本概念 264
11.1.2 创建数据库 265
11.1.3 SQL简介 266
11.1.4 VB .NET对数据库
开发的支持 268
11.2 ADO .NET 268
11.2.1 ADO .NET简介 268
11.2.2 ADO .NET对象及组件 270
11.2.3 开发数据库应用
程序的一般步骤 273
11.3 数据库开发实例 273
11.3.1 数据库开发举例 274
11.3.2 数据窗体向导 276
习题十一 280
第12章 网络应用程序开发 282
12.1 Web开发的基础知识 282
12.1.1 Web的概念 282
12.1.2 Web应用程序的发展 283
12.1.3 使用ASP .NET设计Web
应用程序 283
12.2 基于Web窗体创建网络应用程序 284
12.2.1 ASP .NET Web窗体 284
12.2.2 ASP .NET服务器控件 284
12.2.3 Web窗体设计举例 286
12.3 Web服务概述 288
12.3.1 Web服务的用途 288
12.3.2 Web服务的创建与使用 288
12.4 自己设计电子邮件发送系统 292
12.4.1 电子邮件发送系统 292
12.4.2 系统实现 293
习题十二 294
参考文献 296