Microsoft Word - 扉页.doc

Size: px
Start display at page:

Download "Microsoft Word - 扉页.doc"

Transcription

1 科学出版社职教技术出版中心

2 普通高等教育 十一五 规划教材 Visual Basic 程序设计 郭贤海 主编 北京

3 内容简介 Visual Basic 语言是最流行 使用人数最多的编程语言, 它简单易学 应用广泛, 是在校大学生学习编程的首选语言, 学会 Visual Basic 能使你的专业技能如虎添翼 本书针对初学者的特点, 精心设计章节内容 准确定位, 章节的设置符合学习规律, 实例讲解详细 重点突出 深入浅出, 能使初学者快速入门 本书分为 10 章, 由浅入深地介绍了 Visual Basic 基本知识 编程基础 控制结构 数组 过程 常用内部控件 绘图方法 菜单和对话框 文件 数据库等内容 本书可以作为各类高等院校 各类高职院校学生的 Visual Basic 程序设计 课程的教材, 也可作为广大计算机爱好者学习 Visual Basic 程序设计语言的参考书 图书在版编目 (CIP) 数据 Visual Basic 程序设计 / 郭贤海主编. 北京 : 科学出版社, ( 普通高等教育 十一五 规划教材 ) ISBN Ⅰ. 1V Ⅱ. 1 郭 Ⅲ. 1Basic 语言 - 程序设计 - 高等学校 - 教材 Ⅳ. 1TP312 中国版本图书馆 CIP 数据核字 (2010) 第 号责任编辑 : 李振格孙露露 / 责任校对 : 赵燕 责任印制 : 吕春珉 / 封面设计 : 耕者设计工作室 出版北京东黄城根北街 16 号邮政编码 : 印刷科学出版社发行各地新华书店经销 * 2010 年 3 月第一版开本 : / 年 3 月第一次印刷印张 :17 3/4 印数 : 字数 : 定价 :28.00 元 ( 如有印装质量问题, 我社负责调换 < >) 销售部电话 编辑部电话 版权所有, 侵权必究举报电话 : ; ; 科学出版社职教技术出版中心

4 前 言 Visual Basic 是目前最适合初级编程者学习使用的程序设计语言, 也是国内外应用范围最广的计算机高级语言之一 正是由于其容易掌握, 开发界面友好, 功能完善, 开发效率高, 以及良好的兼容性, 因而成为当前快速开发工具的首选 本书共分 10 章 从 Visual Basic 6.0 概述开始, 介绍 Visual Basic 集成开发环境 可视化编程的基本概念 基本方法 几个常用控件的属性和使用方法 基本数据类型 表达式 常用内部函数, 使读者对 Visual Basic 有一个初步的认识, 熟悉编程的基本步骤 ; 接着讲解 Visual Basic 的控制结构语句 数组 过程函数 绘图程序 菜单 文件 数据库, 使读者深入了解 Visual Basic 的内涵, 学会各种代码设计方法和步骤, 熟练编写 Visual Basic 程序, 最后达到读者掌握 Visual Basic 程序设计的目的 本书编写以改革计算机课程教学, 体现新世纪教育特色为出发点, 力求有所创新 全书围绕着非计算机专业学生学习和教学的特点, 结合计算机二级等级考试大纲进行组织编写 全书由浅入深 概念明确 条理清晰, 适合作为非计算机类大学本科计算机程序设计基础教材, 也可作为成人教育应用型专业以及等级考试培训教材和自学参考书 本书由长期工作在教学第一线并具有丰富计算机基础教学经验的多位教师共同编写, 郭贤海任主编 第 1 章 第 2 章由台州学院的应建健编写, 第 3 章 第 4 章 第 6 章的 6.6 节和第 10 章由台州学院的郭贤海编写, 第 5 章 第 6 章 ( 除 6.6 节 ) 由丽水学院的沈伟华编写, 第 7 章 第 9 章由温州大学的陆岚编写, 第 8 章由浙江传媒学院的梁冲海编写, 郭贤海最终统稿成书 另外, 郑苏杭 仲灵美 孙明月 张婷 赵帅 韩旺 李莉莉 乐赟等人参与了本书的校对工作, 在此一并表示感谢 由于编者水平有限, 书中难免出现疏漏之处, 恳请广大读者批评指正 主编邮箱 : seeinrain@163.com

5 目 录 第 1 章 Visual Basic 6.0 概述 Visual Basic 简介 Visual Basic 的发展过程 Visual Basic 的特点 Visual Basic 6.0 集成开发环境 Visual Basic 中的基本概念 对象与类 对象的属性 事件 方法 建立第一个应用程序 界面设计 代码设计 保存工程 运行和调试程序 习题一 第 2 章 Visual Basic 编程基础 窗体 窗体的构造 窗体的属性 窗体的事件 窗体的方法 多窗体 窗体加载与卸载时触发的事件 数据类型 常量与变量 科学出版社职教技术出版中心 数据类型 常量 变量 Print 语句和赋值语句 语法描述规则 Print 语句 赋值语句 运算符 表达式 常用内部函数 算术运算符与算术表达式... 44

6 iv Visual Basic 程序设计 字符串运算符与字符串表达式 关系运算符与关系表达式 逻辑运算符与逻辑表达式 常用的内部函数 InputBox 函数和 MsgBox 函数 编程实例 习题二 第 3 章控制结构 程序结构与流程图 选择控制结构 单行结构条件语句 多行结构条件语句 多分支选择控制结构 循环控制结构 For Next 循环 While Wend 循环 Do Loop 循环 多重循环 习题三 第 4 章数组 数组的概念 一维数组的定义 二维及多维数组的定义 动态数组的定义 排序实例 习题四 第 5 章过程 Sub 过程 引例 建立 Sub 过程 调用 Sub 过程 通用过程与事件过程 函数过程 建立函数过程 调用函数过程 函数过程与 Sub 过程的区别 参数传递 形参与实参... 98

7 目 录 v 引用与传值 数组参数的传递 变量的作用范围 变量的作用范围 静态变量 习题五 第 6 章常用控件 标签 文本框和命令按钮 标签 文本框 命令按钮 单选按钮 复选框和框架 单选按钮 复选框 框架 列表框和组合框 列表框 组合框 滚动条 定时器 图形控件 控件数组 控件数组的概念 控件数组的使用 习题六 第 7 章绘图方法 坐标系统 坐标刻度 自定义坐标系 科学出版社职教技术出版中心 绘图属性 当前坐标 使用颜色 线宽和线型 填充 绘图方法 画点方法 Pset 画线 矩形方法 Line 画圆 圆弧和椭圆方法 Circle

8 vi Visual Basic 程序设计 7.4 绘图应用实例 习题七 第 8 章对话框和菜单 用户自定义对话框 对话框概述 由普通窗体创建自定义对话框 使用对话框模板窗体创建对话框 显示与关闭自定义对话框 通用对话框控件 CommonDialog 通用对话框控件 打开 / 另存为 对话框 颜色 对话框 字体 对话框 其他对话框 菜单设计 菜单概述 菜单编辑器 下拉式菜单 弹出式菜单 习题八 第 9 章文件 文件 文件的结构 文件的存取类型 顺序文件 顺序文件的打开与关闭 顺序文件的写操作 顺序文件的读操作 常用文件操作语句和函数 文件管理控件 驱动器列表框 目录列表框 文件列表框 习题九 第 10 章数据库 与数据库相关的概念 可视化数据管理器 数据库的建立

9 目 录 vii 数据窗体设计器 Microsoft Access 2003 数据库管理系统 结构化查询语言 SQL Visual Basic 6.0 数据库访问技术 Data 控件 ADO Data 控件 DataGrid 控件 数据库综合应用示例 习题十 附录 附录一 Visual Basic 相关知识表格汇总 附录二 浙江省高校计算机等级考试大纲 ( 二级 VisualBasic 语言程序 设计大纲 ) 附录三 2008 年秋浙江省高等学校计算机等级考试试卷 ( 二级 Visual Basic) 及参考答案 附录四 2009 年春浙江省高等学校计算机等级考试试卷 ( 二级 Visual Basic) 及参考答案 附录五 2009 年秋浙江省高等学校计算机等级考试二级 Visual Basic 程序设计 试卷及参考答案 附录六浙江省等级考试二级 Visual Basic 上机样题 参考文献 科学出版社职教技术出版中心

10 第 1 章 Visual Basic 6.0 概述 在所有的程序设计语言中,Basic 语言是最容易学习的一种通用程序设计语言, 同时也是全球使用人数最多的程序设计语言, 而 Visual Basic 是微软公司推出的面向对象的可视化程序开发工具, 利用 Visual Basic 6.0 提供的集成开发环境, 可以很方便地编制出各种应用程序 另外,Visual Basic 脚本也已经在各行各业的软件中被大量使用, 比如 Office CAD 等软件中的宏就采用了 Visual Basic 来实现, 这使得 Visual Basic 成为各个专业领域的常用工具 本章在对 Visual Basic( 简称 VB) 的发展和特点稍加介绍后, 将把重点放在引导用户操作 Visual Basic 6.0 集成开发环境, 立刻开发出第一个简单的应用程序, 从而对这个面向对象的程序设计语言有一个初步了解, 引领用户进入 Visual Basic 的世界 1.1 Visual Basic 简介 Visual Basic 的发展过程 1991 年, 微软公司推出了 Visual Basic 1.0 版 这在当时引起了很大的轰动, 许多专家把 Visual Basic 的出现当作是软件开发史上的一个具有划时代意义的事件, 它是当时第一个 可视 的编程软件 1992 年,Visual Basic 2.0 发布 该版本较之上一个版本在界面和速度方面都有所改善 其中最大的改进是加入了对象型变量, 对 VBX 有了很好的支持, 许多第三方控件涌现出来, 极大地丰富了 Visual Basic 的功能 微软还为 Visual Basic 2.0 增加了 OLE 功能 1993 年,Visual Basic 3.0 发布, 分为标准版和专业版 其中包含了数据引擎, 可以直接读取 Access 数据库 1995 年,Visual Basic 4.0 发布了 32 位版本和 16 位的版本 引入了面向对象的程序设计思想, 其中包含了对类的支持, 用 OCX 控件代替了 VBX 控件, 还能够开发 DLL 工程 1997 年,Visual Basic 5.0 发布 程序员可以用 32 位的版本导入由 4.0 版本创建的 16 位程序, 并且能顺利编译, 增加了本地代码编译器, 让应用程序的效率大大提升 同时还包含了对用户自建控件的支持 1998 年,Visual Basic 6.0 发布 它是作为 Visual Studio 6.0 的一员发布的, 证明微软正在让 Visual Basic 成为企业级快速开发的利器 Visual Basic 6.0 在数据访问方面有

11 2 Visual Basic 程序设计 了很大的改进, 新的 ADO 组件让对大量数据快速访问成为可能 Visual Basic 6.0 已经 是非常成熟稳定的开发系统, 能让企业快速建立多层的系统以及 Web 应用程序, 成为 当前 Windows 上最流行的 Visual Basic 版本 Visual Basic 的特点 Visual Basic 是一种快速简易的 Microsoft Windows 程序创建方式 即使你是 Windows 编程的新手, 借助 Visual Basic, 你就有了简化开发的一整套工具 那么, 什么是 Visual Basic? Visual 是指用于创建用户所见内容 ( 即 图形用户界 面 或 GUI) 的方法 Basic 是指 BASIC( 初学者通用符号指令代码 ) 编程语言 在计 算技术的历史上, 与任何一种其他语言相比, 使用 BASIC 语言的程序员是最多的 你只需 学会 BASIC 的几个功能, 就可以创建有用的程序了 (1) 提供了面向对象的可视化开发界面 Visual Basic 采用了面向对象的程序设计方法 (OOP), 并提供了可视化的开发界面, 系统提供了很多控件, 程序员设计用户界面就像画画一样方便 在大多数情况下, 程序 员使用这些控件就能快速创建出实用的应用软件, 这些控件把一些常用的功能封装起 来, 使得程序员不用关注复杂的 Windows 的应用程序接口 (2) 事件驱动的编程方式 Visual Basic 允许创建反映用户动作和系统事件的程序 这种编程叫做事件驱动编 程 这种编程方式的好处是, 程序员编写响应用户动作的事件代码, 每个事件之间的联 系比较少, 这样使得事件代码相对较短小, 程序易于编写与维护 (3) 提供了应用程序集成开发环境 在 Visual Basic 的集成开发环境中, 用户可以方便地进行界面设计 代码编写 程 序调试编译, 使软件的开发变得非常方便 (4) 提供了大量的控件 利用现有的控件可以大大提高开发效率,Visual Basic 提供了大量的常用控件, 并 可利用第三方开发的控件及其他组件 (5) 易用性 Visual Basic 的最大优势在于它的易用性, 可以让经验丰富的 Visual Basic 程序员或 是刚刚懂得皮毛的人都能用自己的方式快速开发程序, 从而吸引了全球最多的程序员来使用它 而且 Visual Basic 的程序可以非常简单地和数据库连接 比如利用控件可以绑定数据库, 这样一来, 用 Visual Basic 写出的程序就可以掌握数据库的所有信息而不用写一行代码 (6) 支持多种数据库系统的访问采用了 ADO(Active Data Object) 数据访问技术, 可以很好地访问本地和远程的数据库, 支持访问 Access FoxPro 等多种数据库, 也可以访问 Excel 等一些电子表格 (7) 支持开发 Internet 程序可以直接创建 IIS 应用程序, 设计 DHTML 网页等功能 科学出版社职教技术出版中心

12 第 1 章 Visual Basic 6.0 概述 3 (8) 完善的在线帮助系统通过联机帮助文档, 可以获得关于 Visual Basic 的大量帮助, 里面有大量的示例代码 完整的语法和工具使用的帮助 1.2 Visual Basic 6.0 集成开发环境 Visual Basic 6.0 为使用者提供了一个功能强大而又易于操作的集成开发环境 (IDE), 用 Visual Basic 6.0 开发应用程序的大部分工作都可以通过该集成开发环境来完成 下面介绍 Visual Basic 6.0 的集成开发环境, 但不需要立刻掌握它, 你可以先浏览它的界面上有哪些东西, 等以后使用时逐步使用和掌握它 启动 Visual Basic 6.0 后首先显示 新建工程 对话框, 如图 1-1 所示 图 1-1 新建工程 对话框在对话框上单击 打开 按钮后, 就会出现如图 1-2 所示的 Visual Basic 6.0 的集成开发环境, 它的主窗口由 标题栏 菜单栏 工具栏 控件工具箱 窗体设计器 工程资源管理器 属性窗口 和 窗体布局窗口 等组成 Visual Basic 6.0 集成开发环境中还有几个在必要时才会显示出来的子窗口, 即 代码编辑器 和用于程序调试的 立即 本地 和 监视 窗口等 1. 标题栏标题栏位于集成开发环境主窗口的顶部 标题栏上除了可显示正在开发或调试的工程名外, 还可显示系统的工作模式 Visual Basic 有三种工作模式 : 设计 (Design) 模式 运行 (Run) 模式和中断 (Break) 模式 启动时标题栏上显示 工程 1 Microsoft Visual

13 4 Visual Basic 程序设计 Basic [ 设计 ], 表示现在处于设计工作模式 标题栏 菜单栏 工程资源管理器 工具栏 窗体设计器 属性窗口 控件工具箱 窗体布局窗口 图 1-2 Visual Basic 6.0 的集成开发环境 1) 设计模式 : 可进行用户界面的设计和代码的编制 2) 运行模式 : 当运行编制的程序时进入该模式, 标题栏上显示 工程 1 Microsoft Visual Basic [ 运行 ], 此时无法编辑程序 3) 中断模式 : 当应用程序中断时 ( 暂停运行, 但还没结束 ) 进入该模式, 标题栏上显示 工程 1 Microsoft Visual Basic [ 中断 ], 一般用于调试程序 2. 菜单栏 菜单栏位于集成开发环境主窗口标题栏的下面 Visual Basic 的菜单栏除了提供标准的 文件 编辑 视图 窗口 和 帮助 菜单之外, 还提供了编程专用的功能菜单, 如 工程 格式 调试 运行 查询 图表 工具 和 外接程序 等 3. 工具栏 工具栏位于集成开发环境主窗口菜单栏的下面 Visual Basic 的工具栏包括有 标准 编辑 窗体编辑器 和 调试 四组 每个工具栏都由若干命令按钮组成, 在编程环境下提供对于常用命令的快速访问 在没有进行相应设置的情况下, 启动 Visual Basic 之后只显示 标准 工具栏 编辑 窗体编辑器 和 调试 三个工具栏在需要使用的时候可通过选择 视图 菜单下的 工具栏 子菜单中的相应工具栏名称来显示, 也可通过鼠标右击 标准 工具栏的空白部分, 从弹出的快捷菜单中选择需要的工具栏名称来显示 4. 控件工具箱 科学出版社职教技术出版中心 控件工具箱又简称工具箱, 位于 Visual Basic 集成开发环境主窗口的左侧 它提供的是软件开发人员在设计应用程序界面时需要使用的常用工具 ( 控件 ) 这些控件以图

14 第 1 章 Visual Basic 6.0 概述 5 标的形式出现在工具箱中, 软件开发人员在设计应用程序时, 就是使用这些控件在窗体上 画 出应用程序的界面 工具箱中常用控件的图标和名称如图 1-3 所示 指针标签 (Label) 框架 (Frame) 复选框 (CheckBox) 组合框 (ComboBox) 水平滚动条 (HScrollBar) 定时器 (Timer) 目录列表框 (DirListBox) 形状 (Shape) 图像框 (Image) OLE 容器 (OLE) 图片框 (PictureBox) 文本框 (TextBox) 命令按钮 (CommandButton) 单选按钮 (OptionButton) 列表框 (ListBox) 垂直滚动条 (VScrollBar) 驱动器列表框 (DriveListBox) 文件列表框 (FileListBox) 画线 (Line) 数据 (Data) 图 1-3 Visual Basic 的控件工具箱工具箱中除了最常用的控件以外, 根据设计程序界面的需要也可以向工具箱中添加新的控件, 添加新控件可以通过选择 工程 菜单中的 部件 命令或通过在工具箱中右击鼠标, 在弹出的快捷菜单中选择 部件 命令, 打开如图 1-4 所示的 部件 对话框, 然后从该对话框的 控件 选项卡里的列表框中勾选需要的控件添加到工具箱 5. 窗体设计器 图 1-4 部件 对话框 窗体设计器也叫对象窗口, 位于 Visual Basic 集成开发环境主窗口的中间 它是一

15 6 Visual Basic 程序设计 个用于设计应用程序界面的自定义窗口 应用程序中每一个窗体都有自己的窗体设计 器 窗体设计器总是和它中间的窗体一起出现, 在启动 Visual Basic 开始创建一个新工 程时, 窗体设计器和它中间的初始窗体 Form1 一起出现 要在应用程序中添加其他 窗体, 可单击工具栏上的 添加窗体 按钮 6. 属性窗口 属性窗口位于窗体设计器的右方, 如图 1-5 所示 它主要用来在设计界面时, 为所 选中的窗体和窗体上的各个对象设置初始属性值 它由标题栏 对象列表框 属性列表 框及属性说明 4 部分组成 属性窗口的标题栏中标有窗体的名称 用鼠标单击标题栏下 的对象列表框右侧的按钮, 打开其下拉列表框, 可从中选取本窗体内的各个对象, 对象 选定后, 下面的属性列表框中就列出与该对象有关的各个属性及其设定值 属性窗口设有 按字母序 和 按分类序 两个选项卡, 可分别将属性按字母 或按分类顺序排列 当选中某一属性时, 在下面的属性说明部分就会给出该属性的 相关说明 7. 代码编辑器 用 Visual Basic 开发应用程序, 包括两部分工作 : 一是设计图形用户界面 ; 二是编 写程序代码 设计图形用户界面通过窗体设计器来完成 ; 而代码编辑器的作用就是用来 编写应用程序代码 设计程序时, 用鼠标双击窗体设计器中的窗体或窗体上的某个对象, 即可打开代码编辑器, 如图 1-6 所示 应用程序的每个窗体和标准模块都有一个单独的 代码编辑器 代码编辑器中有两个列表框, 分别是 对象 列表框和 事件 ( 过程 ) 列表框 从列表框中选定要编写代码的对象, 再选定相应的事件, 即可非常方便地为对 象编写事件过程 图 1-5 属性窗口 8. 工程资源管理器 标题栏 对象列表框 属性列表框 属性说明 科学出版社职教技术出版中心 图 1-6 代码编辑器 工程资源管理器又称为工程浏览器, 位于窗体设计器的右上方, 如图 1-7 所示 它 列出了当前应用程序中包含的所有文件清单 一个 Visual Basic 应用程序也称为一个工 程, 由一个工程文件 (.vbp) 和若干个窗体文件 (.frm) 标准模块文件 (.bas) 与类模

16 第 1 章 Visual Basic 6.0 概述 7 块文件 (.cls) 等其他类型文件组成 工程资源管理器窗口上有一个小工具栏, 上面的三个按钮分别用于查看代码 查看对象和切换文件夹 在工程资源管理器中选定对象, 单击 查看对象 按钮, 即可在窗体设计器中显示所要查看的窗体对象 ; 单击 查看代码 按钮, 则会出现该对象的代码编辑器 9. 窗体布局窗口窗体布局窗口位于窗体设计器的右下方 在设计时通过鼠标右击表示屏幕的小图像中的窗体图标, 将会弹出一个菜单, 选择菜单中的相关命令项, 可设置程序运行时窗体在屏幕上的位置 10. 立即窗口选择菜单栏中的 视图 > 立即窗口 命令即可打开 立即 窗口, 它是 Visual Basic 中的一个系统对象, 叫做 Debug 对象, 可以在调试程序时使用它, 通常使用 Print 方法向立即窗口中输出程序的信息, 如在程序中加入代码 Debug.Print "VB 程序设计 ", 执行后会在 立即 窗口输出 VB 程序设计 还可以将语句直接写在 立即 窗口里, 按回车键后, 这行语句会被立刻执行, 如图 1-8 所示 查看代码 查看对象 图 1-7 工程资源管理器 图 1-8 立即 窗口 Visual Basic 还提供了 本地 和 监视 窗口, 它们只有在运行模式下工作, 对调试程序很有帮助 1.3 Visual Basic 中的基本概念 对象与类 1. 对象对象 (Object) 是代码和数据的集合 一个典型的 Windows 应用程序具有用户可视的界面, 这个界面以窗体的形式呈现出来, 窗体上有各种可视元素, 如文本框 按钮等, 所有这些可视的元素都是对象 Visual Basic 6.0 中提供了各种常用的对象, 如窗体 各

17 8 Visual Basic 程序设计 种控件 菜单等 2. 类 类是同一种对象的统称, 是一个抽象的概念, 它通过实例化创建对象 比如, 对汽 车进行描述, 形成一个抽象的关于汽车的定义, 这个定义就是类, 而按照汽车的定义, 将汽车生产出来, 一辆辆真实存在的汽车就是一个个实例化后的对象 因此, 类是一个概念, 而对象则是类的具体实现 对象的属性 属性是对象的性质 我们赋予一个对象不同的属性值, 就能改变对象的外观和行为 比如, 一个标签控件被放置在窗体上, 如果我们改变它的 Caption 属性值, 就能改变它显示的文字内容 还可以更改标签 文本框 命令按钮等控件的字体 颜色 大小等属性 我们可以在界面设计时对控件的属性进行设置, 方法如下 : 1) 用鼠标单击选中控件对象 2) 在属性窗口中查找到相应属性, 然后在它右列中填入新的值 我们也可以在程序运行时改变控件的属性, 这需要在设计时的代码编辑器中通过编程实现, 其格式如下 : 对象名. 属性名 = 属性值比如我们现在让控件 Label1 的显示内容变为 欢迎使用 VB, 用下列的代码即可 : Label1.Caption = " 欢迎使用 VB" 关于如何在代码编辑器中编程, 我们在随后的例子中会讲到 事件 事件是 Visual Basic 预先定义的 对象能识别的动作 每个控件都可以对一个或多个事件进行识别和响应, 比如, 当用户单击窗口上的一个命令按钮时, 这个命令按钮就获得一个 Click 事件 ( 鼠标单击事件 ), 又如, 当用户用键盘对一个文本框内的内容进行修改 输入, 这个文本框就获得文本被改变事件 (Changed) 键盘输入事件 (Press) 等 程序员可以为事件添加代码, 这样, 当用户对控件进行操作时, 程序就能对用户的操作作出响应, 从而实现某些功能 这些代码需要通过代码编辑器, 写在相应的事件过程中, 对于窗体对象, 事件过程的格式如下 : Sub Form_ 事件过程名 [( 参数列表 )] ( 事件过程代码 ) 对于窗体以外的对象, 事件过程的格式如下 : Sub 对象名 _ 事件过程名 [( 参数列表 )] ( 事件过程代码 ) 科学出版社职教技术出版中心

18 第 1 章 Visual Basic 6.0 概述 9 例如, 当用户单击名为 Command1 的命令按钮时, 要让它的显示文本改变, 可以为它编制如下事件过程 : Sub Command1_Click() Command1.Caption = " 你好 " 这样, 在程序运行时, 当用户单击名为 Command1 的命令按钮时, 它的显示文本将变为 你好 如果按钮 Command1 没有以上的事件过程代码, 则程序运行时, 用户单击它, 将不会产生上述效果 方法 方法是对象的操作, 程序员可以直接使用对象提供的方法来完成某些功能 调用对象方法的格式为 : [ 对象名.] 方法 [ 参数列表 ] 其中, 如果省略了对象名, 则表示当前对象, 一般是窗体 例如, 我们需要在当前窗体上打印输出文字, 可以调用窗体的 Print 方法 : Print " 你好! 欢迎使用 VB6.0" 1.4 建立第一个应用程序 本节将通过一个实例来一步步引领你操作 Visual Basic 6.0, 使你对程序设计有一个初步的了解, 你也可以按照本节的步骤设计出属于自己的程序 例 1-1 编制一个程序, 使得它运行后出现如图 1-9 所示的初始界面, 并且具有以下的动作响应 : 图 1-9 程序运行后的初始界面 1) 当用户单击 修改 按钮后, 我的第一个 VB 程序 的显示内容改为 你好, 欢迎使用 VB! 2) 当用户单击 隐藏 按钮时, 窗体最上面的那个标签里的文字消失不见 3) 当用户单击 禁止输入 按钮时, 文本框变成不可用, 同时 禁止输入 按钮变成不可用, 允许输入 按钮变成可用

19 10 Visual Basic 程序设计 4) 当用户单击 允许输入 按钮时, 文本框变成可用, 同时 允许输入 按钮变成不可用, 禁止输入 按钮变成可用 分析 : 这个应用程序在窗体上使用了 2 个标签 1 个文本框 4 个命令按钮 操作步骤分为三个步骤 : 界面设计, 代码设计, 以及保存工程 运行和调试程序 下面就详细讲解这三个步骤的操作过程 界面设计要建立一个应用程序, 首先要进行界面设计 在我们这个实例中, 界面设计分为 4 步 : 新建工程 在窗体上放置控件 修改控件属性值和运行效果预览 下面逐一讲解 1. 新建工程启动 Visual Basic 6.0, 将出现 新建工程 对话框, 如图 1-10 所示 图 1-10 新建工程 对话框在如图 1-10 所示的对话框中选择 标准 EXE 选项, 单击 打开 按钮, 就进入了 Visual Basic 的设计工作模式, 如图 1-11 所示 此时 Visual Basic 自动创建了一个名称为 工程 1 的新工程, 并在工程 1 中创建了一个名为 Form1 的新窗体 下面介绍 Visual Basic 的设计工作模式下的三大区域 1 大窗口的标题名称 工程 1 Microsoft Visual Basic [ 设计 ], 它指示了当前正在处于 Visual Basic 的设计工作模式, 设计的工程名为 工程 1 2 在工程管理器中列出了当前工程 1 中的窗体 Form1 3 这是系统为用户新建的窗体, 它的标题默认为 Form1, 窗体内还排列着网格, 方便程序员在上面定位控件程序运行时网格将不可见 科学出版社, 职教技术出版中心

20 第 1 章 Visual Basic 6.0 概述 11 特别注意看 3 所指的新窗体 Form1, 它的周围有 8 个控制手柄, 它们的出现表示该控件已经被选中, 用户可以通过调节它们的位置来缩放控件大小 图 1-11 中表示窗体 Form1 已经被选中 图 1-11 Visual Basic 的设计工作模式 2. 在窗体上放置控件根据题目要求, 我们将在窗体上放置 2 个标签 1 个文本框和 4 个命令按钮 放置控件的方法是 : 用鼠标在控件工具箱上单击所要放置的控件, 再在窗体上拖曳鼠标 第 1 步, 调整窗体 Form1 的大小, 使之能放下所有的控件, 如图 1-12 所示 方法 : 用鼠标拖动窗体 Form1 右下角的控制手柄 当然, 在放置控件后, 也可以根据需要, 随时调整窗体的大小 图 1-12 调整窗体 Form1 的大小

21 12 Visual Basic 程序设计 第 2 步, 放置第一个标签控件 方法 : 如图 1-13 所示, 用鼠标在工具栏上单击表示 标签 的图标, 然后在窗体的适当位置拖曳鼠标, 当释放鼠标左键后, 标签就被成功放置到窗体上, 并且显示标题默认值为 Label1 图 1-13 放置标签控件对象技巧 : 如果用鼠标双击控件工具箱的控件, 这个控件会被自动放置到窗体中 第 3 步, 用同样的方式, 放置第二个标签控件, 再放置 1 个文本框 4 个命令按钮, 它们在控件工具箱上的位置如图 1-14 所示 图 1-14 控件工具箱上的文本框 ( 左 ) 和命令按钮 ( 右 ) 完成第 3 步后, 操作的结果如图 1-15 所示 技巧 : 如果在窗体上放置了错误的控件, 用鼠标单击选中该控件对象, 使控件周围出现 8 个控制手柄, 此时按下 Delete 键就可删除这个控件对象 第 4 步, 调整控件大小和位置 如果你觉得放置的控件大小和位置不怎么恰当, 可以用鼠标对它们进行调整, 也可以调整窗体的大小 3. 修改控件属性值 我们可以通过修改控件的属性值来改变控件的外观 第 1 步, 将 Label1 控件对象的标题文字改为 我的第一个 VB 程序 具体方法如下 : 科学出版社职教技术出版中心

22 第 1 章 Visual Basic 6.0 概述 13 1) 用鼠标选中 Label1 控件, 右边的属性窗口就会显示 Label1 的属性列表, 如图 1-16 所示 图 1-15 在窗体上放置控件后的效果图 是 Caption 属性决定了控件对象的显示标题 这里指示选中的是哪个控件对象 此时 Caption 属性值为 "Label1" 图 1-16 选中 Label1 控件 2) 在属性窗口中, 用鼠标单击 Caption 属性右列, 将属性值改为 我的第一个 VB 程序, 只要按回车键, 或单击其他地方, 修改即生效, 如图 1-17 所示 标签的 Caption 属性被修改, 界面随之改变 特别注意 : 该控件对象的名称仍然是 Label1 图 1-17 修改 Label1 的 Caption 属性

23 14 Visual Basic 程序设计 注意 : 控件名称和控件标题 (Caption 属性 ) 属于两个不同的属性, 同一个窗体内, 每个控件的名称不能相同, 但是标题可以相同 控件被放置到窗体时, 默认的 Caption 属性值与名称是一样的, 我们不需要修改其名称, 只要修改其 Caption 属性值即可 第 2 步, 改变 Label1 控件所显示的文字字体和大小 具体方法如下 : 1) 用鼠标选中 Label1 控件, 在右边的属性窗口中找到 Font 属性, 如图 1-18 所示 2) 用鼠标单击 Font 属性右列的按钮, 在弹出的 字体 对话框 ( 见图 1-19) 中选择 楷体 _GB2312 二号, 然后单击 确定 按钮返回, 效果立刻呈现, 如图 1-20 所示 用鼠标单击这里 图 1-18 Label1 的 Font 属性 图 1-19 字体 对话框 标签的 Font 属性被修改, 效果立刻呈现 图 1-20 修改 Label1 的 Font 属性 科学出版社职教技术出版中心 第 3 步, 用同样的方法将 Label2 的 Caption 属性值设置为 请输入你的姓名 :, 将它的 Font 属性设置为 宋体 小四 第 4 步, 设置文本框 Text1 的属性 用鼠标选择窗体内的 Text1 控件对象, 在 Text1 的属性窗口中, 将它的 Font 属性设

24 第 1 章 Visual Basic 6.0 概述 15 置为 宋体 小四, 将它的 Text 属性设为空 ( 将 Text 属性右列内容清空即可 ) 注意 : 文本框没有 Caption 属性, 文本框内显示的内容存放在它的 Text 属性中 第 5 步, 修改 4 个命令按钮的 Caption 属性 将命令按钮 Command1 的 Caption 属性值改为 修改, 将命令按钮 Command2 的 Caption 属性值改为 隐藏, 将命令按钮 Command3 的 Caption 属性值改为 禁止输入, 将命令按钮 Command4 的 Caption 属性值改为 允许输入 特别注意 : 在修改按钮的 Caption 属性的时候, 千万不要将名称属性修改掉, 两者同时出现在命令按钮的属性窗口中, 要注意分辨, 如图 1-21 所示 第 6 步, 将 Command4 的 Enabled 属性值改为 False, 如图 1-22 所示 注意 :Enabled 属性被修改后, 窗体的设计界面中不会出现任何变化, 但是在运行时, 该按钮呈现灰色的不可用状态 ( 运行效果见后面的运行部分 ) 不要修改这里 修改这里 图 1-21 Command1 的属性 图 1-22 修改 Command4 的 Enabled 属性 第 7 步, 修改窗体 Form1 的标题 单击窗体 Form1 的空白部分, 窗体的周围出现 8 个控制手柄, 表示其被选中, 同时右边属性窗口列出 Form1 的属性列表, 将它的 Caption 属性改为 我的程序, 此时会看到窗体 Form1 的标题栏位置的窗体标题变成了 我的程序 进行到这里, 就完成了全部的界面设计, 最终效果如图 1-23 所示 可以对照图 1-23, 对设计的界面进行微调, 使之效果最佳 图 1-23 完成界面设计后的效果图

25 16 Visual Basic 程序设计 表 1-1 是上面步骤中各控件对象的属性设置汇总 请对照表 1-1, 检查是否所有的属性都已经设置完毕 表 1-1 各控件对象的属性设置汇总 对象默认名称 Caption 属性其他属性 Form1 Label1 我的程序 我的第一个 VB 程序 Label2 请输入你的姓名 : Text1 < 无定义 > Text 属性值为空 Command1 Command2 Command3 修改 隐藏 禁止输入 Command4 允许输入 Enabled 属性值为 False 4. 运行效果预览 在工具栏上单击 启动 按钮, 如图 1-24 所示, 程序就会被启动运行, 出现程序 运行窗体, 上面分布着之前设计好的控件对象, 如图 1-25 所示 图 1-24 单击 启动 按钮来运行程序 图 1-25 程序运行后的初始界面 特别注意 : 在图 1-25 中的程序运行效果图中, 可以看到 允许输入 按钮 ( 即设 计时的命令按钮 Command4) 处于灰色的不可用状态, 这是因为当初在界面设计时, 将 Command4 的 Enabled 属性值改为 False 的缘故 ( 参见上面 修改控件属性值 小节中 的第 6 步 ) 试验 1: 在图 1-25 所示的运行窗体上, 用鼠标单击各个按钮, 看看它们是否有变化 试验 2: 用鼠标在文本框内单击, 会出现闪动的光标, 试着输入几个字符, 再删除 修改它们 科学出版社职教技术出版中心 试验 3: 移动窗体, 将窗体最大化和最小化, 最后关闭窗体 试验结论 : 这些按钮 文本框 窗体具备了 Windows 应用程序的一般特性, 但是当用户单击按钮时, 程序不会做出响应 为了使程序能响应用户的动作, 我们需要为程序添加代码

26 第 1 章 Visual Basic 6.0 概述 代码设计结束程序的运行, 回到窗体设计界面 下面需要为窗体添加代码, 让程序能响应用户的动作 接下来针对题目中的 4 点要求, 逐一实现这些功能 1. 完成题目要求 (1) 当用户单击 修改 按钮后, 我的第一个 VB 程序 的显示内容改为 你好, 欢迎使用 VB! 分析 : 运行界面中 修改 按钮对应的是命令按钮 Command1, 该命令按钮被单击后的程序功能是改变标签 Label1 上的文字, 也就是 Label1 的 Caption 属性, 所以, 我们要为 Command1 添加鼠标单击事件 (Click) 代码 第 1 步, 用鼠标双击命令按钮 Command1, 出现代码窗口, 如图 1-26 所示 1. 双击 Command1 按钮 2. 出现代码窗口 图 1-26 为命令按钮 Command1 编制 Click 事件代码 在代码窗口中, 系统已经自动添加了两行事件代码, 其中 Private Sub Command1_Click() 代表事件代码的开始部分, 这一行的 Command1_Click 表示这个事件是对象 Command1 的 Click 事件 ( 即鼠标单击事件 ), 而 则是事件代码的结束部分 中间部分需要用户自己去编写 第 2 步, 编写 Command1 的 Click 事件过程代码 在代码窗口中的相应位置输入以下代码 : Private Sub Command1_Click() Label1.Caption = " 你好, 欢迎使用 VB!" 代码看似三行, 但由于最上面和最下面的两行是系统自动添加的, 用户只要在中间位置输入一行即可, 如图 1-27 所示 注意 : 1) 在输入过程中, 可以全部使用小写字母, 如输入 label1, 当完成输入后 ( 插入

27 18 Visual Basic 程序设计 光标离开这一行 ), 系统会自动将它变为 Label1 图 1-27 输入事件过程代码 2) 双引号一定要用英文半角的双引号, 不能使用中文双引号, 并且引号的前后两 个是配对的, 在引号内可以使用全角的中文标点 3) 如果输入错误, 系统会自动将这一行变为红色, 并提示错误信息, 此时只要将 它修改成正确的即可 程序含义 : Label1.Caption = " 你好, 欢迎使用 VB!" 这一行程序语句的意思是 : 将等号右边的 " 你好, 欢迎使用 VB!" 赋值给标签 Label1 的 Caption 属性, 从而使 Label1 的显示标题变为 你好, 欢迎使用 VB! 这与界面设 计时在属性窗口修改 Caption 属性的道理是一样的, 只不过这里的代码放在命令按钮 Command1 的 Click 事件 ( 鼠标单击事件 ) 中, 只有当用户在运行时, 单击了该按钮, 这段代码才会被执行 运行演示 : 单击工具栏上的 启动 按钮来运行程序, 看看效果如何 当然, 也可 以在所有的代码全部完成后再运行程序 程序运行时的初始界面还是和前面一样, 但是此时用鼠标单击 修改 按钮, 上面 标签对象的标题文字会发生改变, 如图 1-28 所示 1. 用户单击按钮, 就会触发 Click 事件 2. Command1 的 Click 事件代码被执行 图 1-28 程序响应用户单击事件的过程 4. Label1 的 Caption 属性值的改变立刻反映到界面上 科学出版社职教技术出版中心 3. 这行代码被执行, 使得 Label1 的 Caption 属性值被改变 其原理是 : 1) 当用户单击 修改 按钮 ( 即命令按钮 Command1) 时, 就会触发该按钮的 Click 事件 ( 鼠标单击事件 ) 2) 由于已经为命令按钮 Command1 编制了事件响应代码, 系统就会去执行

28 第 1 章 Visual Basic 6.0 概述 19 Command1_Click 中的代码 3) 当里面的 Label1.Caption = " 你好, 欢迎使用 VB!" 代码被执行时, 就改变了 Label1 的 Caption 属性的值 4) 运行窗体中 Label1 的显示内容改为现在新的内容, 即 你好, 欢迎使用 VB! 现在结束程序的运行, 回到设计界面, 继续完成下面的步骤 2. 完成题目要求 (2) 当用户单击 隐藏 按钮时, 窗体最上面的那个标签里的文字消失不见 分析 : 运行界面中 隐藏 按钮对应的是命令按钮 Command2, 虽然在上一步给命令按钮 Command1 添加了 Click 事件, 但是命令按钮 Command2 并没有该事件代码, 因此也要为它添加 Click 事件代码 另外, 要让窗体最上面的那个标签 (Label1) 不可见, 只需将 Label1 的 Visible 属性设为 False 即可 第 1 步, 用鼠标双击命令按钮 Command2, 出现代码窗口, 如图 1-29 所示 在代码窗口中, 可以看到 Command1 的 Click 事件代码仍然在那里, 现在系统新增了 Command2 的 Click 事件的代码框架 技巧 : 如何在窗体对象设计界面与代码窗口间切换? 当某个窗口过大, 盖住了另一个窗口时, 可以在工程管理器中单击相应的按钮来切换要显示的窗口, 如图 1-30 所示 查看代码 查看对象 图 1-29 为 Command2 编制 Click 事件代码 图 1-30 查看代码和查看对象按钮 第 2 步, 编写 Command2 的 Click 事件过程代码 在代码窗口中的相应位置输入以下代码 : Private Sub Command2_Click() Label1.Visible = False 程序含义 : Label1. Visible = False 这一行程序语句的意思是 : 将等号右边的 False 赋值给标签 Label1 的 Visible 属性, 该属性决定了 Label1 控件是否可见, 值为 False 表示不可见 当用户在运行时, 单击了该按钮, 这段代码就会被执行,Label1 将变为不可见 运行演示 : 单击工具栏上的 启动 按钮运行程序, 在运行界面上单击 隐藏 按钮, 可以看到最上面标签里的文字消失了

29 20 Visual Basic 程序设计 结束程序的运行, 回到设计界面, 继续完成下面的步骤 3. 完成题目要求 (3) 当用户单击 禁止输入 按钮时, 文本框变成不可用, 同时 禁止输入 按钮变成不可用, 允许输入 按钮变成可用 分析 : 1) 禁止输入 按钮对应的是命令按钮 Command3, 允许输入 按钮对应的是命令按钮 Command4, 文本框的名称是 Text1; 2) 与前面编制的事件代码不同, 本次要为 Command3 添加的 Click 事件代码需要完成三项功能, 因此要用三条语句来完成 ; 3) 文本框和命令按钮都有一个属性 Enabled, 它的值可以控制该控件对象是否可用, 因此只要在代码中改变该属性的值即可控制文本框和命令按钮是否可用 第 1 步, 用鼠标双击命令按钮 Command3, 出现代码窗口 第 2 步, 编写 Command3 的 Click 事件过程代码 在代码窗口中的相应位置输入以下代码 : Private Sub Command3_Click() Text1.Enabled = False ' 对象 Text1 被设置为不可用 Command3.Enabled = False ' 对象 Command3 被设置为不可用 Command4.Enabled = True ' 对象 Command4 被设置为可用 注意 : 上述代码中单引号后面的说明文字是程序的注释, 可以不用输入 运行演示 : 1) 运行程序, 在文本框内输入用户的姓名, 然后单击 禁止输入 按钮, 可以看到控件的变化, 如图 1-31 所示 图 1-31 单击 禁止输入 按钮前后的变化 2) 单击 修改 按钮, 上面标签对象的标题文字发生改变 ; 单击 隐藏 按钮, 可以看到标签对象的标题文字消失了 这说明另外两个按钮的事件代码仍然起作用 结束程序的运行, 回到设计界面, 继续完成下面最后的步骤 4. 完成题目要求 (4) 科学出版社职教技术出版中心 当用户单击 允许输入 按钮时, 文本框变成可用, 同时 允许输入 按钮变成不可用, 禁止输入 按钮变成可用

30 第 1 章 Visual Basic 6.0 概述 21 分析 : 要求 (4) 刚好与要求 (3) 相反 第 1 步, 用鼠标双击命令按钮 Command4, 出现代码窗口 第 2 步, 编写 Command4 的 Click 事件过程代码 在代码窗口中的相应位置输入以下代码 : Private Sub Command4_Click() Text1.Enabled = True ' 对象 Text1 被设置为可用 Command3.Enabled = True ' 对象 Command3 被设置为可用 Command4.Enabled = False ' 对象 Command4 被设置为不可用 请按照前面讲过的运行方法, 试运行已经设计好的程序 至此, 就完成了全部的设计 图 1-32 是此时的设计工作模式界面图 图 1-32 例 1-1 的设计工作模式界面图 保存工程 运行和调试程序 1. 保存工程保存工程就是将当前开发应用程序的信息保存到磁盘上 由于保存工程时会产生多个文件, 因此最好事先建立一个新文件夹来保存工程, 当然, 也可以在保存的过程中新建文件夹 被保存的信息有 : 所有窗体与控件的布局信息 所有的代码 当前工作区中的窗口布局信息以及与工程有关的其他信息 保存工程的步骤如下 : 1) 在工具栏上单击 保存工程 按钮, 如图 1-33 所示, 打开保存文件对话框 2) 在对话框中选择要保存的文件夹所在的位置 3) 在后面出现的其他对话框中, 继续保存文件, 一般不用再次选择文件夹所在位置 图 1-33 单击 保存工程 按钮

31 22 Visual Basic 程序设计 注意 : 1) 如果是首次保存工程, 应该将文件保存到空文件夹中, 千万不要保存到别的工程文件夹里, 否则将使文件很难被找到 2) 可以在设计阶段经常性地保存工程, 这样可以防止因发生意外而使程序代码丢失 3) 如果需要在另一台计算机上继续设计保存的工程, 只需将工程所在的整个文件夹复制到另一台计算机上即可, 当然前提是将与该工程相关的所有文件都保存在同一个文件夹中 2. 运行和调试程序选择 运行 菜单中的 启动 命令 单击工具栏中的 运行 按钮 ( 见图 1-24) 或按 F5 键, 就能运行所设计的程序, 此时 Visual Basic 进入运行工作模式 如果程序没有错误, 将出现如图 1-25 所示的界面 ; 如果在程序运行过程中出现错误, 则会弹出错误信息提示对话框 比如, 在 Command1 的 Click 事件代码中, 将 Label1( 最后一个字符是数字 1) 误写成 Label1( 最后一个字符是字母 l), 当运行程序时, 用鼠标单击 修改 按钮 ( 即命令按钮 Command1) 会出现错误, 并弹出错误信息提示对话框, 如图 1-34 所示 错误代码 错误说明 单击它结束程序运行单击它指出错误位置 图 1-34 程序运行出错时的错误信息提示对话框 在错误信息提示对话框中单击 调试 按钮, 将进入中断工作模式, 显示当前正在 执行的代码, 并用黄色箭头指出错误所在的语句行, 如图 1-35 所示 此时, 我们可以对错误行进行修改, 然后继续运行程序, 也可以单击工具栏上的 结 束 按钮来终止程序的运行 对设计程序步骤作一个小结 : 1) 新建工程, 会产生一个默认的新窗体 Form1 2) 在窗体上添加各种需要的控件对象, 调节控件的大小与位置 科学出版社职教技术出版中心 3) 选择控件对象, 在右边的属性窗口为它们设置属性, 改变它们的标题文字 字 体 颜色 是否可用等状态 4) 用鼠标双击控件对象, 为它们添加事件代码 5) 运行程序, 操作程序窗口, 如果发生错误, 则修改错误, 再次运行, 直到满意为止 当然, 需要及时保存工程文件

32 第 1 章 Visual Basic 6.0 概述 23 图 1-35 中断工作模式 习题一 一 填空题 1. 在 Visual Basic 的集成开发环境中常用的窗口有 2.Visual Basic 有 种工作模式, 分别是 3. 刚启动 Visual Basic 时会出现新建工程窗口, 选择默认选项后, 进入 Visual Basic 集成开发环境, 新建的工程名称是, 此时默认新建了 个窗体, 窗体默认名称是 4. 打开 立即 窗口的方法是 立即 窗口的特点是 5. 工程资源管理器窗口上有一个小工具栏, 上面的三个按钮分别用于 和切换文件夹 在工程资源管理器中选定对象, 单击, 即可在窗体设计窗口中显示所要查看的窗体对象 ; 单击, 则会出现该对象的代码编辑窗口 二 选择题 1.Visual Basic 中的窗体文件的扩展名是 A..reg B..frm C..bas D..vbp 2.Visual Basic 中的模块文件的扩展名是 A..reg B..frm C..bas D..vbp 3.Visual Basic 中的工程文件的扩展名是 A..reg B..frm C..bas D..vbp

33 24 Visual Basic 程序设计 4. 以下关于 Visual Basic 语言的说法中, 正确的是 A.Visual Basic 是一种面向过程的语言 B.Visual Basic 是一种面向对象语言 C.Visual Basic 是一种低级语言 D.Visual Basic 是一种机器语言 5. 与传统的程序设计语言相比,Visual Basic 最突出的特点是 A. 结构化程序设计 B. 程序开发环境 C. 事件驱动编程机制 D. 程序调试技术 6. 一个对象可以执行的动作和可被对象识别的动作分别称为 A. 事件 方法 B. 方法 事件 C. 属性 方法 D. 过程 事件 7. 下列不属于对象的基本特征的是 A. 属性 B. 方法 C. 事件 D. 过程 三 程序设计题 1. 设计一个程序, 程序运行的初始界面如图 1-36 所示 当单击 显示 按钮时, 在文本框中显示 欢迎使用 VB!, 如图 1-37 所示 ; 当单击 清除 按钮时, 清除文本 框内的文本 ; 当单击 退出 按钮时, 结束程序运行 图 1-36 程序运行初始界面图 1-37 单击 显示 按钮后的程序界面 2. 设计一个程序, 程序运行的初始界面如图 1-38 所示, 其中 显示 按钮处于不 可用状态 同时要求 : 1) 当单击 改变文字 按钮时, 将左边标签文字内容改为 你好, 张三!, 同时 改变文字 按钮变为不可用, 如图 1-39 所示 科学出版社职教技术出版中心 图 1-38 程序运行初始界面 图 1-39 单击 改变文字 按钮后的程序界面 2) 当单击 隐藏 按钮时, 将左边标签设为不可见, 同时 隐藏 按钮变为不可

34 第 1 章 Visual Basic 6.0 概述 25 用, 显示 按钮变为可用, 如图 1-40 所示 3) 当单击 显示 按钮时, 重新显示左边标签, 同时 隐藏 按钮变为可用, 显示 按钮变为不可用, 如图 1-39 所示 图 1-40 单击 隐藏 按钮后的程序界面

35 第 2 章 Visual Basic 编程基础 通过上一章的学习, 我们对 Visual Basic 已经有了初步的认识, 上一章的实例向我们展示了 Visual Basic 编程的特点, 它简单易学, 容易上手, 界面设计非常直观, 通过控件对象的放置和属性设置, 可以轻松设计出用户界面, 通过为控件对象添加事件代码, 使程序能响应用户的操作, 与用户互动 本章我们将开始系统地学习 Visual Basic 编程, 使我们能设计出功能更多的程序 2.1 窗体 窗体 (Form) 也称为窗口, 它是界面设计的基础对象, 各种控件必须放置到窗体上 窗体的构造 同普通应用程序的窗口一样, 用 Visual Basic 设计的窗体也具有控制菜单 标题 最大化按钮 最小化按钮 关闭按钮 边框 窗体最小化图标等 图 2-1 是我们在上一章的实例中编制出来的程序窗体, 图中标出了窗体的这些构造, 并在括号中标注了与这些构造相关的属性名称, 你可以在窗体设计时, 通过修改这些属性值来改变窗体的外观 窗体的属性 图标和控制菜单 (Icon 和 ControlBox) 标题 (Caption) 最小化按钮 (MinButton) 图 2-1 窗体的构造和对应的属性 最大化按钮 (MaxButton) 关闭按钮 (ControlBox) 边框样式 (BorderStyle) 科学出版社职教技术出版中心 窗体的常用属性有 Name Left Top Width Height ScaleWidth ScaleHeight Caption Font ForeColor BackColor AutoRedraw BorderStyle ControlBox Icon 等

36 第 2 章 Visual Basic 编程基础 窗体的名称属性 (Name 属性 ) 窗体属性列表中的 名称 属性指示了窗体的内部名称 Visual Basic 中的任何对象都有 Name 属性, 每个对象的名称各不相同, 它是一个对象区别于另一个对象的标识, 程序员在设计代码时, 需要用对象的名称来引用对象 新建的第一个窗体的默认名称是 Form1, 用户可以对其重命名, 赋予它更加体现实际意义的名称, 如 MainForm 等 注意 :Name 属性值不会反映到界面上, 但它被用于代码中, 如果在编程过程中, 对象的名称被修改, 则很可能使原来运用旧名称编写的代码出错, 因此, 改对象的名称一般放在编制代码前进行, 在本书的大多数例程中, 我们将不对对象名称进行修改, 而是使用系统提供的默认名称 2. 窗体的位置和大小属性 (Left Top Width Height 属性 ) 如图 2-2 所示, 窗体在屏幕上的位置由窗体左上角在屏幕上的坐标决定, 即窗体左边距离屏幕左边的距离, 以及窗体上边距离屏幕上边的距离, 这两个属性分别是窗体的 Left 属性和 Top 属性 而窗体的大小则由窗体的宽和窗体的高来决定, 它们分别是窗体的 Width 属性和 Height 属性 另外, 在 Visual Basic 中, 屏幕也被当作对象来处理, 它的对象名称为 Screen, 屏幕具有宽和高的属性 注意 : 在 Visual Basic 中, 长度的默认单位是 twip 在默认情况下,1twip=1/15Px=1/1440inch=1/567cm Screen.Width Form1.Top Screen.Height Form1.Height Form1.Width 图 2-2 窗体在屏幕的位置和大小 例 2-1 窗口位置和大小的设置演练 : 设计一个窗体, 上面有两个命令按钮 Command1 和 Command2, 为这两个按钮添加 Click 事件代码, 使得运行时单击第一个命令按钮, 能将窗体移到屏幕的左上角, 单击第二个命令按钮, 能将窗体移到屏幕的中间, 并改变窗体的大小为屏幕大小的一半 步骤 1, 界面设计 新建工程, 在新窗体 Form1 上添加两个命令按钮, 采用默认名称 Command1 和 Command2, 如图 2-3 所示

37 28 Visual Basic 程序设计 图 2-3 例 2-1 的界面设计 步骤 2, 添加事件代码 双击 Command1 按钮, 为 Command1 的 Click 事件添加以下代码 : Private Sub Command1_Click() Form1.Left = 0 ' 设置窗体 Form1 到屏幕左边的距离为 0 Form1.Top = 0 ' 设置窗体 Form1 到屏幕上边的距离为 0 双击 Command2 按钮, 为 Command2 的 Click 事件添加以下代码 : Private Sub Command2_Click() Form1.Width = Screen.Width/2 ' 设置窗体 Form1 的宽度为屏幕宽的一半 Form1.Height = Screen.Height/2 ' 设置窗体 Form1 的高度为屏幕高的一半 Form1.Left = (Screen.Width - Form1.Width)/2 ' 使 Form1 水平居中 Form1.Top = (Screen.Height - Form1.Height)/2 ' 使 Form1 垂直居中 注意 : 上面代码中单引号后的文字是对程序的注释, 以便于你理解代码, 可不用 输入 步骤 3, 运行程序 单击工具栏中的 启动 按钮运行程序, 在运行的窗体上分别单击两个命令按钮, 观察窗体的位置和大小的变化 步骤 4, 技能拓展 对照代码, 思考一下 : 运行时, 窗体为什么会在用户单击按钮后产生变化? 试一试 : 改变代码, 使得单击 Command1 按钮之后, 窗体位置移到屏幕的顶部中间, 或者窗体右边框和屏幕最右边对齐 3. 窗体的标题属性 (Caption 属性 ) 窗体的 Caption 属性决定了窗体标题栏上的文本内容 4. 字体 Font 属性组 字体 Font 属性组如表 2-1 所示 表 2-1 字体 Font 属性组 属性数据类型含义 FontName 字符型字体名称 ( 默认 : 宋体 ) 科学出版社职教技术出版中心

38 第 2 章 Visual Basic 编程基础 29 属性数据类型含义 续表 FontSize 整型 字体大小 ( 默认 :9 磅 ) FontBold 逻辑型 是否粗体 ( 默认 :False) FontItalic 逻辑型 是否斜体 ( 默认 :False) FontStrikeThru 逻辑型 是否加删除线 ( 默认 :False) FontUnderLine 逻辑型 是否带下划线 ( 默认 :False) 5. 窗体的颜色属性 (ForeColor BackColor 属性 ) 窗体的 ForeColor 属性代表前景色, 改变它的值, 能使窗体内显示的文字具有指定的颜色, 对窗体的 BackColor 属性的修改能改变窗体的背景色 在 Visual Basic 中, 颜色值是一个长整数, 也可以使用 Visual Basic 系统内部给定的常量和特定的函数来设定颜色值 例如, 将窗体 Form1 的背景色设置为红色, 可以使用代码 : Form1.BackColor = vbred 也可以用 RGB 函数来设置 : Form1.BackColor = RGB(255,0,0) RGB 函数的三个参数分别代表红 绿 蓝三种颜色分量的大小, 值从 0 到 255, 上面的 RGB(255,0,0) 代表只有最大红分量值构成的颜色, 即红色 又如 RGB(128,0,0) 为深红色,RGB(0,255,0) 表示绿色 6. 窗体的边框样式属性 (BorderStyle 属性 ) 窗体的边框样式决定了窗体的外观和操作特点, 窗体的 BorderStyle 属性可以取 6 种值, 如表 2-2 所示 表 2-2 窗体的 BorderStyle 属性的取值和含义 属性值含义 0-None 1-Fixed Single 2-Sizable 3-Fixed Dialog 4-Fixed ToolWindow 5-Sizable ToolWindow 没有边框或与边框相关的元素固定单边框 可以包含控制菜单栏 标题栏 最大化按钮 最小化按钮 只有使用最大化和最小化按钮才能改变大小可调整的边框 ( 默认值 ) 可以使用设置值 1 列出的任何可选边框元素重新改变尺寸固定对话框 可以包含控制菜单栏和标题栏, 不能包含最大化和最小化按钮, 不能改变尺寸固定工具窗口 不能改变尺寸 显示关闭按钮并用缩小的字体显示标题栏 窗体不在 Windows 任务栏中显示可变尺寸工具窗口 可变大小 显示关闭按钮并用缩小的字体显示标题栏 窗体不在 Windows 任务栏中显示 7. 窗体标题栏上的几个属性 如图 2-1 所示,Icon 属性决定了窗体左上角或最小化时在 Windows 任务栏中显示的

39 30 Visual Basic 程序设计 图标, 它的默认图标是 先准备好图标文件, 可以通过属性窗口的 Icon 属性值来改变图标, 但是必须事 ControlBox 属性决定了运行时窗体是否显示控件菜单栏, 该属性的数据类型是逻辑 型的, 其值为 True 时显示控件菜单栏, 其值为 False 时不显示控件菜单栏, 即不显示窗 体左上角的图标, 以及最小化 最大化 关闭按钮 在 ControlBox 属性为 True 时, 可以通过 MaxButton 和 MinButton 属性的设置来决 定是否显示窗体的最小化和最大化按钮, 当它们取 True 时, 显示相应的按钮, 取 False 时, 不显示相应的按钮 8. 窗体其他的常用属性 Picture 属性用于指定窗体中显示的图片 WindowsState 属性用于指定窗体在运行时所处的状态, 它可以取三种值,0-Normal 代表正常的窗口状态,1-Minimized 代表窗体处于最小化状态,2-Maxmized 代表窗体处 于最大化状态 AutoRedraw 属性用于指定窗体被掩盖部分重新出现后采用的显示方式,True 表示 窗体内容将被重新画出,False 表示窗体内容不能被重新画出 ScaleWidth 和 ScaleHeigh 属性表示窗体内部的宽度和高度 由于窗体有边框和标题 栏, 因此, 窗体内部的可用空间要比窗体的宽度 (Width) 和高度 (Height) 要小, 而 ScaleWidth ScaleHeigh 属性值不包含窗体的边框和标题栏, 代表了窗体内的真正空间 大小 例 2-2 窗体的常用属性演练 设计如图 2-4 所示的窗体, 在窗体的右边依次放置 4 个命令按钮, 名称分别为 Command1 Command2 Command3 Command4, 修改好它们的 Caption 属性, 使得 这 4 个命令按钮上面显示的文字与图中所示一致 图 2-4 例 2-2 的窗体设计界面图 然后为这 4 个命令按钮的 Click 事件分别添加以下代码 : Private Sub Command1_Click() Form1.Caption = " 我的 VB 窗体 " ' 改变窗体标题文字 Private Sub Command2_Click() Form1.BackColor = vbblue ' 设置窗体背景色为蓝色 科学出版社职教技术出版中心

40 第 2 章 Visual Basic 编程基础 31 Private Sub Command3_Click() Form1.ForeColor = vbwhite ' 设置今后显示的字体为白色 ' 在窗体上显示文字 Print " 你好!" Private Sub Command4_Click() Form1.FontSize = Form1.FontSize + 3 ' 将字体放大 接下来进行运行演示 首先运行程序, 在窗体界面上进行以下操作 : 1) 单击第 1 个命令按钮, 窗体标题栏的文字被改变为 我的 VB 窗体 2) 单击第 2 个命令按钮, 窗体的背景颜色被设置为蓝色 3) 单击第 3 个命令按钮, 在窗体上显示白色的文字 你好! 4) 单击第 4 个命令按钮, 然后再单击第 3 个命令按钮, 在窗体上显示放大后的文字 5) 对第 3 个和第 4 个命令按钮进行随意单击, 观察现象 紧接着做以下试验 : 1) 将窗体拖动到屏幕左边, 使小半个窗口移出屏幕, 然后将窗体拖回屏幕中间, 发现窗体上的文字被擦掉 2) 关闭程序, 返回窗体设计界面, 将窗体的 AutoResize 属性改为 True, 运行程序, 重复上面一系列动作, 发现文字没有被擦掉, 窗体内容被自动重画 拓展练习 : 修改代码, 使程序在窗体显示不同的文字, 设置不同的颜色, 设置不同的字体 思考 : 从上面的两个例子中你是否能总结出, 窗体的属性是怎样设置的? 你能运用这些属性动态改变窗体的外观吗? 窗体的事件 窗体的常用事件有 Load Click DblClick Activate Paint Resize Unload 等 初学时, 这些事件不需要都去使用, 我们只需要掌握几个最常用事件即可, 重点关注这些事件是在什么情况下被触发的, 以及它们的触发次序大概是怎样的 1.Load 事件 在程序运行时, 当窗体被装入工作区时, 将触发 Load 事件 这个事件在窗体显示前被触发, 因此可以在此事件中, 对窗体和控件进行一些初始化操作 例如, 在窗体上放置一个文本框 Text1, 双击窗体, 为窗体添加以下代码, 对文本框 Text1 进行初始化 : Private Sub Form_Load() ' 窗体的 Load 事件代码 Text1.Text = "1" ' 将文本框 Text1 的文本初始化为 "1" 运行程序, 可以发现, 文本框内显示着数字 1 2.Click 事件 当程序运行时单击窗体内的某一位置, 将触发窗体的 Click 事件

41 32 Visual Basic 程序设计 例 2-3 窗体单击事件的代码设计 步骤 1, 新建工程, 双击窗体 Form1 进入代码窗口, 但是, 我们发现出现的事件代 码框架是 Load 事件的代码框架, 而非我们所需的 Click 事件的代码框架, 如图 2-5 所示 图 2-5 出现窗体的 Load 事件代码框架步骤 2, 在代码窗口内单击右上角的过程下拉按钮, 出现窗体的所有事件列表, 选择 Click 事件 ( 如图 2-6 左图所示 ), 于是, 在代码窗口中产生了 Click 事件代码框架, 如图 2-6 右图所示 原先空白的 Load 代码框架仍然留在代码窗口内, 你可以将它删除, 如果不删, 等程序运行时, 系统将自动把它删掉 图 2-6 在过程列表中选择 Click 事件 步骤 3, 为窗体的 Click 事件添加以下代码 : Print " 你单击了我 " 步骤 4, 运行程序, 在运行界面的窗体上, 用鼠标单击窗体, 多试几次, 结果如图 2-7 所示 科学出版社职教技术出版中心 图 2-7 例 2-3 程序运行结果

42 第 2 章 Visual Basic 编程基础 33 3.DblClick 事件 当程序运行时双击窗体内的某一位置, 将触发窗体的 DblClick 事件 可以修改例 2-3 的程序, 为窗体的 DblClick 事件添加以下代码 : Private Sub Form_DblClick() Print " 你双击了我 " 然后运行程序, 用鼠标双击出现的窗体, 查看程序运行结果 提示 : 当程序运行时, 用鼠标双击窗体内的某一位置, 将在第一次单击鼠标后, 先触发 Click 事件, 然后在完成双击动作后, 触发 DblClick 事件 你可以保留例 2-3 的单击事件代码, 同时加上上面的双击事件代码, 运行程序, 用鼠标双击窗体, 可以看到 Click 事件代码先被执行, 然后再执行 DblClick 事件代码 4.Unload 事件 卸载窗体时触发该事件 注意 : 如果窗体仅仅被隐藏, 将不触发 Unload 事件, 只有将窗体从内存中卸载掉, 才触发该事件 5.Resize 事件 当窗体大小发生改变时, 将触发 Resize 事件 当窗体第一次装入内存后显示出来时也将触发 Resize 事件 一般情况下, 当窗体的大小被改变后, 窗体上面的控件对象布局可能需要重新调整, 此时就需要在窗体的 Resize 事件中添加代码来调整窗体内控件对象 的布局 6.Activate 事件 当窗体由非活动窗体变为活动窗体时触发该事件 7.Paint 事件 需要刷新窗体时发生该事件 当窗体的一部分或全部曾经消失在屏幕上, 比如被另外的窗体遮盖, 或被最小化, 然后又被重新显示出来, 这时就触发 Paint 事件 你可以设置窗体的 AutoRedraw 为 True, 让窗体自动刷新, 但需要占用大量内存 窗体的方法 窗体常用的方法有 Move( 移动 ) Print( 打印输出 ) Cls( 清除 ) Show( 显示 ) Hide( 隐藏 ) 等 1.Move 方法 功能 : 将窗体移动到屏幕的新位置 格式 :[ 窗体名.]Move Left[,Top[,Width[.Height]]] 其中,Left Top Width Height 都是单精度数值型数据, 代表窗体新的位置和大

43 34 Visual Basic 程序设计 小,Left 代表窗体左边缘到屏幕左边的距离,Top 代表窗体上边缘到屏幕顶边的距离, Width 代表窗体的宽度,Height 代表窗体的高度 特别说明 : 格式中的中括号 [] 内的内容表示可以省略不写, 所以只有方法名 Move 和第一个参数 Left 是必须要写的, 其余的都是可选的 例 2-4 使用 Move 方法移动窗体, 要求在程序运行时, 当鼠标单击窗体, 窗体 将移动到屏幕的左上角, 并改变窗体大小为屏幕大小的一半 新建窗体 Form1, 为窗体 Form1 的 Click 事件添加如下代码 : Move 0, 0, Screen.Width/2, Screen.Height/2 对照 Move 方法的格式, 我们看到, 在本例的代码中省略了窗体名, 那么系统就默认为本窗体 Form1, 而后面的 4 个参数都没有省略, 如果我们将代码改为 Move 0, 0, 即省略了 Width 和 Height 参数, 代表窗体的宽和高不做设置, 该代码的功能是将窗体移动到屏幕的左上角, 但不改变窗体的宽和高 2. Print 方法 功能 : 在窗体上输出信息 格式 :[ 窗体名.]Print [ 输出项列表 ] 下面的代码可以在单击窗体时, 显示窗体左上角在屏幕中的位置, 以及屏幕的分辨 率大小 Print " 当前窗体位置 :", Left, Top Print " 屏幕大小 :", Screen.Width/15, Screen.Height/15 注意 : 代码中, 屏幕宽度和高度都除以 15, 是将长度单位转化为像素, 这里假定用户的系统分辨率是默认设置的, 否则程序将显示出不正确的分辨率 Print 的详细用法将在本章稍后一点讲述 3.Cls 方法 功能 : 清除窗体上显示的信息 格式 :[ 窗体名.]Cls 它还将当前坐标设为窗体内的左上角, 即窗体的 CurrentX 和 CurrentY 属性都被设为 0 4.Show 方法 科学出版社职教技术出版中心 功能 : 显示一个窗体, 使其在屏幕上可见, 并处于活动状态 格式 :[ 窗体名.]Show [Modal] 该方法有一个可选参数, 它有两种值 :vbmodal 或 vbmodeless, 如果不加参数, 默认为 vbmodeless 它的含义是: 是否将窗体作为模式窗体来显示 当参数取 vbmodal 时, 要求用户必须对当前的窗体做出响应, 才能继续执行 Show 方法后面的程序代码

44 第 2 章 Visual Basic 编程基础 35 当不加参数或参数为 vbmodeless 时,Show 方法将窗体显示出来后, 继续执行后面的代码 如果要显示的窗体事先没有被装入内存, 系统将自动调用 Load 命令将窗体装入后再显示出来 5.Hide 方法 功能 : 隐藏指定的窗体, 使其在屏幕上不显示, 但不从内存中删除窗体 格式 :[ 窗体名.]Hide 当窗体被隐藏后, 它的 Visible 属性被设为 False 虽然窗体看不见了, 但程序可以访问到它 如果隐藏的是一个没有被加载的窗体, 则将它加载到内存, 但不显示出来 多窗体 1. 添加窗口 新建工程时, 系统会自动创建一个窗体, 如果我们要在程序中使用多个窗体, 则需要继续创建新窗体 下面的例子演示了如何创建多个窗体, 并利用 Show Hide 等方法显示和隐藏窗体 例 2-5 多窗体示例 步骤 1, 新建工程, 此时自动生成窗体 Form1 步骤 2, 添加新窗体 选择菜单栏中的 工程 添加窗体 命令, 弹出 添加窗体 对话框, 如图 2-8 所示, 选择 窗体 图标后单击 打开 按钮, 这时就新建了一个窗体 Form2, 如图 2-9 所示 图 2-8 添加窗体 对话框

45 36 Visual Basic 程序设计 步骤 3, 为窗体 Form1 添加代码 图 2-9 窗体 Form2 被添加 让窗体 Form1 的界面设计窗口处于最前面 如果 Form1 没有显示出来, 可以在工 程资源管理窗口中选择 Form1, 并单击 查看对象 按钮, 即可显示 Form1 用鼠标双击 Form1, 出现 Form1 的代码窗口, 选择 Click 事件, 输入下列代码 : Form2.Show ' 显示窗体 Form2 步骤 4, 运行程序, 出现窗体 Form1, 用鼠标单击 Form1, 显示出 Form2 两个窗体同时显示在屏幕上, 并且发现两个窗体之间可以互相切换 步骤 5, 结束程序的运行, 为窗体 Form1 的 Click 事件代码作如下修改 : Form2.Show Form1.Hide ' 隐藏窗体 Form1 选择窗体 Form2, 双击窗体 Form2, 出现 Form2 的代码窗口, 选择 Click 事件, 输入下列代码 : Form1.Show ' 显示窗体 Form1 Unload Form2 ' 关闭窗体 Form2 步骤 6, 运行程序, 出现窗体 Form1, 单击 Form1, 出现窗体 Form2, 并隐藏了窗体 Form1, 再单击窗体 Form2, 窗体 Form1 又出现, 同时窗体 Form2 被关闭 结束程序运行 我们发现, 每个窗体都有各自的代码窗口, 都有各自的事件代码 2. 删除窗口 在工程资源管理窗口中, 右击需要删除的窗体, 在弹出的快捷菜单中选择 移除 菜单项 3. 设置启动对象 科学出版社职教技术出版中心 如果一个工程内有多个窗体, 在默认情况下, 程序启动时, 会自动装载第一个窗体, 将其设为启动对象 如果要想改变工程 工程 1 的启动对象, 可以通过选择菜单栏中的 工程 工程 1 属性 命令来设置启动对象

46 第 2 章 Visual Basic 编程基础 窗体加载与卸载时触发的事件窗体在加载与卸载时, 将触发一系列的窗体事件, 这些事件的触发遵循一定的次序, 图 2-10 和图 2-11 分别指示了这些事件发生的次序 Initialize Load Resize Activate Paint 建立窗体装入内存显示窗体 图 2-10 窗体在加载过程中触发的事件 LostFocus Deactivate 隐藏窗体 Hide 方法 从内存中删除 Unload 方法 QueryUnload Unload Terminate 图 2-11 窗体在卸载过程中触发的事件 2.2 数据类型 常量与变量 数据类型数据是程序处理的对象, 是软件的重要组成部分 比如, 在数学计算时, 我们需要用到数值型数据, 它们可以参加数学运算 ; 在处理文本时, 我们又要用到字符串型数据, 它们被当作文字来处理, 不参加加减乘除等运算 ; 在条件判断时, 我们还需要用到逻辑型数据, 它们的结果是对和错, 即真和假 ; 等等 数据类型决定了 Visual Basic 用怎样的方式去存储它们, 以及拿它们作怎样的操作 本节内容较详细地列出了 Visual Basic 中提供的数据类型, 除了对常用数据类型的解释外, 本节的大部分内容可以作为大家日后编程时的参考资料, 并不需要立刻掌握全部内容, 应在使用的过程中逐步熟悉它 表 2-3 Visual Basic 中的标准数据类型 数据类型 名 称 字节数 范 围 字节型 Byte 1 0~255 整型 Integer ~32767 长整型 Long ~ 单精度浮点型 Single 4 双精度浮点型 Double ~ ~ (6 位有效数字 ) ~ ~ (15 位有效数字 )

47 38 Visual Basic 程序设计 数据类型名称字节数范围 续表 变长字符串型 String 每个字符串可以存放 0~20 亿个左右的字符 定长字符串型 String*size size 1~65535 个字符 布尔型 ( 逻辑型 ) Boolean 2 True 或 False 日期型 Date 8 1/1/100~12/31/9999 货币型 Currency ~ ( 小数点后 4 位 ) 对象型 Object 4 任何对象的引用 变体型 Variant 可以存放数值和字符串, 若存放数值, 占 16 个字节, 最大范围与双精度浮点型相 同 ; 若存放字符串, 与可变字符串长度相同 表 2-3 中列出了 Visual Basic 提供的标准数据类型, 表中 名称 列用于标识变量 的数据类型, 字节数 表示数据占用的内存大小 在实际应用中应选取合适的数据类型来存储数据, 例如, 一门功课的成绩表示范围 是 0 到 100 的整数, 那么可以用整型变量来存放 ; 如果要存放全班同学的一门功课的平 均分, 由于有小数, 所以要用单精度浮点型变量来存放 ; 对于一个城市的人口数目来说, 则需要长整型变量来存放 ; 对于高精度的数学运算, 可使用双精度浮点型的变量来存放 数据 常量 常量指在程序中不变的数值 常量分为 : 数值常量 字符串常量 布尔常量 日期常量等 表 2-4 列出了这些常量的写法格式 表 2-4 常量的格式 类型格式示例 数值常量数值 987, ,-5.1E-2 字符串常量用双引号 "" 括起来 "VB","123"," 你好!","@#$=" 布尔常量仅 True( 真 ) 和 False( 假 ) 两个值 True,False 日期常量用 # 号括起来 #12/31/2009#,#12/31/ :12:54# 1. 数值常量 科学出版社职教技术出版中心 1) 按照数学中的惯用写法, 如 :987, ,-1,0, 等 2) 浮点数还可以写成指数形式, 如 1.234E2, 表示 ,E 后面是指数部分, 指数只能是整数, 也可以用 e 代表指数部分开始 又如 :6e-2,-5.1E-2,1E8, E-2 等 3) 由于数值数据的类型有多种 ( 见表 2-3), 存储这些数据所需的存储空间大小不同, 如果超过了规定的取值范围, 就会产生 溢出 (Overflow) 错误 如将 存入一个整型变量中, 就会溢出 4)Visual Basic 中一般采用十进制数来表示数值大小, 但有时候也会使用十六进制

48 第 2 章 Visual Basic 编程基础 39 数 ( 数值前加前缀 &H) 或八进制数 ( 数值前加前缀 &O) 来表示数值大小, 如十六进制数 &H10 与十进制数 16 大小相等, 八进制数 &O17 与十进制数 15 大小相等 2. 字符串常量 字符串常量是用双引号 "" 括起来的一串字符, 如 :"VB","123"," 你好!","@#$=" 等 3. 布尔常量 布尔常量也叫逻辑常量, 是 Boolean 类型的数据, 它只有两个值, 分别是 True( 真 ) 和 False( 假 ) 当把数值常量转换成 Boolean 型时,0 被转换成 False, 非 0 被转换成 True; 反之, 将 Boolean 型常量转换成数值时,False 被转换成 0,True 被转换成 日期常量 日期常量用来表示日期和时间, 用 # 号括起来, 如 :#12/31/2009#,#12/31/ :12:54# 等 Visual Basic 支持多种格式的日期和时间写法, 输出格式由 Windows 设置的格式决定 5. 符号常量 当程序中多处出现某个数据时, 为了便于程序的修改和阅读, 可以给它赋予一个名称, 下面的程序代码就可以用该名称来代表这个数据, 这个名称就叫做符号常量 格式 :Const< 符号常量名 >=< 常量 > 例如, 有如下一段代码 : Private Sub Command1_Click() Print 3.14 * 3 * 3 ' 求半径为 3 的圆面积 Print 3.14 * 5.2 * 5.2 ' 求半径为 5.2 的圆面积 其中,3.14 在多处使用, 为了方便阅读和修改, 我们可以使用符号常量来替代它, 代码修改如下 : Private Sub Command1_Click() Const pi = 3.14 ' 将 3.14 定义为符号常量 pi Print pi * 3 * 3 Print pi * 5.2 * 5.2 它的优点是很明显的, 今后如果发现圆周率取 3.14 的精度不够, 需要提高精度, 只要将常量定义的语句行修改为 Const pi = 即可, 而无需修改程序的其他部分, 这样还可以避免多次修改出现打字错误或漏改 变量 用来在程序中存储数据, 在程序运行过程中可以发生改变的量, 我们称为变量 变量是计算机编程中的一个重要概念 它是一个可以存储值的字母或名称 创建计算机程序时, 可使用变量来存储数值, 例如建筑物的高度, 或者存储单词, 例如人的名字 简单地说, 可使用变量表示程序所需的任何信息

49 40 Visual Basic 程序设计 使用变量有如下三个步骤 : 1) 声明变量 告诉程序要使用的变量的名称和种类 2) 给变量赋值 赋予变量一个要保存的值 3) 使用变量 检索变量中保存的值, 并在程序中使用它 每个变量都有唯一的变量名字 相应的数据类型和使用范围 在程序中, 通过声明来定义变量, 通过赋值语句来给变量一个具体的值, 通过变量名称来引用该变量的值 1. 声明变量 声明变量时, 必须决定要为它取一个什么样的名称以及要为它分配什么数据类型 你可以为变量取任何名称, 但要符合下列规则 : 1) 以字母开头 ( 不分大小写 ), 由字母 数字和下划线组成 2) 长度不超过 255 个字符 3) 变量名不能和保留字 符号常量名 函数名等同名 4) 在其有效范围内必须是唯一的 例如,a Sum x1 Total_Candy 等都是合法的变量名, 而 1a i+j 则不能作为变量名 注意 : 使用能描述变量所保存内容的名称时, 代码的易读性就会提高 例如, 可以将保存成绩的变量命名为 cj( 拼音 chengji 的缩写 ) 声明变量时使用的是 Dim 和 As 关键字, 格式如下所示 Dim a As Integer 这行代码告诉程序您要使用一个名为 a 的变量, 并且希望它是存储整数 (Integer 数据类型 ) 的变量 因为 a 是一个 Integer 类型的变量, 所以它只能存储整数 例如要存储 42.5, 可以使用 Single 或 Double 数据类型 如果要存储一个单词, 需使用 String 数据类型 如果声明为 Boolean 数据类型, 则它可存储 True 或 False 值 下面是关于如何声明变量的更多示例 : Dim i As Integer Dim x As Double Dim aname As String 也可以在一个 Dim 语句中声明多个变量, 例如下面的示例 : Dim k As Boolean, j As Integer, cj As Single 每个变量声明之间用, 分割, 而最后一个变量声明后没有符号 在实际操作时注意, 符号, 是英文半角字符, 不是中文的全角逗号 2. 给变量赋值 使用 = ( 该符号有时称做 赋值运算符 ) 给变量赋值, 如下例所示 : a = 42 这行代码有一个值 42, 把它存储在先前声明的名为 a 的变量中 3. 使用变量 下面通过一个实例来演示变量的使用 科学出版社职教技术出版中心

50 第 2 章 Visual Basic 编程基础 41 例 2-6 已知圆半径, 显示圆面积 新建工程, 在窗体 Form1 上添加一个命令按钮 Command1, 为它添加下列代码 : Private Sub Command1_Click() Dim r As Single, s As Single ' 声明变量 r,s r = 1.5 ' 给变量 r 赋值 s = * r * r ' 使用 r, 计算出圆面积, 赋值给变量 s Print s ' 在窗体上显示变量 s 的值 给变量赋值时需要注意变量的数据类型, 如果部分代码改为 Dim r As Integer r = 1.5 则可能会出现不是你预想的结果, 因为变量 r 被声明为整数, 而 1.5 是浮点数, 不能在 r 中存放, 系统将对 1.5 进行舍入, 转化为整数 2 后存入变量 r 中, 从而失去了精度 4. 变量的初始值 在程序中声明了变量后, 变量将自动获取一个初始值, 数值类型变量的初始值为 0, 变长字符串的初始值为空字符串 ( 即 ""), 定长字符串用空格填充, 逻辑性变量的初始值为 False 5. 强制变量声明 如果在程序中没有声明变量, 但是又使用了这个变量, 这是一种不好的习惯, 所以变量一定要 先声明, 后使用 为了能让 Visual Basic 检查出这种情况, 可以选择菜单栏中的 工具 选项 命令, 在出现的对话框中切换到 编辑器 选项卡, 勾选 要求变量声明 复选框, 如图 2-12 所示, 这样今后在打开新的代码窗口时, 会在顶部自动添加语句 Option Explicit, 如图 2-13 所示,Visual Basic 会检查代码中用到的变量是否经过声明 当然, 你也可以自己在代码窗口顶部手工输入 Option Explicit, 起到的效果是一样的 图 2-12 勾选 要求变量声明 复选框

51 42 Visual Basic 程序设计 图 2-13 用 Option Explicit 语句强制变量声明 2.3 Print 语句和赋值语句 语法描述规则 为了便于解释语句 方法和函数的使用格式, 我们一般采用约定的语法描述规则来 描述, 里面包含了一些约定的符号 如声明变量语句的格式如下 : Dim < 变量名 > [As < 数据类型 >][,< 变量名 > [As < 数据类型 >] ] 符号解释如下 : 1) <> 表示必选项 2) [] 表示可选项 3) {} 和 表示多选一项 4) 表示重复 Print 语句 功能 : 可以在窗体上输出表达式的值, 也可以在其他图片对象或打印机上输出信息 格式 :[< 对象名称 >.]Print [< 输出项 >][{, ;}][< 输出项 >] 格式说明 : 1)< 对象名称 > 可以是窗体 图片框或打印机, 如果省略则在当前窗体上输出 2)Print 后跟 < 输出项 >, 输出项可以只有一个, 也可以多个, 甚至可以没有输出项 如果输出项有多个, 则输出项之间必须有, 或 ; 在实际编程时必须注意, 和 ; 必须使用英文半角字符, 绝对不能使用中文全角标点 3), 代表当前位置移动到下一个制表位, 每个制表位间隔 14 个字符位置 ; 而 ; 表示当前位置不变动 ; 语句的最后如果没有这两个符号, 表示当前位置定位到下一行的行首 科学出版社职教技术出版中心 注意 : 当前位置的含义是下一次默认输出位置 例 2-7 Print 语句的输出格式示例 Print " " Print "a", "b", "c", "d" ' 关注逗号的作用 Print 123, 456, -789, 3.14 ' 数值第一个输出为符号, 正数的符号为空格 Print 123; 456; -789; 3.14 ' 关注分号的作用, 数值后跟一个空格

52 第 2 章 Visual Basic 编程基础 43 Print "123"; "456"; "abc"; True; Print "123"; 456; "abc" Print Print "123456", "abc" Print, "123" 运行该程序, 单击窗体, 输出如图 2-14 所示 ' 关注行末的分号的作用 ' 可以看到 456 前后都有空格 ' 换行 ' 制表位的对齐作用 ' 单独逗号都能起作用 图 2-14 例 2-7 的输出结果 从例 2-7 的输出结果可以看到 : 1) 输出数值后自动输出了一个空格, 输出正数时不显示正号, 而是以空格代替 2) 输出字符串则按照字符串内容原样输出, 前后都不添加空格 3) 输出逻辑型数据直接输出 True 或 False 我们对例 2-6 进行修改, 同样的题目, 代码改为 : Private Sub Command1_Click() Dim r As Single, s As Single r = 1.5 s = * r * r Print " 半径为 :"; r, " 面积为 :";s ' 修改为输出文字信息 Print "r="; r, "s="; s ' 换种形式再显示一次 运行结果如图 2-15 所示 赋值语句 图 2-15 修改例 2-6 后的输出结果 功能 : 计算出表达式的值, 给变量或控件属性赋值 格式 1:< 变量名 > = < 表达式 > 格式 2:[< 控件名 >.]< 属性名 > = < 表达式 > 格式说明 : 格式 1 是给变量赋值, 格式 2 是给控件属性赋值, 如果控件名省略, 则

53 44 Visual Basic 程序设计 给当前窗体的属性赋值 程序将先计算 = 号右边的表达式的值, 然后将值赋给 = 号左边的变量或控件属性, 但要注意以下几点 1) 当为数值变量赋值时, 表达式的值不能超出数值变量的数值范围, 否则出现溢出错误 例如 : Dim a As Integer, f as Single a = ' 整数溢出 f = 1.23E+50 ' 单精度浮点数值溢出 2) 当把结果为浮点型的表达式赋值给整型变量时, 将进行舍入, 转化为整型数后再赋值给整型变量 例如 : Dim a As Integer a = 1.2 ' 效果等同于 a = 1 注意 : 对纯小数部分恰为 0.5 的数, 舍入的规则是单进双舍, 如 2.5 舍入后为 2, 3.5 舍入后为 4 3) 任何类型的表达式都可以向字符串变量赋值 例如 : Dim s As String s = 123 ' 将数值 123 转化为字符串 "123" 后再赋值给变量 s 2.4 运算符 表达式 常用内部函数 算术运算符与算术表达式 1. 算术运算符 表 2-5 列出了 Visual Basic 中的算术运算符 其中整除运算 (\) 和求余数运算 (Mod) 时只能对整型数据进行, 如果遇到运算符两边的操作数为浮点数, 则自动把它们转换成 整型数, 然后进行整除和求余数运算 表 2-5 算术运算符 运算符名称说明举例 ^ 乘方求乘幂 2^3 值为 8,-2^3 值为 -8 * 乘法求积 2*3 值为 6 / 除法求商, 结果为浮点型 7/2 值为 3.5 \ 整除整除, 返回商的整数部分 7\2 值为 3,7.23\1.7 值为 3 Mod 求余数求模, 返回余数 7 Mod 2 值为 1,7.23 Mod 1.7 值为 1 + 加法求和 2+3 值为 5 - 减法 取负求差或求相反数 2-3 值为 -1,-2,-a 2. 算术运算符的优先级 科学出版社职教技术出版中心 当在一个表达式中出现多个运算符时, 将按照运算符优先级的高低来决定先进行哪种运算 算术运算符的优先级从高到低排列如下 : ( 指数运算 ^) ( 取负 -) ( 乘 * 除/) ( 整除 \) ( 求余 Mod) ( 加 + 减-)

54 第 2 章 Visual Basic 编程基础 45 乘 除为同级运算符, 加 减也是同级运算符, 同级运算从左向右进行 可以通过在表达式中添加括号来改变表达式的求值顺序 3. 算术表达式算术表达式由常量 变量 运算符 函数和圆括号按一定的规则组成, 通过运算后有一个结果, 运算结果的类型由数据和运算符共同决定 书写上要注意与数学表达式的以下两点区别 : 1) 表达式中, 乘号不能省略 2) 括号必须成对出现, 均使用圆括号, 可以嵌套, 但必须配对 字符串运算符与字符串表达式字符串运算符有 + 和 & 两个, 用于连接符号两边的字符串表达式 例如 : "ABC" & "def" 计算结果为 "ABCdef" "ABC" + "def" 计算结果也为 "ABCdef" 但是, & 运算符可以连接非字符串类型的数据, 它将非字符串数据自动转换成字符串后再连接 例如 : "ABC" & 123 计算结果为 "ABC123" 而 + 运算符则不能, 如下面是错误的 : "ABC" 出现类型不匹配错误注意 : 书写时 & 运算符前后都要加空格, 否则 Visual Basic 有可能无法正确识别 关系运算符与关系表达式关系运算符也叫比较运算符, 有 < <= > >= = <> 六种, 用于判断符号两边的表达式是否满足结果, 运算结果只有 True 或 False 两个值 表 2-6 关系 ( 比较 ) 运算符 运算符 说 明 举例 < 小于 2<3 值为 True,3<2 值为 False <= 小于或等于 2<=3 值为 True,2<=2 值为 True > 大于 #12/20/2009#>#01/12/2010# 值为 False,"a">"A" 值为 True >= 大于或等于 "ab">"abc" 值为 False,"a">="Abc" 值为 True = 等于 "a"="a" 值为 False,"abc"="abc" 值为 True <> 不等于 2<>3 值为 True 在表 2-6 中已经举了数值数据比较 字符串数据比较和日期数据比较的例子, 它们的比较规则如下 : 1) 数值数据按照它们的大小进行比较 2) 日期类型数据按照日期的先后进行比较

55 46 Visual Basic 程序设计 3) 字符串类型数据按照它们的 ASCII 码值的大小进行比较 : 先比较两个字符串的第 1 个字符的 ASCII 码值大小, 若相等则比较它们的第 2 个字符的 ASCII 码值, 依此类推, 直到第一次出现了不相同的字符, 哪个字符的 ASCII 码值大, 就是哪个字符串大, 如 "abc">"abbc" 值为 True; 或者一个字符串结束, 而另一个字符串还有字符没有参加比较, 则较长的字符串较大, 如 "abc">"ab" 值为 True; 或者两个字符串完全一样, 则这两个字符串相等, 如 "abc"="abc" 值为 True 关系表达式也叫做比较表达式, 即由关系运算符连接的表达式, 如 a=b,a+b>3,i Mod 5=0 等 逻辑运算符与逻辑表达式常用的逻辑运算符有 And Or Not 三种, 如表 2-7 所示 表 2-7 逻辑运算符 运算符名称说明和举例 And Or 与 或 当两边的表达式同时为真 (True) 时, 结果才为真, 否则为假 (False) 如 2>1 And 2<3 值为 True 当两边的表达式只要一个为真 (True) 时, 结果就为真 ; 两个都为假 (False) 时, 结果才为假 如 2>1 Or 2>3 值为 True Not 非 对右边的表达式进行逻辑否定运算 : 原来为真 (True) 的, 值为假 (False); 原来为假的, 值为真 如 Not 2>1 值为 False 它们的优先级是 :Not 最高,And 次之,Or 最低 当它们同时出现在一个表达式中时, 先进行 Not 运算, 再进行 And 运算, 最后进行 Or 运算 算术运算符 关系运算符和逻辑运算符的优先级关系为 : 算术运算符优先级最高, 关系运算符优先级次之, 逻辑运算符优先级最低 逻辑表达式也叫布尔表达式, 它的值为 True 或 False 关系表达式也是逻辑表达式 例 2-8 根据描述写出逻辑表达式 x 为正数, 写出逻辑表达式 :x>0 x 不为 0, 写出逻辑表达式 :x<>0-1<a<1, 写出逻辑表达式 :a>-1 And a<1 整数 k 为大于 0 的奇数, 写出逻辑表达式 :k Mod 2=1 And k>0 a,b 至少有一个不为 0, 写出逻辑表达式 :a<>0 Or b<>0-1<a<1 不成立, 写出逻辑表达式 :Not(a>-1 And a<1) 或写成 a<=-1 Or a>= 常用的内部函数 科学出版社职教技术出版中心 Visual Basic 提供有大量的内部函数, 内部函数是 Visual Basic 中设置好的具有特定功能的函数, 通常带有一个或几个参数, 并返回一个返回值 通过使用内部函数, 可以方便地完成各种复杂运算 学习建议 : 内部函数数量较多, 在开始学习阶段不需要记忆它们, 可以先将它们的

56 第 2 章 Visual Basic 编程基础 47 功能浏览一遍, 对它们有个印象, 今后在使用的时候再作详细研究, 也就是采用边实践边学习的办法 这里所列的仅是部分较常用的内部函数, 可以作为今后的学习和编程的参考资料 1. 数学函数 1)Abs(x): 返回 x 的绝对值 如 Abs(-3.1) 返回 3.1 2)Sqr(x): 返回 x 的算术平方根, 即求 x^0.5 如 Sqr(9) 返回 3 3)Int(x): 取整函数, 返回不大于 x 的最大整数 如 Int(9.8) 返回 9,Int(-9.8) 返回 -10 4)Fix(x): 返回 x 的整数部分 如 Fix(9.8) 返回 9,Fix(-9.8) 返回 -9 5)Round(x,n): 按小数位数四舍五入, 参数 n 为小数位数 如 Round( ,2) 返回 )Exp(x): 求 e^x(e 为自然对数的底 ) 7)Log(x): 返回 x 的自然对数 8)Sgn(x): 符号函数, 取 x 的符号值 当 x 大于 0 时, 返回 1; 当 x 小于 0 时, 返回 -1; 当 x 等于 0 时, 返回 0 9) 三角函数 :Sin(x) Cos(x) Tan(x), 反正切函数 Atn(x) 三角函数以 弧度 为单位, 如 Sin( /2) 返回 1 另外,Visual Basic 中没有其他的三角函数, 其他三角函数可以通过上面三个三角函数进行计算得到, 而其他的反三角函数可以通过反正切函数进行计算得到 如求 x 的余切值可以表示为 1/Tan(x), 求 x 的反正弦函数可以通过计算 Atn(x/sqr(1-x*x)) 得到 2. 字符串函数 1)Len(x): 返回字符串 x 的长度 ( 字符个数 ) 如 Len(" 学习 Vb") 返回 4 2) 取子串函数 Left(x,n): 返回字符串 x 最左边 n 个字符所组成的字符串 Right(x,n): 返回字符串 x 最右边 n 个字符所组成的字符串 Mid(x,m,n): 返回字符串 x 的第 m 个字符开始的 n 个字符所组成的字符串 如字符串 s="abcdef", 则 Left(s,2) 返回 "ab",right(s,2) 返回 "ef",mid(s,2,3) 返回 "bcd" 3) 去空格函数 LTrim(x): 返回去掉字符串 x 左边空格后的字符串 RTrim(x): 返回去掉字符串 x 右边空格后的字符串 Trim(x): 返回去掉字符串 x 左右两边空格后的字符串 如字符串 s=" abc ", 则 LTrim(s) 返回 "abc ",RTrim(s) 返回 " abc",trim(s) 返回 "abc" 4) 大小写转换函数 LCase(x): 返回将字符串 x 中所有大写字母转换为小写后的字符串 UCase(x): 返回将字符串 x 中所有小写字母转换为大写后的字符串

57 48 Visual Basic 程序设计 如字符串 s="abcde", 则 Lcase(s) 返回 "abcde",ucase(s) 返回 "ABCDE" 5)Space(n): 返回由 n 个空格组成的字符串 如 Space(3) 返回 " " 6)String(n,x): 返回由 n 个首字符组成的字符串 如 String(3,"A") 返回 "AAA" 7)Instr(x,y): 搜索子串函数, 返回字符串 y 在字符串 x 中首次出现的位置, 找不 到则返回 0 如 Instr("abcdef","cd") 返回 3 3. 日期和时间函数 1)Date: 返回系统的当前日期 2)Time: 返回系统的当前时间 3)Now: 返回系统的当前日期和时间 4)Year() Month() Day() Weekday(): 分别返回指定日期的年份 月份 日号 星期序号 ( 从星期日开始数 ) 如 Year(" ") 或 Year(#3/4/2010#) 将返回 2010; Month(Date) 将返回 Date 的月份, 即系统当前日期的月份 ;Day(Now) 将返回 Now 的日号 5)Hour() Minute() Second(): 分别获取指定时间的小时数 分钟数 秒数 如 Hour("14:33:44") 返回 14,Minute(Now) 对 Now 取分钟数, 即返回系统当前时间的分钟 数,Second(Time) 对 Time 取秒数 4. 转换函数 1)Val(x): 将字符串 x 中的最左边的数字串转换成数值 如 Val("23.4Ab") 返回 23.4, Val("a23") 返回 0 2)Str(x): 将数值 x 转换成字符串 如果 x 是正数, 则将符号位用空格代替, 如 Str(123.45) 返回 " "( 字符串中第一个字符为空格 ),Str( ) 返回 " "( 字 符串中没有空格 ) 3)Asc(x): 返回字符串 x 首字符的 ASCII 值 如 Asc("A") 返回 65 4)Chr(x): 返回 ASCII 值为 x 的字符 如 Chr(65) 返回 "A" 5. 随机函数 Rnd 与随机数语句 1)Rnd 函数 : 得到一个 0~1( 不包含 1) 的随机数, 它是一个单精度数值 2)Randomize 语句 : 初始化随机函数发生器 例 2-9 新建窗体, 为窗体的 Click 事件添加以下代码 : Print Rnd ' 在窗体上显示一个随机数 运行程序, 用鼠标单击窗体, 就会显示出一个随机数, 接着多次单击窗体, 显示出一系列没有规则的数值 记住显示的这一系列数值, 然后关闭程序, 重新运行程序, 再用鼠标多次单击窗体, 发现显示出的数值与第一次完全相同 这表明当程序开始运行时, 随机数发生器被重置为固定的初始状态 为了能使每次程序运行时产生的随机数序列不相同, 可以这样修改上面的代码 : 科学出版社职教技术出版中心

58 第 2 章 Visual Basic 编程基础 49 Randomize ' 初始化随机数发生器, 使之产生新的随机数序列 Print Rnd 技巧 :Rnd*10 能产生 0~10( 不包含 10) 的随机数, 如果要产生 1~100 的整数, 可以用表达式 Int(Rnd*100+1) 来获取 如果要产生 [a,b]( 其中 a b 为整数, 且 a<b) 区间上的随机整数, 可以采用表达式 Int(Rnd*(b-a+1)+a) 来实现 6. 与 Print 方法有关的函数 1)Tab(n): 将输出位置定位到第 n 列 例如, 执行如下语句 : Print Tab(10);" 张三 ",Tab(30);98 Print Tab(10);" 李四 ",Tab(30);95 能使两行的姓名和数值上下对齐显示在窗体上 2)Spc(n): 输出 n 个空格 例如, 执行如下语句 Print " 张三 ";Spc(3);" 李四 " 能输出张三李四学习指导 : 可以编制类似于下面的程序对上面所列的函数进行试验, 从而真正理解这些函数的功能 Print Abs(-3.1) Print Sqr(1.44) Print Int(9.8); Int(-9.8) InputBox 函数和 MsgBox 函数 与用户交互的程序往往需要在程序运行时, 让用户输入数据, 然后程序对用户输入的数据进行处理, 最后将结果输出给用户看 我们可以用控件 ( 如文本框 ) 接受用户的输入和显示结果, 还可以用 InputBox 函数来接受用户的输入, 用 MsgBox 函数输出信息, 它们以对话框的形式与用户交互 1.InputBox 函数 功能 : 显示输入对话框, 接受用户的输入 格式 :< 变量名 > = InputBox(< 提示信息 >[,[< 对话框标题 >][,< 默认值 >]]) 格式说明 : 它有三个参数, 第一个 < 提示信息 > 必须要写上, 后两个参数可选 1)< 提示信息 > 指定在对话框显示的文本信息 2)< 对话框标题 > 指定对话框的窗口标题 3)< 默认值 > 可以在对话框的输入区作为初始值出现 该函数返回的数据是字符串类型, 当用户单击 确定 按钮, 则 InputBox 函数

59 50 Visual Basic 程序设计 返回文本框中的内容 ; 如果单击 取消 按钮, 则此函数返回一个长度为零的字符串 ("") 如执行语句 n=inputbox(" 请输入你的年龄 :"," 数据输入 ",19) 时, 显示如图 2-16 所示的对话框 图 2-16 InputBox 函数的输入对话框 如果 n 是 Integer 类型的数据, 若输入了无法转换成整数的数据, 将出现 类型不 匹配 错误 按钮 2.MsgBox 函数 功能 : 在对话框中显示消息, 等待用户单击按钮, 并返回一个值指示用户单击的 格式 1:MsgBox < 提示信息 >[,[< 对话框类型 >][,< 对话框标题 >]] 格式 2:< 变量名 > = MsgBox(< 提示信息 >[,[< 对话框类型 >][,< 对话框标题 >]]) 格式说明 : 格式 1 只是显示对话框, 不返回任何信息, 格式 2 接受用户在对话框里 单击了哪个按钮的信息, 便于程序针对用户的不同选择而做出不同的响应 所有的函数都有这两种格式的写法, 但格式 1 不处理返回值, 参数列表就不带括号, 格式 2 要接受返回值, 参数列表要放在括号里 1)< 提示信息 > 指定对话框中要显示的文本信息 2)< 对话框类型 > 指定对话框中出现的按钮和图标样式 3)< 对话框标题 > 指定对话框的窗口标题 参数 < 对话框类型 > 由三部分组成, 分别是关于按钮 图标和默认按钮的信息 具体规则如表 2-8 表 2-9 和表 2-10 所示 表 2-8 按钮样式 值 VB 常量显示按钮 0 vbokonly 只显示确定按钮 1 vbokcancel 显示确定和取消按钮 2 vbabortretryignore 显示放弃 重试和忽略按钮 3 vbyesnocancel 显示是 否和取消按钮 4 vbyesno 显示是和否按钮 5 vbretrycancel 显示重试和取消按钮 科学出版社职教技术出版中心

60 第 2 章 Visual Basic 编程基础 51 表 2-9 图标样式 值 VB 常量 显示图标 16 vbcritical 显示错误图标 32 vbquestion 显示询问图标 48 vbexclamation 显示警告图标 64 vbinformation 显示信息图标表 2-10 默认按钮 值 VB 常量 默认按钮 0 vbdefaultbutton1 第一个按钮为默认按钮 256 vbdefaultbutton2 第二个按钮为默认按钮 512 vbdefaultbutton3 第三个按钮为默认按钮 例如, 执行语句 MsgBox " 你输入的数据不正确!",vbExclamation," 输入错误 " 后, 出现如图 2-17 所示的消息对话框, 并发出警告的声音 图 2-17 MsgBox 消息对话框 4) 返回值 : 如果使用格式 2 来执行 MsgBox, 将返回一个值来指定用户单击了哪个按钮 返回值的含义如表 2-11 所示 表 2-11 MsgBox 函数返回值代表的用户选择 返回值 VB 常量用户的选择 1 vbok 确定 2 vbcancel 取消 3 vbabort 放弃 4 vbretry 重试 5 vbignore 忽略 6 vbyes 是 7 vbno 否 程序设计者可以根据 MsgBox 函数的返回值, 对用户的选择做出响应 例如, 程序段 n = MsgBox(" 你真的要退出程序吗?", vbokcancel + vbquestion, " 退出程序 ") If n = vbok Then End 执行时将显示消息对话框, 它具有 确定 和 取消 两个按钮, 有一个询问图标 当用户单击了 确定 按钮, 将返回 1( 即 vbok) 给变量 n, 只要对 n 的值进行判断就能决定是否结束程序的运行

61 52 Visual Basic 程序设计 2.5 编程实例 本节将结合窗体和三个常用控件 ( 标签 文本框和命令按钮 ) 来编制程序, 从而进 一步熟练 Visual Basic 的操作和提高编程能力 例 2-10 编制一个程序, 实现两个整数 的相加和相减功能 程序运行后的初始界面如图 2-18 所示 界面设计时, 相应的对象属性设置如下 : 1) 窗体 Form1:Caption 属性设为 整数加 减 2) 三个标签 :Label1 的 Caption 属性设为 请输入第一个整数 :,Label2 的 Caption 属性设为图 2-18 例 2-10 的程序运行后的初始界面 请输入第二个整数 :,Label3 的 Caption 属性设为 结果是 : 3) 三个文本框 :Text1 Text2 Text3 的 Text 属性都设为空 4) 两个命令按钮 :Command1 和 Command2 的 Caption 属性分别设为 相加 和 相减 5) 所有控件的 Font 属性都设为 宋体, 小四 接着为 Command1 和 Command2 添加如下的单击事件代码 : Private Sub Command1_Click() Dim a As Integer, b As Integer, s As Integer ' 变量声明 a = Val(Text1.Text) ' 取出 Text1 中的文本, 转换成数值后赋值给 a b = Val(Text2.Text) ' 取出 Text2 中的文本, 转换成数值后赋值给 b s = a + b ' 将表达式 a+b 的计算结果赋值给 s Text3.Text = s ' 将 s 的值自动转换成字符串放到 Text3 中显示出来 Private Sub Command2_Click() Dim a As Integer, b As Integer, s As Integer a = Val(Text1.Text) ' 如果写成 a=text1.text, 将把文本自动转换成数值 b = Val(Text2.Text) s = a - b Text3.Text = s 从上面代码的注释可以看到, 与用户互动的程序一般分为三部分 : 获得用户的输入 计算处理 把结果输出 技巧 : 可以用 Val 函数将字符串转化为数值 拓展练习 : 修改程序, 使它能进行浮点数的乘除运算 例 2-11 用 InputBox 函数输入数据 在窗体 Form1 上添加一个标签 两个命令按钮, 如图 2-19 所示 科学出版社职教技术出版中心

62 第 2 章 Visual Basic 编程基础 53 设置下列属性 1)Form1:Caption 属性设为 输入练习 2)Label1:Caption 属性设为 请单击 输入 按钮, 字体设为 宋体 小二 3)Command1 Command2 的 Caption 属性分别设为 输入 和 结束 接着为 Command1 和 Command2 添加如下的单击事件代码 : Private Sub Command1_Click() Dim XM As String ' 声明 XM 为字符串 XM = InputBox(" 请输入你的姓名 :", " 输入姓名 ") ' 显示输入对话框, 存入 XM Label1.Caption = XM & ", 欢迎使用 VB!" ' 连接字符串 Private Sub Command2_Click() End ' 程序结束 程序运行时单击 输入 按钮, 在 输入姓名 对话框内输入 张三 后单击 确定 按钮, 出现如图 2-20 所示的结果 图 2-19 例 2-11 的程序运行后的初始界面 图 2-20 例 2-11 的运行结果 单击 结束 按钮, 结束程序运行 例 2-12 InputBox 函数和 MsgBox 函数练习 输入半径, 计算圆面积 在窗体 Form1 上放置一个命令按钮 Command1, 改变它的 Caption 属性为 计算圆面积 为 Command1 添加如下的单击事件代码 : Private Sub Command1_Click() Dim r As Single, s As Single r = InputBox(" 请输入半径 :", " 输入半径 ", 2) s = * r * r MsgBox " 面积为 " & s 拓展练习 : 用相似的方法编制求正方形面积的程序和求圆柱体体积的程序 例 2-13 编程思路训练 通过程序实现交换两个变量存储的数值 Dim a as Integer, b as Integer, t as Integer a=1: b=2 Print a,b ' 显示交换前的值 t=a: a=b: b=t ' 交换 a,b 的值 Print a,b ' 显示交换后的值 拓展练习 : 请修改程序, 交换两个 Double 型变量的值

63 54 Visual Basic 程序设计 例 2-14 日期 时间和文本换行的练习 在窗体 Form1 上放置文本框 Text1 和命令按钮 Command1, 设置 Text1 的 MultiLine 属性为 True, 设置 Command1 的 Caption 属性为 刷新 添加以下代码 : Private Sub Command1_Click() Text1.Text = " 今天是 " & Year(Date) & " 年 " & Month(Date) & _ " 月 " & Day(Date) & " 日 " & Chr(13) & Chr(10) Text1.Text = Text1.Text & " 现在时间是 " & Time Private Sub Form_Load() Form1.Caption = " 程序启动时间 :" & Now 上面的代码中使用 Chr(13) & Chr(10) 的作用是让显示的文本在此处换行, 也可以用 vbcrlf 来代替 而 Command1 的 Click 事件代码的第二行末尾的 _ ( 前面加空格 ) 代表续行, 即 下一行与本行是同一行的代码 的意思 运行程序, 单击 刷新 按钮, 程序的运行界面图如图 2-21 所示 图 2-21 例 2-14 程序的运行结果 例 2-15 拆分你的姓名 这是一个字符串函数的练习 在窗体上放置命令按钮 Command1, 修改 Form1 和 Command1 的标题属性 ( 参照图 2-22) 编写代码如下: Private Sub Command1_Click() Dim XM As String, X As String, M As String XM = InputBox(" 请输入你的姓名 :", " 输入姓名 ") X = Left(XM, 1) ' 取出你的姓存入变量 X M = Right(XM, Len(XM) - 1) ' 取出你的名存入变量 M MsgBox " 我记住你了, 你姓 "+X+", 名 "+M+"!",vbInformation," 我记住你 " 运行程序, 单击 单击这里 按钮, 在弹出的 输入姓名 对话框中输入 张三 并单击 确定 按钮, 此时会弹出 我记住你 对话框, 如图 2-22 所示 科学出版社职教技术出版中心 图 2-22 例 2-15 程序的运行结果

64 第 2 章 Visual Basic 编程基础 55 习题二 一 填空题 1. 表达式 1 and 0 的值为 2.13/3 MOD 5\7 的值为 3. 在程序中用到某一整型变量的数据范围为 ~50000, 则该变量类型应该是 4. 设 a=1,b=2,c=3,d=4, 表达式 a>b And c<=d Or 2*a>c 的值是 5. 声明单精度常量 PI 代表 的语句为 6.X=2: Y=8: Print X+Y=10 的结果是 7.VB 表达式 9^2 MOD 45 \2 *3 的值 8. 表达式 32\7 MOD 3^2 的值是 9. 欲定义一个定长为 10 的字符串变量 Mystr, 可写成 10. 设 x=6,y=4,z=7, 表达式 x>y And y>x-z Or x<y And Not 2*y>z 的值是 11. 把条件为 1 x 5 写成 VB 表达式为 二 程序设计题 1. 设计一个程序, 运行时界面如图 2-23 所示 当单击 左 右 上 下 按钮时, 标签分别向左 右 上 下移动 2. 设计一个程序, 在文本框中输入一个 3 位整数, 单击按钮后, 在标签上输出该数的百位数 十位数和个位数, 运行界面如图 2-24 所示 图 2-23 习题 2-1 程序运行时的界面 图 2-24 习题 2-2 程序运行时的界面 3. 设计一个程序, 实现简单的计算功能, 运行界面如图 2-25 所示 4. 设计一个程序, 单击 输入 按钮可弹出一个输入对话框, 提示用户输入带区号的电话号码, 区号为 4 位, 号码为 8 位, 比如输入 , 然后将区号和电话号码在消息对话框中显示出来, 运行界面如图 2-26 所示

65 56 Visual Basic 程序设计 图 2-25 习题 2-3 程序运行时的界面 图 2-26 习题 2-4 程序运行时的界面 科学出版社职教技术出版中心

66 第 3 章控制结构 前面我们设计和编写了一些简单的程序 ( 事件过程 ), 这些程序大多为顺序结构, 即整个程序按书写顺序依次执行 代码中的进程很少是用从上到下顺序执行的单个过程来完成的, 通常会遇到许多迂回转折, 这常常是根据表达式的计算作出的判断而引发的 第二次启动某个程序时, 即使程序中的单个条件发生变化, 比如用户在一个文本框中输入新文本, 也会产生完全不同的执行路径 多个执行路径常常会使代码呈现错综复杂的形式 显然, 若要阅读和调试代码, 必须做到非常容易地确定执行路径的变更 在 Visual Basic 中, 除顺序结构外, 还有两种基本控制结构, 即选择结构和循环结构 3.1 程序结构与流程图 结构化程序设计方法学认为, 程序的基本结构可分为顺序结构 选择 ( 分支 ) 结构和循环结构, 任何复杂的程序都可由这三种基本结构组成, 如图 3-1 所示 这三种结构可以任意组合 嵌套, 从而构造各种复杂的程序, 并且保证结构清晰 层次分明 语句 1 真 表达式 假 语句 1 语句 2 表达式 真 循环体 假 语句 2 顺序结构选择结构循环结构图 3-1 三种基本结构流程图在图 3-1 中, 有向线表示程序执行的流向, 矩形框内为可以执行的语句, 菱形框表示根据条件选择流程的流向 顺序结构的流程是按照一个方向进行的, 一个入口, 一个出口, 中间有若干条依次执行的语句 ; 选择结构的流程出现一个或多个分支, 按一定的条件选择其中之一执行, 它有一个入口, 一个出口, 中间可以有两条或多条分支 ; 循环结构的流程是按一定的条件重复多次执行一段程序, 被重复执行的程序段称为循环体, 循环结构中也只有一个入口和一个出口, 并且只允许有限次的循环, 不能无限循环 三种基本结构的共同特点如下 : 1) 只有一个入口, 一个出口

67 58 Visual Basic 程序设计 2) 无死语句, 所谓 死语句 是指始终不执行的语句 3) 无死循环, 即循环次数是有限的 顺序结构是程序中最简单 最基本的结构 在顺序结构中, 程序的执行过程是从上往下一行一行地执行 执行的顺序与程序中语句的排列顺序相同 3.2 选择控制结构 在日常生活中, 常常需要对给定的条件进行分析 比较和判断, 并根据判断结果采取不同的操作 例如, 如果外面正在下雨, 那么出门的时候我们就要带上雨具 选择结构是计算机科学用来描述自然界和社会生活中分支现象的重要手段 其特点是 : 根据所给定的条件成立 ( 真 ) 与否 ( 假 ), 决定从各实际可能的不同分支中执行某一分支的相应操作, 并且任何情况下总有 : 无论分支多寡, 必择其一 ; 纵然分支众多, 仅选其一 在 Visual Basic 中, 实现选择结构的是 If 语句和 Case 语句 这两种语句又称为条件语句, 条件语句的功能就是根据表达式的值有选择地执行一组语句 无论在何种情况下使用何种判断构造, 都必须计算一个表达式 大多数表达式都可以用多种不同方式来编写, 但是通常只有一个最佳方式可以用来编写某个表达式 正确编写表达式是非常关键的, 本章将提供许多实际应用的举例, 以帮助您创建正确的表达式 如果表达式编写得不好, 最好的情况是它们很难阅读和理解, 最坏的情况会导致程序运行失败 单行结构条件语句 前两章我们所编写的程序大多是顺序结构, 下面有一个例子将不能用顺序结构来完成 例 3-1 通过编程, 实现在文本框中输入你的身高, 如果小于 165, 那么显示 你的身高不够 不管你作何种努力, 都不能用顺序结构来完成, 因为这里出现了一个 如果 但是我们可以用伪代码来实现它 : 如果文本框的值 <165 那么显示 你的身高不够 幸好 Visual Basic 提供了这样一种结构, 它可以帮助我们实现上面的功能, 那就是 单行 If 语句 单行 If 语句的格式如下 : If < 条件 > Then < 语句块 1> [Else < 语句块 2>] 该语句的功能是 : 当条件成立时执行语句块 1, 否则执行语句块 2;Else 和语句块 2 可以缺省 说明 : 1) 单行 If 语句必须在同一行内写完 科学出版社职教技术出版中心

68 第 3 章控制结构 59 2) 条件 可以是关系表达式或布尔表达式, 还可以是任何计算数值的表达式, Visual Basic 会将其结果转换成 True 或 False 如果该值是 0, 则被视为 False, 所有非 0 值被视为 True 3) 语句块 可以是一条语句, 也可以是多条语句 ; 如果是多条语句, 那么语句与语句之间用冒号分割 有了单行 If 语句, 我们就可以轻松地完成例 3-1, 在窗体上建立文本框控件 Text1 和命令按钮 Command1 编制事件过程 Command1_Click 如下 : Private Sub Command1_Click() If Text1.Text < 165 Then Print " 你的身高不够 " 如果用户在文本框中输入 120 后单击按钮, 则在窗体上显示 你的身高不够 ; 如果输入 180 后单击按钮, 则会发现什么都不显示 因为只有当条件为 True 时才会执行, 否则执行下一行程序 下面的例子演示即使当条件为 False 时也会执行 例 3-2 输入 x, 计算 y 的值, 其中 : 2 x + 3x ( x 0) y = 1-3x ( x< 0 ) 2 分析 : 该题是数学中的一个分段函数, 它表示当 x 0 时, 用公式 y=x +3x 来计算 y 的值 ; 当 x<0 时, 用公式 y=- 1 3x 来计算 y 的值 在选择条件时, 我们既可以选择 x 0 作为条件, 也可以选择 x<0 作为条件 在这里, 我们选 x 0 作为选择条件 这时, 当 2 x 0 为真时, 执行 y =x +3x; 当 x 0 为假时, 执行 y=- 1 3x 根据以上分析, 设计步骤如下 : 1) 建立应用程序用户界面并设置对象属性, 如图 3-2 所示 2) 编写程序代码 编写按钮 Command1 的单击事件代码如下 : Private Sub Command1_Click() Dim x As Single, y As Single x = Text1.Text If x >= 2 Then y = x * x + 3 * x Else y = 1-3 * x Text2.Text = y 图 3-2 计算函数的值

69 60 Visual Basic 程序设计 多行结构条件语句 在单行结构条件语句中, 如果 语句块 1 或 语句块 2 中有多条语句, 虽然我 们可以使用冒号来分割语句, 但是这样做的话将会使同一行上显示的语句过长, 阅读起 来很不方便, 而且复杂一点的用单行结构条件语句也完成不了 所以 Visual Basic 引入 了多行 If 语句 多行 If 语句格式如下 : If < 条件 1> Then < 语句块 1> [ElseIf < 条件 2> Then < 语句块 2> [ElseIf < 条件 3> Then < 语句块 3> [Else < 语句块 n>] End If 执行过程 :Visual Basic 首先测试条件 1, 如果它为 False,Visual Basic 就测试条件 2, 依此类推, 直到找到一个为 True 的条件 当它找到一个为 True 的条件时,Visual Basic 就会执行相应的语句块, 然后执行 End If 后面的代码 作为选择, 可以包含 Else 语句块, 如果所有条件都为 False, 则执行 Else 语句块 多行结构提供了更强的结构化与适应性, 并且通常也是比较容易阅读 维护及调试的 我们把例 3-2 用多行 If 语句完成, 程序代码如下 : Private Sub Command1_Click() Dim x As Single, y As Single x = Text1.Text If x >= 2 Then y = x * x + 3 * x Else y = 1-3 * x End If Text2.Text = y 注意 : 即使只有一个语句被执行, 也应考虑使用多行 If 语句 当条件的计算结果是 True 时, 如果只有一个语句被执行, 则该语句可以与 If 放在同一行上, 并且 End If 可以省略 但是, 若要使代码更便于阅读, 请将该语句单独放在一行上, 并以 End If 作为该构造的结束 例 3-3 输入学生成绩 ( 百分制 ), 判断该成绩的等级 ( 优 良 中 及格 不及格 ) 界面设计略, 程序代码如下 : Private Sub Command1_Click() Dim score As Single, temp As String score = Val(Text1.Text) temp = " 成绩等级为 :" 科学出版社职教技术出版中心

70 第 3 章控制结构 61 If score < 0 Then Label2.Caption = " 成绩出错 " ElseIf score < 60 Then Label2.Caption = temp + " 不及格 " ElseIf score <= 69 Then Label2.Caption = temp + " 及格 " ElseIf score <= 79 Then Label2.Caption = temp + " 中 " ElseIf score <= 89 Then Label2.Caption = temp + " 良 " ElseIf score <= 100 Then Label2.Caption = temp + " 优 " Else Label2.Caption = " 成绩出错 " End If 秤 例 3-4 请参考图 3-3, 完成 健康秤 程序的设计 计算公式为 : 标准体重 = 身高 -105; 体重高于标准体重 *1.1 为偏胖, 提示 偏胖, 注意节食 ; 体重低于标准体重 *0.9 为偏瘦, 提示 偏瘦, 增加营养 ; 其他为正常, 提示 正常, 继续保持 设计步骤如下 : 图 3-3 健康秤运行图 1) 窗体的标题为 健康秤 2) 窗体的左边有两个标签,Label1 的标题为 身高 Label2 的标题为 体重 ; 它们的旁边分别有两个文本框,Text1 用于输入身高 Text2 用于输入体重 ; 在文本框的右边有两个标签,Label3 的标题为 cm,label4 的标题为 kg 3) 单击 健康状况 按钮 (Command1), 根据计算公式将相应的提示信息显示在标签 Label5 中, 程序代码如下 : Private Sub Command1_Click() Dim x As Integer, y As Integer, z As Integer x = Text1.Text y = Text2.Text z = x 105 ' 计算标准体重 If y > z * 1.1 Then ' 体重高于标准体重 *1.1 Label5.Caption = " 偏胖, 注意节食 " ElseIf y < z * 0.9 Then ' 体重低于标准体重 *0.9 Label5.Caption = " 偏瘦, 增加营养 " Else ' 其他为正常 Label5.Caption = " 正常, 继续保持 " End If 2 例 3-5 编写程序求一元二次方程式 ax +bx+c =0 的根, 用 InputBox 函数输入 a b c, 计算结果通过 MsgBox 函数显示 界面设计略, 程序代码如下 : Dim a As Single, b As Single, c As Single Dim d As Single, x1 As Single, x2 As Single

71 62 Visual Basic 程序设计 a = InputBox("a=") b = InputBox("b=") c = InputBox("c=") d = b * b - 4 * a * c If d < 0 Then MsgBox (" 方程无实根!") Else If d = 0 Then x1 = -b / (2 * a) MsgBox ("X1=X2=" & x1) Else x1 = (-b + Sqr(d)) / (2 * a) x2 = (-b + Sqr(d)) / (2 * a) MsgBox ("X1=" & x1 & " X2=" & x2) End If End If 例 3-5 的程序结构称为 If 语句的嵌套,If 语句的嵌套是指 If 或 Else 后面的语句块中又完整地包含一个或多个 If 结构 多分支选择控制结构 Select Case 语句又称为多路分支语句, 它是根据多个表达式列表的值, 选择多个操作中的一个对应操作来执行 虽然多路分支程序设计可用多行形式的 If 语句实现, 但有时, 使用 Select Case 语句实现更为简单且结构清晰 Select Case 语句的语法格式如下 : Select Case < 测试表达式 > [Case < 表达式列表 1> [< 语句块 1>]] [Case < 表达式列表 2> [< 语句块 2>]] [Case Else [< 语句块 n+1>]] End Select 执行流程 : 先对 测试表达式 求值, 然后将测试表达式的值按从上到下的顺序与每一个 Case 的表达式列表值进行比较 如果相符, 就执行该 Case 分支的语句块, 并把控制转到 End Select 后面的语句 ; 如果没有找到相符的, 则执行与 Case Else 子句有关的语句块, 然后把控制转到 End Select 后面的语句 说明 : 1) 测试表达式 : 可以是数值表达式或字符串表达式, 常用的一般为整型或字符串类型 2) 表达式列表 中的表达式必须与测试表达式的数据类型相同 3) 表达式列表 : 称为域值, 可以是下列形式之一 1< 表达式 1>[,< 表达式 2>] 当 测试表达式 的值与其中之一相同时, 就执行该 Case 分支的语句块 科学出版社职教技术出版中心

72 第 3 章控制结构 63 例如 : Case 1,3,5,7,9 2< 表达式 1> To < 表达式 2> 当 测试表达式 的值在表达式 1 和表达式 2 之间时 ( 含表达式 1 和表达式 2 的值 ), 则执行该 Case 分支的语句块 例如 : Case 1 To 10 3Is < 关系运算表达式 > 当 测试表达式 的值满足 关系运算表达式 指定条件时, 执行该 Case 分支的语句块 使用的运算符包括 = < <= > >= 和 <> 例如 : Case Is = 10 ' 若 测试表达式 的值等于 10 Case Is < 10 ' 若 测试表达式 的值小于 10 Case Is > 5, -1 to 2' 若 测试表达式 的值在大于 5 或在 -1~2 之间 ( 含 -1 和 2) 注意 : 当用关键字 Is 定义条件时, 只能是简单的条件, 不能用逻辑运算符将两个或多个条件组合在一起, 比如 : Case Is > 1 And Is < 10 该语句是不合法的 例 3-6 用 Case 语句实现例 3-3 所完成的功能 程序代码如下 : Private Sub Command1_Click() Dim score As Integer, temp As String score = Val(Text1.Text) temp = " 成绩等级为 :" Select Case score Case 0 To 59 Label2.Caption = temp + " 不及格 " Case 60 To 69 Label2.Caption = temp + " 及格 " Case 70 To 79 Label2.Caption = temp + " 中 " Case 80 To 89 Label2.Caption = temp + " 良 " Case 90 To 100 Label2.Caption = temp + " 优 " Case Else Label2.Caption = " 成绩出错 " End Select 例 3-7 输入年 月份, 输出该月的天数 分析 : 如果该月是 或 12 月份, 那么就有 31 天 ; 如果该月是 或 11 月份, 那么就有 30 天 ; 而如果是 2 月份, 还要看该年是否为闰年, 闰年 29 天, 否则为 28 天 判断闰年的条件是 (y 代表年份 ):

73 64 Visual Basic 程序设计 y Mod 4 = 0 And y Mod 100 <> 0 Or y Mod 400 = 0 根据以上分析, 编写代码如下 ( 界面设计略 ): Private Sub Command1_Click() Dim y As Integer, m As Integer, d As Integer y = InputBox(" 请输入年份 :") m = InputBox(" 请输入月份 :") Select Case m Case 1, 3, 5, 7, 8, 10, 12 d = 31 Case 4, 6, 9, 11 d = 30 Case 2 If y Mod 4 = 0 And y Mod 100 <> 0 Or y Mod 400 = 0 Then d = 29 Else d = 28 End If End Select Print y; " 年 "; m; " 月有 "; d; " 天 " 例 3-8 将一个十六进制符号转换为十进制数值, 运行效果如图 3-4 所示 代码如下 : Private Sub Command1_Click() Dim s As String, n As Integer s = Text1.Text Select Case s Case "a", "A" 图 3-4 十六进制转换运行图 n = 10 Case "b", "B" n = 11 Case "c", "C" n = 12 Case "d", "D" n = 13 Case "e", "E" n = 14 Case "f", "F" n = 15 Case Else n = Val(s) End Select Text2.Text = n 3.3 循环控制结构 科学出版社职教技术出版中心 如果你不能创建循环代码结构, 往往不得不编写成百上千行代码 循环结构可以重

74 第 3 章控制结构 65 复执行一行或多行代码,Visual Basic 提供了 3 种不同风格的循环结构, 即 For 循环 While 循环和 Do 循环 所有类型的循环的基本作用是相同的, 那就是减少重复执行一项任务时需要的代码语句的数目 For Next 循环 如果已知循环次数, 则使用 For Next 语句最方便 直观 其语法格式如下 : For < 循环变量 > = < 初值 > To < 终值 > [Step < 步长 >] [< 循环体 >] [Exit For] Next [< 循环变量 >] 执行过程 : 首先将 < 初值 > 赋值给 < 循环变量 >, 然后判断 < 循环变量 > 是否 超过 < 终值 >, 若为 True 时, 则结束循环, 执行 Next 后面的下一条语句 ; 否则, 执行 < 循环 体 > 内的语句, 再将 < 循环变量 > 自动按 < 步长 > 增加或减少, 再重新判断 < 循环变量 > 当前的值是否 超过 < 终值 >, 若为 True 时, 则结束循环, 否则重复上述过程, 直到其结果为真 这里所说的 超过 有两种含义, 当步长为正值时, 检查 < 循环变量 > 的值是否大于 < 终值 >; 当步长为负值时, 检查 < 循环变量 > 的值是否小于 < 终值 > 以下是关于 For Next 语句的几点说明 : 1) 初值 终值 和 步长 均是数值表达式, 不一定是整数, 还可以是小数 2) 如果 步长 为 1, 则 Step 可以省略 3) 关于 Exit For: 循环中可以在任何位置上放置任意个 Exit For 语句, 以随时退出循环 Exit For 经常在条件判断之后使用, 例如,If Then 能将控制权转移到紧接在 Next 之后的语句 4) 循环次数的计算公式为 : 循环次数 =Int( 终值 - 初值 )/ 步长 +1 例 3-9 计算 1~100 之间自然数之和 程序代码如下 : Dim i As Integer, sum As Integer For i = 1 To 100 sum = sum + i 'sum 起到了累加器的作用 Print sum sum 变量的作用是 :i 每循环一次,sum 就将 i 的值和它原来的值累加后再赋给自己 所以, 当循环结束时,sum 中存放的就是 的结果 ( 其中 0 就是 sum 的初值 在 Visual Basic 中, 任何变量都有默认的初值, 其中, 数值型变量的初值为 0, 字符型变量的初值为空字符 ) 例 3-10 计算 10 的阶乘 分析 :10! = = 9! 10, 也就是说, 一个自然数的阶乘, 等于该自然数与前一个自然数阶乘的乘积, 即从 1 开始连续地乘以下一个自然数,

75 66 Visual Basic 程序设计 直到 10 为止 代码如下 : Private Sub Command1_Click() Dim i As Integer, s As Single s = 1 ' 给 s 赋初值 1 For i = 1 To 10 s = s * i 's 用做存放累乘结果的 容器 Print s 说明 : 1) 必须给变量 s 赋初值 1, 因为 s 用做存放累乘结果的 容器 如果不赋初值, 则最后输出的结果必定为 0, 因为,s 初值默认为 0 2) 这里的 s 不能定义为 Integer, 因为 10 的阶乘的值已远远超过了整数的范围 例 3-11 计算 1!+2!+3!+ +10! 程序代码如下 : Private Sub Command1_Click() Dim i As Integer, sum As Single, a As Single a = 1 For i = 1 To 10 a = a * i sum = sum + a Print sum 语句 a = a * i 也称乘法器 先将 a 置 1( 不能置 0) 在循环程序中, 常用累加器和累乘器来完成各种计算任务 3 2n 1 x x x 例 3-12 编程序求表达式 s = 的值,x n 用 InputBox 输入, 1! 2! n! 并在窗体上输出结果值 分析 : 初次遇到此题, 读者可能感觉无从下手, 但把此题与例 3-11 相联系, 细细一想, 还有点相似, 都是 For i = 1 To n s = s + 通项式 2n 例 3-11 的通项式为 n!, 而本题的通项式为 x 1 / n!, 根据以上分析, 编写代码如下 : Private Sub Command1_Click() Dim i As Integer, x As Single, n As Integer, s As Single, t As Single x = InputBox(" 请输入 x 的值 :") n = InputBox(" 请输入 n 的值 :") t = 1 For i = 1 To n t = t * i s = s + x ^ (2 * n - 1) / t Print s 科学出版社职教技术出版中心

76 第 3 章控制结构 While Wend 循环 当一个循环开始运行时, 有时并不知道这个循环需要运行的准确次数 你可能启动一个 For 循环, 并知道它的上限大于它需要重复运行的次数 ( 如果你知道该值 ), 请查找该循环中的一个条件, 当条件满足时, 使用 Exit For 语句退出该循环 不过这样做的效率极低, 而且常常无法实现 如果需要创建一个循环, 但是你不知道它要执行多少次, 那么请使用 While 循环 While 循环的语法格式如下 : While < 条件 > 循环体 Wend 功能 : 当条件为真时执行循环体 While 循环语句的执行过程如下 : 如果条件为 True, 则执行循环体, 当遇到 Wend 语句时, 控制返回到 While 语句, 并再一次检查条件, 如果条件还是为 True, 则重复执行 如果不为 True, 则程序会从 Wend 语句之后的语句继续执行 While 循环也可以是多层的嵌套结构 每个 Wend 匹配最近的 While 语句 例 3-13 小李今年 8 岁, 她母亲比她大 28 岁, 编程计算出她的母亲在几年后比她的年龄大一倍, 以及那时母女的年龄 代码如下 : Dim n As Integer n = 8 While n * 2 <> n + 28 n = n + 1 Wend Print (n - 8) & " 年后, 母女的年龄分别是 :" & n & " 和 " & n Do Loop 循环 While 循环是从旧的 Basic 语言中保留下来的, 它同 Do 循环功能相同, 但是 Do 循环具有更大的灵活性, 所以一般编程中不使用 While Wend 循环结构, 而使用 Do Loop 循环结构 Do 循环的格式有如下两种格式一 : Do [While Until < 条件 >] 循环体 Loop 格式二 : Do 循环体 Loop [While Until < 条件 >] Do 循环语句的功能是 : 当指定的条件为 True 或直到指定的条件变为 True 之前重复

77 68 Visual Basic 程序设计 执行一组语句 说明 : 1) 选项 While 当条件为 True 时执行循环体, 选项 Until 当条件为 False 时执行循环体 2) 循环体中可以使用 Exit Do 来退出循环, 将控制转移到 Do 循环后一语句 例 3-14 用以上 4 种格式输出 1~100 之间自然数之和 (1)Do While/Loop 格式 Dim i As Integer, s As Integer Do While i < 100 i = i + 1 s = s + i Loop Print s (3)Do/ Loop While 格式 Dim i As Integer, s As Integer Do i = i + 1 s = s + i Loop While i < 100 Print s (2)Do Until/Loop 格式 Dim i As Integer, s As Integer Do Until i >= 100 i = i + 1 s = s + i Loop Print s (4)Do /Loop Until 格式 Dim i As Integer, s As Integer Do i = i + 1 s = s + i Loop Until i >= 100 Print s 例 3-15 猜数游戏, 随机生成一个 [1,100] 整数 m, 用户通过 InputBox 函数输入一个整数 n, 假如 m = n, 那么显示猜中信息 ; 假如 m>n, 那么显示小于信息 ; 假如 m < n, 那么显示大于信息 要求总次数不能超过 10 次 分析 : 先通过 Rnd 函数得到要猜的数字 m 因为不知道循环的确切次数, 所以我们使用 Do While Loop 循环来实现 先引入一个变量 i, 初始为 0, 在循环体中使 i 的值加 1, 那么我们可以在循环的条件中去判断 i 的值是否小于 10, 这样能保证循环最多运行 10 次 然后弹出输入框用于用户输入, 假如输入的数字 n 等于 m, 那么程序结束 当 n 等于 m 时我们可以使用 Exit Do 来跳出 Do While Loop 循环 依据以上分析, 可得程序代码如下 : Dim i As Integer, m As Integer, n As Integer Randomize m = Int(Rnd * ) ' 产生一个 的任意整数 Do While i < 10 i = i + 1 n = InputBox(" 请输入第 " + Str(i) + " 个数 :") If m = n Then MsgBox (" 恭喜您猜中了!") Exit Do ElseIf m > n Then MsgBox (" 太小了, 继续猜!") 科学出版社职教技术出版中心

78 第 3 章控制结构 69 ElseIf m < n Then MsgBox (" 太大了, 继续猜!") End If Loop If i = 10 Then MsgBox (" 猜数失败, 游戏结束!") 例 3-16 编程, 用 InputBox 函数输入 x 值, 求下列级数和, 要求直到末项小于 10 5 为止 n x x x x 1+ x ! 3! 4! n! 分析 : 本题与例 3-12 有点相似, 只不过例 3-12 的条件是最后一项是定值, 而本题 5 是最后一项要大于或等于 10, 由此可编写程序如下 : Dim i As Integer, s As Single, p As Single Dim x As Single, t As Single p = 1 s = 1 x = InputBox(" 请输入 x 的值 :") Do i = i + 1 p = p * I 'p 表示 i 的阶乘 t = x ^ i / p 't 表示通项式 s = s + t Loop Until t < 10 ^ -5 Print s 例 3-17 输入两个正整数, 求它们的最大公约数 分析 : 我们可以使用 辗转相除法 解此题 辗转相除法 算法就是求出 m/n 余数 r, 若 r=0,n 即为最大公约数 ; 若 r 非 0, 则把原来的分母 n 作为新的分子 m, 把余数 r 作为新的分母 n 继续求解 依据以上分析, 可编写程序代码如下 : Private Sub Command1_Click() Dim m As Integer, n As Integer, r As Integer m = InputBox(" 请输入 m 的值 :") n = InputBox(" 请输入 n 的值 :") r = m Mod n Do Until r = 0 m = n n = r r = m Mod n Loop Print " 最大公约数 :" & n 多重循环 在前面的例子中,For 循环语句中的循环体仅包含了简单的语句, 这种类型的循环结构称为单重循环 如果循环体中又包含了另一个 For 循环结构, 这样就构成了多重

79 70 Visual Basic 程序设计 For 循环 这种情况称为循环的嵌套, 嵌套层数没有具体限制, 其基本要求是 : 每个循 环必须有一个唯一的控制变量名, 内层循环的 Next 语句必须放在外层循环的 Next 语句 之前 例 3-18 我国古代著名的 百钱买百鸡 : 每只公鸡值 5 元, 每只母鸡值 3 元, 三只小鸡值 1 元, 现在用 100 元去买 100 只鸡, 请问公鸡 母鸡和小鸡各买多少只? 分析 : 设买公鸡 x 只 母鸡 y 只 小鸡 z 只, 依题意, 列出下列方程组 : x++= y z 100 5x+3 y+z/3=100 该题无法直接求解, 计算机中处理此类问题, 通常采用 穷举法 所谓穷举法就 是将各种可能的值一一列出来进行匹配, 将符合条件的输出即可 开始先让 x 初值为 1, 以后逐次加 1, 求 x 为何值时, 条件 3y+z/3=100 成立 如 果当 x 达到 20 时还不能使条件成立, 则可以断定此题无解 同样,y 的值也不可能超过 33 界面设计略, 程序如下 : Dim x As Integer, y As Integer, z As Integer For x = 0 To 20 For y = 0 To 33 z = x - y If 5 * x + 3 * y + z / 3 = 100 Then Print x, y, x End If Next y Next x 例 3-19 求 3~100 之间的所有的素数, 并统计素数的个数 ( 只能被 1 和它本 身整除的数称为素数 ) 分析 : 首先来看如何判断一个数是否为素数 例如对于 24, 我们只要判断它能否被 整除即可, 这是因为若 n 能被某一个整数整除, 则可表示为 n=a * b,a 和 b 之中必然有一个小于或等于 Sqr(n) 判断 n 是否为素数的过程就是从 2~Sqr(n) 依次去整除 n 的过程, 如果其中有一个数能够整除 n, 则 n 肯定不是素数 解此题只要我们从 3 一直遍历到 100, 依次判断每一个数是否为素数, 如果是就输出, 依据以上分析, 可编 写程序代码如下 : Dim i As Integer, j As Integer Dim t As Integer ' 统计素数的个数 For i = 3 To 100 For j = 2 To Int(Sqr(i)) If i Mod j = 0 Then Exit For End If Next j If j > Sqr(i) Then Print i 科学出版社职教技术出版中心

80 第 3 章控制结构 71 t = t + 1 End If Print " 素数的个数 :"; t 例 3-20 编程求图 3-5 所示金字塔 界面设计略, 代码如下 : Dim i As Integer, j As Integer For i = 1 To 6 Print Space(15 - i); For j = 1 To 2 * i - 1 Print "*"; Next j Print 例 3-21 编程求图 3-6 所示乘法九九表 图 3-5 金字塔 图 3-6 乘法九九表 分析图 3-6 可知 : 如果将每一个等式作为一个方阵的节点, 则每一个等式出现的位置上行列的数字是相同的 因此, 可以用如下嵌套的循环作为对一个节点的描述 : For i=1 to 9 For j=1 to i < 循环体 > Next j 这里,< 循环体 > 为乘法等式 :s = i & "*" & j & "=" & i * j 现在, 主要的问题是控制每个表达式出现的位置, 这可以用 Tab 函数来实现, 假设给每个等式的宽度为 10, 第一个等式出现在第 3 列, 则 Tab 函数可以这样表示 :Tab ((j-1) * 10+3); 依据以上分析, 可编写程序代码如下 : Dim i As Integer, j As Integer Dim s As String For i = 1 To 9 For j = 1 To i s = i & "*" & j & "=" & i * j Print Tab((j - 1) * ); s; Next j Print

81 72 Visual Basic 程序设计 习题三 一 阅读下列程序, 写出运行结果 程序 1 Form1.Cls w = 3 For k = 2 To 6 Step 2 Form1.Print "w="; w, "k="; k w = w + 1 Next k Form1.Print "w="; w, "k="; k 写出程序运行后, 单击窗体,Form1 上的输出结果 程序 2 Dim x As String Dim i As Integer, n As Integer Form1.Cls x = "ABCDEFGHKL" n = Len(x) For i = n To 1 Step -2 Form1.Print Tab(20 - i); Mid(x, i, 1) 写出程序运行后, 单击窗体,Form1 上的输出结果 程序 3 Private Sub Command1_Click() n = 0: x = 1: y = 0 Do While x < 20 n = n + 1 y = x + y x = x * (x + 1) Loop Text1.Text = "n=" & Str(n) Text2.Text = "x=" & Str(x) Text3.Text = "y=" & Str(y) 分别写出程序运行后, 单击按钮 Command1, 文本框 Text1 Text2 和 Text3 的 Text 值 程序 4 科学出版社职教技术出版中心

82 第 3 章控制结构 73 Dim y As Integer Do y = InputBox("y=") If (y Mod 10) + Int(y / 10) = 10 Then Print y Loop Until y = 0 运行时, 单击窗体后依次输入 , 写出运行结果 程序 5 Dim i As Integer, n As Integer Do While i < 32 i = (i + 1) * (i + 1) n = n + 1 Loop Print n 写出程序运行后, 单击窗体,Form1 上的输出结果 程序 6 Private Sub Command1_Click() Dim i As Integer, n As Integer Dim x As String, c As String x = InputBox("x=") n = Len(x) If n Mod 2 = 1 Then c = Mid(x, n \ 2 + 1, 1) For i = 1 To Len(x) \ 2 c = Mid(x, Len(x) i, 1) + c + Mid(x, i, 1) x = c Form1.Cls Print x 运行时, 第一次单击按钮 Command1 后输入 abc, 写出运行结果 第二次单击按钮 Command1 后输入 abcd, 写出运行结果 程序 7 Dim i As Integer, j As Integer Dim star As String star = "*" For i = 0 To 6 For j = 6 - i To 6 Form1.Print star; Next j Form1.Print 写出程序运行后, 单击窗体,Form1 上的输出结果

83 74 Visual Basic 程序设计 程序 8 For i = 1 To 7 Print Spc(7 - i); If i = 1 Then Print "*" Else Print "*"; Spc(2 * (i - 1) - 1); "*" End If 写出程序运行后, 单击窗体,Form1 上的输出结果 程序 9 Dim str1, str2 As String Dim s As String Dim i As Integer str1 = "abcdefghijk" For i = Len(str1) To 1 Step -2 str2 = str2 & Mid(str1, i, 1) Print str2 写出程序运行后, 单击窗体,Form1 上的输出结果 程序 10 Dim k As Integer, s As Integer, j As Integer Form1.Cls For k = 1 To 5 s = 0 For j = k To 5 s = s + 1 Next j Next k Print "s="; s 写出程序运行后, 单击窗体,Form1 上的输出结果 二 程序填空 1. 程序说明 从键盘上输入若干个学生的考试分数, 当输入负数时结束输入, 然后输出其中的最高分数和最低分数 程序 Dim i As Integer, imax As Integer, imin As Integer i = InputBox(" 输入一个成绩 :") imax = i imin = i 科学出版社职教技术出版中心

84 第 3 章控制结构 75 Do While (1) If i > imax Then imax = i ElseIf (2) Then imin = i End If i = InputBox(" 输入一个成绩 :") Loop Print " 最高成绩 :"; imax, " 最低成绩 :"; imin 2. 程序说明 由输入对话框输入 n( 设 n 为大于零且小于 30 的自然数 ), 计算下列表达式的值, 并在标签框 Label1 上显示 n (+1) n 程序 Dim n As Integer, sum As Double, k As Integer n = Val(InputBox("n=", " 请输入自然数 n(n>0 且 n<30)")) Do (1) n = Val(InputBox("n=", " 请重输 ")) Loop sum = 0 (2) Do k = k + 1 sum = (3) Loop Until k > = n Label1.Caption = "sum=" + Str(sum) 3. 程序说明 本程序用于处理文本框 Text1.Text 中的内容, 假设文本框中有偶数个字符 要求将文本框中的内容从头至尾中间依次各取字符, 组成一个新的字符串 Str2, 并在窗体上输出 例如 :Text1.Text=" ", 则 Str2=" " 程序 Dim Str1 As String, Str2 As String Str1 = Text1.Text Str2 = "" m = 0 Do (1) Str2 = Str2 + (2) Str2 = Str2 + (3) m = m + 1 Loop Form1.Print Str2 4. 程序说明 本程序求 3~100 之间的所有素数 ( 质数 ) 并统计个数 ; 素数的个数显示在窗体 Form1 上

85 76 Visual Basic 程序设计 程序 Private Sub Command1_Click() Dim count As Integer, flag As Boolean Dim t1 As Integer, t2 As Integer count = 0 For t1 = 3 To 100 flag = True For t2 = 2 To Int(Sqr(t1)) If (1) Then flag = False Next t2 (2) count = count + 1 End If Next t1 (3) 程序说明 计算 的值并打印出来 程序 Dim i As Integer Dim k As Single Dim p As Integer Dim s As Single (1) s = 0 For i = (2) k = p / i (3) s = s + k Form1.Print "s="; s 三 程序设计 1. 用输入对话框输入 x, 根据下式计算对应的 y, 并在窗体上输出 y 的值 x+sin x x> 10 y= 0 x=10 3 2x+6 x< 随机产生 n 个两位正整数 (n 由输入对话框输入, 且 n>0), 求出其中的偶数之 和, 并在标签框 Label1 上显示 3. 编写过程 Commandl_Click, 用 InputBox 函数输入 100 个学生的成绩, 统计后依 次用标签控件 Labell~Labe13 显示优秀 (85~100) 通过 (60~84) 和未通过 ( 小于 60) 的人数 科学出版社职教技术出版中心 4. 编制事件程序 Command1_Click, 执行该过程时输入 n, 并计算下列表达式的值,

86 第 3 章控制结构 77 然后将计算结果在文本框控件 Text1 中显示 n ( n+) ( 1 n +) 2 5. 打印出所有的水仙花数 所谓水仙花数是指一个三位数, 其各位数字立方和等 于该数 例如,153 是一水仙花数, 因为 153= 编程求出所有小于或等于 100 的自然数对 自然数对是指两个自然数的和与差都是平方数 如数对 10 与 26 的和 36 差 16 都是平方数, 则 10 与 26 是自然数对 7. 搬砖问题 :36 块砖 36 人搬, 男搬 4, 女搬 3, 两个小儿抬一砖, 要求一次全搬完, 问需男 女 小儿各多少人? 2 π 用 = 近似公式求 π 值, 当 <10 时不再累加 n 2 n 用近似公式 e 求自然对数的底 e 的值, 直到 1! 2! 3! n! n! <10 为止 10. 求 S 的值 S=+ 1 (+ 1 2)+ (+ 1 2+)+ + 3 ( N )( 令 N=50) 11. 一个两位数的正整数, 如果将其个位数与十位数对调所生成的数称为对调数, 如 28 是 82 的对调数 现给定一个两位的正整数, 请找到另一个两位的正整数, 使这两个数之和等于它们各自的对调数之和, 如 56+32=65+23

87 第 4 章数 组 在前面所列举的例子中, 使用的都是简单数据类型的数据, 可以通过简单变量名来访问它的一个元素 除简单数据类型外,Visual Basic 还提供了数组类型 数组是一些具有相同类型的元素按一定顺序组成的序列, 它们被顺序地安排在内存中的一段连续的存储区中 数组中的每一个元素都是变量, 每个元素在数组中都有一定的位置, 通过下标来和其他元素相互区分 可以通过数组名和下标来存取数组元素 4.1 数组的概念 数组是任何高级语言都具有的一种数据类型 如果用户曾经使用过其他编程语言, 那么一定会熟悉数组的概念 数组的基本功能是存储一系列类型一致的变量, 并且可以使用相同的名称引用这些变量, 引用时用数字 ( 索引 ) 来识别它们 当使用多个类型和功能一致的数据时, 使用数组可以缩短和简化程序 一个数组可以是一维的, 也可以是多维的 一般二维数组用于表示一个平面内需要两个坐标来表示的元素 ; 而三维数组用于表示一个立体空间内需要三个坐标来表示的元素 在 Visual Basic 中数组维数最多可以达到 60 维 一般可以将数组分成两类 : 一类是固定数组, 该类数组的大小始终保持不变 ; 另一类是动态数组, 该类数组的大小在程序运行过程中可以改变 一维数组的定义 数组如同其他变量一样, 应当先定义后使用, 目的是通知计算机为该数组分配一定内存区域, 数组的名称也就是这个区域的名称, 该区域的每个单元都有自己的地址, 该地址用下标表示 一维数组的定义格式如下 : [Dim Private Public] 数组名 ( 下标上界 )As 类型说明 : 1) 数组名的命名规则与其他简单变量相同 2) 数组必须先定义后使用 如果不指明数组的下标, 系统默认是 0 例如: Dim m(5) As Integer 上述语句定义了一个一维数组, 数组的名称为 m, 类型为 Integer( 整型 ), 占据 6 个 (0~5) 整型变量的空间 (12 字节 ) 3) 如果希望下标从 1 开始, 可以通过 Option Base 语句来设置 例如 : Option Base 1 Dim m(5) As Integer 科学出版社职教技术出版中心

88 第 4 章数 组 79 上述语句定义了一个一维数组, 数组的名称为 m, 类型为 Integer( 整型 ), 占据 5 个 (1~5) 整型变量的空间 (12 字节 ) 4) 如果要指定数组的下标, 使程序看起来更加清晰, 那么可以使用 To 来设置 例如 : Dim Age(20 To 45) 5) 用 Dim 语句定义数组时, 该语句把数值类型数组中的全部元素都初始化为 0, 而把字符串类型数组中的全部元素都初始化为空字符串 注意 :Option Base 指定的下标只能是 0 或 1, 而使用 To 后, 下标的范围可以是 ~32767 此外, 在某些情况下, 使用 To 能更好地反映事物的特性, 比如定义的年龄数组变量 下面的例子将演示数组是如何赋值与输出的 : Dim a(5) As Integer, i As Integer Randomize For i = 0 To 5 a(i) = Int(Rnd * 10) ' 赋值 Print a(i); ' 输出 Print 例 4-1 显示数列 中前 30 项的值, 要求每 5 个为一行 我们可以使用数组表示数列, 如表 4-1 所示一一对应, 那么就有 a(3)=a(1)+a(2), a(4)=a(2)+a(3),a(5)=a(3)+a(4) 表 4-1 数列与数组对应表 a(1) a(2) a(3) a(4) a(5) a(6) a(7) 根据以上分析, 只要我们指定 a(1) 和 a(2) 的值, 那么 a(3) 后面的值就可以根据前面两项的值得出, 依此想法, 编写代码如下 : Dim a(1 To 30) As Long, i As Integer a(1) = 1 a(2) = 1 For i = 3 To 30 a(i) = a(i - 1) + a(i - 2) For i = 1 To 30 Print a(i); If i Mod 5 = 0 Then Print 例 4-2 输入 5 位评委的分数, 去掉最高分与最低分, 求剩下 3 位评委的平均分 要求界面上输出 5 位评委的分数 最高分 最低分与平均分

89 80 Visual Basic 程序设计 界面设计略, 代码如下 : Dim a(1 To 20) As Single, i As Integer Dim Max As Single, Min As Single, Sum As Single a(1) = InputBox(" 请输入第 1 位评委的分数 :") Max = a(1) ' 最大值变量赋初值 Min = a(1) ' 最小值变量赋初值 Sum = a(1) ' 累加值变量赋初值 Print " 评委的分数 :"; a(1); ' 输出第一个数 For i = 2 To 5 a(i) = InputBox(" 请输入第 " & i & " 位评委的分数 :") If a(i) > Max Then Max = a(i) ElseIf a(i) < Min Then Min = a(i) End If Sum = Sum + a(i) Print a(i); Sum = Sum - Max - Min Print Print " 最高分 :"; Max, " 最低分 :"; Min, " 平均分 :"; Sum / 3 例 4-3 编程产生 100 个 [0,99] 范围内的随机整数, 统计个位上的数字分别为 1, 2,3,4,5,6,7,8,9,0 的数的个数并打印出来 代码如下 : Dim a(1 To 100) As Integer Dim x(1 To 10) As Integer Dim i As Integer, p As Integer ' 产生 100 个 [0,99] 范围内的随机整数 For i = 1 To 100 a(i) = Int(Rnd * 100) If a(i) < 10 Then Form1.Print Space(2); a(i); Else Form1.Print Space(1); a(i); End If If i Mod 10 = 0 Then Form1.Print ' 每行 10 个打印出来 ' 统计个位上的数字分别为 1,2,3,4,5,6,7,8,9,0 的数的个数 ' 并将统计结果保存在数组 x(1),x(2),,x(10) 中, 将统计结果打印出来 For i = 1 To 100 p = a(i) Mod 10 ' 求个位上的数字 If p = 0 Then p = 10 x(p) = x(p) + 1 Form1.Print " 统计结果 " For i = 1 To 10 p = i If i = 10 Then p = 0 Form1.Print " 个位数为 " + Str(p) + " 共 " + Str(x(i)) + " 个 " 科学出版社职教技术出版中心

90 第 4 章数 组 二维及多维数组的定义 二维数组定义的格式如下 : [Dim Private Public] 数组名 ( 下标上界, 下标上界 )As 类型多维数组定义的格式依此类推, 如三维数组格式如下 : [Dim Private Public] 数组名 ( 下标上界, 下标上界, 下标上界 )As 类型我们可以将二维数组设想成是由行和列组成的矩阵或表格, 第一个 下标上界 代表行, 第二个 下标上界 代表列, 例如 : Dim a(1 To 2,1 To 3) As Integer 上述语句定义了一个 2 行 3 列的二维数组 a, 每一个元素可设想成如表 4-2 所示存放 表 4-2 数组 a(1to2,1to3) 的元素 a(1,1) a(1,2) a(1,3) a(2,1) a(2,2) a(2,3) 例 4-4 建立一个 5 行 5 列的二维数组, 两条对角线上的元素为 1, 其余元素为 0, 程序执行后效果如图 4-1 所示 我们知道, 用 Dim 定义数组时, 如果该数组类型为数值类型, 那么初始化为 0 我们只要对两条对角线重新赋值为 1 即可, 代码如下 : 图 4-1 二维数组 Dim a(1 To 5, 1 To 5) As Integer, i As Integer, j As Integer For i = 1 To 5 a(i, i) = 1 a(i, 6 - i) = 1 For i = 1 To 5 For j = 1 To 5 Print a(i, j); Next j Print 例 4-5 有一个 3 4 的矩阵 a, 找出其中值最大的那个元素的值以及其所在的行号和列号 a= 算法如下 :1 读入 3 4 的矩阵 a 各元素的值 ;2 将 a(1,1) 的值赋给变量 max;3 将 max 与其余各元素值相比较, 如果有某一个 a(i,j)>max, 则将此 a(i,j) 送入 max, 同时将

91 82 Visual Basic 程序设计 此时的 i,j 值记下来赋给变量 row( 行号 ) 和 col( 列号 );4 输出 max 和 i,j 的值 图 4-2 程序代码如下 : Dim i As Integer, j As Integer Dim max As Single, row As Integer, col As Integer Dim a(1 To 3, 1 To 4) As Single For i = 1 To 3 For j = 1 To 4 a(i, j) = Val(InputBox(" 请输入 ")) Next j, i max = a(1, 1) row = 1 col = 1 Print " 数组 A:" For i = 1 To 3 For j = 1 To 4 Print a(i, j); If a(i, j) > max Then max = a(i, j) row = i col = j End If Next j Print Print " 最大数是 a("; row; ","; col; ")="; max 该程序运行后, 如果按照 1,2,3,4,9,8,7,6,0, 程序的运行结果 1,8,7 的顺序输入数据, 则可以得到如图 4-2 所示的结果 例 4-6 查找考场教室号 某课程统考凭准考证入场, 考场教室安排如图 4-3 所示 编制程序, 查找准考证号码所对应的教室号码 图 4-3 准考证号码所对应的教室号码表 分析 : 为便于查找, 通过二维数组 rm 建立这两种号码的对照表 数组 rm 的每一行存放了一个教室资料 ( 包含准考证号码范围和教室号码 ) 当判断到某个给定准考证号码落在某一行的准考证号码范围内时, 则该行中的教室号码为所求 依据以上分析, 建立界面, 如图 4-4 左所示 编写程序代码如下 : Private Sub Command1_Click() Dim rm(6, 3) As Integer Dim n As Integer, s As String 科学出版社职教技术出版中心

92 第 4 章数 rm(1, 1) = 2101: rm(1, 2) = 2147: rm(1, 3) = 102 rm(2, 1) = 1741: rm(2, 2) = 1802: rm(2, 3) = 103 rm(3, 1) = 1201: rm(3, 2) = 1287: rm(3, 3) = 114 rm(4, 1) = 3333: rm(4, 2) = 3387: rm(4, 3) = 209 rm(5, 1) = 1803: rm(5, 2) = 1829: rm(5, 3) = 305 rm(6, 1) = 2511: rm(6, 2) = 2576: rm(6, 3) = 306 s = " 无此准考证号码 " ' 未找到就显示此信息 n = Val(Text1.Text) For i = 1 To 6 If n >= rm(i, 1) And n <= rm(i, 2) Then s = rm(i, 3) Exit For End If Text2.Text = s Text1.SetFocus 程序执行后的验证效果如图 4-4 右所示 ' 显示教室号码 ' 设置焦点 组 83 图 4-4 查找考场教室号 例 4-7 编写程序, 将一个 3 4阶的矩阵转置后存到另一个矩阵中并输出转置后的矩阵 例如 : 矩阵 A= , 转置后的矩阵为 : 程序代码如下 : Option Base 1 Dim a(3, 4) As Integer, b(4, 3) As Integer Dim i As Integer, j As Integer Print "3*4 矩阵 " For i = 1 To 3 For j = 1 To 4 a(i, j) = i + j 1 Print a(i, j); Next j Print ' 以下代码进行转置 ' 初始化数组 a

93 84 Visual Basic 程序设计 Print "4*3 矩阵 " For i = 1 To 4 For j = 1 To 3 b(i, j) = a(j, i) Print b(i, j); Next j Print ' 对数组 a 进行转置 动态数组的定义 与静态数组相反, 动态数组在定义时并不知道数组的大小, 要求在运行期确定, 并根据需要在运行期可改变数组的大小, 这便是动态数组 在声明动态数组时不需要给出数组的长度, 只保留一个空维数表即可 创建动态数组的步骤如下 1) 声明数组为动态数组, 只需给数组赋予一个空维数表 例如, 声明一个局部动态数组 a, 可以使用如下语句 : Dim a() 2) 在需要指定数组大小时, 再使用 ReDim 语句分配数组中实际元素的个数 ReDim 数组名 ( 下标 1[, 下标 2 ]) 例如, 给上例的 a 数组指定元素个数为 9 时, 可以使用如下语句 : ReDim a(8) 通常是使用已经赋过值的整型变量来指定元素个数 例如 X=8, 上面的语句等价为 ReDim a(x) 声明 F 为动态数组的示例如下 : Dim F() As Integer, Size As Integer ' 声明一个整型动态数组 Size = 20 ReDim F(Size) 说明 : 1) 在过程中可以多次使用 ReDim 来改变数组的大小, 也可以改变数组的维数 2) 使用 ReDim 语句会使原来数组中的值丢失, 可以在 ReDim 语句后加 Preserve 参数来保留数组中的数据, 但使用 Preserve 后只能改变最后一维的大小 ( 即不能改变数组的维数 ) 例 4-8 在窗体上显示杨辉三角形 杨辉三角形是一个二维图形, 其特点是两个腰上的数都为 1, 其他位置上的数为上一行相邻两个数之和, 它的每一行均是在上一行的基础上计算出来的, 该三角形的形状如图 4-5 所示 图 4-5 杨辉三角形 科学出版社职教技术出版中心

94 第 4 章数 组 85 程序代码如下 : Const max = 9, pos = 27 Dim a() ' 声明动态数组 Dim i As Integer, j As Integer, n As Integer Do n = InputBox(" 请输入杨辉三角的行数 :") Loop Until n >= 1 And n <= max ' 合法性检查 ReDim a(n, n) ' 数组重定义 For i = 1 To n ' 第一列和对角线赋初值 a(i, i) = 1 a(i, 1) = 1 For i = 3 To n ' 计算数值 For j = 2 To n - 1 a(i, j) = a(i - 1, j - 1) + a(i - 1, j) Next j, i For i = 1 To n ' 显示 For j = 1 To i Print Tab(pos - 2 * i + 4 * (j - 1)); a(i, j); Next j Print 4.2 排序实例 由于数组中保存着同一数据类型的数据, 而有时为了更有效地使用数组, 需要将数组中的元素进行排序 排序有很多种方法, 如冒泡排序 选择排序 插入排序 快速排序 合并排序等 下面仅讨论一维数组的冒泡排序和选择排序 1. 冒泡排序 以升序为例, 冒泡排序的基本思想介绍如下 1) 有 n 个数 ( 存放在数组 a(n) 中 ), 第一趟将每相邻两个数比较, 小的调到前头, 经 n-1 次两两相邻比较后, 最大的数已 沉底, 放在最后一个位置, 小数上升 浮起 2) 第二趟对余下的 n-1 个数 ( 最大的数已 沉底 ) 按上法比较, 经 n-2 次两两相邻比较后得次大的数 3) 依此类推,n 个数共进行 n-1 趟比较, 在第 j 趟中要进行 n-j 次两两比较 例如, 有 5 个数据, 依次为 , 要求从小到大排序 冒泡排序的过程如下 第一趟处理 : 1)a(1) 与 a(2) 进行比较, 发现 a(1) 大于 a(2), 马上交换 这时当前元素依次为 : )a(2) 与 a(3) 进行比较, 发现 a(2) 小于 a(3), 不作交换

95 86 Visual Basic 程序设计 3)a(3) 与 a(4) 进行比较, 发现 a(3) 大于 a(4), 马上交换 这时当前元素依次为 : )a(4) 与 a(5) 进行比较, 发现 a(4) 大于 a(5), 马上交换 这时当前元素依次为 : 这时第一趟处理已完成, 我们从中可以确定最后一个元素为最大 接着进行第二趟处理, 对余下的 n-1 个数按上法比较, 经 n-2 次两两相邻比较后得到次大的数 依次类推, 选择了 n-1 次后, 这个数列已按升序排列 编制程序如下 : Dim i As Integer, j As Integer, n As Integer, t As Integer n = InputBox(" 请输入数组元素的个数 :") ReDim a(n) As Integer Randomize For i = 1 To n ' 产生数据 a(i) = Int(Rnd * 100) For i = 1 To n - 1 ' 排序 For j = 1 To n - i If a(j) > a(j + 1) Then t = a(j) a(j) = a(j + 1) a(j + 1) = t End If Next j For i = 1 To n Print a(i); 2. 选择排序 ' 显示 下面也以升序为例, 介绍选择排序的基本思想 1) 对有 n 个数的序列 ( 存放在数组 a(n) 中 ), 从中选出最小的数, 与第 1 个数交换位置 2) 除第 1 个数外, 从其余 n-1 个数中选出最小的数, 与第 2 个数交换位置 3) 依此类推, 选择了 n-1 次后, 这个数列已按升序排列 例如, 有 5 个数据依次为 , 要求从小到大排序 选择排序的过程如下 第一趟处理 : 1)a(1) 与 a(2) 进行比较, 发现 a(1) 大于 a(2), 马上交换 这时当前元素依次为 : )a(1) 与 a(3) 进行比较, 发现 a(1) 小于 a(3), 不作交换 3)a(1) 与 a(4) 进行比较, 发现 a(1) 大于 a(4), 马上交换 这时当前元素依次为 : 科学出版社职教技术出版中心

96 第 4 章数 组 87 4)a(1) 与 a(5) 进行比较, 发现 a(1) 大于 a(5), 马上交换 这时当前元素依次为 : 这时第一趟处理已完成, 我们从中可以确定第一个元素为最小 接着进行第二趟处理, 从 a(2) 开始进行比较 依此类推, 选择了 n-1 次后, 这个数列已按升序排列 编制程序如下 : Dim i As Integer, j As Integer, n As Integer, t As Integer n = InputBox(" 请输入数组元素的个数 :") ReDim a(n) As Integer Randomize For i = 1 To n ' 产生数据 a(i) = Int(Rnd * 100) For i = 1 To n - 1 ' 排序 For j = i + 1 To n If a(i) > a(j) Then t = a(i) a(i) = a(j) a(j) = t End If Next j For i = 1 To n ' 显示 Print a(i); 注意到以上程序作比较后马上交换位置, 其实可以作进一步的改进以提高性能, 引入变量 k, 其具体操作如下 第一趟处理 : 令 k 的值为 1 1)a(k) 与 a(2) 进行比较, 发现 a(k) 大于 a(2), 令 k 的值为 2 2)a(k) 与 a(3) 进行比较, 发现 a(k) 小于 a(3), 不作操作 3)a(k) 与 a(4) 进行比较, 发现 a(k) 大于 a(4), 令 k 的值为 4 4)a(k) 与 a(5) 进行比较, 发现 a(k) 大于 a(5), 令 k 的值为 5 5) 交换 a(k) 与 a(1) 的值 这时第一趟处理已完成, 真正交换只有一次, 我们从中可以确定第一个元素为最小 接着进行第二趟处理, 令 k 的值为 2 依此类推, 选择了 n-1 次后, 这个数列已按升序排列 改进的选择排序程序如下 : Dim i As Integer, j As Integer, n As Integer, t As Integer, k As Integer n = InputBox(" 请输入数组元素的个数 :") ReDim a(n) As Integer Randomize For i = 1 To n ' 产生数据 a(i) = Int(Rnd * 100)

97 88 Visual Basic 程序设计 For i = 1 To n - 1 ' 排序 k = i For j = i + 1 To n If a(k) > a(j) Then k = j Next j t = a(k) a(k) = a(i) a(i) = t For i = 1 To n ' 显示 Print a(i); 习题四 一 阅读下列程序, 写出运行结果 程序 1 Dim a(5) As Integer, b(5) As Integer Dim i As Integer For i = 1 To 4 a(i) = 2 * i b(i) = a(i) * 2 Print b(i - 2) 写出程序运行后, 单击窗体, 窗体上显示的结果 程序 2 Private Sub Command1_Click() Dim i As Integer, j As Integer Dim a(10, 10) As Integer For i = 1 To 3 For j = 1 To 3 a(i, j) = (i - 1) * 3 + j Print a(i, j); Next j Print 写出程序运行后, 单击命令按钮, 窗体上显示的结果 程序 3 Private Sub Command1_Click() Dim m As Integer, n As Integer Dim a(3, 3) As Integer For m = 1 To 3 For n = 1 To 3 a(m, n) = (m - 1) * 3 + n 科学出版社职教技术出版中心

98 第 4 章数 组 89 Next n Next m For m = 2 To 3 For n = 1 To 2 Print a(n, m); Next n Next m 写出程序运行后, 单击命令按钮, 窗体上显示的结果 程序 4 Dim x(5) As Integer x(1) = 8: x(2) = 3: x(3) = 1: x(4) = 6: x(5) = 4 For i = 1 To 4 For j = i + 1 To 5 If x(i) < x(j) Then t = x(i): x(i) = x(j): x(j) = t Next j, i For k = 1 To 5 Form1.Print "x("; k; ")="; x(k) Next k 写出程序运行后, 单击窗体,Form1 上的输出结果 程序 5 Dim a(2, 3) As Integer For i = 1 To 2 For j = 1 To 3 a(i, j) = 2 * i - j Next j, i For h = 1 To 3 For k = 1 To 2 Form1.Print a(k, h), Next k Print Next h 写出程序运行后, 单击窗体,Form1 上的输出结果 二 程序填空 1. 程序说明 在窗体上有两个命令按钮和一个文本框, 名称分别为 cmdstart( 开始 ) cmdend( 结束 ) 和 Text1 文本框 Text1 中的字符个数不超过 200 个 程序刚开始运行时, 结束 按钮呈灰色, 单击 开始 按钮后, 将文本框 Text1.Text 中的字符按其 ASCII 码值由小到大自左而右重新组合, 并在窗体上输出重组后的字符串, 同时使 结束 按钮能响应而 开始 按钮不能响应 程序 Private Sub Form_Load() cmdend.enabled = False

99 90 Visual Basic 程序设计 Private Sub cmdstart_click() Dim n As Integer, i As Integer, j As Integer, p As Integer Dim a(200) As String * 1, str1 As String, t As String str1 = Text1.Text n = Len(str1) For i = 1 To n a(i) = (1) For i = 1 To n - 1 p = i For j = i + 1 To n If a(p) <a(j) Then (2) Next j If (3) Then t = a(i): a(i) = a(p): a(p) = t For i = 1 To n Print a(i); (4) (5) Private Sub cmdend_click() End 2. 程序说明 已知有 10 个正数自小到大存于数组 a 中 (a(1)~a(10)) 编制程序, 实现输入正数 x, 检查它是否存在于数组 a 中, 若存在, 显示对应下标 ; 若不存在, 则请将 x 插入到数组 a 中, 且不影响数组 a 中数组序列 程序 Dim x As Integer, i As Integer, nn As Integer, a(11) As Integer Dim j As Integer nn = 10 i = 1 While ( (1) ) a(i) = Val(InputBox("input number" & " 必须大于 " & Str(a(i - 1)))) If a(i) >= a(i - 1) Then i = i + 1 Else MsgBox (" 请重新输入, 必须大于 " & Str(a(i - 1))) End If Wend For i = 1 To nn Print a(i), If i Mod 5 = 0 Then Print Print x = Val(InputBox("Input a Data to Check :")) If x < a(1) Then For i = nn + 1 To 2 Step -1 (2) a(1) = x 科学出版社职教技术出版中心

100 第 4 章数 组 91 For i = 1 To nn + 1 Print a(i), If i Mod 5 = 0 Then Print Print ElseIf x > a(nn) Then (3) For i = 1 To nn + 1 Print a(i), If i Mod 4 = 0 Then Print Print Else For i = 1 To nn If x = a(i) Then Print " 已经存在, 序号是 :"; i Exit Sub Else If x > a(i) And x < a(i + 1) Then j = i + 1 Exit For End If End If For i = nn + 1 To j + 1 Step -1 (4) a(j) = x For i = 1 To nn + 1 Print a(i), If i Mod 5 = 0 Then Print Print End If 3. 程序说明 打印以下杨辉三角形, 运行效果如图 4-6 所示 程序 Dim i As Integer, n As Integer,k As Integer Dim Q() As Integer n = InputBox("PLEASE INPUT N") ReDim Q(n, n) For i = 1 To n For j = 1 To n Q(i, j) = (1) Next j For k = 0 To (2) Q(k + 1, 1) = 1 Print 1; For i = 1 To k 图 4-6 程序 3 运行图

101 92 Visual Basic 程序设计 Q(k + 1, i + 1) = (3) + Q(k, i) Print (4) ; Print Next k 4. 程序说明 以下程序是对一个 5 5矩阵对角线上的数值进行从小到大的排序, 再输出该矩阵 ( 见图 4-7) 图 4-7 程序 4 运行图 程序 Option Base 1 Dim a(5, 5) As Integer Dim i As Integer, j As Integer, p As Integer Print " 排序前 5*5 矩阵 :" Randomize For i = 1 To 5 For j = 1 To 5 a(i, j) = Int(Rnd * 100) Print Tab(6 * j); a(i, j); Next j Print For i = 1 To 4 p = i For j = i + 1 To 5 If (1) Then p = j End If Next j k = a(i, i) a(i, i) = (2) a(p, p) = k Print Print " 排序后 5*5 矩阵 :" For i = 1 To 5 For j = 1 To 5 Print Tab(6 * j); a(i, j); Next j Print 科学出版社职教技术出版中心

VB程序设计教程

VB程序设计教程 高 等 学 校 教 材 Visual Basic 程 序 设 计 教 程 魏 东 平 郑 立 垠 梁 玉 环 石 油 大 学 出 版 社 内 容 提 要 本 书 是 按 高 等 学 校 计 算 机 程 序 设 计 课 程 教 学 大 纲 编 写 的 大 学 教 材, 主 要 包 括 VB 基 础 知 识 常 用 程 序 结 构 和 算 法 Windows 用 户 界 面 设 计 基 础 文 件 处

More information

FJXBQ

FJXBQ 高等医学院校选用教材 ( 供成人教育中医药专业 中西医结合专业使用 ) 方剂学 闫润红 主编 2 0 0 1 内容简介本书是供成人教育中医药专业 中西医结合专业使用的教材 全书分总论和各论两部分, 总论部分对中医方剂的基本理论, 如治法 君臣佐使 剂型 剂量等及其现代研究进展进行了介绍 各论部分对常用方剂的主治病证 配伍意义 临床应用 加减变化规律及现代研究概况等内容, 按分类进行了系统阐述 在保证方剂学学科知识结构完整性的前提下,

More information

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 月 3 日 1 1 INPUTOUTPUT 1 InputOutput 题目描述 用 cin 输入你的姓名 ( 没有空格 ) 和年龄 ( 整数 ), 并用 cout 输出 输入输出符合以下范例 输入 master 999 输出 I am master, 999 years old. 注意 "," 后面有一个空格,"." 结束,

More information

MVB-1001.DOC

MVB-1001.DOC 20 1.5 10 15 20 25 80 100 CSF 1. 2. 0105 3. 4. 5. 30% 1.5 0.75 1. Visual Basic Visual Basic (A) Visual Basic Enterprise Edition (B) Visual Basic Script Edition (C) Visual Basic Learning Edition (D) Visual

More information

C++ 程序设计 告别 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1 1 TEMPLATE 1 Template 描述 使用模板函数求最大值 使用如下 main 函数对程序进行测试 int main() { double a, b; cin >> a >> b; cout c >> d; cout

More information

2

2 1 2 1-1 Visual Basic 3 1-2 3/8-3/21 3/22-4/4 4/5-4/18 4/19-5/2 5/3-5/16 5/17-5/30 5/31-6/13 6/14-6/27 6/28-7/11 7/12-7/25 7/26-8/8 8/9-8/22 8/25-9/5 9/6-9/19 9/20-10/3 10/4-10/17 10/18-10/31 11/15-11/28

More information

科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心

More information

科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心

More information

科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心

More information

科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心

More information

Microsoft Word - VB全文.doc

Microsoft Word - VB全文.doc 实验 5 顺序结构 一 实验目的 1. 熟悉常用的输入和输出的方法 2. 掌握 InputBox 函数和 MsgBox 函数的用法 3. 掌握编写顺序结构程序的一般步骤 二 实验内容 1. 设计一个计算圆面积的程序 要求 : 利用 InputBox 函数输入圆的半径, 利用 MsgBox 显示最后的计算结果 2. 设计一个简单的水果商店结算程序 要求 : 利用文本框输入香蕉 梨子 苹果三类水果的单价和重量,

More information

Microsoft Word - 正文.doc

Microsoft Word - 正文.doc 第 3 章窗体 本章重点 : 窗体的结构 窗体的属性 事件 方法 多窗体 MDI 窗体 窗体 (Form) 是一个存放控件的窗口容器, 是一个可以包含其他对象的对象 在程序运行时, 窗体成为用户与应用程序进行交互操作的界面 在 Visual Basic 中, 窗体使用灵活, 既可以同时显示程序中的所有窗体, 也可以按程序的需要显示或隐藏某些窗体 3.1 窗体的结构 本书采用如下符号规约来描述 Visual

More information

Microsoft Word Visual_Basic程序设计上机实践教程正文.doc

Microsoft Word Visual_Basic程序设计上机实践教程正文.doc 实验 3 顺序和分支结构程序设计 实验目的 1. 掌握顺序结构的程序设计思想 2. 掌握命令按钮 (CommandButton) 标签 (Label) 文本框 (TextBox) 编辑框 (EditBox) 等常用控件的使用方法 3. 了解并掌握对话框函数 MessageBox() 的含义与用法 4. 了解和熟悉线条控件 形状控件的画法以及主要属性的用法 实验内容 1. 顺序结构 实训 3-1 编写一应用程序,

More information

试卷代号 : 座位号 OJ 中央广播电视大学 学年度第一学期 " 开放专科 " 期末考试 Visual Basic 程序设计试题 题号 一 二 三 四 五 总分 分数 I I I I I I I 2011 年 1 月 得分 评卷人 I I I 题 { 每小题

试卷代号 : 座位号 OJ 中央广播电视大学 学年度第一学期  开放专科  期末考试 Visual Basic 程序设计试题 题号 一 二 三 四 五 总分 分数 I I I I I I I 2011 年 1 月 得分 评卷人 I I I 题 { 每小题 试卷代号 : 2 2 3 1 座位号 OJ 中央广播电视大学 2 0 1 0-2011 学年度第一学期 " 开放专科 " 期末考试 Visual Basic 程序设计试题 题号 一 二 三 四 五 总分 分数 I 2011 年 1 月 题 { 每小题 2 分, 共 3 0 分 } 1. 对于定时器 ( Tim 盯 控件, 设置其定时是否开启的属性是 ( ) A. Index B. Tag c. Enabled

More information

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP:  ******************* * 关于 Java 测试试题 ****** ******************* * 关于 Java 测试试题 ******************* 問 1 运行下面的程序, 选出一个正确的运行结果 public class Sample { public static void main(string[] args) { int[] test = { 1, 2, 3, 4, 5 ; for(int i = 1 ; i System.out.print(test[i]);

More information

四川省普通高等学校

四川省普通高等学校 四 川 省 普 通 高 等 学 校 计 算 机 应 用 知 识 和 能 力 等 级 考 试 考 试 大 纲 (2013 年 试 行 版 ) 四 川 省 教 育 厅 计 算 机 等 级 考 试 中 心 2013 年 1 月 目 录 一 级 考 试 大 纲 1 二 级 考 试 大 纲 6 程 序 设 计 公 共 基 础 知 识 6 BASIC 语 言 程 序 设 计 (Visual Basic) 9

More information

图书在版编目穴 CIP 雪数据做事细节全书 / 赵彦锋编著郾 北京 : 企业管理出版社, ISBN Ⅰ 郾做... Ⅱ 郾赵... Ⅲ 郾工作方法 通俗读物 Ⅳ 郾 B 中国版本图书馆 CIP 数据核字 (2005) 第 号 书

图书在版编目穴 CIP 雪数据做事细节全书 / 赵彦锋编著郾 北京 : 企业管理出版社, ISBN Ⅰ 郾做... Ⅱ 郾赵... Ⅲ 郾工作方法 通俗读物 Ⅳ 郾 B 中国版本图书馆 CIP 数据核字 (2005) 第 号 书 做事细节全书 赵彦锋著 企业管理出版社 图书在版编目穴 CIP 雪数据做事细节全书 / 赵彦锋编著郾 北京 : 企业管理出版社, 2005.11 ISBN 7-80197-338-0 Ⅰ 郾做... Ⅱ 郾赵... Ⅲ 郾工作方法 通俗读物 Ⅳ 郾 B026-49 中国版本图书馆 CIP 数据核字 (2005) 第 136676 号 书 名 : 做事细节全书 作 者 : 赵彦锋 责任编辑 : 吴太刚

More information

穨文件1

穨文件1 2-1 Access 2000 Visual Basic Access 2000 97 Office Visual Basic Visual Basic Visual Basic VBA Visual Basic Visual Basic 2-1-1 Visual Basic Access Visual Basic ( ) 2-1 2-1 Visual Basic 2-1 Microsoft Access

More information

Microsoft Word - 实验3.doc

Microsoft Word - 实验3.doc 实验 3 基本控制结构 3.1 基本控制结构程序设计 实验目的 (1) 掌握 3 种基本结构的程序流程图 (2) 熟练掌握分支结构的程序设计方法 (3) 熟练掌握循环结构的程序设计方法 实验内容 Visual Basic 是结构化的程序设计语言, 有 3 种基本控制结构 : 顺序结构 分支结构和循环结构, 循环结构又分 当型 循环和 直到型 循环 其程序流程图如图 3-1 所示 真 E 假 当 E

More information

科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心

More information

科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心

More information

科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心

More information

<C8EBC3C5C6AAA3A8B5DA31D5C2A3A92E696E6464>

<C8EBC3C5C6AAA3A8B5DA31D5C2A3A92E696E6464> 第 1 章 进入 Photoshop 的全新世界 本章导读 Photoshop 1 1.1 Photoshop CS6 Photoshop Photoshop 1.1.1 Photoshop POP 1-1 图 1-1 平面广告效果 1.1.2 Photoshop 1-2 Photoshop CS6 Photoshop CS6 Photoshop CS6 Extended 3D 3 Photoshop

More information

内容简介本书是 Visual Basic 程序设计 ( 曲宏山 饶拱维主编, 科学出版社 ) 或其他同类 Visual Basic 程序设计教材配套使用的上机实验指导用书, 是编者多年教学和软件开发实践经验的总结 全书共 14 个实验, 在每个实验前都列出了相关章节的知识点, 以方便读者对所学内容加

内容简介本书是 Visual Basic 程序设计 ( 曲宏山 饶拱维主编, 科学出版社 ) 或其他同类 Visual Basic 程序设计教材配套使用的上机实验指导用书, 是编者多年教学和软件开发实践经验的总结 全书共 14 个实验, 在每个实验前都列出了相关章节的知识点, 以方便读者对所学内容加 普通高等教育 十二五 重点规划教材公共课系列普通高等教育 十二五 规划教材 Visual Basic 程序设计上机指导 曲宏山饶拱维主编 张帆杨贵茂王楠副主编 北京 内容简介本书是 Visual Basic 程序设计 ( 曲宏山 饶拱维主编, 科学出版社 ) 或其他同类 Visual Basic 程序设计教材配套使用的上机实验指导用书, 是编者多年教学和软件开发实践经验的总结 全书共 14 个实验,

More information

Microsoft PowerPoint - OPVB1基本VB.ppt

Microsoft PowerPoint - OPVB1基本VB.ppt 大 綱 0.VB 能 做 什 麼? CH1 VB 基 本 認 識 1.VB 歷 史 與 版 本 2.VB 環 境 簡 介 3. 即 時 運 算 視 窗 1 0.VB 能 做 什 麼? Visual Basic =>VB=> 程 式 設 計 語 言 => 設 計 程 式 設 計 你 想 要 的 功 能 的 程 式 自 動 化 資 料 庫 計 算 模 擬 遊 戲 網 路 監 控 實 驗 輔 助 自 動

More information

SMM667.mps

SMM667.mps 第 章 设 计 简 单 程 序 本 章 是 学 习 VB 程 序 设 计 的 入 门 篇, 其 中 涉 及 的 几 个 常 用 控 件 和 基 本 语 句 是 后 续 章 节 中 反 复 使 用 的 基 础 内 容 学 习 目 标 瞯 了 解 顺 序 程 序 结 构 瞯 熟 悉 用 户 界 面 的 设 计 和 简 单 代 码 设 计 瞯 掌 握 赋 值 语 句 和 InputBox MsgBox Print

More information

untitled

untitled Visual Basic 2005 (VB.net 2.0) hana@arbor.ee.ntu.edu.tw 立 六 數 串 數數 數 數 串 數 串 數 Len( 串 ) 串 度 Len( 123 )=3 LCase( 串 ) 串 LCase( AnB123 ) anb123 UCase( 串 ) 串 UCase( AnB123 ) ANB123 串 數 InStr([ ], 串 1, 串 2[,

More information

可视化编程技术

可视化编程技术 第一章 Visual Basic 6.0 基础知识 本章目的 : 通过本章学习了解有关可视化程序设计, 面向对象程序设计的基本概念和 VB 的基本知识 本章重点 : 可视化程序设计, 面向对象程序设计的基本概念 VB 的集成化开发环境 1 什么是可视化程序设计 所谓 可视化程序设计, 它指的是一种应用可视化开发工具, 开发图形用户界面 (GUI) 应用程序的方法 应用这种方法, 软件开发人员不须编写大量代码,

More information

第四章 102 图 4唱16 基于图像渲染的理论基础 三张拍摄图像以及它们投影到球面上生成的球面图像 拼图的圆心是相同的 而拼图是由球面图像上的弧线图像组成的 因此我 们称之为同心球拼图 如图 4唱18 所示 这些拼图中半径最大的是圆 Ck 最小的是圆 C0 设圆 Ck 的半径为 r 虚拟相机水平视域为 θ 有 r R sin θ 2 4畅11 由此可见 构造同心球拼图的过程实际上就是对投影图像中的弧线图像

More information

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例 帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例 这篇文章主要介绍了帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例, 本文还详细介绍了帝国 CMS 数据库类中的一些常用方法, 需要的朋友可以参考下 例 1: 连接 MYSQL 数据库例子 (a.php)

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 按钮对象 (button) 当 JavaScript 读到 标记中的 type 属性值为 button 时, 自动建立一个按钮对象, 并将该对象放到表单对象的 elements 数组当中 按钮对象包括 : 普通按钮 (button) 提交按钮 (submit) 重置按钮 (reset) 1. 使用按钮对象的格式 document.forms[ 索引值 ].elements[ 索引值

More information

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页 第 1 页共 32 页 crm Mobile V1.0 for IOS 用户手册 一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页 二 crm Mobile 界面介绍 : 第 3 页共 32 页 三 新建 (New) 功能使用说明 1 选择产品 第 4 页共 32 页 2 填写问题的简要描述和详细描述 第 5 页共

More information

ExcelUtility 类库使用说明 ( 续 ) 开发 / 设计 : 左文俊 第一个新增功能, 列宽自适应, 当超过 30 个字符则将单元格内容设为换行 任意一个无模板的导出方法均支持该功能, 示例代码如下 : /// <summary> /// 测试方法

ExcelUtility 类库使用说明 ( 续 ) 开发 / 设计 : 左文俊 第一个新增功能, 列宽自适应, 当超过 30 个字符则将单元格内容设为换行 任意一个无模板的导出方法均支持该功能, 示例代码如下 : /// <summary> /// 测试方法 ExcelUtility 类库使用说明 ( 续 ) 开发 / 设计 : 左文俊 第一个新增功能, 列宽自适应, 当超过 0 个字符则将单元格内容设为换行 任意一个无模板的导出方法均支持该功能, 示例代码如下 : 0 /// 测试方法 : 测试将 DataTable 导出到 EXCEL, 无模板 public void TestExportToExcelByDataTable() string excelpath

More information

VB控件教程大全

VB控件教程大全 Datagrid DataGrid1.Columns.Remove(0) ' 0 DataGrid1.Columns.Add(0).Caption= ' DataGrod1.Columns(0).DataField= Name ' Adodc1.Refresh DataGrid BackColor Font DataGrid CellPadding HTML CellSpacing HTML Width

More information

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double

More information

Microsoft Word - 小心翼翼的二十一點N.doc

Microsoft Word - 小心翼翼的二十一點N.doc 投 稿 類 別 : 資 訊 類 篇 名 : 小 心 翼 翼 的 二 十 一 點 作 者 : 陳 鈺 文 國 立 瑞 芳 高 級 工 業 職 業 學 校 資 訊 二 李 伯 謙 國 立 瑞 芳 高 級 工 業 職 業 學 校 資 訊 二 胡 家 媛 國 立 瑞 芳 高 級 工 業 職 業 學 校 資 訊 二 指 導 老 師 : 周 曉 玲 老 師 陳 思 亮 主 任 壹 前 言 一 研 究 動 機 平

More information

Microsoft Word - CX1000-HMI_程序开发_PLC通讯

Microsoft Word - CX1000-HMI_程序开发_PLC通讯 用 VB.Net 开发 CX1000 的 HMI 第二部分和 TwinCAT PLC 通讯 一 TwinCAT 动态库 TwinCAT.Ads.dll The TwinCAT.Ads.dll 是一个.NET 类库, 它提供和 ADS 设备通讯的类 如果 TwinCAT PLC 运行在 IPC 上, 则需要添加的类库是路径 \TwinCAT\ADS Api\.NET\v1.1.4322 下的 TwinCAT.Ads.dll

More information

Guava学习之Resources

Guava学习之Resources Resources 提供提供操作 classpath 路径下所有资源的方法 除非另有说明, 否则类中所有方法的参数都不能为 null 虽然有些方法的参数是 URL 类型的, 但是这些方法实现通常不是以 HTTP 完成的 ; 同时这些资源也非 classpath 路径下的 下面两个函数都是根据资源的名称得到其绝对路径, 从函数里面可以看出,Resources 类中的 getresource 函数都是基于

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 The BitCoin Scripting Language 交易实例 交易结构 "result": { "txid": "921a dd24", "hash": "921a dd24", "version": 1, "size": 226, "locktime": 0, "vin": [ ], "vout": [ ], "blockhash": "0000000000000000002c510d

More information

// HDevelopTemplateWPF projects located under %HALCONEXAMPLES%\c# using System; using HalconDotNet; public partial class HDevelopExport public HTuple

// HDevelopTemplateWPF projects located under %HALCONEXAMPLES%\c# using System; using HalconDotNet; public partial class HDevelopExport public HTuple halcon 与 C# 混合编程之 Halcon 代码调用 写在前面 完成 halcon 与 C# 混合编程的环境配置后, 进行界面布局设计构思每一个按钮所需要实现 的功能, 将 Halcon 导出的代码复制至相应的 C# 模块下即可 halcon 源程序 : dev_open_window(0, 0, 512, 512, 'black', WindowHandle) read_image (Image,

More information

《Visual Basic程序设计》实验课

《Visual Basic程序设计》实验课 Visual Basic Visual Basic dstang2000@263.net 0 Visual Basic 1 0...1 1 Visual Basic...2 2...3 3...6 4...9 5...13 6...16 7...18 8...22 9...24 10...27 11...29 12 API...31 13...34 14...35 15...38 1 1 Visual

More information

内容简介本书是与 Visual Basic 程序设计教程 相配套的实践教程 本书包括了与主教材各章节内容对应的上机实践及自测习题 上机实践部分内容丰富, 步骤清晰, 注重基本知识与实际案例相结合, 可操作性强 自测习题部分知识涵盖范围广, 有助于学生对知识理解和掌握 本书可作为高等院校非计算机专业学

内容简介本书是与 Visual Basic 程序设计教程 相配套的实践教程 本书包括了与主教材各章节内容对应的上机实践及自测习题 上机实践部分内容丰富, 步骤清晰, 注重基本知识与实际案例相结合, 可操作性强 自测习题部分知识涵盖范围广, 有助于学生对知识理解和掌握 本书可作为高等院校非计算机专业学 普通高等教育 十二五 重点规划教材计算机基础教育系列 中国科学院教材建设专家委员会 十二五 规划教材 Visual Basic 程序设计实践教程 肖峰季晓玉主编 科学出版社职教技术出版中心 www.aboo 北 京 内容简介本书是与 Visual Basic 程序设计教程 相配套的实践教程 本书包括了与主教材各章节内容对应的上机实践及自测习题 上机实践部分内容丰富, 步骤清晰, 注重基本知识与实际案例相结合,

More information

普通高等教育 十二五 规划教材中国科学院教材建设专家委员会 十二五 规划教材 Visual Basic 程序设计实践教程 刘必雄 编著 北 京 科学出版社职教技术出版中心 www.aboo 内容简介 本书是 Visual Basic 程序设计 ( 刘必雄编著, 科学出版社出版 ) 的配套教学用书, 是作者多年教学实践经验的总结 全书分为 3 篇 : 第一篇为上机实验, 根据教学要求安排了 10 个实验,

More information

图书在版编目 (CIP) 数据 满堂花醉 / 沈胜衣著. 南京 : 江苏教育出版社, ( 沈郎文字 ) ISBN Ⅰ. 满... Ⅱ. 沈... Ⅲ. 作家 - 人物研究 - 世界 Ⅳ.K815.6 中国版本图书馆 CIP 数据核字 (2005) 第 041

图书在版编目 (CIP) 数据 满堂花醉 / 沈胜衣著. 南京 : 江苏教育出版社, ( 沈郎文字 ) ISBN Ⅰ. 满... Ⅱ. 沈... Ⅲ. 作家 - 人物研究 - 世界 Ⅳ.K815.6 中国版本图书馆 CIP 数据核字 (2005) 第 041 图书在版编目 (CIP) 数据 满堂花醉 / 沈胜衣著. 南京 : 江苏教育出版社, 2005.4 ( 沈郎文字 ) ISBN 7-5343-6512-0 Ⅰ. 满... Ⅱ. 沈... Ⅲ. 作家 - 人物研究 - 世界 Ⅳ.K815.6 中国版本图书馆 CIP 数据核字 (2005) 第 041843 号 出版者社址网址出版人 南京市马家街 31 号邮编 :210009 http://www.1088.com.cn

More information

通用可视化开发语言实习指导书.doc

通用可视化开发语言实习指导书.doc 实习一 熟悉并掌握 VB 集成开发环境 一 实习目的 1 熟悉 VB 的开发环境 ; 2 掌握开发 VB 程序的一般步骤, 学会建立简单的 VB 应用程序 3 完成课后习题 二 原理与方法 VB 是面向对象的程序设计语言, 把程序和数据封装起来作为一个对象, 并为对象赋予应有的属性, 在设计对象时, 不必编写建立和描述每个对象的程序 代码, 而是用工具画在界面上 另外 VB 提供了可视化设计工具,

More information

手册 doc

手册 doc 1. 2. 3. 3.1 3.2 3.3 SD 3.4 3.5 SD 3.6 3.7 4. 4.1 4.2 4.3 SD 4.4 5. 5.1 5.2 5.3 SD 6. 1. 1~3 ( ) 320x240~704x288 66 (2G SD 320x2401FPS ) 32M~2G SD SD SD SD 24V DC 3W( ) -10~70 10~90% 154x44x144mm 2. DVR106

More information

内容简介本书以 Visual Basic 6.0 中文版为背景, 详细介绍了 Visual Basic 程序设计的基本知识 基本语法 编程方法和常用算法, 同时将可视化界面设计与程序设计语言有机地结合, 通过内容丰富的实例较系统地介绍了使用 Visual Basic 开发 Windows 应用程序的

内容简介本书以 Visual Basic 6.0 中文版为背景, 详细介绍了 Visual Basic 程序设计的基本知识 基本语法 编程方法和常用算法, 同时将可视化界面设计与程序设计语言有机地结合, 通过内容丰富的实例较系统地介绍了使用 Visual Basic 开发 Windows 应用程序的 普通高等教育 十二五 规划教材 Visual Basic 语言程序设计教程 周冰邓娟刘芳主编 石义良李欣 刘永真副主编 北 京 科学出版社职教技术出版中心 www.aboo 内容简介本书以 Visual Basic 6.0 中文版为背景, 详细介绍了 Visual Basic 程序设计的基本知识 基本语法 编程方法和常用算法, 同时将可视化界面设计与程序设计语言有机地结合, 通过内容丰富的实例较系统地介绍了使用

More information

内 容 提 要

内 容 提 要 Visual Basic 6.0 程序设计基础教程 罗朝盛主编 余文芳 副主编 人民邮电出版社 前 言 Visual Basic 6.0 程序设计教程 于 2002 年 9 月由人民邮电出版社出版以来, 受到广大读者的欢迎, 被全国几十所各类高等学校选做教材 在两年多的时间里, 先后 8 次重印, 与教材配套的实验 CAI 系统也被很多高校采用, 得到了不少专家 老师和学生的好评 Visual Basic

More information

2010年3月计算机等级考试四级网络工程师笔试

2010年3月计算机等级考试四级网络工程师笔试 计 算 机 二 级 VB 经 典 预 测 题 下 列 各 题 A) B) C) D) 四 个 选 项 中, 只 有 一 个 选 项 是 正 确 的 请 将 正 确 选 项 填 涂 在 答 题 卡 相 应 位 置 上, 答 在 试 卷 上 不 得 分 (1) 下 列 叙 述 中 正 确 的 是 ( ) A) 循 环 队 列 是 队 列 的 一 种 链 式 存 储 结 构 B) 循 环 队 列 是 队

More information

内容简介本书是以 Visual Basic 6.0 中文版为编程环境编写的高等学校计算机课程教材, 主要介绍了 VB 的基本概念 常用对象的属性 事件和方法 数据类型与表达式 程序的基本控制结构 数组 过程 用户界面设计 键盘 鼠标事件与绘图 文件和数据库应用等知识 本书内容由浅入深 循序渐进 注重

内容简介本书是以 Visual Basic 6.0 中文版为编程环境编写的高等学校计算机课程教材, 主要介绍了 VB 的基本概念 常用对象的属性 事件和方法 数据类型与表达式 程序的基本控制结构 数组 过程 用户界面设计 键盘 鼠标事件与绘图 文件和数据库应用等知识 本书内容由浅入深 循序渐进 注重 普通高等教育 十二五 重点规划教材计算机基础教育系列 中国科学院教材建设专家委员会 十二五 规划教材 Visual Basic 程序设计教程 肖峰张燕妮主编 科学出版社职教技术出版中心 www.aboo 北 京 内容简介本书是以 Visual Basic 6.0 中文版为编程环境编写的高等学校计算机课程教材, 主要介绍了 VB 的基本概念 常用对象的属性 事件和方法 数据类型与表达式 程序的基本控制结构

More information

C#程序设计实验

C#程序设计实验 程序设计基础 实验指导 / 实验一 : 认识 C# 1 程序设计基础 实验指导 实验一 : 认识 C# 一 实验目的 1 掌握 Visual Studio 的基本操作方法, 学会使用该编译工具 2 掌握编辑 编译 运行控制台应用程序的基本过程 3 掌握建立 Windows 窗体应用程序的基本过程 4 通过运行 C# 程序, 初步了解 C# 程序的特点 二 实验学时 2 学时 三 实验类型 验证性实验

More information

untitled

untitled 例 立 劉 1 1991 來 Schollmeyer,1996; Volet & Lund, 1994 邏 力 林 2004 歷年 路 類 列 若 邏 力 來 路 力 益 例 數 列 類 論 數 識 數 數 沈 練 念 不 1991 狀 狀 理歷 Mayer, 1992 不 力 不 力 立 1994 了 更 參 力 力 力 靈 力 力 來 識 立 練 識 力 2000 來 1995 切 識 異 勵

More information

图书在版编目 (CIP) 数据程序员的数学. 3, 线性代数 /( 日 ) 平冈和幸, ( 日 ) 堀玄著 ; 卢晓南译. 北京 : 人民邮电出版社, ( 图灵程序设计丛书 ) ISBN Ⅰ. 1 程 Ⅱ. 1 平 2 堀 3 卢 Ⅲ. 1 电子计算

图书在版编目 (CIP) 数据程序员的数学. 3, 线性代数 /( 日 ) 平冈和幸, ( 日 ) 堀玄著 ; 卢晓南译. 北京 : 人民邮电出版社, ( 图灵程序设计丛书 ) ISBN Ⅰ. 1 程 Ⅱ. 1 平 2 堀 3 卢 Ⅲ. 1 电子计算 图灵程序设计丛书 程序员的数学 3: 线性代数 [ 日 ] 平冈和幸堀玄著 卢晓南译 图书在版编目 (CIP) 数据程序员的数学. 3, 线性代数 /( 日 ) 平冈和幸, ( 日 ) 堀玄著 ; 卢晓南译. 北京 : 人民邮电出版社, 2016.3 ( 图灵程序设计丛书 ) ISBN 978-7-115-41774-9 Ⅰ. 1 程 Ⅱ. 1 平 2 堀 3 卢 Ⅲ. 1 电子计算机 数学基础 2

More information

res/layout 目录下的 main.xml 源码 : <?xml version="1.0" encoding="utf 8"?> <TabHost android:layout_height="fill_parent" xml

res/layout 目录下的 main.xml 源码 : <?xml version=1.0 encoding=utf 8?> <TabHost android:layout_height=fill_parent xml 拓展训练 1- 界面布局 1. 界面布局的重要性做应用程序, 界面是最基本的 Andorid 的界面, 需要写在 res/layout 的 xml 里面, 一般情况下一个 xml 对应一个界面 Android 界面布局有点像写 html( 连注释代码的方式都一样 ), 要先给 Android 定框架, 然后再在框架里面放控件,Android 提供了几种框架,AbsoluteLayout,LinearLayout,

More information

Microsoft Word - 第5章.doc

Microsoft Word - 第5章.doc 过程和函数就是在程序中可以被重复使用的代码 当应用程序比较复杂时, 开发人员可能需要在程序中多处使用相同的代码 在 Visual Basic 应用程序开发中, 重要任务之一就是创建可重复使用的代码 通过学习本章, 读者可以熟练掌握过程和函数的定义及使用方法 5.1 过程 过程就是在应用程序可以被多次重复使用的代码段 使用过程具有以下优点 : 复杂任务分解成多个简单代码段 ; 易于读写, 具有较强的可读性和可维护性

More information

Microsoft PowerPoint - 03.Fortran程序设计基础1

Microsoft PowerPoint - 03.Fortran程序设计基础1 简单 Fortran 90 程序的构造形式 : 第二讲 Fortran 程序设计基础 (2) [PROGRAM 程序名 ] [ 声明语句 ] [ 执行语句 ] END [PROGRAM [ 程序名 ]] 程序的书写 (P5) PROGRAM MONEY!calculate balance after interest compounded! 根据利息计算余额 REAL BALANCE, INTEREST,

More information

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢   学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 Email: 51141201063@ecnu.cn 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料 OOP with Java Java 类型 引用 不可变类型 对象存储位置 作用域 OOP

More information

普通高等教育 十二五 规划教材公共课系列 高级语言程序设计 Visual Basic 刘立群刘哲 邹丽娜主编 刘冰周颖王伟王占军副主编 郑尚志梁宝华参 编 周进钱进参编 北京 科学出版社职教技术出版中心 www.aboo 内容简介本书是为了适应 Visual Basic 程序设计课程教学需要而编写的, 知识点全面完整, 涵盖了全国计算机等级考试二级考试大纲要求 全书共分 13 章, 从认识 Visual

More information

<4D F736F F D D342DA57CA7DEA447B14D2DA475B57BBB50BADEB27AC3FEB14DA447B8D5C344>

<4D F736F F D D342DA57CA7DEA447B14D2DA475B57BBB50BADEB27AC3FEB14DA447B8D5C344> 1. 請 問 誰 提 出 積 體 電 路 (IC) 上 可 容 納 的 電 晶 體 數 目, 約 每 隔 24 個 月 (1975 年 更 改 為 18 個 月 ) 便 會 增 加 一 倍, 效 能 也 將 提 升 一 倍, 也 揭 示 了 資 訊 科 技 進 步 的 速 度? (A) 英 特 爾 (Intel) 公 司 創 始 人 戈 登. 摩 爾 (Gordon Moore) (B) 微 軟 (Microsoft)

More information

JAVA 单元 2.1 四则运算机 ( 一 ) 单元教学进度设计 教学环节 教学内容 教师学生活动活动 反馈 反馈课前作业完成情况 反馈加分 1. 下面哪些是合法的变量名? ( ) A.2variable 答案 :DEG B..variable2 解答 : C.._whatavariable A:/

JAVA 单元 2.1 四则运算机 ( 一 ) 单元教学进度设计 教学环节 教学内容 教师学生活动活动 反馈 反馈课前作业完成情况 反馈加分 1. 下面哪些是合法的变量名? ( ) A.2variable 答案 :DEG B..variable2 解答 : C.._whatavariable A:/ 单元 2.1 四则运算机 ( 一 ) 单元教学进度设计 教学环节 教学内容 教师学生活动活动 反馈 反馈课前作业完成情况 反馈加分 1. 下面哪些是合法的变量名? ( ) A.2variable 答案 :DEG B..variable2 解答 : C.._whatavariable A:// 不能以数字开头 D._3_ B:// 不能用点和空格 提问 抢答 E.$anothervar C: // 不能用点和空格

More information

!"# $ %&'!"#$

!# $ %&'!#$ !"# $ %&'!"#$ 内容简介本书是在作者已经出版的 XilinxAlProgrammableZynq-7000SoC 设计指南 一书的基础上进行大幅度修订而成的 本书的一大特色就是更加突出 ARMCortex-A9 双核处理器的使用 此外, 在修订本书时采用了 Xilinx 最新的 Vivado2015 4 集成开发环境 通过本书的修订, 能反映最新的 ARM 嵌入式设计技术和实现方法, 同时也能更加凸显采用异构架构的

More information

untitled

untitled 說 參 例 邏 邏 1. 說 2. 數 數 3. 8 4. 理念 李 龍老 立 1. 理 料 2. 理 料 3. 數 料 4. 流 邏 念 5. 良 6. 讀 行 行 7. 行 例 來 邏 1. 說 說 識 量 2. 說 理 類 3. 數 數 念 4. 令 5. 良 6. 流 邏 念 7. 說 邏 理 力 1. 2. 3. 4. 5. 列 念 1 參 1. ( Visual Basic 例 ) (1)

More information

TC35短信发送程序设计

TC35短信发送程序设计 http://www.dragonsoft.net.cn/down/project/tc35_sms.rar TC35 AT /down/book/tc35_at.pdf TC35/TC35i GSM Modem TC35 GSM POS COM SIM DOWN COM E, vbcr AT VB6.0 1)C# http://www.yesky.com/softchannel/72342380468109312/20040523/1800310.shtml,

More information

Microsoft Word - 实验3.doc

Microsoft Word - 实验3.doc 实验 3 C# 和 ASP.NET 4.5 一 实验目的 (1) 了解 C# 语言规范 (2) 掌握 C# 基础语法 流程控制和异常处理等 (3) 掌握创建 C# 类并应用于 ASP.NET 4.5 页面中的方法 (4) 掌握 ASP.NET 4.5 页面的调试方法 二 实验内容及要求 1. 转换输入的成绩到相应的等级要求如下 : (1) 页面浏览效果如图 3-1 所示 (2) 成绩输入使用 TextBox

More information

图书在版编目 (CIP) 数据 文学与现代性批判 / 邵建著. 南京 : 江苏教育出版社, ISBN Ⅰ. 文... Ⅱ. 邵... Ⅲ. 当代文学 - 文学研究 - 中国 Ⅳ.I206.7 中国版本图书馆 CIP 数据核字 ( 2005 ) 第 04185

图书在版编目 (CIP) 数据 文学与现代性批判 / 邵建著. 南京 : 江苏教育出版社, ISBN Ⅰ. 文... Ⅱ. 邵... Ⅲ. 当代文学 - 文学研究 - 中国 Ⅳ.I206.7 中国版本图书馆 CIP 数据核字 ( 2005 ) 第 04185 图书在版编目 (CIP) 数据 文学与现代性批判 / 邵建著. 南京 : 江苏教育出版社, 2005.4 ISBN 7-5343-6528-7 Ⅰ. 文... Ⅱ. 邵... Ⅲ. 当代文学 - 文学研究 - 中国 Ⅳ.I206.7 中国版本图书馆 CIP 数据核字 ( 2005 ) 第 041850 号 出版者社址网址出版人 南京市马家街 31 号邮编 :210009 http://www.1088.com.cn

More information

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d

More information

"Hi" "Visual Basic 6.0" ""( 空字符串 ) 3. 货币 (Currency) 第 3 章数据类型及其运算 35 货币数据类型是为计算货币而设置的数据类型 在内存中用 8 个字节 (64 位 ) 存储, 精 确到小数点后 4 位 ( 小数点前 15 位 ), 在小数点后第 4

Hi Visual Basic 6.0 ( 空字符串 ) 3. 货币 (Currency) 第 3 章数据类型及其运算 35 货币数据类型是为计算货币而设置的数据类型 在内存中用 8 个字节 (64 位 ) 存储, 精 确到小数点后 4 位 ( 小数点前 15 位 ), 在小数点后第 4 第 3 章数据类型及其运算 本章主要介绍构成 Visual Basic 应用程序的基本元素, 包括数据类型 常量 变量 内部 函数 运算符和表达式等 3.1 数据类型 在各种程序设计语言中, 数据类型的规定和处理方法是各不相同的 VB 不但提供了丰富的标准数据类型, 还可以有用户自定义所需的数据类型 基本数据类型主要有数值型和字符串型, 此外还提供了字节 货币 对象 日期 布尔和变体数据类型 基本数据类型

More information

Microsoft Word - FM{new}.doc

Microsoft Word - FM{new}.doc Lanczos 方法 Louis Komzsik 著张伟廖本善译 演变与应用 清华大学出版社 北京 内容简介 Lanczos 方法是 20 世纪计算数学方向最有影响的方法之一, 并且已经在工程中得到了广泛应用. 本书兼顾了 Lanczos 方法的理论演变和工程中的实际应用, 其内容分为两部分 : 第一部分阐述了方法的演变, 并提供了具体算法 ; 第二部分讨论了工业中的实际应用, 包括常用的模态分析

More information

1. 要退出 Do---Loop 循环, 可使用的语句是 ( ) 语句 A. Exit B. Exit For C. Exit Do D. End Do 5. 有程序代码如下 : Text1. Text=" 欢迎学习 VB!" 则 T e x t 1, Text, 和 " 欢迎学习 VB!" 分别代

1. 要退出 Do---Loop 循环, 可使用的语句是 ( ) 语句 A. Exit B. Exit For C. Exit Do D. End Do 5. 有程序代码如下 : Text1. Text= 欢迎学习 VB! 则 T e x t 1, Text, 和  欢迎学习 VB! 分别代 试卷代号 : 2 2 3 1 中央广播电视大学 2 0 1 2-2 0 1 3 学年度第二学期 " 开放专科 " 期末考试 Visual Basic 程序设计试题 2013 年 7 月 注意事项 一 将你的学号 姓名及分校 { 工作站 ) 名称填写在答题纸的规定栏内 考试结束后, 把试卷和答题纸放在桌上 试卷和答题纸均不得带出考场 监考人收完考卷和答题纸后才可离开考场 二 仔细读懂题目的说明, 并按题目要求答题

More information

附件一:

附件一: 附件二 : GIS 系统开发基础 课程教学大纲 一 课程基本信息课程代码 :16103403 课程名称 :GIS 系统开发基础英文名称 :Basic of GIS development 课程学分 :3 课程总学时 :48 实验学时 : 48 适用专业 : 人文地理学 自然地理本科专业课程类别 : 学科选修课先修课程 : 地图学 地理信息系统 GIS 软件应用, 计算机基础 二 教学总体目的和要求

More information

标题

标题 绝密绎考试结束前 浙江省 2019 年 4 月高等教育自学考试 Visual Basic 程序设计试题 课程代码 :07759 请考生按规定用笔将所有试题的答案涂 写在答题纸上 注意事项 : 选择题部分 1. 答题前, 考生务必将自己的考试课程名称 姓名 准考证号用黑色字迹的签字笔或钢笔 填写在答题纸规定的位置上 2. 每小题选出答案后, 用 2B 铅笔把答题纸上对应题目的答案标号涂黑 如需改动,

More information

PowerPoint Template

PowerPoint Template 窗体 P15 常用控件 菜单设计 多窗体界面设计 P19 P30 P32 属性 方法 事件 属性名 Name( 名称 ) Caption Height Width Left Top BackColor ForeColor Enabled Visible Font Moveable Picture 描述所创建窗体的名称窗体的标题, 即窗体标题栏上显示的内容窗体的高度窗体的宽度窗体的左边界距容器坐标系纵轴的距离窗体上边界距容器坐标系横轴的距离返回或设置窗体中文本和图形的背景色返回或设置窗体中文本和图形的前景色决定窗体是否活动决定窗体在程序运行时是否可见用于设置窗体中文本的外观,

More information

设计模式 Design Patterns

设计模式 Design Patterns 丁勇 Email:18442056@QQ.com 学习目标 描述 JSP 表达式语言的语法 认识使用 JSP 表达式的优点 在 JSP 中使用表达式语言 表达式语言简介 5 1 EL 为表达式语言 由两个组开发 JSP 标准标签库专家组 JSP 2.0 专家组 JSP 表达式语言的语法 ${EL Expression} JSP EL 表达式用于以下情形 静态文本 标准标签和自定义标签 表达式语言简介

More information

Visual Basic D 3D

Visual Basic D 3D Visual Basic 2008 2D 3D 6-1 6-1 - 6-2 - 06 6-2 STEP 1 5-2 (1) STEP 2 5-3 (2) - 6-3 - Visual Basic 2008 2D 3D STEP 3 User1 6-4 (3) STEP 4 User1 6-5 (4) - 6-4 - 06 STEP 5 6-6 (5) 6-3 6-3-1 (LoginForm) PictureBox1

More information

第一章三角函数 1.3 三角函数的诱导公式 A 组 ( ) 一 选择题 : 共 6 小题 1 ( 易诱导公式 ) 若 A B C 分别为 ABC 的内角, 则下列关系中正确的是 A. sin( A B) sin C C. tan( A B) tan C 2 ( 中诱导公式 ) ( ) B. cos(

第一章三角函数 1.3 三角函数的诱导公式 A 组 ( ) 一 选择题 : 共 6 小题 1 ( 易诱导公式 ) 若 A B C 分别为 ABC 的内角, 则下列关系中正确的是 A. sin( A B) sin C C. tan( A B) tan C 2 ( 中诱导公式 ) ( ) B. cos( 第一章三角函数 1. 三角函数的诱导公式 A 组 一 选择题 : 共 6 小题 1 ( 易诱导公式 ) 若 A B C 分别为 ABC 的内角 则下列关系中正确的是 A. sin( A B) sin C C. tan( A B) tan C ( 中诱导公式 ) B. cos( B C) cos A D. sin( B C) sin A sin60 cos( ) sin( 0 )cos( 70 ) 的值等于

More information

Ioncube Php Encoder 8 3 Crack 4. llamaba octobre traslado General Search colony

Ioncube Php Encoder 8 3 Crack 4. llamaba octobre traslado General Search colony Ioncube Php Encoder 8 3 Crack 4 ->>->>->> DOWNLOAD 1 / 5 2 / 5 Press..the..General..Tools..category4Encrypt..and..protect..files..with..PHP..encoding,..encryption,..ob fuscation..and..licensing... 2016

More information

<443A5CD3AACFFACEC4BCFE5CCDBCCAE9D0C5CFA25C2B2B2BCEB4CCE1BDBB5C D385C E4E4554B3CCD0F2C9E8BCC6CAB5D1B5BDCCB3CC5C574A30312E646F63>

<443A5CD3AACFFACEC4BCFE5CCDBCCAE9D0C5CFA25C2B2B2BCEB4CCE1BDBB5C D385C E4E4554B3CCD0F2C9E8BCC6CAB5D1B5BDCCB3CC5C574A30312E646F63> 第 1 章 本章将介绍 VB.NET 语言的相关概念, 包括 VB.NET 的发展历程,VB.NET 的特点, VB.NET 集成开发环境的搭建, 使读者对 Visual Studio 2013 和 SQL Server 2005 的安装有宏观的认识和了解 ; 最后通过一个简单的例题使读者对 VB.NET 语法和应用程序的创建有一个感性的认识 1.1 VB.NET 语言简介 VB.NET 是计算机中实现网络功能的一种编程语言,

More information

Microsoft PowerPoint - 01_Introduction.ppt

Microsoft PowerPoint - 01_Introduction.ppt Hello, World C 程序设计语言 第 1 章章观其大略 孙志岗 sun@hit.edu.cn http://sunner.cn prf("hello,, world\n"); 超级无敌考考你 : 如何把 hello 和 world 分别打印在两行? 2004-12-19 A Tutorial Introduction 2 hello.c 打印华氏温度与摄氏温度对照表 计算公式 : C=(5/9)(

More information

专注于做最好的嵌入式计算机系统供应商

专注于做最好的嵌入式计算机系统供应商 专注于做最好的嵌入式计算机系统供应商 基于 ARMSYS2440/2410 开发应用程序 (EVC&VS2005) Rev 1.0 2008 年 3 月 24 日 杭州立宇泰电子有限公司 HangZhou LiYuTai Elec.Co.,Ltd 开发应用程序的过程一般分两步, 第一步在 PC 机开发环境下设计和编译应用程序, 第二步将它下载到 目标系统, 也就是我们的 ARMSYS2440 平台上运行

More information

Microsoft Word - 扉页.doc

Microsoft Word - 扉页.doc 21 世纪全国应用型本科计算机系列实用规划教材 Visual Basic 程序设计 主编闵联营董华松副主编任占营刘全参编张惠宋雅娟李艳勤黄源李会芳 Dreamweaver MX 2004 内容简介 Visual Basic 作为程序设计的入门语言, 具有易学易懂的特点 Windows 是当今主流操作系统, 而 Visual Basic 作为一种支持可视化程序设计的语言, 也是开发 Windows 应用程序最简单易学的语言之一

More information

C++ 程序设计 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1 1 CIRCLE 1 Circle 描述 编写一个圆类 Circle, 实现半径的输入 面积的计算和输出 输入 圆的半径 (double 类型 ) 输出 圆的面积 ( 保留小数点后两位 ) 样例输入 3 样例输出 28.27 提示 圆周率的取值需要比较精确, 以保证计算结果的精度 #include

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 Python 入门 孙栩 xusun@pku.edu.cn 1 课程的整体介绍 目录 contents 2 Python 的介绍及如何安装 Python 3 使用 Python 编写简单小程序 1 课程的整体介绍 课程的整体介绍 Python 入门 1. Python 的介绍与安装 2. 变量与表达式 3. 一些简单的小程序 数据结构 1. 字符串 2. 列表 3. 元组 4. 字典 5. 集合 分支与循环

More information

4. 有程序代码如下 : Text!' Text= "Visual Basic" 则 Te xtl ~ Te xt, 和 " V i s ua l Basi c " 分别代表 ( ) A. 对象, 值, 属性 B. 对象, 方法, 属性 C. 对象, 属性, 值专 D. 属性, 对象, 值 5. 要

4. 有程序代码如下 : Text!' Text= Visual Basic 则 Te xtl ~ Te xt, 和  V i s ua l Basi c  分别代表 ( ) A. 对象, 值, 属性 B. 对象, 方法, 属性 C. 对象, 属性, 值专 D. 属性, 对象, 值 5. 要 试卷代号 : 2 2 3 1 中央广播电视大学 2 0 1 3-20 1 4 学年度第一学期 " 开放专科 " 期末考试 Visual Basic 程序设计 试题 2014 年 1 月 注意事项 一 将你的学号 姓名及分校 { 工作站 } 名称填写在答题纸的规定栏内 考试结束后, 把试卷和答题纸放在桌上 试卷和答题纸均不得带出考场 监考人收完考卷和答题纸后才可离开考场 二 仔细读懂题目的说明, 并按题目要求答题

More information

<4D F736F F D205A572D2D A1AAA1AAD4ACE7F42D43D3EFD1D4CAB5D1B5BDCCB3CC2E646F6378>

<4D F736F F D205A572D2D A1AAA1AAD4ACE7F42D43D3EFD1D4CAB5D1B5BDCCB3CC2E646F6378> 第 1 部分 Visual Studio 6.0 开发环境介绍 本书以 Visual C++ 6.0 作为 C 源程序的实践开发环境, 本章将首先介绍 Visual C++ 6.0 环境的基本操作, 包括 Visual C++ 6.0 的安装和启动,C 源程序的编辑 运行与调试 1.1 安装与启动 Visual C++ 6.0 MSDN Visual C++ 6.0 1.1 Microsoft Visual

More information

《C语言程序设计》教材习题参考答案

《C语言程序设计》教材习题参考答案 教材名称 : C 语言程序设计 ( 第 1 版 ) 黄保和 江弋编著清华大学出版社 ISBN:978-7-302-13599-9, 红色封面 答案制作时间 :2011 年 2 月 -5 月 一 选择题 1. 设已定义 int a, * p, 下列赋值表达式中正确的是 :C)p=&a 2. 设已定义 int x,*p=&x;, 则下列表达式中错误的是 :B)&*x 3. 若已定义 int a=1,*b=&a;,

More information

<4D F736F F F696E74202D BDE1B9B9BBAFB3CCD0F2C9E8BCC D20D1ADBBB7>

<4D F736F F F696E74202D BDE1B9B9BBAFB3CCD0F2C9E8BCC D20D1ADBBB7> 能源与动力工程学院 结构化编程 结构化程序设计 循环 循环结构 确定性循环 非确定性循环 I=1 sum=sum+i I = I +1 陈 斌 I>100 Yes No 目录 求和 :1+2+3++100 第四节循环的应用 PROGRAM GAUSS INTEGER I, SUM 计数器 SUM = 0 DO I = 1, 100, 1 SUM = SUM + I print*, I, SUM DO

More information

数据结构

数据结构 信息管理与信息系统专业 第 3 章变量与表达式 任课教师 : 吕雅丽 本章内容 3.1 C# 基本数据类型 3.2 常量与变量 3.3 创建并使用枚举类型 3.4 运算符与表达式类型 3.5 运算符的优先级与结合性 2 3.1 C# 基本数据类型 3.1.1 数值类型 1. 整数类型 整数类型又有有符号整数与无符号整数 有符号整数可以带正负号, 无符号整数不需带正负号, 默认为正数 有符号整数包括

More information

QY

QY Visual Basic 程序设计与实训教程 王金峰主编 北京 内容简介 本书较为详细地介绍了 Visual Basic 程序设计的基础知识, 并结合实例来说明 Visual Basic 程序设计的具体步骤和各种控件及工具的使用方法 本书共分 11 章, 内容包括 Visual Basic 程序设计基础, 结构化程序设计, 常用控件, 数组和过程, 界面设计, 图形设计, 文件, 数据库, 对象的链接

More information

CHAPTER VC#

CHAPTER VC# 1. 2. 3. 4. CHAPTER 2-1 2-2 2-3 2-4 VC# 2-5 2-6 2-7 2-8 Visual C# 2008 2-1 Visual C# 0~100 (-32768~+32767) 2 4 VC# (Overflow) 2-1 2-2 2-1 2-1.1 2-1 1 10 10!(1 10) 2-3 Visual C# 2008 10! 32767 short( )

More information

《C语言程序设计》第2版教材习题参考答案

《C语言程序设计》第2版教材习题参考答案 教材 C 语言程序设计 ( 第 2 版 ) 清华大学出版社, 黄保和, 江弋编著 2011 年 10 月第二版 ISBN:978-7-302-26972-4 售价 :35 元 答案版本 本习题答案为 2012 年 2 月修订版本 一 选择题 1. 设已定义 int a, * p, 下列赋值表达式中正确的是 :C)p = &a A. *p = *a B. p = *a C.p = &a D. *p =

More information

Photoshop CS6 艺术设计案例教程 ( 第二版 ) 1.1 Photoshop 的应用领域 Photoshop,,, Photoshop Photoshop 的用途 Photoshop CIS ( ) ( ) 案例展现 ~ 1

Photoshop CS6 艺术设计案例教程 ( 第二版 ) 1.1 Photoshop 的应用领域 Photoshop,,, Photoshop Photoshop 的用途 Photoshop CIS ( ) ( ) 案例展现 ~ 1 Chapter 01 Photoshop CS6 的基本操作 本章内容 1.1 Photoshop 的应用领域 1.6 控制面板的显示与隐藏 1.2 位图和矢量图的特性 1.7 新建 打开与保存文件 1.3 像素和分辨率的关系 1.8 图像的缩放 1.4 色彩模式 1.9 屏幕显示模式 1.5 Photoshop CS6 界面 1.10 计算机图形图像常用的色彩模式 Photoshop CS6 艺术设计案例教程

More information

没有幻灯片标题

没有幻灯片标题 第 2 章 C 语言的基本数据类型与表达 式 2. 1 C 语言的语法基础 2. 2 C 语言的基本数据类型 2. 3 常量和变量 2. 4 运算符与表达式 2. 5 数据类型转换 用 第 2 章 C 语言的基本数据类型与表达 2.1 C 语言的语法基础 2. 1. 1 C 语言字符集 式 C 语言的基本符号可分 4 个类, 归纳如下 : (1) 英文字母 : 大小写各 26 个, 共计 52 个

More information

01

01 ZEBRA 技术白皮书 条码编码 101 相关知识介绍 引言 20 70 数据 80 20 90 (JIT) AIAG EIA HIBCC HAZMAT 条码的优势提高数据准确性 99% 85% / / 提升效率 / 2 Zebra Technologies 保持一致性 ID 改进库存和资产管理 成本 / 效益分析 ID ID ID (ERP) RFID Zebra Technologies 3 ID

More information

第 2 章 Visual Basic 语言基础 本章主要介绍 Visual Basic 6.0 的编程基础知识, 包括常量 变量的基本概念 ; 数据类型及定义 ; 运算符与表达式的使用 ; 程序结构 ; 自定义过程 函数的基本语法和使用 本章还详细探讨了变量作用范围, 介绍了 VB 应用程序的启动模

第 2 章 Visual Basic 语言基础 本章主要介绍 Visual Basic 6.0 的编程基础知识, 包括常量 变量的基本概念 ; 数据类型及定义 ; 运算符与表达式的使用 ; 程序结构 ; 自定义过程 函数的基本语法和使用 本章还详细探讨了变量作用范围, 介绍了 VB 应用程序的启动模 第 2 章 Visual Basic 语言基础 本章主要介绍 Visual Basic 6.0 的编程基础知识, 包括常量 变量的基本概念 ; 数据类型及定义 ; 运算符与表达式的使用 ; 程序结构 ; 自定义过程 函数的基本语法和使用 本章还详细探讨了变量作用范围, 介绍了 VB 应用程序的启动模式等, 为后续学习面向对象的程序设计, 打下坚实的基础 2.1 常量 变量与数据类型 2.1.1 Visual

More information

* 4 6 R P r p . 1 2 3 4 7 89bk 6 5 1 2 3 4 5 6 7 8 9 0 bk r bl bm bn^ bo bl br bq bpbo bn bm [ ] [ ] [ ] bp 8 2 4 6 bq p [ ] [SET] br clckbt bs bs bt ck cl. 1 2 1 2+- 3 3 . 1 2 3 4 5 6 7 8 9 bk bl bm

More information

Microsoft Word - 第3章.doc

Microsoft Word - 第3章.doc 第 3 章流程控制和数组 3.1 实验目的 (1) 熟练掌握控制台应用程序的代码编写和调试, 以及运行方法 (2) 掌握选择结构的一般语法格式和应用 (3) 掌握 switch 语句的用法 (4) 掌握选择结构的嵌套的用法, 能灵活使用选择结构解决实际问题 (5) 掌握 while 循环语句的一般语法格式 (6) 掌握 for 循环语句的一般语法格式 (7) 掌握循环嵌套的语法格式 (8) 掌握一维数组的定义

More information

普通高等教育 十二五 规划教材公共课系列 高级语言程序设计 Visual Basic 实训 刘立群刘冰周颖 主编 刘哲邹丽娜杨林姣宋倬 副主编 杨林姣宋倬参 周进钱进参 编 编 科学出版社职教技术出版中心 www.aboo 北 京 内容简介本书是 高级语言程序设计 Visual Basic ( 刘立群等主编, 科学出版社出版 ) 的配套教材, 全书包括实验篇和习题篇 实验篇是根据教程中知识点精心设计的上机实验内容,

More information

穨ac3-3.PDF

穨ac3-3.PDF 3-1 Access 3-1-1 Event Click OnClick Click OnClick AfterUpdate BeforeUpdate On After Before > VBA( ) 3-1 3-1 Access Open Load Sub Funtion 3-1-2 Sub Funtion Private Me Me Forms Reports Form Report VisualBasic

More information

第3章 Java语言基础

第3章 Java语言基础 第 3 章 Java 语言基础 第 1/55 页 习题 3 3. 8. 9. 13. 18. 实验 : 1. 实验 4( 实 P11~12) 2. 实验任务 : 1 例 3.1( 教 P30) 2 变量赋值 ( 教 P29) 3 编写两个缓冲区对应同一个输入流对象, 并键盘输入整型 a 和双精度 b, 求和 第 2/55 页 习题 3 3. 实验任务 : 1 实验 5( 实 P12~13) 2 实验

More information