Microsoft Word - 第2部分.doc

Size: px
Start display at page:

Download "Microsoft Word - 第2部分.doc"

Transcription

1 第二部分 Visual Basic 程序设计实验指导 实验 1 Visual Basic 环境与简单程序设计 一 实验目的 1. 掌握在 Visual Basic 环境中创建简单应用程序的方法 2. 掌握在窗体上添加控件的方法以及对控件的调整方法 3. 掌握简单代码的编写 二 实验内容 1. 创建一个无代码的简单程序 2. 创建一个含有简单代码的程序 3. 将 Visual Basic 工程编译生成可执行文件 三 实验步骤与指导 1. 创建一个无代码的简单程序 (1) 创建工程 启动 Visual Basic, 在 新建工程 对话框中选择 标准 EXE ( 如图 1.1 所示 ), 单击 打开 按钮, 进入 Visual Basic 集成开发环境 (IDE) (a) 新建工程 图 1.1 创建工程 (b)visual Basic 集成开发环境 (IDE) (2) 设计界面 双击工具箱中的 Label 控件, 在窗体上添加一个标签 (Label1)

2 第二部分 Visual Basic 程序设计实验指导 103 (3) 设置属性 设置标签属性 在界面设计窗口中选定标签, 在属性窗口中将标签的 Caption 属性值改为 Hello,World! 单击 Font 属性右侧的按钮, 在对话框中将字体大小设置为二号 在界面设计窗口中调整标签控件的大小, 使 Hello,World! 显示为一行 通过 格式 菜单中的 在窗体中居中对齐 菜单项 ( 如图 1.2 所示 ) 将标签放置在窗体中央 设置窗体属性 在属性窗口中将窗体的 Caption 属性值改为 我的第一个程序 (4) 运行程序 单击工具栏中启动按钮 或按 F5 键运行应用程序, 程序运行结果如图 1.3 所示 图 1.2 格式 菜单图 1.3 第一个程序 2. 创建一个含有简单代码的程序 (1) 新建工程 在 Visual Basic 集成开发环境中单击 文件 菜单, 选择 新建工程 (2) 设计界面 单击工具箱中的 CommandButton 控件, 在窗体上拖动鼠标 画出 三个 命令按钮 ; 单击工具箱 TextBox 控件, 在窗体上画出文本框 (3) 设置属性 单击特定对象, 然后在属性窗口中进行如下设置 : 将三个命令按钮 (Command1~Command3) 的 Caption 属性分别设为 画圆 清除 和 退出 将文本框的 Text 属性设为空 将窗体的 Caption 属性设为 在窗体上画圆,FillColor 属性设为浅绿色,FillStyle 属性设为 0-Solid (4) 编写代码 双击 画圆 按钮, 打开代码编辑器窗口, 在光标闪动处添加以下代码 : Form1.Circle (1100, 1000), 800, vbblue Text1.Text = " 画一个实心圆 " 在代码编辑器窗口内左上部的 对象 组合框列表中选定 Command2, 在右上部的 过程 组合框列表中选择 Click, 然后在光标闪动处添加以下代码 : Form1.Cls Text1.Text = " 实心圆消失了 " 在代码编辑器窗口内左上部的 对象 组合框的列表中选定 Command3, 在右上部的 过 程 组合框列表中选择 Click, 然后在光标闪动处添加以下代码 : End 单击工具栏中的启动按钮 或按 F5 键运行应用程序, 程序运行效果如图 1.4 所示 3. 将 Visual Basic 工程编译生成可执行文件 将上述工程保存后, 单击 文件 菜单中的 生成.exe 菜单项, 在对话框中选择保存

3 104 Visual Basic 可视化程序设计实验指导与实训 位置并输入文件名, 然后单击 确定 按钮 退出 Visual Basic 开发环境, 双击已生成的.exe 文件运行 图 1.4 含有简单代码的应用程序 4. 代码快速输入技巧 Visual Basic 代码编辑器具有自动完成关键字的功能 若某些关键字或对象名称较长, 或忘记了它们的完整拼写形式, 只记得其前几个字母, 利用此功能, 即可快速 准确地输入关键字或对象名称 方法 1: 用快捷键 先输入关键字或对象名称的前几个字符, 然后按 Alt+ 键, 此时在插入点处将会出现如图 1.5 所示的快速列表, 用 或 键选中所需关键字或对象名称, 然后按 Tab 键或其他分隔符 ( 如空格 圆点. 逗号 等号 非字母运算符等), 即可准确无误地输入该关键字或对象名称 用鼠标双击快速列表中的关键字或对象名称亦可完成输入 方法 2: 用工具栏按钮 先输入关键字或对象名称的前几个字符, 然后单击 编辑 工具栏上的按钮 ( 如图 1.6 所示 ), 也可调出图 1.5 所示的快速列表 若 编辑 工具栏未显示, 可以通过单击菜单 视图 工具栏 编辑 显示该工具栏 图 1.5 自动完成关键字图 1.6 编辑工具栏例如, 某命令按钮的名称为 cmdquestion, 要将其 Enabled 属性设为 False, 可以按以下步骤操作 : 输入 cmdq, 按 Alt+ 键, 在快速列表中选中该项, 输入点号., 输入 e, 输入赋值号 =, 按 Tab 键

4 第二部分 Visual Basic 程序设计实验指导 105 实验 2 数据与表达式 一 实验目的 1. 掌握变量的定义方法 2. 掌握常用内部函数的用法 3. 掌握运算符和表达式的用法 二 实验内容 1. 利用 Chr Int 和 Rnd 函数随机生成大小写字母 2. 变量的定义和引用 ; 用 Int 和 Rnd 函数生成指定范围的随机整数 ; 用 Randomize 函数初始化随机数发生器 ; 用 Val 函数将数字字符串转换为数值 3. 练习 Left$ Right$ Mid Len InStr Ucase 和 Lcase 等字符串函数的使用 三 实验步骤与指导 1. 随机生成大小写字母 (1) 设计界面并设置属性 在窗体上放置两个命令按钮, 将其名称分别设为 cmducase 和 cmdlcase, 将 Caption 属性分别设为 大写字母 和 小写字母 (2) 编写代码 在两个命令按钮的 Click 事件过程中, 分别利用 Chr Int 和 Rnd 函数组成的表达式生成随机大写和小写字母, 并通过 Print 方法在窗体上显示表达式的结果 生成随机大写字母的表达式 :Chr(Int(Rnd * 26) + 65) 生成随机小写字母的表达式 :Chr(Int(Rnd * 26) + 97) 程序运行结果如图 2.1 所示 2. 生成指定范围的随机整数 (1) 设计界面 在窗体上放置三个文本框, 分别用于输入随机数的下界和上界, 显示生成的随机整数 ; 三个命令按钮, 分别用于执行随机整数的生成和显示, 清除文本框的内容, 结束程序运行 ; 三个标签, 用于对文本框进行简要说明 (2) 编写代码 在命令按钮的 Click 事件过程中定义两个 Integer 型变量, 用 Val 函数将输入文本框中的随机数上 下界转换为数值赋予变量 利用 Int 和 Rnd 函数以及变量组成的表达式生成随机整数, 并赋值给输出文本框的 Text 属性 生成指定范围随机整数的表达式为 :Int(Rnd * ( 上界 - 下界 + 1) + 下界 ) 在窗体的 Load 事件过程中调用 Randomize 函数, 对随机数发生器进行初始化

5 106 Visual Basic 可视化程序设计实验指导与实训 程序运行结果如图 2.2 所示 图 2.1 随机生成大小写字母图 2.2 生成指定范围的随机数 3. 字符串函数的使用 (1) 设计界面并设置属性 在窗体上放置两个文本框, 在属性窗口中将 Text1 的 Text 属 性设为 String Functions Demo 作为原始字符串,Text2 用于显示字符串函数的执行结果 ( 若要 使文本框显示多行文本, 需要在属性窗口中将其 MultiLine 属性设为 True) 在窗体上放置七个命令按钮, 将其 Caption 属性分别设为 Left 函数 Right 函数 Mid 函数 Len 函数 Instr 函数 UCase 函数 和 LCase 函数 (2) 编写代码 在代码窗口的 通用 - 声明 部分定义一个模块级的 String 型变量 strs, 在窗体的 Load 事件过程中将原始字符串赋值给该变量 在各命令按钮的 Click 事件过程中调用对应的字符串函数, 并将执行结果显示在 Text2 中 各按钮的功能要求如下 : 显示原始字符串的前 3 个字符 最后 3 个字符 第 8~ 第 11 个字符和总字符数 ; 显示字 母 D 在原始字符串中的位置 ; 将原始字符串全部转换为大写或小写 例如 : Dim strs1 As String ' 定义过程级 ( 局部 ) 变量 ' 调用 InStr 函数组成表达式为变量赋值 vbcrlf=chr(13)+chr(10), 即回车换行 strs1 = " 字母 D 是字符串的 " & vbcrlf & " 第 " _& InStr(strS, "D") & " 个字符 " Text2.Text = strs1 ' 显示函数执行结果 程序运行效果如图 2.3 所示 图 2.3 字符串函数示例

6 第二部分 Visual Basic 程序设计实验指导 在 立即 窗口中练习内部函数 运算符和表达式的使用用 Print 方法可以在 立即 窗口中获得内部函数调用或表达式运算的结果 问号? 可以代替 Print 关键字, 例如? Time 与 Print Time 等效 (1) 日期 / 时间函数, 例如 :Time Date Day Month Year Weekday 等 (2) 数学函数, 例如 :Abs Sqr Log 等 (3) 转换函数, 例如 :Chr Str Val 等 (4) 由函数 运算符和数据组成的表达式

7 108 Visual Basic 可视化程序设计实验指导与实训 实验 3 Visual Basic 程序设计初步 一 实验目的 1. 掌握窗体及三个基本控件 ( 命令按钮 标签和文本框 ) 的常用属性 事件和方法 2. 掌握赋值语句 InputBox 函数和 MsgBox 函数的应用 二 实验内容 1. 窗体常用属性 事件和方法的编程 ; 命令按钮常用事件编程 2. 标签控件的属性设置 3. 文本框常用属性 事件和方法的编程 三 实验步骤与指导 1. 窗体程序设计通过代码设置窗体的前景色 背景色 字体和字号, 用窗体的 Left Top 属性和 Move 方法移动窗体, 用 Print 方法显示窗体的当前位置 (1) 设计界面并设置属性 在窗体上放置两个命令按钮, 将 Command1 的 Caption 属性设为 改变属性值移动窗体,Command2 的 Caption 属性设为 用 Move 方法移动窗体 将窗体的 MaxButton 属性设为 False( 窗体最大化或最小化时, 若移动窗体位置将会出错 ) 设计界面如图 3.1(a) 所示 (2) 编写代码 在窗体的 Load 事件中将窗体的 Caption 属性设为 窗体属性 方法示例 设窗体的前景色 ForeColor 为蓝色 (vbblue), 背景色 BackColor 为白色 (vbwhite), 字体 FontName 为 黑体, 字号 FontSize 为 12,Left 和 Top 均为 300 在 Command1 的 Click 事件中通过改变 Left 和 Top 属性, 使窗体右移 下移各 200 缇 ; 在 Command2 的 Click 事件中用 Move 方法使窗体右移 下移各 200 缇 在窗体的 Click 事件中通过改变 Left 和 Top 属性, 使窗体恢复原位 每次移动窗体以及窗体复位时, 用 Print 方法在窗体上显示窗体的当前坐标 程序运行效果如图 3.1(b) 所示 程序代码如下 : Option Explicit Private Sub Command1_Click() ' 改变 Left 和 Top 属性移动窗体

8 第二部分 Visual Basic 程序设计实验指导 109 (a) 设计时界面 图 3.1 窗体程序设计 (b) 运行时界面 Me.Left = Me.Left Me.Top = Me.Top Cls Print " 窗体左上角在屏幕上的坐标为 :" Print Tab(6); Me.Left; ","; Me.Top Print " 单击窗体恢复原位 " Private Sub Command2_Click() ' 用 Move 方法移动窗体 Me.Move Me.Left + 200, Me.Top Cls Print " 窗体左上角在屏幕上的坐标为 :" Print Tab(6); Me.Left; ","; Me.Top Print " 单击窗体恢复原位 " Private Sub Form_Click() Me.Left = 300 Me.Top = 300 Cls Print " 窗体左上角在屏幕上的坐标为 :" Print Tab(6); Me.Left; ","; Me.Top Private Sub Form_Load() ' 设置窗体的属性 Me.Caption = " 窗体属性 方法示例 " Me.FontSize = 12 Me.FontName = " 黑体 " Me.ForeColor = vbblue Me.BackColor = vbwhite Me.Left = 300 ' 设置窗体位置的初始坐标 Me.Top = 300

9 110 Visual Basic 可视化程序设计实验指导与实训 2. 用标签制作浮雕效果文字 利用两个标签控件, 在设计时通过白色 / 黑色错位叠加, 实现如图 3.2 所示的文字浮雕效果 图 3.2 浮雕效果文字 (1) 在窗体上放置两个标签控件, 其 Caption 属性均为 VB 6.0 中文版, 字号均为 初号, 字体均为 隶书 调整标签的宽度和高度, 使文字分两行显示 (2) 按表 3-1 设置两个标签的其他属性 表 3-1 标签控件属性 控件名 背景样式 (BackStyle) 边框样式 (BorderStyle) 前景色 (ForeColor) 左 (Left) 顶 (Top) Label1 1 - Fixed Single 1 Opaque( 不透明 ) &H00FFFFFF&( 白 ) Label2 0 - None 0 Transparent( 透明 ) &H &( 黑 ) 用类似的方法, 还可以制作如图 3.3 所示的阴影文字 图 3.3 阴影文字 3. 文本框中选定内容的复制 剪切和粘贴在文本框 Text1 中选定文本, 通过按钮完成复制 剪切和粘贴操作, 将复制或剪切的内容粘贴到文本框 Text2 中 (1) 设计界面并设置属性 在窗体上放置两个文本框 Text1 和 Text2, 添加四个命令按钮, 分别命名为 cmdcut cmdcopy cmdpaste 和 cmdend, 用于剪切 复制 粘贴和退出 用两个标签对文本框进行简要说明 (2) 编写代码 在代码的 通用 - 声明 部分定义一个模块级变量 strpaste, 用于存放待粘贴的内容 各按钮的功能要求如下 : 程序运行时, 在 Text1 中选定文本, 单击 复制 按钮, 通过文本框的 SelText 属性将选

10 第二部分 Visual Basic 程序设计实验指导 111 定的内容存入变量 ; 单击 剪切 按钮, 先将选定的内容存入变量, 再删除选定内容 ; 单击 粘 贴 按钮, 将变量中的内容粘贴到 Text2 中 单击 退出 按钮结束运行 完整的程序代码如下 : Option Explicit Dim strpaste As String ' 模块级变量用于存放待粘贴的内容 Private Sub cmdcopy_click() strpaste = Text1.SelText ' 复制 ' 将选中的文本复制到变量中 Private Sub cmdcut_click() strpaste = Text1.SelText Text1.SelText = "" ' 剪切 ' 将选中的文本复制到变量中 ' 删除文本框中被选中的文本 Private Sub cmdend_click() End Private Sub cmdpaste_click() ' 粘贴 ' 将变量中的内容粘贴到 Text2 中 若 Text2 中有选定的文本 ' 则用变量内容将其覆盖 ; 若无选定文本, 粘贴到插入点处 Text2.SelText = strpaste 程序运行效果如图 3.4 所示 图 3.4 文本框编程 4.InputBox 函数和 MsgBox 函数 在窗体的 Load 事件中两次调用 InputBox 函数, 由用户分别输入学号和姓名存入两个变量, 然后调用 MsgBox 函数分两行显示输入的学号和姓名 MsgBox 对话框关闭后卸载窗体, 即在 程序运行期间始终不显示窗体, 仅显示三个对话框, 如图 3.5 所示 程序代码如下 : Private Sub Form_Load() ' 定义字符串变量用于存放学号 姓名和 MsgBox 函数提示信息 Dim strno As String

11 112 Visual Basic 可视化程序设计实验指导与实训 Dim strname As String Dim strmsg As String ' 用 InputBox 函数输入学号和姓名 strno = InputBox(" 请输入您的学号 :", " 输入学号 ", ) strname = InputBox(" 请输入您的姓名 :", " 输入姓名 ") 'MsgBox 函数的提示信息字符串 vbcr=chr(13), 即回车 strmsg = " 您的学号是 :" & strno & vbcr & " 您的姓名是 :" & strname ' 用 MsgBox 函数显示学号和姓名 MsgBox strmsg, vbinformation, " 感谢合作 " ' 卸载窗体 Unload Me (a) 输入学号 (b) 输入姓名 (c) 显示学号和姓名 图 3.5 InputBox 函数和 MsgBox 函数

12 第二部分 Visual Basic 程序设计实验指导 113 实验 4 常用控件 一 实验目的 1. 掌握图片框 图像框 定时器 单选按钮和复选框的功能和应用 2. 掌握列表框 组合框和框架的使用 3. 熟悉多窗体的基本操作, 掌握窗体操作的常用语句和方法 二 实验内容 1. 图片框 图像框 单选按钮 复选框和框架的综合应用 2. 用定时器制作秒表 3. 列表框及组合框程序设计 4. 多窗体程序设计 三 实验步骤与指导 1. 图片框 图像框 单选按钮 复选框和框架的综合应用要求 : 窗体加载时为图片框和图像框载入图片 ; 用框架对单选按钮进行分组 ; 用单选按钮改变图片框和图像框的大小 ; 用复选框指定图片框是否自动改变大小以显示全部图形, 图像框是否缩放图形以适应控件大小 (1) 设计界面 在窗体上放置两个框架, 其中各放置三个单选按钮 在框架 Frame1 中添加一个图片框, 在 Frame2 中添加一个图像框 在窗体上添加两个复选框和四个标签 (2) 设置属性 图像框的 BorderStyle 属性设为 1-Fixed Single, 以便在程序运行时使图像框的边界可见 各标签的属性均采用默认值 其他控件的属性设置如表 4-1 所示 表 4-1 控件属性对象名称属性名属性值对象名称属性名属性值 OptionButton CheckBox OptEnlargeI Caption 放大 optenlargep Caption 放大 OptReduceI Caption 缩小 optreducep Caption 缩小 OptionButton Caption 还原 Caption 还原 OptRevertI optrevertp Value True Value True Check1 Caption AutoSize Frame1 Caption 图片框 Frame Check2 Caption Stretch Frame2 Caption 图像框

13 114 Visual Basic 可视化程序设计实验指导与实训 (3) 编写代码 在窗体的 Load 事件中用 LoadPicture 函数为图片框和图像框载入图片, 并将图片框和图像框的 Width 和 Height 属性存入模块级变量, 以备还原之用 通过各单选按钮的单击事件分别完成图片框和图像框的放大 缩小和还原 ( 即改变控件的 Width 和 Height 属性 ) 在复选框 Check1 的单击事件中将该复选框的选中状态 (Value 属性值, 整型 ) 转换为逻辑型赋值给图片框的 AutoSize 属性, 指定图片框是否自动改变大小以显示全部图形, 并通过复选框的 Caption 属性显示图片框 AutoSize 属性的当前值 ( 如 :AutoSize = True) 在复选框 Check2 的单击事件中将该复选框的选中状态赋值给图像框的 Stretch 属性, 指定图像框是否缩放图形以适应控件大小, 并通过复选框的 Caption 属性显示图片框 Stretch 属性的当前值 ( 如 :Stretch = False) 程序的部分运行效果如图 4.1 所示 (a) 原始图形 图 4.1 图片框与图像框 (b) 放大图片框和图像框 程序代码如下 : Option Explicit ' 模块级变量用于存放图片框和图像框的原始大小 Dim PicW As Integer, PicH As Integer Dim ImgW As Integer, ImgH As Integer Private Sub Check1_Click() ' 将复选框的选中状态 (Value 属性值 ) 转换为 ' 逻辑值后赋值给图片框的 AutoSize 属性 ' 决定图片框是否自动改变大小以显示全部图形 Dim blnv As Boolean blnv = Check1.Value Picture1.AutoSize = blnv Check1.Caption = "AutoSize = " & blnv ' 根据复选框的选中状态确定显示哪个标签 Label1.Visible = blnv Label2.Visible = Not blnv Private Sub Check2_Click()

14 第二部分 Visual Basic 程序设计实验指导 115 ' 将复选框的选中状态 (Value 属性值 ) 转换为 ' 逻辑值后赋值给图像框的 Stretch 属性 ' 决定图形是否自动缩放以适应图像框大小 Dim blnv As Boolean blnv = Check2.Value Image1.Stretch = blnv Check2.Caption = "Stretch = " & blnv ' 根据复选框的选中状态确定显示哪个标签 Label3.Visible = blnv Label4.Visible = Not blnv Private Sub Form_Load() ' 用 LoadPicture 函数为图片框和图像框加载图形 ' 两个图形文件与当前工程位于同一文件夹 'App 是 Visual Basic 预定义的全局对象, 代表当前应用程序 ( 工程 ) 'Path 是 App 对象的属性之一, 指当前应用程序 ( 工程 ) 文件所在的路径 Picture1.Picture = LoadPicture(App.Path & "\Sinewave.ico") Image1.Picture = LoadPicture(App.Path & "\Rocket.ico") ' 设置属性 Picture1.AutoSize = True Image1.Stretch = True ' 存储原始图形大小 PicH = Picture1.Height PicW = Picture1.Width ImgH = Image1.Height ImgW = Image1.Width ' 设置标签的显示内容和位置 'Caption 属性是标签的默认属性, 可以省略 Label1 = " 图片框自动改变大小以适应图形 " Label2 = " 图片框大小的改变与图形无关 " Label3 = " 图形自动缩放以适应图像框大小 " Label4 = " 图像框改变大小时图形维持原状 " Label2.Left = Label1.Left Label4.Left = Label3.Left Private Sub optenlargei_click() ' 根据复选框选中状态设置 Stretch 属性 Image1.Stretch = Check2.Value Image1.Width = ImgW * 2 Image1.Height = ImgH * 2 Private Sub optenlargep_click() Picture1.Width = PicW * 2 ' 放大图像框 ' 放大图片框

15 116 Visual Basic 可视化程序设计实验指导与实训 Picture1.Height = PicH * 2 ' 根据复选框选中状态设置 AutoSize 属性 Picture1.AutoSize = Check1.Value Private Sub optreducei_click() ' 根据复选框选中状态设置 Stretch 属性 Image1.Stretch = Check2.Value Image1.Width = ImgW / 2 Image1.Height = ImgH / 2 ' 缩小图像框 Private Sub optreducep_click() ' 缩小图片框 Picture1.Width = PicW / 2 Picture1.Height = PicH / 2 ' 根据复选框选中状态设置 AutoSize 属性 Picture1.AutoSize = Check1.Value Private Sub optreverti_click() Image1.Width = ImgW Image1.Height = ImgH ' 图像框还原 Private Sub optrevertp_click() Picture1.Width = PicW Picture1.Height = PicH 2. 使用定时器控件制作秒表 ' 图片框还原 (1) 设计界面 在窗体上放置一个定时器 Timer1, 再添加一个框架, 在框架中添加一个 标签和五个命令按钮 (2) 设置属性 定时器的属性采用默认值 窗体和其他控件的属性设置如表 4-2 所示 表 4-2 窗体和控件属性 对象名称属性名属性值对象名称属性名属性值 CommandButton cmdstart Caption 开始 BorderStyle 1 cmdpause Caption 暂停 Label Label1 BackColor 黑色 cmdcontinue Caption 继续 ForeColor 浅绿色 cmdstop Caption 停止 Appearance 0-Flat cmdreset Caption 重置 Frame Frame1 BackColor 灰色 Form frmtimer Caption 秒表 Caption 秒表

16 第二部分 Visual Basic 程序设计实验指导 117 (3) 编写代码 制作秒表的几个关键环节是 : 1) 记录开始计时的时间, 可以通过调用 Visual Basic 内部函数 Timer 为变量赋值来实现 该函数返回从午夜零点开始至当前时刻的总秒数 (Single 型数据, 精度为 7 位 ) 2) 计算开始计时至当前时刻的时间差, 用 Timer 减去开始计时的时刻即可获得该时间差 3) 在系统允许的最短时间间隔内将时间差以 时 : 分 : 秒.xx 的形式显示 适当设置定时器控件的 Interval 属性, 在定时器的 Timer 事件中将时间差总秒数转换为时 分 秒, 并调用 Format 函数以特定的时间格式显示 4) 为避免发生误操作, 应该在单击某一按钮后, 对其他按钮的有效性 (Enabled 属性 ) 进行设置 为完成上述功能, 需要设置若干变量, 用于存储和计算有关的时间数据 具体功能的实现可以参考后面的程序代码 程序运行结果如图 4.2 所示 (a) 计时状态 (b) 暂停状态 图 4.2 用定时器制作秒表 程序代码如下 : Option Explicit ' 定义用于存放时 分 秒 总秒数的变量 Dim strh As String, strm As String Dim strs As String, strss As String Dim sngt As Single Dim intt As Integer Dim sngstart As Single Private Sub cmdcontinue_click() ' 继续 Timer1.Enabled = True ' 定时器有效 ' 开始 继续 重置 按钮无效, 暂停 停止 按钮有效 cmdstart.enabled = False cmdpause.enabled = True cmdcontinue.enabled = False cmdstop.enabled = True cmdreset.enabled = False

17 118 Visual Basic 可视化程序设计实验指导与实训 Private Sub cmdpause_click() ' 暂停 Timer1.Enabled = False ' 定时器无效 ' 继续 停止 重置 按钮有效, 暂停 按钮无效 cmdcontinue.enabled = True cmdstop.enabled = True cmdreset.enabled = True cmdpause.enabled = False Private Sub cmdreset_click() Form_Load ' 重置 ' 执行窗体加载过程中的各初始化语句 Private Sub cmdstart_click() ' 开始 sngstart = Timer ' 调用 Timer 函数返回午夜以来总秒数 (Single) 作计时初值 cmdcontinue_click ' 执行 继续 按钮单击事件过程中的各语句 Private Sub cmdstop_click() ' 停止 Timer1.Enabled = False ' 关闭定时器 ' 重置 按钮有效, 其他按钮无效 cmdstart.enabled = False cmdpause.enabled = False cmdcontinue.enabled = False cmdstop.enabled = False cmdreset.enabled = True Private Sub Form_Load() ' 窗体加载, 各控件初始化 ' 定时器时间间隔定为 10ms, 但是由于系统限制 ' 在 Windows 9x 下, 实际最短间隔仅能达到 1/18 秒 ( 约 55ms) ' 在 Windows 2000 下, 实际最短间隔可达 10ms Timer1.Interval = 10 Timer1.Enabled = False ' 定时器无效 Label1.Caption = "0:00:00.00" ' 开始 按钮有效, 其他按钮无效 cmdstart.enabled = True cmdpause.enabled = False cmdcontinue.enabled = False cmdstop.enabled = False cmdreset.enabled = False

18 第二部分 Visual Basic 程序设计实验指导 119 Private Sub Timer1_Timer() ' 定时器事件 ' 根据定时器控件 Interval 属性设置的时间间隔 ' 将计时开始后度过的总秒数换算为时 分 秒 ( 取 2 位小数 ) 显示 sngt = Timer - sngstart ' 计时开始后的总秒数 (7 位精度 ) strss = Format(sngT * 100 Mod 100, "00") ' 取小数点右侧 2 位 intt = Int(sngT) ' 总秒数取整 strs = Format(intT Mod 60, "00.") ' 秒 strm = Format(intT \ 60 Mod 60, "00:") ' 分 strh = Format(intT \ 3600, "0:") ' 时 Label1.Caption = strh & strm & strs & strss ' 显示 3. 列表框及组合框 用列表框和组合框实现员工概况的输入及显示 (1) 设计界面 在窗体上添加一个列表框 两个组合框 两个文本框 四个命令按钮 四个标签 界面布局如图 4.3 所示 (2) 设置属性 列表框属性采用默认值, 四个标签的 Caption 属性分别设为 姓名 性 别 年龄 和 职称 其他控件的属性设置如表 4-3 所示 表 4-3 控件属性 对象名称属性名属性值对象名称属性名属性值 ComboBox TextBox cbosex Text cmdadd Caption 添加 cbopost Text cmdremove Caption 去除 CommandButton txtname Text cmdclear Caption 清空 txtage Text cmdend Caption 退出 (3) 编写代码 在窗体的 Load 事件中用组合框的 AddItem 方法对职称和性别组合框进行初始化 在 添加 去除 和 清空 按钮的单击事件中分别调用列表框的 AddItem RemoveItem 和 Clear 方法实现相应的功能 具体功能的实现可以参考后面的程序代码 程序运行结果如图 4.3 所示 程序代码如下 : (a) 设置项目 图 4.3 列表框及组合框 (b) 添加项目

19 120 Visual Basic 可视化程序设计实验指导与实训 Option Explicit Private Sub cmdadd_click() ' 添加 If Trim$(txtName.Text) = "" Or Trim$(txtAge.Text) = "" Then Exit Sub Dim stradd As String ' 将在文本框和组合框中输入或选择的内容插入空格后连接成一个字符串 stradd = Trim$(txtName.Text) & " " & cbosex.text _ & " " & Trim$(txtAge.Text) & " 岁 " & cbopost.text List1.AddItem stradd ' 在列表框中添加项目 Private Sub cmdclear_click() List1.Clear ' 清空列表框 ' 清空 Private Sub cmdexit_click() Unload Me ' 退出 Private Sub cmdremove_click() ' 去除列表框中选定的项目 ' 去除 If List1.ListIndex <> -1 Then List1.RemoveItem List1.ListIndex Private Sub Form_Load() ' 窗体加载时用组合框的 AddItem 方法对职称和性别组合框进行初始化 ' 对一个对象执行多个动作可以使用 With End With 语句简化代码 With cbopost.additem " 高级工程师 ".AddItem " 工程师 ".AddItem " 助理工程师 ".AddItem " 技术员 ".ListIndex = 0 End With cbosex.additem " 男 " cbosex.additem " 女 " cbosex.listindex = 0 4. 多窗体编程 (1) 设计主窗体界面 新建工程, 将 Form1 改名为 frmmain, 设窗体的 Caption 属性为 主窗体 在窗体上添加四个命令按钮, 将按钮的 Caption 属性均设为空,Style 属性均设为 1-Graphical, 分别为每个按钮的 Picture 属性设置一幅图片 添加四个标签, 分别为每个按钮 进行文字说明 界面布局如图 4.4(a) 所示 (2) 添加窗体 单击工具栏中的 添加窗体 按钮, 在 添加窗体 对话框中选择 现

20 第二部分 Visual Basic 程序设计实验指导 121 存 选项卡, 将在本实验前三个工程中建立的窗体文件添加到本工程中 注意 : 在一个工程中不允许有同名 (Name) 的窗体, 因此应该在添加窗体前将原工程中的默认窗体名称 Form1 改为其他名称 (3) 编写代码 为主窗体中的各命令按钮的单击事件编写代码 显示其他窗体的语句格式为 : 窗体名称.Show 注意 : 除主窗体外, 其他窗体的代码中均不应出现 End 语句, 否则将结束程序 程序运行效果如图 4.4 所示 (a) 主窗体 (b) 显示多窗体 图 4.4 多窗体 主窗体的程序代码如下 : Option Explicit Private Sub cmdend_click() End ' 结束 Private Sub cmdlist_click() frmlstcbo.show ' 显示 列表框与组合框 窗体 Private Sub cmdpic_click() frmpicimg.show ' 显示 图片框与图像框 窗体 Private Sub cmdtimer_click() frmtimer.show ' 显示 秒表 窗体

21 122 Visual Basic 可视化程序设计实验指导与实训 实验 5 选择结构程序设计 一 实验目的 1. 掌握逻辑表达式的正确书写形式 2. 掌握 If Then 语句 ( 单分支 ) If Then Else 语句 ( 双分支 ) If Then ElseIf 语句 ( 多分支 ) 以及 If 语句嵌套程序设计 3. 掌握 Select Case 语句程序设计 二 实验内容 1. 用 If Then 语句及其嵌套实现三个数字的排序 2. 用 If Then If Then Else 语句检查用户名和密码, 进行用户登录检测 3. 制作一个摇奖机, 用 If Then Else 语句使其中的摇奖按钮成为摇奖机的开关按钮 4. 综合运用 If Then If Then Else If Then ElseIf 语句和 Select Case 语句编制算术考试程序 三 实验步骤及指导 1. 三值排序程序运行时, 在三个文本框中输入数字, 单击 排序 按钮后按从大到小排序 (1) 设计界面并设置属性 在窗体上放置三个文本框,Text 属性均设为空 添加四个标签,Caption 属性分别设为 请输入三个数字 : x y z 添加三个命令按钮,Caption 属性分别为 排序 清除 退出 界面布局如图 5.1 所示 (2) 编写代码 在 排序 按钮的单击事件中, 将三个文本框中的数字分别赋予三个变量 x y z, 用 If 语句判断其大小, 根据排序要求确定变量中的数据是否需要交换 若需要交换, 则借助中间变量 t 进行 这是两个变量进行数据交换最常用的算法 例如, 以下语句可以完成 x 和 y 之间的数据交换 : t = x: x = y: y = t 排序完成后, 用窗体的 Print 方法在窗体上显示排序结果 程序运行结果如图 5.1 所示 程序代码如下 : Option Explicit Private Sub Command1_Click()

22 第二部分 Visual Basic 程序设计实验指导 123 图 5.1 三值排序 'x y z 用于存放在文本框中输入的数字 Dim x As Single, y As Single, z As Single Dim t As Single 't 作为中间变量, 用于 x y z 之间的数据交换 x = Val(Text1.Text) ' 将文本框中的数字分别赋予变量 y = Val(Text2.Text) z = Val(Text3.Text) If x < y Then ' 若 x < y, x 与 y 交换, 使 x>y t = x: x = y: y = t If y < z Then ' 若 y < z, y 与 z 交换, 使 y>z t = y: y = z: z = t If x < y Then ' 再判断 x 与 y t = x: x = y: y = t Cls CurrentY = ScaleHeight / 2 ' 为 Print 方法设置垂直坐标 ( 窗体内部高度的 1/2) Print Tab(5); " 排序结果 :"; ' 显示结果 Print Tab(5); "x ="; x; ", y ="; y; ", z ="; z Private Sub Command2_Click() End ' 结束 Private Sub Command3_Click() Cls Text1.Text = "" Text2.Text = "" Text3.Text = "" Text1.SetFocus ' 清除 ' 清除窗体上的打印文字或图形 ' 清空各文本框 ' 设置焦点 Private Sub Form_Load() Caption = " 三值排序 " ' 窗体加载

23 124 Visual Basic 可视化程序设计实验指导与实训 Command1.Default = True ' 回车键默认按钮为 排序 按钮 Command2.Cancel = True 'Esc 键默认按钮为 退出 按钮 2. 用户登录检测在各种管理信息系统的用户登录界面, 一般需要进行用户名和密码的双重检测, 并且规定了出错的最多次数 本实验项目要求设计一个用户登录检测程序, 若用户输入的用户名和密码均无误, 显示 欢迎使用本系统, 否则提示用户名或密码错误, 请用户重新输入 若用户名或密码连续三次输入错误, 则提示 对不起, 您不是本系统的合法用户 按照信息服务用户管理的常规, 应该先对用户名进行检测 ( 用户名具有惟一性 ), 若用户名输入正确, 则不再要求用户重复输入用户名, 仅检查密码即可, 这样做也符合界面友好的原则 程序运行效果如图 5.2 所示 (a) 输入用户名和密码 (b) 登录成功 (c) 用户名错误 (d) 密码错误 图 5.2 用户登录检测 (1) 设计界面并设置属性 在窗体上放置两个文本框, 分别命名为 txtuserid 和 txtpassword,text 属性均设为空 添加三个标签,Caption 属性分别设为 请输入用户名和密码 用户名 用户密码 添加两个命令按钮,Caption 属性分别为 确定 和 退出 界面布局如图 5.2(a) 所示 (2) 编写代码 在 确定 按钮的单击事件中, 检测用户在文本框中输入的用户名和密码 用 If 语句判断其正误, 根据判断结果显示相应的信息 若用户输入有误, 除提示出错信息外, 应该将焦点返回出错的文本框, 并且反相显示出错内容 程序代码如下 : Option Explicit Private Sub cmdexit_click() Unload Me ' 退出 Private Sub cmdok_click() ' 确定 按钮 Static interruser As Integer ' 静态变量累加出错次数 Static interrpass As Integer ' 检查用户名 If UCase$(Trim$(txtUserID.Text)) = "ADMIN" Then ' 若用户名正确

24 第二部分 Visual Basic 程序设计实验指导 125 ' 检查密码 If Trim$(txtPassword.Text) = "123456" Then ' 若密码正确 Label1.Caption = " 欢迎使用本系统 " Label1.Left = (Me.Width - Label1.Width) / 2 Else ' 若密码错误 interrpass = interrpass + 1 ' 错误数 +1 If interrpass = 3 Then ' 若出错 3 次, 退出系统 MsgBox " 对不起, 您不是本系统的合法用户 ", vbinformation, " 提示 " Unload Me Else ' 若出错不足 3 次, 重新输入 MsgBox " 密码输入错误, 请重新输入!", vbexclamation, " 密码错误 " With txtpassword ' 焦点返回密码框.SelStart = 0.SelLength = Len(.Text).SetFocus End With Else ' 若用户名错误 interruser = interruser + 1 ' 错误数 +1 If interruser = 3 Then ' 若出错 3 次, 退出系统 MsgBox " 对不起, 您不是本系统的合法用户 ", vbinformation, " 提示 " Unload Me Else ' 若出错不足 3 次, 重新输入 MsgBox " 用户名输入错误, 请重新输入!", vbexclamation, " 用户名错误 " With txtuserid ' 焦点返回用户框.SelStart = 0.SelLength = Len(.Text).SetFocus End With 3. 制作摇奖机 用 Timer( 定时器 ) 结合其他控件制作一个摇奖机, 要求 开始摇奖 和 抽奖 ( 抽取 中奖号码 ) 的功能通过一个命令按钮实现 当按钮的标题为 开始摇奖 时, 用户在文本框中 输入奖券号码, 单击该按钮后, 程序以定时器允许的最短时间间隔快速产生随机号码 (6 位数 ), 显示在标签控件中, 同时将按钮标题改为 抽奖 当用户再次单击此按钮时 ( 抽奖 ), 停止摇 奖, 显示中奖号码并判断用户是否中奖, 同时将按钮标题改为 开始摇奖 (1) 设计界面并设置属性 在窗体上放置一个 Timer 控件, 一个文本框, 两个命令按钮, Command1 的 Caption 属性为 开始摇奖,Command2 的 Caption 属性为 退出 添加四个 标签,Label1 用于显示中奖号码, 可以适当设置其背景色 前景色和边框样式, 使之更加醒

25 126 Visual Basic 可视化程序设计实验指导与实训 目, 另外三个标签用于简要说明和显示中奖信息 (2) 编写代码 程序代码主要是处理 Command1 的单击事件和定时器控件的 Timer 事件 按钮 Command1 一钮两用, 相当于一个开关按钮, 在 开始摇奖 和 抽奖 两种状态间切换 单击该按钮时, 用 If 语句根据按钮 Caption 属性的当前值决定如何操作 如果按钮 Caption 属性的当前值为 开始摇奖, 则启动定时器产生随机号码, 并将按钮的 Caption 属性改为 抽奖 ; 否则, 关闭定时器, 显示中奖号码并判断用户是否中奖, 同时将按钮的 Caption 属性改为 开始摇奖 随机号码通过 Rnd 函数在定时器控件的 Timer 事件中产生, 以 6 位数的形式在标签 Label1 中显示 程序运行效果如图 5.3 所示 请注意 (b) 图中按钮标题与其他各图不同 (a) 输入号码 (b) 正在摇奖 (c) 抽奖结果 1 (d) 抽奖结果 2 图 5.3 摇奖机 程序代码如下 : Option Explicit Private Sub Command1_Click() ' 开始摇奖 / 抽奖 按钮单击事件 If Command1.Caption = " 开始摇奖 " Then ' 开始摇奖 If Trim$(Text1) = "" Then ' 如果未输入奖券号码 MsgBox " 请输入奖券号码 ", vbinformation, " 提示 " Text1.SetFocus Exit Sub ' 按钮标题更迭, 再次单击此按钮时, 将执行 Else 后的语句 Command1.Caption = " 抽奖 " Label4 = " 正在摇奖..." Randomize ' 初始化随机数发生器 Timer1.Enabled = True ' 启动定时器

26 第二部分 Visual Basic 程序设计实验指导 127 Else ' 若按钮 Caption = 抽奖 Timer1.Enabled = False ' 关闭定时器 Command1.Caption = " 开始摇奖 " If Trim$(Text1) = Label1.Caption Then Label4 = " 恭喜! 您中奖了!" Else Label4 = " 谢谢您的参与!" Private Sub Command2_Click() Unload Me ' 退出 Private Sub Form_Load() ' 定时器时间间隔定为 10ms, 但是由于系统限制 ' 在 Windows 9x 下, 实际最短间隔仅能达到 1/18 秒 ( 约 55ms) ' 在 Windows 2000 下, 实际最短间隔可达 10ms Timer1.Interval = 10 Timer1.Enabled = False ' 定时器无效 Label1.Caption = "" Private Sub Form_Unload(Cancel As Integer) Timer1.Enabled = False Private Sub Timer1_Timer() ' 定时器事件 Label1 = Format(Int(Rnd * ), "000000") 4. 算术考试 ' 显示 6 位摇奖号码 设计一个小学低年级四则运算算术考试程序 程序中各种运算的操作数均为整数, 其中 加法 减法和乘法运算的操作数以及除法运算中除数的取值范围为 1~10, 被除数为 1~20 操作数和运算符 (+ - ) 均随机产生 减法运算的结果不应为负数, 除法运算的结 果应为整数 程序出题后, 考生在文本框中输入答案并按回车键确认, 由程序判断正误并显示 结果 ( ) 当出题总数达 10 道题或单击 计分 按钮时, 显示考试成绩, 并根据成绩显 示不同的鼓励信息 单击 重新开始 按钮时重新出题 (1) 设计界面并设置属性 在窗体上放置三个标签,Label1 用于显示题目, 将其 Caption 属性设为空, 背景色为白色, 边框样式 (BorderStyle) 为 1-Fixed Single, 使其看上去像一个文 本框 另外两个标签用于对控件的说明 添加一个文本框,Text 属性为空 添加一个图片框,

27 128 Visual Basic 可视化程序设计实验指导与实训 背景色为白色, 用于显示答题结果 添加三个命令按钮,Caption 属性分别为 计分 重新开始 和 退出 (2) 编写代码 程序中信息的基本流程为 : 出题 考生输入答案 判断正误并显示结果 统计并显示得分 出题在 Form_Load 事件过程中完成 每道题用随机函数 Rnd 和取整函数 Int 产生范围为 1~ 10 的两个随机整数作为操作数, 若为减法或除法, 应将大数作为被减 ( 除 ) 数 为避免生成不能整除的除法题目, 可以进行以下处理 : If intn1 Mod intn2 Then intn1 = (intn1 \ intn2 + 1) * intn2 上面语句中的 intn1 为被除数,intN2 为除数, 括号中的 +1 可以避免被除数与除数相等的题目生成过多, 还可以使被除数的取值在 20 以内 加减乘除四种运算也是随机的, 用范围为 1~4 的随机整数作为运算符代码, 分别代表 + - 判断正误在考生输入答案并按回车键后进行, 因此, 相关代码应置于文本框的按键事件过程中 ( 如 KeyPress KeyDown KeyUp) 首先应判断考生是否按了回车键, 然后将考生输入的答案与标准答案比较, 输出判断结果 同时, 分别累加考生答对和答错的题数, 以备统计得分之用 考生每做完一题 ( 按回车键 ), 调用 Form_Load 事件过程生成下一题 统计得分在 计分 按钮的单击事件过程中处理, 答对题数 / 总题数 *100 即为分数 程序界面和运行效果如图 5.4 所示 (a) 出题和输入答案 (b) 单击 计分 按钮 (c) 出题总数达到 10 道题 图 5.4 算术考试 程序代码如下 : Option Explicit ' 模块级变量存放计算结果和正误题数 Dim intresult As Integer Dim intok As Integer Dim interr As Integer Private Sub Command1_Click() Dim inttotal As Integer ' 计分按钮

28 Dim intgrade As Integer inttotal = intok + interr 第二部分 Visual Basic 程序设计实验指导 129 ' 总题数 If inttotal = 0 Then MsgBox " 您还没有答题, 不能计分 ", vbinformation, " 提示 " Text1.SetFocus Exit Sub intgrade = Int(intOK / inttotal * 100) ' 得分 Label1 = "" Picture1.Print String(28, "*") Picture1.Print " 共计算 " & inttotal & " 道题,"; _ " 得 " & intgrade & " 分 " ' 根据得分情况显示不同内容 Select Case intgrade Case 100 Picture1.Print " 祝贺您, 希望您再接再厉!" Case 90 To 99 Picture1.Print " 再加把劲, 争取得 100 分!" Case 80 To 89 Picture1.Print " 成绩不错, 但还需努力!" Case 60 To 79 Picture1.Print " 成绩不太理想, 继续努力!" Case Else Picture1.Print " 不要灰心, 刻苦学习!" End Select Private Sub Command2_Click() ' 重新开始 Label1 = "" Text1 = "" Picture1.Cls Text1.SetFocus intok = 0 interr = 0 Form_Load ' 调用 Form_Load 事件过程 Private Sub Command3_Click() End ' 退出 Private Sub Form_Load() Dim intn1 As Integer, intn2 As Integer ' 操作数 Dim intop As Integer, strop As String ' 操作代码 操作符

29 130 Visual Basic 可视化程序设计实验指导与实训 Dim inttmp As Integer ' 用于两数交换 Randomize intn1 = Int(10 * Rnd + 1) ' 随机取操作数和操作符代码 intn2 = Int(10 * Rnd + 1) intop = Int(4 * Rnd + 1) ' 若为减法或除法, 将大数置前 If intn1 < intn2 And intop Mod 2 = 0 Then inttmp = intn1 intn1 = intn2 intn2 = inttmp Select Case intop ' 四则运算 Case 1 intresult = intn1 + intn2 strop = "+" ' 将操作代码转换为操作符 Case 2 intresult = intn1 - intn2 strop = "-" Case 3 intresult = intn1 * intn2 strop = " " Case 4 ' 若有余数, 将被除数设为除数的整倍数, 被除数 <20 If intn1 Mod intn2 Then intn1 = (intn1 \ intn2 + 1) * intn2 intresult = intn1 / intn2 strop = " " End Select Label1 = intn1 & strop & intn2 & "=" ' 标签显示题目 ' 按回车键后, 在图片框显示结果 Private Sub Text1_KeyPress(KeyAscii As Integer) ' 若按键为回车键 (ASCII 码 =13), 判断正误并显示 If KeyAscii = 13 Then If Val(Text1) = intresult Then ' 若答题正确 Picture1.Print " "; Label1; Text1; Tab(15); " " intok = intok + 1 ' 答对题数 +1 Else ' 若答错 Picture1.Print " ";Label1;Text1;Tab(15);" ";" (";intresult;")" interr = interr + 1 ' 答错题数 +1 Text1 = ""

30 第二部分 Visual Basic 程序设计实验指导 131 Text1.SetFocus If intok + interr = 10 Then ' 回答 10 道题后, 直接显示计分结果 Command1_Click ' 调用 计分 按钮单击事件过程 Else ' 若不足 10 道题 Call Form_Load ' 执行窗体加载事件过程中各语句生成下一题 ' 若按键非数字键或回删键 (ASCII 码 =8), 则取消按键 ElseIf Not IsNumeric(Chr(KeyAscii)) And KeyAscii <> 8 Then KeyAscii = 0 ' 将 KeyAscii 参数设为 0 的作用是使本次按键无效

31 132 Visual Basic 可视化程序设计实验指导与实训 实验 6 循环结构程序设计 一 实验目的 1. 掌握 For Next 循环的使用, 正确使用循环变量控制 For Next 循环的起始和结束 2. 掌握 While Wend 循环的使用 3. 熟悉 Do Loop 循环的使用 4. 掌握多重循环的应用 二 实验内容 1. 用 For Next 循环制作可打印的 ASCII 码字符对照表 2. 用 For Next 循环及其嵌套制作九九乘法表, 使其以三种方式 ( 全部 下三角 上三 角 ) 显示 3. 用 Do Loop 循环限制用户输入有效数据 4. 用 While Wend 循环编制一个计算人口增长数据的程序 三 实验步骤及指导 1. 制作 ASCII 码对照表 ASCII 码 ( 美国标准信息交换码 ) 是 7 位二进制字符集, 用来表示标准美制键盘上的字母 符号以及控制字符 其中, 可打印字符的编码值范围为 32~126(32= 空格 ) 利用 Chr 函数可 以将字符代码转换为对应的字符 (1) 设计界面 程序的界面很简单, 窗体上无任何控件 将窗体的背景色设为白色, Caption 属性设为 ASCII 码表 (2) 编写代码 由于可打印字符的 ASCII 码对照表具有明确的起止范围, 因此, 非常适 于用 For Next 循环制作 单击窗体时, 在循环中用 Print 方法将 ASCII 字符及其代码直接显 示在窗体上, 格式为 字符 = 字符代码, 每行显示 8 个字符 程序运行效果如图 6.1 所示 程序代码如下 : Option Explicit Private Sub Form_Click() Dim intasc As Integer, i As Integer Cls Print

32 第二部分 Visual Basic 程序设计实验指导 133 图 6.1 ASCII 码对照表 Me.FontSize = 10 Print Tab(29); "ASCII 码对照表 " Me.FontSize = 9 Print " "; String$(79, "-") 'String 函数返回指定数目的重复字符 'ASCII 码 是可打印字符,Chr 函数将 ASCII 码转换为对应字符 For intasc = 32 To 126 'intasc 为循环变量 Print Tab(10 * i + 3); Chr(intASC); " ="; intasc; i = i + 1 If i = 8 Then ' 每行显示 8 个 ASCII 码 i = 0 Print Next intasc Print vbcr; " "; String$(79, "-") 'vbcr 代表回车 2. 制作 九九乘法表 用三种方式 ( 全部 下三角 上三角 ) 显示 九九乘法表 (1) 设计界面并设置属性 在窗体上放置一个图片框, 设背景色为白色 添加四个命令 按钮,Caption 属性分别为 全部 下三角 上三角 和 结束 (2) 编写代码 九九乘法表 具有明显的规律, 由 9 行 9 列等式组成, 若以变量 i 代表 行号, 变量 j 代表列号, 则所有等式均可表示为 :i * j = 乘积 三种显示方式 ( 全部 下三角 上三角 ) 的区别在于行或列中等式的个数不同 在 全部 显示方式下, 所有的行 列中均含 有 9 个等式 在 下三角 方式下, 每行等式的个数等于该行的行号 在 上三角 方式下, 每列等式的个数等于该列的列号 对这种具有明显行列规律的问题, 通常采用 For Next 双重 循环解决 设外循环的循环变量为行号, 内循环的循环变量为列号, 在内循环中输出一行中的 各列, 退出内循环后行号加 1, 输出下一行 下面是程序变量定义以及 Caption 属性为 全部 的按钮单击事件过程的代码 : Option Explicit Dim strs As String, i As Integer, j As Integer Private Sub Command1_Click() ' 全部 Picture1.Cls Picture1.Print vbcr; Tab(41); " 九九乘法表 "

33 134 Visual Basic 可视化程序设计实验指导与实训 Picture1.Print " " & String$(89, "-") For i = 1 To 9 ' 外循环变量为乘法表的 行 For j = 1 To 9 ' 内循环变量为乘法表的 列 strs = i & " " & j & "=" & i * j ' 行列相乘 Picture1.Print Tab((j - 1) * ); strs; ' 显示 Next j Picture1.Print Next i Picture1.Print " " & String$(89, "-") 另外两种显示方式只需将上述代码中第 8 行的 For j = 1 To 9 语句进行如下改动 : 下三角 :For j = 1 To i ' 将 9 改为 i 上三角 :For j = i To 9 ' 将 1 改为 i 三种显示方式分别通过单击相应按钮实现 程序运行界面如图 6.2 所示 (a) 全部 (b) 下三角 图 6.2 (c) 上三角 九九乘法表

34 第二部分 Visual Basic 程序设计实验指导 限制用户输入有效数据 鸡兔同笼 问题是已知鸡和兔的总只数 h 及总腿数 f, 求鸡和兔各有多少只 该问题本身并不需要用循环结构解决 ( 当然也可以用循环结构, 请读者自己考虑算法 ), 本例只是借 鸡兔同笼 问题练习用 Do Loop 循环限制用户输入有效数据 程序运行时通过 InputBox 函数由用户依次输入已知条件, 即鸡兔总只数 h 和总腿数 f 在输入数据时, 应根据用户输入的鸡兔总数 h 限定总腿数 f 的有效范围, 即 :2h<f<4h, 且 f 必须为偶数 若输入错误, 通过循环控制重新输入 (1) 设计界面 将窗体背景色设为白色, 在窗体上放置三个标签,BackStyle 属性均设为 0-Transparent, 用于对鸡兔同笼问题进行简要说明 添加一个命令按钮, 设其 Caption 属性为 我来出题 (2) 编写代码 在按钮 Command1 的单击事件中, 通过 InputBox 函数由用户输入鸡兔总数 h 将输入鸡兔总腿数 f 的 InputBox 函数放在 Do Loop 循环中, 若输入的数据有效, 则通过 Exit Do 语句退出循环, 否则报告错误, 并在循环中继续调用 InputBox 函数, 直至输入正确或单击对话框中的 取消 按钮为止 程序运行界面如图 6.3 所示 图 6.3 鸡兔同笼 程序代码如下 : Option Explicit Private Sub Command1_Click() Dim C%, R%, h%, f% ' 鸡数 兔数 总只数 总腿数变量 h = Val(InputBox(" 请输入鸡兔总数 ( 2):")) If h < 2 Then Exit Sub ' 用户单击 取消 按钮或鸡兔总数 <2, 退出本过程 Do ' 无条件循环, 在循环中设置退出循环的语句

35 136 Visual Basic 可视化程序设计实验指导与实训 f = Val(InputBox(" 请输入鸡兔总腿数," & vbcr _ & " 该数字必须是大于 " & 2 * h _ & ", 并且小于 " & 4 * h & " 的偶数 ")) If f = 0 Then Exit Sub ' 用户单击 取消 按钮退出本过程 ' 输入错误时, 重新输入, 正确则退出循环 If f <= 2 * h Or f >= 4 * h Or f Mod 2 Then MsgBox " 输入错误, 请重新输入!", vbcritical Else Exit Do ' 退出循环 Loop R = (f - 2 * h) / 2 ' 求兔数 C = h - R ' 鸡数 Cls Me.CurrentY = Me.Height / 3 ' 为 Print 方法设置坐标 Print Tab(5); " 若鸡兔总数为 "; h; " 只, 共有 "; f; " 条腿," Print Print Tab(5); " 则笼中有鸡 "; C; " 只,"; " 兔 "; R; " 只 " 4. 计算人口增长数据 据统计,2002 年末全国总人口为 亿, 人口自然增长率为 6.45 以这两项统计 数字为基数, 编制一个计算人口增长数据的程序, 使之可以计算若干年后我国人口可能达到的 数字, 也可计算达到一定人口数所需的时间 (1) 设计界面 在窗体上放置一个框架, 框架内添加两个单选按钮, 用于选择计算项目 ; 添加两个文本框, 用于输入年数或人口数 ; 添加两个标签, 用于对计算项目进行简要说明 在 窗体上添加一个图片框, 背景色设为白色, 用于显示计算结果 添加两个命令按钮, 分别用于 计算和退出 再添加一个标签, 显示 2002 年末人口的统计数据 (2) 编写代码 人口增长数可以按以下公式计算 : P2=P1(1+r) y 式中指数 y 为年数,P1 为人口基数,P2 为 y 年后将达到的人口数,r 为人口自然增长率 例如, 以 2002 年末的统计数字为基数, 计算 10 年后人口总数 ( 亿 ) 的 Visual Basic 表达式为 : *( )^10 达到一定人口数所需的时间 ( 年数 ) 可以根据人口增长公式用 Log 函数计算 : y = Log(P2 / P1) / Log(1 + r) 也可用 While Wend 循环求得 例如, 以下代码计算人口达到 15 亿所需的时间 y: Dim P1 As Single, y As Single P1 = y = 0 While P1 < 15 P1 = P1 * y = y + 1

36 第二部分 Visual Basic 程序设计实验指导 137 Wend 本实验项目要求用 While Wend 循环或 Do Loop 循环计算达到一定人口数所需的时间 程序运行界面如图 6.4 所示 (a) 若干年后的人口数 图 6.4 计算人口增长数据 (b) 达到一定人口数所需的时间 完整的程序代码如下 : Option Explicit Private Sub Command1_Click() ' 开始计算 Dim sngp1 As Single, sngp2 As Single ' 人口变量 Dim sngy1 As Single, sngy2 As Single ' 年数变量 sngp1 = '2002 年末的人口 ( 亿 ) If Option1 Then ' 如果选择计算若干年后的人口数 If Val(Text1) <= 0 Then ' 排除无效数据 Picture1.Cls Picture1.Print " 无效数据!" Exit Sub sngy1 = Val(Text1) sngp2 = sngp1 * ^ sngy1 ' 计算人口数 ( 人口自然增长率为 6.45 ) Else ' 若选择计算达到一定人口数所需的时间 If Val(Text2) < sngp1 Then Picture1.Cls Picture1.Print " 无效数据!" Exit Sub sngp2 = Val(Text2) sngy1 = 0 While sngp1 < sngp2 ' 计算人口数达到 sngp2 亿所需的时间 sngp1 = sngp1 * sngy1 = sngy1 + 1 Wend sngp2 = sngp1

37 138 Visual Basic 可视化程序设计实验指导与实训 ' 处理年份 If Int(sngY1) < sngy1 Then sngy2 = Int(sngY1) + 1 Else sngy2 = sngy1 ' 在图片框显示计算结果 ' 若用户输入带小数的年数 Picture1.Cls Picture1.Print vbcr; Tab(2); sngy1; " 年后 (" & _ sngy2; " 年 ), 我国人口总数为 "; sngp2; " 亿 " Private Sub Command2_Click() End ' 退出 Private Sub Form_Load() Label1 = "2002 年末全国总人口为 亿, 人口自然增长率为 6.45 " Private Sub Option1_Click() Text1.SetFocus ' 单击单选按钮时, 焦点转至对应的文本框 Private Sub Option2_Click() Text2.SetFocus Private Sub Text1_Click() Option1.Value = True ' 单击文本框时, 选中对应的单选按钮 Private Sub Text2_Click() Option2.Value = True

38 第二部分 Visual Basic 程序设计实验指导 139 实验 7 数组 一 实验目的 1. 掌握一维数组 二维数组和可调 ( 动态 ) 数组的建立和使用方法 2. 掌握控件数组的建立和使用方法 二 实验内容 1. 制作一个将十进制整数转换为二进制 八进制和十六进制数的程序 2. 用含有 16 个元素的单选按钮控件数组设置文本框的字体颜色和背景色 3. 综合运用一维数组 二维数组 动态数组和控件数组的有关知识编写程序, 要求能输入学生的学号 姓名 性别 年龄等个人简况, 输入的学生人数不限, 并可以按学号或姓名查询 三 实验步骤及指导 1. 数制转换制作一个将十进制整数转换为二进制 八进制和十六进制数的程序 十进制整数转换为其他 (N) 进制数的基本方法是 N 除取余, 逆排序, 即用 N 去除十进制整数, 取其余数, 再用 N 去除商, 取余数, 如此反复, 直至商为零 将每次所得余数逆序排列, 即为要转换的 N 进制数 在十六进制数中有 A ~ F 6 个特殊数码, 与十进制数 10~15 相对应, 为了便于转换, 可以将 0 ~ F 16 个数码存入一个下界为 0 上界为 15 的静态字符型数组中 转换时按照数组元素的下标取出对应的字符即可 该数组同样适用于向二进制和八进制的转换 (1) 设计界面并设置属性 在窗体上放置两个文本框, 用于输入十进制数和显示转换结果, 名称分别为 txtinput 和 txtresult, 将 Text 属性均设为空 添加一个组合框, 将名称改为 cboselect 如图 7.1 所示, 选择该控件属性窗口的 List 属性, 单击右侧的下拉按钮, 在弹出的下拉列表框中输入三项内容 : 二进制 十进制 和 十六进制 ( 每项输入完成后按 Ctrl+Enter 组合键换行 ); 再选择属性窗口的 ItemData 属性, 单击右侧的下拉按钮, 在弹出的下拉列表框中输入三项内容 : 2 8 和 16, 分别与 List 属性中的各项相对应 再添加两个命令按钮,Caption 属性分别为 转换 和 结束 说明 : 组合框的 ItemData 属性是一个长整型数的数组, 它的项目数 ( 元素个数 ) 与控件的 List 属性 ( 本质是字符串数组 ) 的项目数相等 ItemData 属性中的各项与 List 属性中的各项一一对应 在本程序中, 当用户选择待转换的数制 ( 如 二进制 ) 时, 可以直接利用 ItemData 属性中对应的数值进行计算

39 140 Visual Basic 可视化程序设计实验指导与实训 (a) 设置 List 属性 (b) 设置 ItemData 属性 图 7.1 设置组合框属性 (2) 编写代码 定义一个模块级的字符串型静态数组 Char(15), 默认下界为 0 在窗体的 Form_Load 事件中将字符 0~9 A~F 赋予该数组的各元素, 以备调用 在组合框的单击事件中, 将用户选择的进制通过组合框的 ItemData 属性获取进制基数存入变量以备计算 在 转换 按钮的单击事件中, 通过循环进行 N 除取余, 逆排序, 将用户输入的十进制数转换为其他进制 在循环中, 根据每次所得的余数, 取 Char 数组中对应位置的 0~F 字符, 即转换为特定进制的数码字符 将每次所得数码字符按以下方式存入字符串变量即可实现 逆排序 : 字符串变量 = 数码字符 & 字符串变量注意 : 数码字符应该在 & 连接符之前 程序运行效果如图 7.2 所示 (a) 十进制转二进制 (b) 十进制转八进制 (c) 十进制转十六进制 图 7.2 数制转换 程序代码如下 : Option Explicit Dim n As Integer Dim Char(15) As String ' 存数制 ' 静态字符串数组存放 0~F 数字字符 Private Sub cboselect_click() 'cboselect 为数制组合框 'ItemData 为组合框中项目的代号, 分别为 'ListIndex 为组合框中项目的索引, 代表当前被选中的项目

40 第二部分 Visual Basic 程序设计实验指导 141 ' 单击时将所选数制存入 n n = cboselect.itemdata(cboselect.listindex) Private Sub cmdend_click() Unload Me ' 结束 按钮 Private Sub cmdstart_click() ' 转换 按钮 On Error GoTo ErrInfo ' 出错时 ( 如果数字太大, 溢出 ) 转向 ErrInfo 语句 Dim strresult As String ' 存转换结果 Dim lngnum As Long ' 存待转换数字 Dim r As Integer ' 存余数 lngnum = Val(txtInput) ' 将输入框中的十进制数存入 lngnum Do Until lngnum = 0 ' 循环除 n 取余, 直到原十进制数商 =0 为止 r = lngnum Mod n ' 除 n 取余 ' 根据余数, 取 Char 数组中对应位置的 0~F 字符 ' 转换为特定进制的数字符号 ' 将余数逆序排列 ( 注意 & 前后变量的位置 ) 赋予 strresult strresult = Char(r) & strresult lngnum = lngnum \ n ' 除 n 取整, 准备下一次循环 Loop txtresult = strresult ' 显示结果 Exit Sub ' 关键语句, 避免未出错时也执行后面的语句 ' 错误处理程序段 ( 避免溢出 ) ErrInfo: MsgBox " 请输入 2,147,483,647 的数字 ", vbinformation, " 提示 " With txtinput.selstart = 0.SelLength = Len(.Text).SetFocus End With Private Sub Form_Load() ' 窗体加载 Dim i As Integer ' 将 0~9 赋值给 Char 数组 For i = 0 To 9 Char(i) = i Next ' 将字符 A~F 赋值给 Char 数组元素 (10)~(15) 65 是 A 的 ASCII 码 For i = 0 To 5 Char(10 + i) = Chr(65 + i) Next

41 142 Visual Basic 可视化程序设计实验指导与实训 n = 2 ' 预设转换数制为二进制 cboselect.listindex = 0 ' 设组合框第 1 项 ( 二进制 ) 为默认选项 cmdstart.default = True ' 转换 按钮为回车默认按钮 Private Sub txtinput_keypress(keyascii As Integer) ' 若按键非数字键或回删键, 取消按键 If Not IsNumeric(Chr(KeyAscii)) And KeyAscii <> 8 Then KeyAscii = 0 2. 用单选按钮控件数组设置文本框的字体颜色和背景色 创建一个含有 16 个元素的单选按钮控件数组, 代表 QBColor 函数可返回的 16 种颜色, 用鼠标左键单击其中任一单选按钮, 将文本框的字体颜色 ( 即前景色 ) 设置为对应颜色, 右键 单击时, 将文本框的背景色设置为对应颜色 (1) 设计界面 在窗体上放置一个文本框和一个框架 在框架中添加一个单选按钮 Option1, 将 Option1 的 Index 属性设为 0,Style 属性设为 1-Graphical,Caption 属性设为空, BackColor 设为黑色,Height 和 Width 均设为 270 界面设计如图 7.3(a) 所示 (2) 编写代码 在窗体的 Form_Load 事件中, 通过 For 循环用 Load 语句添加单选按钮 控件数组元素 (1)~(15), 同时调用 QBColor 函数为新添加的单选按钮设置背景色 (QBColor 函数的参数值与单选按钮的下标相等 ), 新添加的单选按钮从左向右依次排列 注意将新的控 件数组元素设为可见 (Visible=True) 在单选按钮 Option1 的 MouseDown 事件中, 要用到由系统提供的该事件过程传送的两个 参数 :Button 和 Index Button 参数用于判断用户按下的是哪一个鼠标键,Index 参数用于判断 用户操作的是哪一个单选按钮 根据对这两个参数的判断, 即可将选中的单选按钮的背景色赋 值给文本框的前景色或背景色 程序设计和运行界面如图 7.3 所示 (a) 设计时界面 (b) 运行界面 1 (c) 运行界面 2 图 7.3 控件数组 程序代码如下 : Option Explicit Private Sub Form_Load() Dim i As Integer

42 第二部分 Visual Basic 程序设计实验指导 143 For i = 1 To 15 Load Option1(i) ' 加载下标为 i 的控件数组元素 With Option1(i) ' 设置控件数组元素属性.Left = Option1(i - 1).Left +.Width ' 从左向右依次排列.BackColor = QBColor(i) 'QBColor 函数返回 16 种颜色之一.Visible = True End With Next ' 单选按钮的鼠标按下事件, 可以区分按下的是左键还是右键 Private Sub Option1_MouseDown(Index As Integer, Button As Integer, _ Shift As Integer, X As Single, Y As Single) 'Button 参数传送的是引起该事件的鼠标键 If Button = vbleftbutton Then ' 若按下左键, 设置文本框前景色 Text1.ForeColor = Option1(Index).BackColor 'Index= 被选中的单选按钮下标 Else ' 若非左键, 设置文本框背景色 Text1.BackColor = Option1(Index).BackColor 3. 数组的综合应用 编写程序, 要求能通过文本框控件数组输入学生的学号 姓名 性别 年龄等个人简况, 输入的学生人数不限, 并可以按学号或姓名查询 分析 : 上述学生个人信息类似于数据库中的一个二维表格, 每名学生的信息是一条 记 录 ( 行 ), 学号 姓名等是记录的 字段 ( 列 ), 因此可以将学生信息存入一个二维数组中以 备查询 由于要求输入的学生人数不限, 即数组中 行 的上界是浮动的, 所以应该将二维数 组定义为动态数组, 当增加新记录时, 用 ReDim 语句改变数组 行 的上界 为了在改变数 组大小时保留数组中的原有信息, 需要在 ReDim 语句中使用 Preserve 关键字 按照习惯, 一 般是将二维数组中的第一维作为 行, 第二维作为 列 但是,Visual Basic 规定, 使用 Preserve 关键字保留数组原有信息时, 只能对数组最后一维的大小重新定义 因此, 需要改变通常的做 法, 即将第一维作为 列, 第二维作为 行 (1) 设计界面并设置属性 在窗体上放置一个文本框 Text1, 设 Text 属性为空 选定该 文本框后单击工具栏上的 复制 按钮, 再单击 粘贴 按钮, 在弹出的对话框中单击 是 按钮, 然后再单击两次 粘贴 按钮, 即创建了含有 4 个元素的文本框 (Text1) 控件数组, 用于输入学生信息 添加一个标签 Label1, 按上述方法, 创建含有 4 个元素的标签 (Label1) 控件数组 Label1(0)~Label1(3) 的 Caption 属性分别为 学号 姓名 性别 年龄, 用于对文本框的说明 添加一个文本框 Text2, 用于显示查询结果 添加 4 个命令按钮,Caption 属性分别为 输入 查询 全部 退出 (2) 编写代码 在窗体的 通用 - 声明 部分声明一个字符串型动态数组 arstu( )( 用于

43 144 Visual Basic 可视化程序设计实验指导与实训 存储学生信息 ) 和一个整型变量 ( 用于存储已输入的学生数 ) 在 输入 按钮的单击事件中, 定义一个静态整型变量 i, 用于累加学生数 通过循环检查各输入文本框, 若均有内容, 则令 i = i+1, 用 ReDim Preserve 语句重新定义动态数组的第二维上界为 i( 数组第一维上界始终为 3), 即 :ReDim Preserve arstu(3, i) 然后用 For 循环将文本框控件数组中的数据存入动态数组 ( 文本框控件数组各元素的下标与动态数组各元素第一维下标相对应 ) 在 查询 按钮的单击事件中, 用 For 循环按第二维遍历动态数组元素, 查找符合条件的学号或姓名 若找到, 在 Text2 中显示, 若未找到, 用 MsgBox 函数给出提示 在 全部 按钮的单击事件中, 用 For 双重循环 ( 外循环变量为第二维下标, 内循环变量为第一维下标 ) 将全部学生的信息显示在 Text2 中 程序运行结果如图 7.4 所示 (a) 输入 (b) 按学号查询 (c) 按姓名查询 (d) 全部显示 图 7.4 数组的综合应用 完整的程序代码如下 : Option Explicit Dim arstu() As String ' 动态数组 Dim intnum As Integer ' 存记录数 Private Sub cmdall_click() ' 全部 按钮, 显示全部记录 If intnum = 0 Then Exit Sub ' 若记录数为零, 退出过程 Dim i As Integer, j As Integer Dim strall As String

44 第二部分 Visual Basic 程序设计实验指导 145 For i = 1 To intnum 'i 为数组第二维下标 For j = 0 To 3 'j 为数组第一维下标 ' 以 i 为行,j 为列, 将数组元素存入变量 strall = strall & arstu(j, i) & " " Next j strall = strall & vbcrlf ' 行尾加回车换行符 Next i Text2.Text = strall ' 在文本框中显示 Private Sub cmdend_click() ' 结束 按钮 End Private Sub cmdinput_click() ' 输入 按钮 Static i As Integer ' 静态变量存放记录数 Dim j As Integer For j = 0 To 3 ' 检查各文本框是否为空 If Trim$(Text1(j).Text) = "" Then ' 若第 (j) 个文本框无内容 ' 利用标签控件数组对应元素的 Caption 属性提示应输入哪一项内容 MsgBox " 请输入 " & Label1(j).Caption, vbinformation, " 提示 " Text1(j).SetFocus Exit Sub Next i = i + 1 ' 静态变量累加记录数 ReDim Preserve arstu(3, i) ' 根据记录数重新定义动态数组末维上界 ' 将各文本框的数据存入数组, 同时清空文本框以备输入下一个记录 For j = 0 To 3 arstu(j, i) = Trim$(Text1(j).Text) Text1(j).Text = "" Next intnum = i ' 保存记录数 Text1(0).SetFocus ' 焦点返回学号文本框 Private Sub cmdquery_click() If intnum = 0 Then Exit Sub Dim i As Integer, j As Integer Dim strq As String If Trim$(Text1(0)) <> "" Then ' 查询 按钮 ' 若记录数为零, 退出过程 ' 若已输入学号, 则按学号查找 For i = 1 To intnum ' 若找到, 在查询结果文本框中显示记录内容并退出本过程 If arstu(0, i) = Trim$(Text1(0)) Then For j = 0 To 3 ' 以 i 为行,j 为列, 将数组元素存入变量 strq = strq & arstu(j, i) & " "

45 146 Visual Basic 可视化程序设计实验指导与实训 Next Text2.Text = strq ' 显示 Exit Sub ' 找到退出 Next ElseIf Trim$(Text1(1))<>""Then ' 若未输入学号, 但输入了姓名, 则按姓名查找 For i = 1 To intnum ' 若找到, 在查询结果文本框中显示记录内容并退出本过程 If arstu(1, i) = Trim$(Text1(1)) Then For j = 0 To 3 strq = strq & arstu(j, i) & " " Next Text2.Text = strq Exit Sub ' 找到退出 Next Else ' 若学号 姓名均未输入 MsgBox " 请先输入学号或姓名, 再单击 查询 按钮 ", vbinformation, " 提示 " Text1(0).SetFocus Exit Sub ' 若未找到 MsgBox " 对不起, 没有您要查询的学生 ", vbinformation, " 查询结果 "

46 第二部分 Visual Basic 程序设计实验指导 147 实验 8 过程 一 实验目的 1. 掌握过程的定义和说明的方法 2. 掌握过程的参数传递方法及规则 3. 掌握过程的调用方法 4. 掌握鼠标事件过程和键盘事件过程的应用 二 实验内容 1. 编写一个函数过程 (Function 过程 ), 实现摄氏温标与华氏温标之间的相互转换 2. 编写一个用辗转相除法求两个数的最大公约数的子过程 (Sub 过程 ), 通过多次调用该子过程, 求出多个数 ( 超过两个数 ) 的最大公约数 3. 综合运用子过程和键盘事件过程, 编写一个扩展组合框功能的程序, 使组合框能进行列表项自动匹配, 能添加不重复的新项目 三 实验步骤及指导 1. 温标转换编写一个函数过程 (Function 过程 ), 实现摄氏温标与华氏温标之间的相互转换 两种温标转换的公式如下 : 华氏温度 ( )= 摄氏温度 9/5+32 摄氏温度 ( )= ( 华氏温度 -32) 5/9 (1) 设计界面并设置属性 在窗体上放置一个文本框 Text1, 设 Text 属性为空 添加 5 个标签, 设 Label1 的 Caption 属性为空,BorderStyle 属性为 1-Fixed Single, 背景色为白色 ; 设 Label2 和 Label3 的 Caption 属性均为空 ; 设 Label4 和 Label5 的 Caption 属性分别为 输入温度 和 转换温度 添加两个命令按钮,Caption 属性分别为 摄氏 华氏 和 华氏 摄氏 (2) 编写代码 创建一个自定义函数 TransTh, 用于两种温标的相互转换 该函数含有两个参数 ( 形参 ), 分别为单精度型和逻辑型, 用于传送待转换温度和温标类型标志 函数的返回值为字符串型 在函数过程中, 根据温标类型标志进行换算, 将换算结果用 Format 函数保留一位小数后返回 在两个命令按钮的单击事件中以文本框中的温度和温标类型标志作为实参调用 TransTh

47 148 Visual Basic 可视化程序设计实验指导与实训 函数 若转换类型为摄氏 华氏, 则设温标类型标志为 True, 否则为 False 调用函数后将返回值显示在 Label1 中, 并根据温标转换类型, 将 Label2 和 Label3 的 Caption 属性分别设为 或 此外, 在文本框的键盘事件 (KeyPress) 过程中, 需要对用户按键进行过滤, 若按键不是数字键或回删键, 则使按键无效 程序运行界面如图 8.1 所示 (a) 摄氏 华氏 (b) 华氏 摄氏 图 8.1 温标转换 程序代码如下 : Option Explicit Private Sub cmdctof_click() ' 摄氏 华氏 If Trim$(Text1) = "" Then Text1 = "0" ' 调用自定义函数 Label1.Caption = TransTh(Val(Text1.Text), True) Label2 = " " Label3 = " " Private Sub cmdftoc_click() ' 华氏 摄氏 If Trim$(Text1) = "" Then Text1 = "0" ' 调用自定义函数 Label1.Caption = TransTh(Val(Text1.Text), False) Label2 = " " Label3 = " " Private Sub Form_Load() Label2 = "" Label3 = "" ' 自定义函数 : 摄氏温标与华氏温标相互转换 Private Function TransTh(sngT As Single, blnctof As Boolean) As String If blnctof Then TransTh = Format(sngT * 9 / , "0.#") ' 摄氏 华氏 Else

48 第二部分 Visual Basic 程序设计实验指导 149 TransTh = Format((sngT - 32) * 5 / 9, "0.#") ' 华氏 摄氏 End Function Private Sub Text1_KeyPress(KeyAscii As Integer) ' 文本框键盘事件过程 ' 若按键不是数字键或回删键, 则取消按键 If Not IsNumeric(Chr(KeyAscii)) And KeyAscii <> 8 Then KeyAscii = 0 2. 求多个数的最大公约数 编写一个用辗转相除法求两个数的最大公约数的子过程 (Sub 过程 ), 通过多次调用该子 过程, 求出多个数 ( 超过两个数 ) 的最大公约数 分析 : 对多个数求最大公约数时, 先求出前两个数的最大公约数, 将所得最大公约数与 第三个数求最大公约数, 依此类推 在计算过程中, 只要出现最大公约数为 1, 即不必再对后 续的其他数求公约数 辗转相除法是以两数中的小数作除数, 大数作被除数, 相除取余 若余数为零, 则除数 即为最大公约数 ; 若余数不为零, 则将除数改作被除数, 余数改作除数, 继续相除, 直至余数 得零为止 在最后一次相除时所用的除数 ( 即最后一个不为零的余数 ) 就是所求两数的最大公 约数 整个过程可以用循环实现 (1) 设计界面并设置属性 在窗体上添加一个图片框 Picture1, 设背景色为白色, AutoRedraw 属性为 True 添加三个命令按钮,Caption 属性分别为 开始 清除 和 退出 (2) 编写代码 创建一个子过程 GCD, 该子过程含有两个参数 ( 形参 )m 和 n, 采用传 址方式, 均为 Long 型, 用于传送拟求最大公约数的两个数 在子过程中始终以 n 作为除数, 通过循环用辗转相除法求最大公约数, 计算结束时,n 即为最大公约数 由于采用传址方式, 形参 n 与对应的实参占用同一内存地址, 实参值随形参改变, 因此当子过程结束时, 主调过程 中与形参 n 对应的实参值就是求得的最大公约数 在 开始 按钮的单击事件中, 定义一个动态数组, 用 InputBox 函数获取用户要求最大 公约数的数字个数, 以该数值定义动态数组的上界, 再通过 For 循环, 用 InputBox 函数将每 个数存入数组, 并在图片框中显示每个数 计算多个数的最大公约数时仍然采用 For 循环 ( 循 环次数 = 数字个数 -1), 在循环中依次取出动态数组中的数字, 调用 GCD 子过程计算 计算 结束后将计算结果显示在图片框中 程序运行结果如图 8.2 所示 程序代码如下 : Option Explicit ' 自定义子过程, 参数传递为传址方式 Private Sub GCD(ByRef m As Long, ByRef n As Long) ' 用辗转相除法求两数的最大公约数 Dim r As Long, t As Long

49 150 Visual Basic 可视化程序设计实验指导与实训 图 8.2 最大公约数 If m < n Then t = m: m = n: n = t 'm 中存大数 ( 被除数 ),n 为除数 Do r = m Mod n ' 相除取余,r 为余数 If r = 0 Then Exit Do ' 若余数为 0,n 即为最大公约数, 退出循环 m = n ' 否则, 除数改作被除数 n = r ' 余数改作除数 Loop Private Sub Command1_Click() ' 开始 Dim Ar() As Long ' 动态数组用于存放拟求最大公约数的数字 Dim n%, i%, n1&, m1& '% = Integer,& = Long n = Val(InputBox(" 求几个数的最大公约数?")) If n < 2 Or n > 20 Then Exit Sub ReDim Ar(n) ' 重新定义数组上界 For i = 1 To n ' 输入 n 个数, 为求其最大公约数做准备 ' 将第 i 个数存入数组 Ar(i) = Val(InputBox(" 输入第 " & i & " 个数 :")) If Ar(i) <= 0 Then ' 若输入数 0 或单击 取消 按钮 Picture1.Cls Exit Sub Picture1.Print Ar(i); ' 在图片框中显示输入的数 ' 超过图片框宽度的 4/5 时换行 If Picture1.CurrentX > Picture1.Width * 0.8 Then Picture1.Print Next Picture1.Print n1 = Ar(1) ' 将第 1 个数存入 n1 For i = 2 To n 'n 个数调用 n-1 次 GCD 过程求最大公约数 m1 = Ar(i) ' 将第 i 个数存入 m1 ' 调用 GCD 过程求 m1 和 n1 的最大公约数 由于采用传址方式 'GCD 过程结束时,n1 中的数字即为两数的最大公约数 Call GCD(m1, n1) If n1 = 1 Then ' 只要本次求得的最大公约数为 1, 不再继续 Exit For

50 第二部分 Visual Basic 程序设计实验指导 151 Next Picture1.Print " 以上 "; n; " 个数的最大公约数是 :"; n1 Private Sub Command2_Click() ' 清除 Picture1.Cls Private Sub Command3_Click() ' 结束 End 3. 扩展组合框的功能 组合框由单行文本框和列表框组合而成 为了与普通文本框相区别, 可以将组合框的文 本框部分称为 编辑框 本实验项目要求对组合框的功能进行扩展 :1 当用户在编辑框中输 入内容时, 自动检索已有的列表项, 将相匹配的列表项显示在编辑框中 ;2 当用户在编辑框中 输入内容并按回车键后, 在组合框中添加不重复的列表项 将这两项扩展功能编制成 Public 自定义过程, 放在标准模块 (.bas) 中, 供其他各模块调用 (1) 设计界面并设置属性 在窗体上放置两个组合框,Combo1 的属性采用默认值, 设 Combo2 的 Style 属性为 1-Simple Combo, 适当调整其大小 添加四个标签, 用于对组合框的 样式及其功能进行简要注释 (2) 编写代码 在当前工程中添加一个标准模块 ( 工程 添加模块 ), 模块名称自定 在模块中添加两个作用范围为 Public 的自定义子过程, 分别命名为 AutoMatch 和 AddCboItem, 用于实现列表项自动匹配和添加新项目 为了增强代码的通用性, 为两个子过程各设置一个组 合框对象类型的形参 两个子过程的起始行如下 : Public Sub AutoMatch(cboX As ComboBox) Public Sub AddCboItem(cboX As ComboBox) 当调用子过程时, 用需要执行上述功能的特定组合框的名称作为实参即可, 例如 : Call AutoMatch(Combo1) ' 以组合框对象为参数调用自动匹配子过程 Call AddCboItem(Combo2) ' 以组合框对象为参数调用添加项目子过程 在列表项自动匹配子过程 (AutoMatch) 中, 将用户已输入的字符与组合框中已有的项目 逐项进行模糊比较 ( 用 Like 运算符 ), 若有匹配者, 则在编辑框中显示 在添加新项目子过程 (AddCboItem) 中, 将用户已输入的内容与组合框中已有的项目逐 项进行准确比较 ( 不区分大小写, 可以用 UCase 或 LCase 函数转换 ), 若列表中无该项目, 则 添加到列表中 在窗体的 Form_Load 事件中, 向两个组合框中添加若干项目以便测试 上述两个扩展组合框功能的子过程需要在组合框的不同事件中调用 AutoMatch 子过程在组合框的 Change 事件中调用 为了避免用户按删除键或回删键时也 进行自动匹配操作, 需要设置一个模块级的逻辑型标志变量, 在组合框的 KeyDown 事件中对 用户按键进行判断, 若用户按了删除键或回删键, 将标志变量设为 False, 否则为 True 在组 合框的 Change 事件中调用 AutoMatch 子过程之前, 先检查该标志变量, 若为 False, 则不调用

51 152 Visual Basic 可视化程序设计实验指导与实训 AutoMatch 子过程, 即不进行自动匹配处理 AddCboItem 子过程在组合框的 KeyDown 事件中调用 若用户按了回车键, 则调用该过程, 添加新的列表项 程序运行界面如图 8.3 所示 (a) 在下拉式组合框中输入 s (b) 在简单组合框中输入 计算 (c) 在下拉式组合框中输入 朋友 后按回车键 图 8.3 组合框功能扩展 完整的程序代码如下 : ' 标准模块的程序代码 Option Explicit ' 自定义子过程 : 在组合框中添加不重复的列表项 ' 可以在组合框的键盘事件 ( 按回车键 ) 或 LostFocus 事件中调用 ' 子过程的参数为组合框对象变量 Public Sub AddCboItem(cboX As ComboBox) Dim i As Integer Dim blnold As Boolean ' 项目存在标志 Dim snew As String (d) 在简单组合框中输入 User 后按回车键 blnold = False snew = Trim$(cboX.Text) ' 取用户在组合框的编辑框中输入的项目 For i = 0 To cbox.listcount - 1 ' 若列表中已有该项目 ( 不区分大小写 ), 则设置标志, 退出循环 If LCase$(cboX.List(i)) = LCase$(sNew) Or snew = "" Then blnold = True Exit For

52 第二部分 Visual Basic 程序设计实验指导 153 Next If blnold = False Then cbox.additem snew ' 若列表中无该项目, 添加 ' 自定义子过程 : 自动查找与组合框的编辑框中的内容相匹配的列表项 ' 可以在组合框的 Change 事件中调用 ' 子过程的参数为组合框对象变量 Public Sub AutoMatch(cboX As ComboBox) Dim intins As Integer Dim strinput As String Dim i As Integer intins = cbox.selstart ' 存放编辑框中的插入点 strinput = Left$(cboX.Text, intins) ' 存放插入点左侧已输入的子字符串 For i = 0 To cbox.listcount - 1 ' 循环遍历组合框列表项 ' 用 Like 运算符进行模糊比较 ' 若有与编辑框中已输入的字符相匹配的列表项 ( 不区分大小写 ) If LCase$(cboX.List(i)) Like LCase$(strInput) & "*" Then cbox.listindex = i ' 定位并退出循环 Exit For Next If cbox.listindex = -1 Then ' 若无匹配的列表项, 保留当前输入内容 cbox.text = strinput cbox.selstart = intins ' 恢复插入点 cbox.sellength=len(cbox.text)-intins ' 选定插入点后面的内容 ( 反相显示 ) ' 窗体模块的程序代码 Option Explicit Dim blnautomatch As Boolean Private Sub Combo1_Change() If blnautomatch Then Call AutoMatch(Combo1) ' 组合框列表项自动匹配标志 ' 组合框的编辑框的内容改变时 ' 若自动匹配标志为 True ' 以组合框对象为参数调用自动匹配子过程 ' 组合框按键事件 Private Sub Combo1_KeyDown(KeyCode As Integer, Shift As Integer) ' 若按键为删除键或回删键, 设自动匹配标志为 False, 不进行自动匹配 If KeyCode = vbkeydelete Or KeyCode = vbkeyback Then

53 154 Visual Basic 可视化程序设计实验指导与实训 blnautomatch = False Else blnautomatch = True If KeyCode = vbkeyreturn Then Call AddCboItem(Combo1) Private Sub Combo2_Change() If blnautomatch Then Call AutoMatch(Combo2) ' 若按键为回车键 ' 以组合框对象为参数调用添加项目子过程 ' 若自动匹配标志为 True ' 以组合框对象为参数调用自动匹配子过程 Private Sub Combo2_KeyDown(KeyCode As Integer, Shift As Integer) ' 若按键为删除键或回删键, 设自动匹配标志为 False, 不进行自动匹配 If KeyCode = vbkeydelete Or KeyCode = vbkeyback Then blnautomatch = False Else blnautomatch = True If KeyCode = vbkeyreturn Then ' 若按键为回车键 Call AddCboItem(Combo2) ' 以组合框对象为参数调用添加项目子过程 Private Sub Form_Load() ' 窗体加载 Dim i As Integer ' 在组合框中添加若干项目以便测试 With Combo1.AddItem "Classmate".AddItem "Friend".AddItem "Student".AddItem "Teacher".AddItem " 教师 ".AddItem " 学生 ".AddItem " 计算机基础 ".ListIndex = 0 End With For i = 0 To Combo1.ListCount - 1 Combo2.AddItem Combo1.List(i) Next Combo2.ListIndex = 0 ' 将 Combo1 中的项目复制到 Combo2 中

54 第二部分 Visual Basic 程序设计实验指导 155 实验 9 界面设计 一 实验目的 1. 熟悉菜单 通用对话框 多文档界面 (MDI) 工具栏等界面设计的方法 2. 掌握界面的设计并对对象编写代码 二 实验内容 1. 设计制作普通菜单和弹出式菜单 2. 设计制作工具栏 3. 利用 应用程序向导 制作多文档界面 (MDI) 应用程序 三 实验步骤及指导 1. 制作菜单将实验 4( 常用控件 ) 和实验 7( 数组 ) 中的部分实验项目合并为一个多窗体工程, 在工程中设计一个含有菜单栏的主窗体, 通过菜单统一管理各实验项目程序的运行 (1) 设计主窗体界面 新建工程, 将窗体 Form1 的名称改为 frmmain 作为主窗体, 以 菜单.vbp 为名称保存工程 用菜单编辑器为主窗体设计菜单, 菜单结构如表 9-1 所示 注意主菜单标题 弹出式菜单 下的菜单项为菜单控件数组, 名称为 mnusub, 索引为 0, 标题为空 表 9-1 主窗体菜单结构标题名称索引标题名称索引常用控件 (&C) mnucontrol... 数制转换 (&N) mnuns... 图片框与图像框 (&P) mnupicimg... 控件数组 (&C) mnuctlarr... 秒表 (&T) mnutimer 退出 (&X) mnuexit... 列表框与组合框 (&L) mnulstcbo 弹出菜单 mnupop 数组 (&A) mnuarray... ( 空 ) mnusub 0 (2) 添加各实验项目窗体 单击工具栏上的 添加窗体 按钮, 在 添加窗体 对话框中选择 现存 选项卡, 根据上述菜单结构, 将实验 4( 常用控件 ) 和实验 7( 数组 ) 中有关实验项目的窗体添加到本工程中, 注意不能有名称 (Name) 相同的窗体 建议 : 为了对工程中的文件进行统一管理, 减少程序移植运行时出错的机会, 最好将本工程用到的所有文件存放在同一文件夹下

55 156 Visual Basic 可视化程序设计实验指导与实训 (3) 编写代码 在菜单栏中, 用于启动各实验项目窗体的菜单项分别位于主菜单标题 常用控件 和 数组 之下 程序代码的任务主要是响应菜单栏中各菜单项的单击事件以及弹出式菜单的创建和激活 响应菜单项单击事件 菜单项单击事件过程的代码很简单, 只需显示对应的窗体即可 例如, 在 秒表 菜单项的单击事件 mnutimer_click 过程中加入以下代码即可显示秒表窗体 : frmtimer.show 创建弹出式菜单 弹出式菜单只能显示位于同一个主菜单标题下的菜单项, 要想在一个弹出式菜单中显示来自不同菜单标题的菜单项, 需要进行特殊处理 处理的方法很多, 本例采用动态创建弹出式菜单项的方法 在设计菜单时, 已将主菜单标题 弹出式菜单 下的菜单项设为菜单控件数组 ( 仅有一项, 索引为 0), 窗体加载时, 通过循环为菜单控件数组添加成员, 然后根据 常用控件 和 数组 菜单下各菜单项的标题 (Caption) 设置菜单控件数组各成员的标题 激活弹出式菜单 在窗体的 Form_MouseUp 事件中进行判断, 若用户单击了鼠标右键, 则调用窗体的 PopupMenu 方法显示弹出式菜单 响应弹出式菜单项单击事件 在弹出式菜单项的单击事件 mnusub_click 中, 用 Select Case 语句根据菜单控件数组索引 (Index) 执行菜单栏的相应菜单命令 程序运行界面如图 9.1 所示 读者可以增加菜单标题, 将更多的实验项目添加到本工程中 (a) 菜单栏 (b) 弹出式菜单 图 9.1 创建菜单 完整的程序代码如下 : Option Explicit Private Sub Form_Load() ' 窗体加载 Dim i As Integer ' 设计时在主菜单标题 弹出式菜单 下仅设一个菜单项, 将该菜单项 ' 设为菜单控件数组, 名称为 mnusub, 索引为 0, 标题为空 ' 窗体加载时添加菜单控件数组成员 mnupop.visible = False ' 将 弹出式菜单 设为不可见 For i = 1 To 5 Load mnusub(i) ' 加载菜单控件数组成员

56 Next ' 设置菜单项标题 第二部分 Visual Basic 程序设计实验指导 157 mnusub(0).caption = mnupicimg.caption mnusub(1).caption = mnutimer.caption mnusub(2).caption = mnulstcbo.caption mnusub(3).caption = "-" ' 菜单项分隔符 mnusub(4).caption = mnuns.caption mnusub(5).caption = mnuctlarr.caption Private Sub Form_MouseUp(Button As Integer, Shift As Integer, _ X As Single, Y As Single) If Button = vbrightbutton Then ' 右击窗体 PopupMenu mnupop, 2 ' 显示弹出式菜单 Private Sub mnusub_click(index As Integer) ' 根据菜单控件数组索引执行菜单栏的相应菜单命令 Select Case Index Case 0 mnupicimg_click Case 1 mnutimer_click Case 2 mnulstcbo_click Case 4 mnuns_click Case 5 mnuctlarr_click End Select ' 单击弹出式菜单项 Private Sub mnuctlarr_click() frmctlarray.show ' 控件数组 Private Sub mnuexit_click() End ' 退出 Private Sub mnulstcbo_click() frmlstcbo.show ' 列表框与组合框

57 158 Visual Basic 可视化程序设计实验指导与实训 Private Sub mnuns_click() frmdton.show ' 数制转换 Private Sub mnupicimg_click() frmpicimg.show ' 图片框与图像框 Private Sub mnutimer_click() frmtimer.show 2. 设计制作工具栏 ' 秒表 为上一个实验项目 ( 制作菜单 ) 添加工具栏, 工具栏中的按钮与菜单中的菜单项相对应, 实现相关菜单项的功能 (1) 准备工作 打开前面制作的 菜单.vbp 工程, 单击 文件 菜单, 选择 工程另 存为... 命令, 在弹出的对话框中以新名称 工具栏.vbp 保存工程 在属性窗口将窗体 frmmain 改名为 frmtlb, 在工程资源管理器窗口中右击该窗体名称, 在弹出的菜单中选择 frmmain.frm 另存为 (A)... 命令, 在弹出的对话框中以新名称 frmtoolbar.frm 保存窗体 右击工具箱, 在弹 出的菜单中选择 部件 (O)... 命令, 在对话框 控件 选项卡的列表中选中 Microsoft Windows Common Controls 6.0, 单击 确定 按钮 此时工具箱中新增的扩展控件中含有制作工具栏所 需的 ToolBar 控件和 ImageList 控件 (2) 添加 ToolBar 控件和 ImageList 控件 显示 frmtlb 窗体设计器, 双击工具箱中的 ToolBar 控件和 ImageList 控件图标, 将其添加到窗体上, 默认名称分别为 ToolBar1 和 ImageList1 (3) 在 ImageList 控件中添加图片 在本实验项目中,ImageList 控件的作用是为工具栏 按钮提供所需的图片 右击 ImageList 控件, 在弹出的菜单中选择 属性 菜单项, 打开 属 性页 对话框 在 通用 选项卡中选中 单选按钮 在 图像 选项卡中单击 插 入图片 按钮打开 选择图片 对话框, 查找并打开所需图标或位图文件, 将图片添加到控件 中, 图片的索引号自动按顺序递增 重复插入图片, 直至所需的全部图片均添加到控件中 为 了便于访问, 可以为每幅图片设置一个关键字 (4) 在 ToolBar 控件中添加工具栏按钮 首先要在 ImageList 控件和 ToolBar 控件之间建 立关联 右击 ToolBar 控件, 在弹出的菜单中选择 属性 菜单项, 打开 属性页 对话框 在 通用 选项卡的 图像列表 组合框中选择 ImageList1 即可在二者间建立关联 建立关 联后, 在属性页的 按钮 选项卡中单击 插入按钮 按钮可以为工具栏添加按钮 对各按钮 的设置内容主要有三项 :1 为按钮指定图片, 在 图像 输入框中输入当前按钮所需图片在 ImageList 控件中的索引号或关键字 ;2 在 样式 组合框中选择按钮样式, 如图 9.2(a) 所 示, 设计界面中共有 6 个按钮, 其中第 4 个按钮的样式为分隔符 (3 - tbrseparator), 其他按钮

58 第二部分 Visual Basic 程序设计实验指导 159 均为默认样式 (0 - tbrdefault);3 在 工具提示文本 输入框中输入提示内容, 程序运行期间, 当鼠标指针在按钮上作短暂停留时, 将会显示该提示内容, 如图 9.2(b) 所示 如果工具栏按 钮较多, 最好为每个按钮设置一个关键字 (a) 设计时界面 (b) 运行时界面 图 9.2 制作工具栏 (5) 为工具栏按钮编写代码 单击工具栏中的按钮 ( 分隔符和占位符样式的按钮除外 ) 时, 将会引发 ToolBar 控件的 ButtonClick 事件 此事件由所有按钮共享, 系统为该事件提供 了一个 Button 对象参数, 利用 Button 对象的 Index 或 Key 属性可以识别被单击的按钮 通常 用 Select Case 语句为工具栏按钮编写代码 本实验项目复用了 菜单.vbp 工程的所有代码, 由于弹出式菜单的菜单项包含了工具栏按钮的所有功能, 而且采用了控件数组的形式, 其索引 与工具栏按钮的索引具有对应关系, 因此可以使代码简化 在 ToolBar 控件的 ButtonClick 事 件过程中, 仅用一行代码调用弹出式菜单项的单击事件过程, 同时传送一个索引参数即可 代 码如下 : Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) ' 工具栏按钮索引 ( 下界为 1) 与弹出式菜单的菜单项索引 ( 下界为 0) 具有对应 ' 关系 单击工具栏按钮时调用弹出式菜单项单击事件过程可以简化代码 Call mnusub_click(button.index - 1) 其他代码请参考 菜单.vbp 工程 3. 使用 应用程序向导 制作多文档界面应用程序 使用 应用程序向导 可以自动生成含有菜单栏 工具栏 状态栏和通用对话框的多文 档界面 (MDI) 应用程序 具体操作如下 : 新建工程, 在对话框中选择 VB 应用程序向导, 如图 9.3 所示 单击 确定 按钮后按 照向导逐步操作 若无特殊需要, 在向导的第二步直接单击 完成 按钮即可按照默认方式生 成程序 图 9.4 是利用应用程序向导按默认方式生成的多文档界面应用程序的运行界面 在该 程序中, 所有界面的设计均由向导自动生成, 工具栏所有按钮的功能代码和大部分菜单项的功 能代码也已自动生成, 只有少数菜单项的功能代码需要进行补充和修改

59 160 Visual Basic 可视化程序设计实验指导与实训 图 9.3 利用应用程序向导新建工程 图 9.4 应用程序向导生成的程序的运行界面

60 第二部分 Visual Basic 程序设计实验指导 161 实验 10 图形操作 一 实验目的 1. 熟悉图形坐标系 2. 掌握绘图属性的用法 3. 掌握图形控件的用法 4. 掌握图形方法的应用 二 实验内容 1. 用图形控件制作奥运五环 2. 用绘图方法画坐标轴和动态正弦曲线 3. 用绘图方法画三维饼图 4. 用 PaintPicture 方法使图像翻转和缩放 三 实验步骤及指导 1. 用图形控件制作奥运五环用 Shape 控件数组制作奥运五环, 在五环下用 Print 方法显示 2008 北京 (1) 设计界面并设置属性 设窗体的背景色为白色 在窗体上添加一个 Shape 控件, 设其 Index 属性为 0,Shape 属性为 3-Circle,BorderWidth 属性为 7 (2) 编写代码 在窗体的 Form_Load 事件中用 Load 方法添加 Shape 控件数组成员, 设置其位置和颜色 (BorderColor 属性 ), 构成奥运五环 在五环下面, 用 Print 方法显示 2008 北京 字样 程序运行界面如图 10.1 所示 图 10.1 奥运五环 本实验项目更简单的做法是在设计界面时在窗体上放置五个 Shape 控件, 适当调整其位

61 162 Visual Basic 可视化程序设计实验指导与实训 置, 按奥运五环的规定设置各控件的颜色 (BorderColor 属性 ) 再添加一个标签, 设 BackStyle 属性为 1-Transparent,Caption 属性为 2008 北京 用这种方法不必编写代码 运行时加载 Shape 控件数组成员以及在窗体特定位置打印文字的程序代码如下 : Private Sub Form_Load() Dim itop%, ileft%, i%, j%, k% itop = Shape1(0).Top ' 环顶端坐标 ileft = Shape1(0).Left + Shape1(0).Width ' 下一个环的左边坐标 For i = 1 To 2 ' 外循环为行 For j = 1 To 2 ' 内循环为列 k = (i - 1) * 2 + j ' 求控件数组下标 Load Shape1(k) ' 添加控件数组对象 Shape1(k).Top = itop ' 定位 Shape1(k).Left = ileft Shape1(k).Visible = True ' 显示 ileft = ileft + Shape1(0).Width ' 下一列位置 Next j itop = itop + Shape1(0).Width / 2 ' 下一行位置 ileft = Shape1(0).Left + Shape1(0).Width / 2 Next i Shape1(0).BorderColor = vbblue ' 设置颜色 Shape1(2).BorderColor = vbred Shape1(3).BorderColor = vbyellow Shape1(4).BorderColor = vbgreen Me.AutoRedraw = True Me.CurrentX = Shape1(3).Left + Shape1(3).Width / 3 ' 设置打印坐标 Me.CurrentY = Shape1(3).Top + Shape1(3).Height Print "2008 北京 " 2. 用绘图方法画坐标轴和动态正弦曲线 在图片框中用 Line 方法画出带有箭头的 x 轴和 y 轴 单击 正弦信号 按钮时, 在图片 框中用 PSet( 画点 ) 方法画出沿 x 轴波动的动态正弦曲线 通过单选按钮调整画曲线的速度 通过 停止 / 继续 按钮停止或继续画曲线的过程 (1) 设计界面并设置属性 在窗体上放置一个图片框, 一个定时器, 三个命令按钮, 三 个单选按钮 ( 控件数组 ) 控件属性设置如表 10-1 所示 表 10-1 控件属性 对象名称属性名属性值对象名称属性名属性值 OptionButton optrate(0) Caption 快速 cmdsin Caption 正弦信号 optrate(1) Caption 中速 CommandButton cmdstop Caption 停止 optrate(2) Caption 慢速 PictureBox picsin Timer tmrsin cmdend Caption 退出

62 第二部分 Visual Basic 程序设计实验指导 163 (2) 编写代码 程序代码的主要任务是画坐标轴和画正弦曲线 用 Line 方法画坐标轴 创建一个以图片框对象为形参的自定义子过程, 用于在图片框中画坐标轴 在图片框中用 Line 方法分别画出 x 轴和 y 轴 ( 上下左右各留出 200 缇的空间 ) 在 x y 坐标轴末端的两侧用 Line 方法各画一条短斜线, 即构成 箭头 调用该子过程的语句置于 正弦信号 按钮的单击事件过程中 用 PSet( 画点 ) 方法由点连线画出正弦曲线 为了画出动态的正弦曲线, 将画曲线的语句置于定时器的 Timer 事件 (Interval=50) 过程中 画正弦曲线时应注意两个要点 : 首先要确定画曲线的起始坐标 ; 其次要求出所画新点的 x 坐标和 y 坐标 ( 用 Sin 函数根据 x 求 y), 该坐标是新点距起始坐标的偏移量 用单选按钮选择画曲线的速度 由于操作系统的限制, 定时器控件的 Interval 属性值即使达到系统允许的最短间隔, 画曲线的速度仍然显得非常缓慢 解决这一矛盾的方法是在定时器事件中添加一个 For 循环, 使每次 Timer 事件多画若干点 定义一个模块级的变量, 用于存放循环终值, 在单选按钮的单击事件中改变循环终值的大小, 即可调整画曲线的速度 画曲线的暂停和继续 通过 停止 按钮实现暂停和继续切换的功能 程序运行效果如图 10.2 所示 (a) 开始 (b) 单击 停止 按钮后 (c) 单击 继续 按钮后 程序代码如下 : Option Explicit Dim intdeg As Integer Dim intrate As Integer 图 10.2 正弦信号 ' 自定义过程 : 画坐标轴, 以图片框对象作形参 Private Sub DrawAxis(picX As PictureBox) Dim x1 As Integer, y1 As Integer Dim x2 As Integer, y2 As Integer Dim y As Integer picx.backcolor = vbblack ' 黑色背景 picx.cls picx.drawstyle = 0 ' 画线样式为实线

63 164 Visual Basic 可视化程序设计实验指导与实训 ' 定义坐标轴起止点 x1 = 200 x2 = picx.scalewidth y1 = picx.scaleheight y2 = 200 y = y1 / 2 ' 画坐标轴,QBColor(11) = 亮青色 picx.line (x1, y1)-(x1, y2), QBColor(11) 'Y 轴, 自下而上 picx.line (x1, y)-(x2, y), QBColor(11) 'X 轴, 从左向右 ' 画 Y 轴箭头 picx.line (x1-50, y )-(x1, y2), QBColor(11) picx.line (x1 + 50, y )-(x1, y2), QBColor(11) ' 画 X 轴箭头 picx.line (x2-120, y + 50)-(x2, y), QBColor(11) picx.line (x2-120, y - 50)-(x2, y), QBColor(11) Private Sub cmdsin_click() picsin.autoredraw = True Call DrawAxis(picSin) intdeg = 1 tmrsin.enabled = True cmdstop.caption = " 停止 " ' 正弦信号 按钮 ' 准备画持久图形 ' 调用自定义过程画坐标轴 ' 设正弦曲线初始角度 ' 启动定时器 Private Sub cmdend_click() End ' 退出 Private Sub cmdstop_click() ' 停止或继续 If cmdstop.caption = " 停止 " Then tmrsin.enabled = False cmdstop.caption = " 继续 " Else tmrsin.enabled = True cmdstop.caption = " 停止 " Private Sub Form_Load() tmrsin.interval = 50 tmrsin.enabled = False optrate(1).value = True intrate = 8 ' 窗体加载 ' 设置定时器 ' 初始速度为中速

64 第二部分 Visual Basic 程序设计实验指导 165 Private Sub Form_Unload(Cancel As Integer) tmrsin.enabled = False ' 窗体卸载 Private Sub optrate_click(index As Integer) Select Case Index ' 根据索引 Case 0 ' 快速 intrate = 20 Case 1 ' 中速 intrate = 8 Case 2 ' 慢速 intrate = 2 End Select ' 单选按钮控件数组单击事件 Private Sub tmrsin_timer() ' 定时器事件, 用画点的方法画正弦曲线 Dim x As Integer, y As Integer Dim scaly As Integer Dim i As Integer scaly = picsin.scaleheight / 4 'Y 轴最大值 ' 用循环调整画曲线的速度, 循环次数在单选按钮的单击事件中设置 For i = 0 To intrate ' 设置绘图起始坐标, 新点以此坐标 + 偏移量画出 picsin.currentx = 200 picsin.currenty = (picsin.scaleheight - 200) / 2 x = intdeg / 180 * scaly ' 取画点的 x 坐标 'Sin 函数的参数要求用弧度, 下面括号中的表达式将角度转换为弧度 ' 即 : 弧度 = 角度 * π / 180 (intdeg 变量中存放的是角度 ) y = Sin(intDeg * 3.14 / 180) * scaly ' 取画点的 y 坐标 ' 用 PSet( 画点 ) 方法画曲线 Y 轴方向默认向下, 为使曲线开始时向上,y 取负值 ' 使用 Step 关键字时,x,y 表示所画新点距起始坐标的偏移量 picsin.pset Step(x, -y), vbyellow intdeg = intdeg + 1 ' 角度 +1 ' 若曲线画到图片框右边界, 则回到起点重画 If picsin.currentx >= picsin.scalewidth Then cmdsin_click Next 3. 画三维饼图 若以一个圆的面积表示事物的总体, 以扇形的面积表示各部分占总体的百分数, 则这种

65 166 Visual Basic 可视化程序设计实验指导与实训 图形称为扇形统计图, 又叫做百分比较图 三维饼图是扇形统计图的三维表示形式 ( 圆饼实际上是一个较矮的圆柱 ), 常用于直观地显示事物总体中各部分的百分比 本实验项目要求统计某单位技术人员中初级 中级和高级职称人员所占的百分比, 并且用三维饼图显示 (1) 设计界面并设置属性 在窗体上放置一个图片框, 背景色为白色 添加一个框架, 设 Caption 属性为 输入各级职称人数 在框架中添加含有三个成员的文本框控件数组, 设 Text 属性为空 再添加三个标签,Caption 属性分别为 初级 中级 和 高级 在窗体上添加两个命令按钮,Caption 属性分别为 显示三维饼图 和 退出 (2) 编写代码 程序代码主要是处理 显示三维饼图 按钮的单击事件 在事件过程中定义一个一维单精度数组 arrank, 下界为 0, 上界为 2( 与各文本框的 Index 属性对应 ); 定义一个单精度变量 stotal, 用于存放人员总数 通过 For 循环将用户在文本框中输入的数据存入数组, 并将累加值存入 stotal, 然后将各类人员数除以人员总数得出人员比例再存入数组中 为了便于对程序进行修改和调试, 同时使读者了解如何创建和使用以数组作为参数的自定义过程, 在本实验项目中要求将画饼图的程序段设计为自定义子过程, 在按钮的单击事件中以数组 arrank 作为实参调用该过程 在画圆饼的子过程中要解决的主要技术问题是 :1 要使圆饼 ( 柱 ) 看上去更加真实, 必须将圆饼的底面画成椭圆形 ;2 利用循环自下而上画出一系列由不同颜色的扇形拼接构成的椭圆, 形成三维圆饼效果 ;3 在圆饼的上底面勾画出扇形的边缘 ( 一般用黑色 );4 将圆饼侧面与底面扇形对应部分的颜色设为与底面扇形色彩相近的较深颜色 ;5 勾画出整个圆饼的轮廓线以及相邻扇形在圆柱侧面的分隔线 ( 黑色 );6 显示图例 用 Circle 方法和 Line 方法可以完成上述任务 具体实现步骤请参考程序代码 程序运行效果如图 10.3 所示 程序代码如下 : Option Explicit ' 自定义过程 : 画饼图, 形参为数组 图 10.3 三维饼图 Private Sub DrawCake(Ar() As Single) Const PI = Dim i As Integer, sngratio As Single

66 第二部分 Visual Basic 程序设计实验指导 167 Dim CX As Single, CY As Single, CR As Single CX = 1500 ' 设置圆心坐标和半径 CY = 1000 CR = 1000 sngratio = 0.4 ' 椭圆纵横比 Picture1.Cls Picture1.FillStyle = 0 '0=vbFSSolid, 实线 ' 每次循环根据各职称比例画三个扇形构成椭圆 ' 自下而上画 200 个同样的图形可以形成三维饼图 ( 圆柱 ) 效果 For i = 1 To 200 If Ar(0) > 0# Then ' 初级 Picture1.FillColor = RGB(128, 0, 0) ' 暗红色填充 ' 画扇形, 扇形轮廓线的颜色比填充色略深 Picture1.Circle (CX, CY - i), CR, RGB(100, 0, 0), _ -2 * PI, -2 * PI * Ar(0), sngratio If Ar(1) > 0# Then ' 中级 If Ar(0) = 0# Then Ar(0) = Picture1.FillColor = RGB(192, 192, 255) ' 浅蓝灰色填充 Picture1.Circle (CX, CY - i), CR, RGB(150, 150, 255), _ -2 * PI * Ar(0), -2 * PI * (Ar(0) + Ar(1)), sngratio If Ar(2) > 0# Then ' 高级 Picture1.FillColor = RGB(255, 255, 192) ' 浅黄色填充 Picture1.Circle (CX, CY - i), CR, RGB(240, 240, 0), _ -2 * PI * (Ar(0) + Ar(1)), -2 * PI, sngratio Next Picture1.FillStyle = 1 '1=vbFSTransparent, 透明 Picture1.Circle (CX, CY), CR, vbblack, PI, 0, sngratio ' 饼图下缘弧线 CY = CY ' 最上面的扇形 Picture1.Circle (CX, CY), CR, vbblack, -2 * PI, -2 * PI * Ar(0), sngratio Picture1.Circle (CX, CY), CR, vbblack, -2 * PI * Ar(0), _ -2 * PI * (Ar(0) + Ar(1)), sngratio Picture1.Circle (CX, CY), CR, vbblack, -2 * PI * (Ar(0) + Ar(1)), _ -2 * PI, sngratio ' 圆柱两侧的竖线 Picture1.Line (500, CY)-(500, CY + 250) Picture1.Line (2500, CY)-(2500, CY + 250) ' 利用椭圆参数方程画相邻扇形在圆柱侧面的分隔线 Dim a As Single If Ar(0) > 0.5 Then a = 2 * PI * Ar(0)

67 168 Visual Basic 可视化程序设计实验指导与实训 CX = CR * Cos(a) + CX CY = CY - CR * sngratio * Sin(a) Picture1.Line (CX, CY)-(CX, CY + 210) CX = 1500: CY = 800 If Ar(0) + Ar(1) > 0.5 Then a = 2 * PI * (Ar(0) + Ar(1)) CX = CR * Cos(a) + CX CY = CY - CR * sngratio * Sin(a) Picture1.Line (CX, CY)-(CX, CY + 210) ' 显示图例 Ar(0) = Val(Format(Ar(0) * 100, "0.0")) Ar(1) = Val(Format(Ar(1) * 100, "0.0")) Ar(2) = Ar(0) - Ar(1) Picture1.FillStyle = 0 Picture1.FillColor = RGB(128, 0, 0) Picture1.Line (1000, 2000)-(1150, 1850),, B Picture1.Print " 初级 "; Ar(0) & "%" Picture1.FillColor = RGB(192, 192, 255) Picture1.Line (1000, 2200)-(1150, 2050),, B Picture1.Print " 中级 "; Ar(1) & "%" Picture1.FillColor = RGB(255, 255, 192) Picture1.Line (1000, 2400)-(1150, 2250),, B Picture1.Print " 高级 "; Ar(2) & "%" Private Sub Command1_Click() ' 显示三维饼图 按钮 Dim arrank(2) As Single, stotal As Single Dim i As Integer, j As Integer For i = 0 To 2 ' 将各文本框中的数据存入数组 arrank(i) = Val(Text1(i).Text) If arrank(i) = 0 Then j = j + 1 stotal = stotal + arrank(i) Next If stotal = 0 Or j > 1 Then Exit Sub ' 至少应有两个数据 For i = 0 To 2 ' 将人数转换为比例 arrank(i) = arrank(i) / stotal Next Call DrawCake(arRank) ' 调用画图过程, 实参为数组 Private Sub Command2_Click() End ' 退出

68 第二部分 Visual Basic 程序设计实验指导 169 Private Sub Form_Load() Picture1.AutoRedraw = True Private Sub Text1_GotFocus(Index As Integer) Text1(Index).SelStart = 0 Text1(Index).SelLength = Len(Text1(Index).Text) Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer) If Not IsNumeric(Chr(KeyAscii)) And KeyAscii <> 8 Then KeyAscii = 0 ' 若按键为非数字键或回删键, 则取消按键 4. 图像翻转 用 PaintPicture 方法复制图像, 通过改变 PaintPicture 方法中的参数 ( 坐标 高度和宽度 ) 使图像伸缩, 模拟图像水平或垂直 旋转 效果 (1) 设计界面并设置属性 在工程中设置三个窗体, 窗体 Form2 和 Form3 不放置控件, 用于显示被复制的图像 在 Form1 上添加一个图片框, 命名为 picf, 通过图片框的 Picture 属 性为其加载一幅图片 添加两个框架, 每个框架中添加两个命令按钮,Frame1 中按钮的 Caption 属性分别为 水平旋转 和 停止 ;Frame2 中按钮的 Caption 属性分别为 垂直旋转 和 停 止 在窗体上添加一个命令按钮,Caption 属性为 退出 在窗体上添加两个定时器 (2) 编写代码 本程序的核心语句是调用窗体的 PaintPicture 方法实现图像的复制 翻转 伸缩 PaintPicture 方法的格式如下 : 目标对象.PaintPicture 源图像, dx, dy[, dw, dh, sx, sy, sw, sh, 组合模式 ] 如果只是图像的简单复制, 调用 PaintPicture 方法时只带有必选参数 ( 源图像及目标图像 的坐标 dx dy) 即可, 其他可选参数均忽略 本实验项目要求在复制图像的同时使图像产生 水平或垂直旋转的效果, 因此, 除了必选参数外, 还需要用到目标图像的宽度 (dw) 和高度 (dh) 两个可选参数 将 dw 或 dy 设为负值, 可以实现图像的水平或垂直翻转 动态改变 dx dy dw 和 dh 的大小, 可以模拟图像水平或垂直 旋转 的效果 为了使图像有规律地 旋转, 可以将 PaintPicture 方法的调用放在定时器控件的 Timer 事件过程中 在程序代码中应该注意 控制 dw 和 dh 的极限值, 二者的绝对值最好分别控制在图像的原始宽度和高度以内 程序部分运行效果如图 10.4 所示 程序代码如下 : 'Form1 程序代码 Option Explicit Dim izoom As Integer

69 170 Visual Basic 可视化程序设计实验指导与实训 (a) 原始图像 (b) 垂直翻转 (c) 水平翻转 (d) 正在 旋转 图 10.4 图像的水平和垂直 旋转 Dim iw As Integer, HorX As Integer, FlagW As Integer Dim ih As Integer, VertY As Integer, FlagH As Integer Private Sub Command1_Click() ' 水平旋转 按钮 Timer1.Enabled = True ' 启动计时器 1 Private Sub Command2_Click() ' 停止 水平旋转按钮 Timer1.Enabled = False ' 关闭计时器 1 Private Sub Command3_Click() ' 垂直旋转 按钮 Timer2.Enabled = True ' 启动计时器 2 Private Sub Command4_Click() ' 停止 垂直旋转按钮 Timer2.Enabled = False ' 关闭计时器 2 Private Sub Command5_Click() End ' 退出 按钮 Private Sub Form_Load() ' 窗体加载, 初始化 Form2.Show ' 显示窗体 2( 水平旋转 ) Form2.AutoRedraw = True ' 允许自动重画 Form3.Show ' 显示窗体 3( 垂直旋转 ) Form3.AutoRedraw = True ' 允许自动重画 Timer1.Interval = 50 ' 设置计时器时间间隔 Timer2.Interval = 50 iw = picf.width ' 取图片框 (picf) 原始宽度 HorX = (Form2.ScaleWidth - picf.width)/2 ' 水平旋转前图像左边初始 X 坐标 FlagW = 1 ' 设图像宽度伸缩标志为 1

70 第二部分 Visual Basic 程序设计实验指导 171 ih = picf.height ' 取图片框 (picf) 原始高度 VertY = (Form3.ScaleHeight - picf.height)/2 ' 垂直旋转前图像顶端初始 Y 坐标 FlagH = 1 ' 设图像高度伸缩标志为 1 Timer1.Enabled = False ' 关闭计时器 Timer2.Enabled = False Private Sub Form_Unload(Cancel As Integer) End Private Sub Timer1_Timer() 'Timer1 计时器事件, 用于水平旋转 izoom = 100 ' 设置图像水平伸缩值 ( 缇 ), 通过图像伸缩模拟旋转效果 If iw >= picf.width Then ' 若图像当前宽度 原始宽度 FlagW = 1 ' 设宽度伸缩标志为 1 ElseIf iw <= -picf.width Then ' 若图像当前宽度 原始宽度的负值 FlagW = 0 ' 设宽度伸缩标志为 0 If FlagW = 1 Then ' 若宽度伸缩标志为 1 iw = iw - izoom ' 图像宽度减伸缩值 HorX = HorX + izoom / 2 ' 左边界右移 Else ' 若宽度伸缩标志为 0 iw = iw + izoom ' 图像宽度加伸缩值 HorX = HorX - izoom / 2 ' 左边界左移 Form2.Cls ' 将图片框中的图像 画 到 Form2 窗体上 'HorX 和 picf.top 为图像左上角坐标 'iw 为图像宽度, 若为负值, 可以使图像水平翻转 'picf.height 为图像高度 Form2.PaintPicture picf.picture, _ HorX, picf.top, iw, picf.height Private Sub Timer2_Timer() 'Timer2 计时器事件, 用于垂直旋转 izoom = 70 ' 设置图像垂直伸缩值 ( 缇 ), 通过图像伸缩模拟旋转效果 If ih >= picf.height Then ' 若图像当前高度 原始高度 FlagH = 1 ' 设高度伸缩标志为 1 ElseIf ih <= -picf.height Then ' 若图像当前高度 原始高度的负值 FlagH = 0 ' 设高度伸缩标志为 0 If FlagH = 1 Then ' 若高度伸缩标志为 1 ih = ih - izoom ' 图像高度减伸缩值 VertY = VertY + izoom / 2 ' 顶端下移 Else ' 若高度伸缩标志为 0 ih = ih + izoom ' 图像高度加伸缩值

71 172 Visual Basic 可视化程序设计实验指导与实训 VertY = VertY - izoom / 2 ' 顶端上移 Form3.Cls ' 将图片框中的图像 画 到 Form3 窗体上 'picf.left + 50 和 VertY 为图像左上角坐标 'picf.width 为图像宽度 'ih 为图像高度, 若为负值, 可以使图像垂直翻转 Form3.PaintPicture picf.picture, _ picf.left + 50, VertY, picf.width, ih 'Form2 程序代码 Option Explicit Dim F2 As Integer Private Sub Form_Click() ' 单击窗体时停止或继续旋转 If F2 = 0 Then Form1.Timer1.Enabled = False F2 = 1 Else Form1.Timer1.Enabled = True F2 = 0 Private Sub Form_Load() F2 = 0 'Form3 程序代码 Option Explicit Dim F3 As Integer Private Sub Form_Click() ' 单击窗体时停止或继续旋转 If F3 = 0 Then Form1.Timer2.Enabled = False F3 = 1 Else Form1.Timer2.Enabled = True F3 = 0 Private Sub Form_Load() F3 = 0

72 第二部分 Visual Basic 程序设计实验指导 173 实验 11 文件系统 一 实验目的 1. 掌握文件系统控件的使用 2. 掌握用 FSO 对象模型对顺序文件的读写以及对驱动器 文件夹和文件的操作 二 实验内容 1. 用文件系统控件和图像框制作图片浏览器 2. 用 FSO 对象模型访问文件系统 三 实验步骤及指导 1. 制作图片浏览器利用文件系统控件 图像框和单选按钮制作一个简单的图片浏览器 当用户在文件列表框中选择图片文件时, 在图像框中显示该图片, 用单选按钮可以调整图片的显示比例 (1) 设计界面并设置属性 在窗体上放置驱动器列表框 目录列表框和文件列表框各一个 添加两个框架, 设 Frame1 的 Caption 属性为 显示比例,Frame2 的 Caption 属性为空 在 Frame1 中添加含有四个成员的单选按钮控件数组 Option1(0)~Option1(3), 设其 Caption 属性分别为 25% 50% 75% 和 100% 在 Frame2 中添加一个图像框 (2) 编写代码 程序代码的主要任务有三项 : 获取用户选择的图片文件的位置和文件名 ; 在图像框中显示图片 ; 根据显示比例调整图像框的大小 三个文件系统控件组合在一起, 可以实现对计算机整个文件系统的访问 编程的关键是使三者保持同步, 在代码中只要响应驱动器列表框 (Drive1) 和目录列表框 (Dir1) 的 Change 事件即可 在三者同步的前提下, 通过文件列表框 (File1) 的 Path 属性和 FileName 属性可以获取图片文件的路径和文件名 需要提醒读者注意的是, 应当在驱动器列表框的 Change 事件过程中加入出错处理代码, 否则, 程序运行时若选择了尚未插入磁盘的软驱 ( 或光驱 ), 程序会因出错而崩溃 在文件列表框 (File1) 的单击事件过程中, 编写代码获取图片文件的路径和文件名, 然后用 LoadPicture 函数将图片显示在图像框中 单选按钮控件数组的单击事件中, 根据索引判断被选择的单选按钮, 进而确定显示比例, 调整图像框的大小 提示 : 本实验项目有一个缺陷, 程序中图像框的宽度和高度比例是固定的, 往往与实际

73 174 Visual Basic 可视化程序设计实验指导与实训 图片的宽高比不同, 若二者相差较大, 则会导致图像显示失真 读者可以根据原始图片的宽高 比调整图像框的宽度和高度 以下代码可以获得原始图像的宽高比 : Dim sngwvsh As Single sngwvsh = Image1.Picture.Width / Image1.Picture.Height 程序运行效果如图 11.1 所示 程序代码如下 : 图 11.1 图片浏览器 Option Explicit Dim sngwidth As Single, sngheight As Single Private Sub Dir1_Change() ' 目录列表框 Path 属性改变时触发 Change 事件 File1.Path = Dir1.Path ' 使文件列表框与目录列表框的 Path 属性同步 Private Sub Drive1_Change() On Error Resume Next ' 出错执行下一句 ' 在驱动器列表框选择新驱动器后 'Drive1 的 Drive 属性改变, 触发 Change 事件 Dir1.Path = Drive1.Drive ' 将驱动器盘符赋予目录列表框 Path 属性 If Err.Number Then ' 若有错误发生 ( 如软驱中无磁盘 ) MsgBox " 设备未准备好!", vbcritical Private Sub File1_Click() ' 在文件列表框中选择文件 Dim fname As String ' 取文件全路径 If Right$(File1.Path, 1) = "\" Then fname = File1.Path & File1.FileName

74 第二部分 Visual Basic 程序设计实验指导 175 Else fname = File1.Path & "\" & File1.FileName Image1.Picture = LoadPicture(fName) ' 加载图片文件 Private Sub Form_Load() ' 设置文件过滤 ( 各种图片文件 ) File1.Pattern = "*.emf;*.wmf;*.jpg;*.jpeg;" & _ "*.bmp;*.dib;*.gif;*.gfa;*.ico;*.cur" Image1.Stretch = True ' 使图片适应图像框 sngwidth = Image1.Width ' 存图像框原始宽 高 sngheight = Image1.Height Private Sub Option1_Click(Index As Integer) ' 选择显示比例 Image1.Width = sngwidth * Val(Option1(Index).Caption) / 100 Image1.Height = sngheight * Val(Option1(Index).Caption) / 用 FSO 对象模型访问文件系统 用 FSO 对象模型和文件系统控件编制一个可以读写顺序文件 创建新文件和文件夹的程序 (1) 设计界面并设置属性 在窗体上放置驱动器列表框 目录列表框和文件列表框各一 个 添加一个组合框,Style 属性设为 2-Dropdown List 添加一个文本框, 设 Text 属性为空 添加四个命令按钮,Caption 属性分别为 新建文件 新建文件夹 写文件 和 退出 添加五个标签, 用于对其他控件进行简要说明 (2) 添加 FSO 对象引用 要在程序中使用 FSO 对象模型, 必须加载该对象的引用 执 行 工程 菜单中的 引用 命令, 在对话框的列表中选中 Microsoft Scripting Runtime, 单击 确定 按钮 (3) 编写代码 程序代码的主要任务是 : 声明 FSO 对象变量并创建对象 ; 使三个文件系 统控件保持同步 ( 参考实验项目 1); 响应文件列表框 (File1) 的双击事件以读取文件内容 ; 响应各命令按钮的单击事件以完成相应的功能 变量 在代码的 通用 - 声明 部分定义一个 FileSystemObject 对象变量和一个 TextStream 对象 在文件列表框 (File1) 的双击事件过程中用 FileSystemObject 对象的 OpenTextFile 方法以 读方式 (ForReading) 打开文件, 用 TextStream 对象的 ReadAll 方法读取文件内容并显示在文 本框中 在 新建文件 按钮的单击事件过程中通过 InputBox 函数获得用户输入的文件名, 用 FileSystemObject 对象的 CreateTextFile 方法建立新文件 在 新建文件夹 按钮的单击事件过程中通过 InputBox 函数获得用户输入的文件夹名称,

75 176 Visual Basic 可视化程序设计实验指导与实训 用 FileSystemObject 对象的 CreateFolder 方法建立新文件夹 在 写文件 按钮的单击事件过程中用 FileSystemObject 对象的 OpenTextFile 方法以写方式 (ForWriting) 打开文件, 用 TextStream 对象的 Write 方法将文本框中的内容写入文件 在上述事件过程中均需进行获取文件路径的操作, 因此可以将有关代码编制成一个自定义函数统一调用 读者可以扩展该程序的功能, 对文件和文件夹进行复制 删除和移动等操作 程序运行效果如图 11.2 所示 程序代码如下 : 图 11.2 用 FSO 访问文件系统 Option Explicit Dim fso As New FileSystemObject 'FileSystemObject 对象变量 Dim tstfile As TextStream 'TextStream 对象变量 Dim spathname As String ' 拟存放文件路径 Private Sub cmdend_click() Unload Me ' 退出 Private Sub cmdfile_click() ' 新建文件 按钮 Dim fname As String fname = InputBox(" 请输入文件名 ", " 输入 ") If fname = "" Then Exit Sub ' 若文件名为空, 退出过程 spathname = GetDir ' 调用获取路径自定义函数 fso.createtextfile (spathname & fname) ' 新建文件 File1.Refresh ' 刷新文件列表框 Private Sub cmdfold_click() On Error Resume Next ' 新建文件夹 按钮

76 第二部分 Visual Basic 程序设计实验指导 177 Dim sfoldername As String sfoldername = InputBox(" 请输入文件夹名 ", " 输入 ") If sfoldername = "" Then Exit Sub ' 若文件夹名为空, 退出过程 spathname = GetDir ' 调用获取路径自定义函数 ' 新建文件夹 fso.createfolder (spathname & sfoldername) If Err.Number Then MsgBox " 文件夹已存在 ", vbexclamation, " 提示 " Dir1.Refresh ' 刷新目录列表框 Private Sub cmdwrite_click() ' 写文件 按钮 If File1.FileName = "" Then Exit Sub spathname = GetDir ' 调用获取路径自定义函数 ' 写方式打开文件 Set tstfile = fso.opentextfile(spathname & File1.FileName, ForWriting) tstfile.write (Text1.Text) ' 将文本框内容写入文件 tstfile.close ' 关闭文件 Private Sub Combo1_Click() File1.Pattern = Mid(Combo1.Text, 21) ' 选择组合框项目时为文件类型赋值 Private Sub Dir1_Change() ' 目录列表框 Path 属性改变, 触发 Change 事件 ' 使文件列表框与目录列表框的 Path 属性同步 File1.Path = Dir1.Path Private Sub Drive1_Change() On Error Resume Next ' 出错执行下一句 ' 在驱动器列表框选择新驱动器后 'Drive1 的 Drive 属性改变, 触发 Change 事件 Dir1.Path = Drive1.Drive ' 将驱动器盘符赋予目录列表框的 Path 属性 If Err.Number Then ' 若有错误发生 ( 如 A 驱中无盘 ) MsgBox " 设备未准备好!", vbcritical Private Sub File1_DblClick() ' 在文件列表框双击文件名读文件 On Error Resume Next ' 出错执行下一句 Dim fname As String spathname = GetDir ' 调用获取路径自定义函数 fname = spathname & File1.FileName

77 178 Visual Basic 可视化程序设计实验指导与实训 If FileLen(fName)=0 Then Text1.Text="":Exit Sub ' 读方式打开文件 若为空文件, 则退出过程 Set tstfile = fso.opentextfile(fname, ForReading) Text1.Text = tstfile.readall ' 将文件内容读至文本框 If Err.Number Then MsgBox " 文件太大, 无法打开 ", vbexclamation tstfile.close ' 关闭文件 Private Sub Form_Load() ' 窗体加载 Drive1.Drive = App.Path ' 设默认驱动器 Dir1.Path = App.Path ' 设默认目录 File1.Pattern = "*.txt" ' 设默认文件类型 File1.ToolTipText = " 双击文件名可以打开文件 " cmdwrite.tooltiptext = " 将文本框内容写入选定的文件 " ' 对文件类型 ( 组合框 Combo1) 进行初始化 Dim sitem As String sitem = " 文本文件 (*.txt)" Combo1.AddItem sitem + Space(20 - Len(sItem)) + "*.txt" sitem = " 所有文件 (*.*)" Combo1.AddItem sitem + Space(20 - Len(sItem)) + "*.*" Combo1.ListIndex = 0 ' 默认类型为文本文件 Private Function GetDir() ' 自定义函数 : 获取路径 If Right$(Dir1.Path, 1) = "\" Then ' 若为根目录 GetDir = Dir1.Path Else ' 若为子目录 GetDir = Dir1.Path & "\" End Function Private Sub Form_Unload(Cancel As Integer) Text1.Text = "" ' 若文件较大, 清空文本框可以加快卸载速度 Set tstfile = Nothing ' 释放对象变量 Set fso = Nothing

78 第二部分 Visual Basic 程序设计实验指导 179 实验 12 数据控件 一 实验目的 1. 掌握建立数据库的一般步骤 2. 掌握用数据窗体向导创建数据库应用程序的步骤 3. 掌握自定义数据访问窗体的创建 二 实验内容 1. 建立 Access 数据库 2. 用数据窗体向导创建数据库应用程序 3. 创建自定义数据访问窗体 三 实验步骤及指导 1. 建立 Access 数据库 (1) 在 Visual Basic 环境中创建数据库 在 Visual Basic 中可以使用 可视化数据管理器 直接建立 Access 数据库 操作步骤如下 : 1) 启动数据管理器 在 Visual Basic 环境中执行 外接程序 菜单中的 可视化数据管理器 命令, 打开可视化数据管理器 (VisData) 2) 建立数据库 在 VisData 窗口中执行菜单命令 文件 新建 Microsoft Access Ver 7.0 MDB, 打开 选择要创建的 Microsoft Access 数据库 对话框, 在对话框中输入数据库文件名 ( 如 TestVb) 并保存,VisData 窗口的工作区将出现如图 12.1 所示的 数据库窗口 ( 此时为空库, 无表 ) 图 12.1 可视化数据管理器 - 数据库窗口

79 180 Visual Basic 可视化程序设计实验指导与实训 3) 建立数据表 右击数据库窗口的空白处, 在弹出的菜单中选择 新建表 菜单项, 打开如图 12.2 所示的 表结构 对话框, 输入表名称 ( 如 基本情况 ) 后, 单击 添加字段 按钮, 打开如图 12.3 所示的 添加字段 对话框, 输入字段名称, 设置类型和大小 ( 仅 Text 类型 ) 添加了所有字段后, 单击 生成表 按钮即可建立数据表 在一个库中可以建立多个不同名称的表 基本情况 表的结构定义如表 12-1 所示 图 12.2 表结构 图 12.3 添加字段 表 12-1 基本情况表结构定义 字段名 类型 大小 字段名 类型 大小 学号 文本 (Text) 20 出生日期 日期 (Date) 姓名 文本 (Text) 10 专业 文本 (Text) 20 性别 文本 (Text) 2 班级 文本 (Text) 20

80 第二部分 Visual Basic 程序设计实验指导 181 4) 输入记录 双击 数据库窗口 中的表名称, 打开如图 12.4 所示的记录操作窗口, 可 以对记录进行增 删 修改等操作 图 12.4 记录操作 (2) 用 MS Access 建立数据库 上述 可视化数据管理器 由于版本较早, 功能较弱, 读者可以用 Microsoft Access 建立数据库及其数据表并输入数据, 操作方法请参考 Microsoft Access 的联机帮助 注意 :Visual Basic 的 可视化数据管理器 不能识别用 MS Access 2000 以上版本建立的数据库 对于较高版本的数据库, 可以在 Microsoft Access 中通过菜单命令 工具 数据库实用工具 转换数据库 到早期 Access 数据库版本, 将其转换为 Visual Basic 可视化数据管理器 能够识别的数据库 2. 用数据窗体向导创建数据库应用程序用 数据窗体向导 可以快速创建一个数据访问窗体 执行 工程 菜单中的 添加窗体 命令, 打开如图 12.5 所示的对话框, 在 新建 选项卡中选择 VB 数据窗体向导, 单击 打开 按钮后将会出现向导的第一个对话框 图 12.5 启动数据窗体向导

81 182 Visual Basic 可视化程序设计实验指导与实训 如果是创建单表访问窗体, 数据窗体向导将有七个步骤 : 介绍 数据库类型 数据库 窗体 (Form) 记录源 控件选择和完成, 可以根据向导提示操作 在本实验项目中, 数据库类型为 Access, 数据库为前面建立的 TestVb.mdb, 窗体布局为单个记录, 绑定类型为 ADO 数据控件, 记录源为 基本情况 表中的所有字段 生成数据窗体后, 将其设为启动窗体即可运行, 运行界面如图 12.6 所示 图 12.6 用数据窗体向导创建的数据窗体 3. 创建自定义数据访问窗体用 ADO 数据控件和 DataGrid 控件创建一个简单的数据访问窗体, 可以显示 TestVb.mdb 数据库中基本情况表的内容 用数据窗体向导创建数据访问窗体虽然快捷, 但界面形式单一, 利用 ADO 数据控件和数据绑定控件可以创建具有不同风格和功能的数据访问窗体 创建自定义数据访问窗体的一般步骤如下 : (1) 加载 ADO 数据控件和数据绑定扩展控件 ADO 数据控件和数据绑定扩展控件 ( 如 DataGrid 控件 ) 属于 ActiveX 控件, 必须将其添加到工具箱中才能使用 右击工具箱, 在弹出的菜单中选择 部件 命令, 在对话框的 控件 选项卡的列表中选中 Microsoft ADO Data Control 6.0(OLEDB) 和 Microsoft DataGrid 6.0(OLEDB), 单击 确定 按钮 选择工具箱中新增加的 ADO 数据控件 (Adodc) 和 DataGrid 控件, 将其添加到窗体上 (2) 设置 ADO 数据控件属性 ConnectionString( 连接字符串 ) 和 RecordSource( 记录源 ) 属性是 ADO 数据控件最重要的两个属性, 通常通过属性页进行设置 右击窗体上的 ADO 数据控件, 在弹出的菜单中选择 ADODC 属性 命令, 打开 属性页 对话框 在 通用 选项卡中选择 使用连接字符串, 单击 生成 按钮, 打开 数据链接属性 对话框 在 提供者 选项卡中选择 Microsoft Jet 4.0 OLE DB Provider, 单击 下一步 按钮 在 连接 选项卡中指定数据库文件名 ( 如前面创建的 TestVb.mdb), 单击 确定 按钮, 完成对 ConnectionString 属性的设置, 返回 属性页 对话框, 在 记录源 选项卡中设命令类型为 2-adCmdTable, 然后在 表或存储过程名称 下拉列表中选择数据表 ( 如 基本情况 ) 单击 确定 按钮完成设置

82 第二部分 Visual Basic 程序设计实验指导 183 (3) 设置数据绑定控件属性 ADO 数据控件本身不能显示记录集, 需要通过绑定具有显示功能的其他控件显示记录集, 这些控件称为数据绑定控件, 如 : 文本框 标签 图像 ( 片 ) 框 列表框 组合框 复选框 DataGrid 等 在属性窗口将数据绑定控件的 DataSource( 数据源 ) 属性设为 ADO 数据控件 ( 如 Adodc1) 如果是单字段显示控件 ( 如文本框等 ), 还需要将控件的 DataField( 数据字段 ) 属性设置为特定字段 DataGrid 控件属于多字段显示控件, 没有 DataField 属性 (4) 编写代码 根据需要, 为 ADO 数据控件 数据绑定控件和其他控件编写代码 本实验项目的界面设计和控件使用比较简单, 没有编写代码, 只是为了让读者熟悉利用 ADO 数据控件和数据绑定控件创建自定义数据访问窗体的一般过程 自定义的数据访问窗体如图 12.7 所示 图 12.7 自定义数据访问窗体说明 : 本实验中的两个工程 (ADO25.vbp 和 DtGrid25.vbp) 是在安装了 VB-SP5 的计算机上编制的, 在未安装 VB-SP5 的计算机上运行时可能会出错 若发生错误, 请进行以下处理 : 执行 工程 菜单中的 引用 命令, 打开 引用 对话框, 将列表中 Microsoft ActiveX Data Objects 2.5 Library 左侧的复选标志 ( ) 清除, 然后选中列表中的 Microsoft ActiveX Data Objects 2.0 Library, 单击 确定 按钮

VB程序设计教程

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

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

Microsoft Word - 实验3.doc

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

More information

四川省普通高等学校

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

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

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

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

More information

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

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

More information

Microsoft Word - VB全文.doc

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

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

穨文件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

PowerPoint 演示文稿

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

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

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

<4D F736F F D D342DA57CA7DEA447B14D2DA475B57BBB50BADEB27AC3FEB14DA447B8D5C344>

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

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

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

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

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

投稿類別:電子工程類

投稿類別:電子工程類 投 稿 類 別 : 工 程 技 術 類 篇 名 : 井 字 生 死 戰 攻 略 作 者 : 陳 威 宇 國 立 臺 南 高 級 海 事 水 產 職 業 學 校 電 子 科 二 年 甲 班 邱 富 群 國 立 臺 南 高 級 海 事 水 產 職 業 學 校 電 子 科 二 年 甲 班 指 導 老 師 : 林 育 助 老 師 王 彥 盛 老 師 壹 前 言 家 喻 戶 曉 的 井 字 遊 戲 (Tic-Tac-Toe)

More information

提示 : (1) 程序运行时单击两次鼠标, 观察输出结果 ; (2) 将输出内容修改为 我的第一个 VB 程序 ; (3) 尝试改变输出文本的颜色 上机要求 : (1) 每题创建一个 VB 工程, 并在窗体 (Form1) 上设计界面, 在相关事件过程中编写程序 ; (2) 保存并运行应用程序 ;

提示 : (1) 程序运行时单击两次鼠标, 观察输出结果 ; (2) 将输出内容修改为 我的第一个 VB 程序 ; (3) 尝试改变输出文本的颜色 上机要求 : (1) 每题创建一个 VB 工程, 并在窗体 (Form1) 上设计界面, 在相关事件过程中编写程序 ; (2) 保存并运行应用程序 ; 第 13 章 VB 上机练习题程序最终是要在计算机上运行的, 学习程序设计过程中很重要的一个环节是上机练习, 只有将一个程序在计算机上编写 调试 运行并得到正确的结果, 才算完成了程序设计与实现 本章根据前面章节的学习内容, 将上机练习题目分类, 分别编写了 12 类上机题目, 供老师教学和上机参考 13.1 上机练习一 目的 : (1) 熟悉 Visual Basic6.0 开发环境 (2) 模仿简单的

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

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

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

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

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

PowerPoint Presentation

PowerPoint Presentation Visual Basic 2005 學 習 範 本 第 7 章 陣 列 的 活 用 7-1 陣 列 當 我 們 需 要 處 理 資 料 時, 都 使 用 變 數 來 存 放 資 料 因 為 一 個 變 數 只 能 代 表 一 個 資 料, 若 需 要 處 理 100 位 同 學 的 成 績 時, 便 要 使 用 100 個 不 同 的 變 數 名 稱, 這 不 但 會 增 加 變 數 名 稱 命 名

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

<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

Microsoft Word - 第3章.doc

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

More information

Microsoft Word - 正文.doc

Microsoft Word - 正文.doc 第 5 章循环结构程序设计 一 实验目的 (1) 掌握 For 语句的使用 (2) 掌握 Do While/Until Loop 与 Do Loop While/Until 两种循环语句的使用 (3) 加深理解循环的概念, 掌握循环的规则及其执行过程 (4) 掌握多重循环的规则和程序设计方法 (5) 学会如何控制循环条件, 防止死循环或不循环 二 相关知识在指定条件下多次重复执行一组相同的语句可以通过循环来实现

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

标题

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

More information

SMM667.mps

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

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

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

C#程序设计实验

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

More information

Microsoft PowerPoint - VB14.ppt

Microsoft PowerPoint - VB14.ppt VB 列表盒 LISTBOX 應用 資科系 林偉川 執行畫面 1 2 1 重要屬性 LISTBOX 物件 (VB6) 新增至 LISTBOX 物件中 ADDITEM 自 LISTBOX 物件中刪除選取物件 REMOVEITEM 自 LISTBOX 物件中取出選取物件 ListIndex 顯示 LISTBOX 物件中紀錄個數 Listcount 3 LISTBOX 物件 (VB.NET) 重要屬性 新增至

More information

Microsoft Word - 新1-16最新.doc

Microsoft Word - 新1-16最新.doc 项目 5 制作 36 选 7 摇奖机 本项目是制作一个 36 选 7 的摇奖机, 包括摇出 6 个正选号码和 1 个特选号码, 要具有没有重复号码 ; 可以多次摇奖等功能 利用控件数组来设计摇奖机界面, 产生随机数, 通过循环控制语句和分支控制语句产生满足要求的摇奖号码, 并把产生的摇奖号码显示在界面上 通过本项目, 应掌握循环结构 随机数以及控件数组的使用方法和技巧 1.Label 控件 属性 事件

More information

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

More information

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

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

More information

实验目的 (1) 熟练掌握顺序 分支 循环三种结构 (2) 会使用流程控制结构编写程序 第三章程序的流程控制 实验要求 (1) 掌握 if-else swith-case 的使用 (2) 掌握 while do-while for 的使用 (3) 掌握分支嵌套和循环嵌套 (4) 分析理解如何避免死循

实验目的 (1) 熟练掌握顺序 分支 循环三种结构 (2) 会使用流程控制结构编写程序 第三章程序的流程控制 实验要求 (1) 掌握 if-else swith-case 的使用 (2) 掌握 while do-while for 的使用 (3) 掌握分支嵌套和循环嵌套 (4) 分析理解如何避免死循 实验目的 (1) 熟练掌握顺序 分支 循环三种结构 (2) 会使用流程控制结构编写程序 第三章程序的流程控制 实验要求 (1) 掌握 if-else swith-case 的使用 (2) 掌握 while do-while for 的使用 (3) 掌握分支嵌套和循环嵌套 (4) 分析理解如何避免死循环 实验范例 系统常用类 : 字符串类 (String) a) 从字符串 s 中截取一个字符串方法 s.substring()

More information

2009年3月二级VB语言笔试真题

2009年3月二级VB语言笔试真题 2008 年 4 月 计 算 机 二 级 考 试 VB 笔 试 试 题 一 选 择 题 ( 每 题 2 分, 共 计 70 分 ) 1. 程 序 流 程 图 中 带 有 箭 头 的 线 段 表 示 的 是 A) 图 元 关 系 B) 数 据 流 C) 控 制 流 D) 调 用 关 系 2. 结 构 化 程 序 设 计 的 基 本 原 则 不 包 括 A) 多 态 性 B) 自 顶 向 下 C) 模

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

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

untitled

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

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

Microsoft Word - 第5章.doc

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

More information

启动 Visual Basic 系统, 创建一个 Form1 窗体 在该窗体上画一个图象框控件, 通过其属性窗口将名称设为 Image1, 通过其 Picture 属性将 pic1.jpg 装入图片框,Stretch 属性设为 True 画二个命令按钮控件, 通过其属性窗口将名称分别设为 Comma

启动 Visual Basic 系统, 创建一个 Form1 窗体 在该窗体上画一个图象框控件, 通过其属性窗口将名称设为 Image1, 通过其 Picture 属性将 pic1.jpg 装入图片框,Stretch 属性设为 True 画二个命令按钮控件, 通过其属性窗口将名称分别设为 Comma 二级 VB 上机试题汇编 第 01 套 : 1. 基本操作 (2 小题, 每小题 15 分, 共计 30 分 ) 请根据以下各小题的要求设计 Visual Basic 应用程序 ( 包括界面和代码 ) (1) 在名称为 Form1 的窗体上画一个名称为 Text1 的文本框, 其高 宽分别为 400 2000 请在属性框中设置适当的属性满足以下要求 : 1)Text1 的字体为 黑体, 字号为 四号

More information

Microsoft Word - 專題製作研究報告書.doc

Microsoft Word - 專題製作研究報告書.doc 大 富 翁 之 我 要 畢 業 指 導 老 師 : 王 啟 修 參 賽 學 生 : 吳 皇 逸 林 晉 逸 黃 亭 瑋 賴 建 豫 嘉 義 高 商 資 料 處 理 科 摘 要 本 專 題 以 大 富 翁 遊 戲 為 基 本 題 材, 並 參 考 任 天 堂 遊 戲 公 司 製 作 的 Mario Party 電 視 遊 戲 和 各 代 的 大 富 翁, 將 不 同 風 格 的 小 遊 戲 與 傳 統

More information

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

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

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

PowerPoint Template

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

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

Microsoft Word - Vcj05.doc

Microsoft Word - Vcj05.doc 第 5 章选择结构程序设计 在日常生活和工作中, 经常会遇到各种各样的选择, 根据选择的不同, 会得到不同的结果 在程序设计中, 也经常会根据不同的情况执行不同的操作, 这与现实生活中的选择非常类似 但程序设计中的选择结构根据条件只能选择一个分支执行, 即无论分支多寡, 必择其一 ; 纵然分支众多, 仅选其一 本章主要介绍实现选择结构程序设计方面的知识, 包括 If 语句 Select Case 语句

More information

ThreeDtunnel.doc

ThreeDtunnel.doc (12) 1 1. Visual Basic Private Sub LoadDatabase() Dim strip As String Dim straccount As String Dim strpassword As String Dim strdatabase As String Dim strtable As String Dim strsql As String Dim strtemp1

More information

27 :OPC 45 [4] (Automation Interface Standard), (Costom Interface Standard), OPC 2,,, VB Delphi OPC, OPC C++, OPC OPC OPC, [1] 1 OPC 1.1 OPC OPC(OLE f

27 :OPC 45 [4] (Automation Interface Standard), (Costom Interface Standard), OPC 2,,, VB Delphi OPC, OPC C++, OPC OPC OPC, [1] 1 OPC 1.1 OPC OPC(OLE f 27 1 Vol.27 No.1 CEMENTED CARBIDE 2010 2 Feb.2010!"!!!!"!!!!"!" doi:10.3969/j.issn.1003-7292.2010.01.011 OPC 1 1 2 1 (1., 412008; 2., 518052), OPC, WinCC VB,,, OPC ; ;VB ;WinCC Application of OPC Technology

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

内容简介 本书是 Visual Basic 程序设计 ( 科学出版社出版, 范通让 王学军主编 ) 的配套实训教材, 由两部分组成 第一部分是实训指导, 共 15 个实训项目, 每个实训项目均指出了本部分需掌握的重点内容, 并给出了理论知识要点 实训步骤及程序代码, 使学生能逐步了解 Visual

内容简介 本书是 Visual Basic 程序设计 ( 科学出版社出版, 范通让 王学军主编 ) 的配套实训教材, 由两部分组成 第一部分是实训指导, 共 15 个实训项目, 每个实训项目均指出了本部分需掌握的重点内容, 并给出了理论知识要点 实训步骤及程序代码, 使学生能逐步了解 Visual 普通高等教育 十二五 重点规划教材计算机系列中国科学院教材建设专家委员会 十二五 规划教材 Visual Basic 程序设计实训教程 王学军主编 赵涓涓副主编 杨艳主审 北京 内容简介 本书是 Visual Basic 程序设计 ( 科学出版社出版, 范通让 王学军主编 ) 的配套实训教材, 由两部分组成 第一部分是实训指导, 共 15 个实训项目, 每个实训项目均指出了本部分需掌握的重点内容,

More information

6. 4 5 6 7 8 9 10 11 ...1... 1...1...1...2... 3...3...5...9... 11...11...11...12...12... 13...13...14... 16...16...19...20 I 1 ---------------------------------------------------3 2 ------------------------------------------------6

More information

Microsoft PowerPoint - Chapter5

Microsoft PowerPoint - Chapter5 CH5 表 單 與 控 制 項 課 程 目 標 : 暸 解 VBA 語 言 中 的 控 制 項 及 常 用 屬 性 表 單 在 視 窗 環 境 中, 使 用 者 所 使 用 的 對 話 窗, 精 靈 等 都 是 以 表 單 為 基 本 單 位, 再 加 上 其 它 控 制 項 所 構 成 的 操 作 環 境 利 用 插 入 表 單 為 指 定 的 專 案 插 入 一 個 自 訂 表 單 表 單 常

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

Ps22Pdf

Ps22Pdf Visua l Ba sic 6 ( ) 158,,,, Windows ;,, A 6, ; B,, Visual Basic, W indows 95/ 98,, : Visual Basic 6 : : (, 100084) : : : 787 1092 1/ 16 : 23. 75 : 578 : 2002 1 1 2002 1 1 : 0001 5000 : ISBN 7 302 05015

More information

TwinCAT 1. TwinCAT TwinCAT PLC PLC IEC TwinCAT TwinCAT Masc

TwinCAT 1. TwinCAT TwinCAT PLC PLC IEC TwinCAT TwinCAT Masc TwinCAT 2001.12.11 TwinCAT 1. TwinCAT... 3 2.... 4... 4...11 3. TwinCAT PLC... 13... 13 PLC IEC 61131-3... 14 4. TwinCAT... 17... 17 5. TwinCAT... 18... 18 6.... 19 Maschine.pro... 19... 27 7.... 31...

More information

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

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

More information

3 Driver do Microsoft Access (*.mdb) hisdata IFIX 1.4

3 Driver do Microsoft Access (*.mdb) hisdata IFIX 1.4 IFix3.5 ACCESS ACCESS hisdata D:\Dynamics\SampleSystem\HistoricalData ODBC DSN hisdata 1 ODBC 1.1 2 1.2 3 Driver do Microsoft Access (*.mdb) 1.3 4 hisdata IFIX 1.4 1.4 5 Access 1.5 6 ODBC ifix3.5 1.6 1.6

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

吳元康

吳元康 逢 甲 大 學 自 動 控 制 工 程 學 系 專 題 製 作 專 題 論 文 精 密 雙 軸 平 台 之 微 動 控 制 設 計 The Design of Micromovement Control of the Precision X-Y Stage 指 導 教 授 : 張 興 政 學 生 : 鄭 慶 朗 中 華 民 國 九 十 三 年 六 月 逢 甲 大 學 自 動 控 制 工 程 學 系

More information

Microsoft Word - 正文.doc

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

More information

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

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

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

2009年3月二级VB语言笔试真题

2009年3月二级VB语言笔试真题 2008 年 9 月 计 算 机 二 级 VB 语 言 真 题 一 选 择 题 ( 每 题 2 分, 共 计 70 分 ) 1. 一 个 栈 的 初 始 状 态 为 空 现 将 元 素 1 2 3 4 5 A B C D E 依 次 入 栈, 然 后 再 依 次 出 栈, 则 元 素 出 栈 的 顺 序 是 A)12345ABCDE B)EDCBA54321 C)ABCDE12345 D)54321EDCBA

More information

付宝容器 jsapi 档 册 PDF 版本 本版本为实验版本, 为线下独 查看使, 受制于 成 PDF 程序的限制, 样式问题还没有很好的解决, 例如分 切图 代码 亮 推荐使 在线版本, 便实时查看 jsapi 运 效果 如需搜索, 使 阅读 PDF 软件 带功能即可 更多细节样式调整和 录索引探

付宝容器 jsapi 档 册 PDF 版本 本版本为实验版本, 为线下独 查看使, 受制于 成 PDF 程序的限制, 样式问题还没有很好的解决, 例如分 切图 代码 亮 推荐使 在线版本, 便实时查看 jsapi 运 效果 如需搜索, 使 阅读 PDF 软件 带功能即可 更多细节样式调整和 录索引探 付宝容器 jsapi 档 册 PDF 版本 本版本为实验版本, 为线下独 查看使, 受制于 成 PDF 程序的限制, 样式问题还没有很好的解决, 例如分 切图 代码 亮 推荐使 在线版本, 便实时查看 jsapi 运 效果 如需搜索, 使 阅读 PDF 软件 带功能即可 更多细节样式调整和 录索引探索建设中 成时间 : 2017-07-20 12:13:21 Since 8.6 定义键盘 定义键盘使

More information

untitled

untitled Visual Basic 6.0 Visual Basic 6.0 /. 2001.8 ISBN 7-115-10518-9 I. V II. III. BASIC IV. TP312 CIP (2002) 055959 Visual Basic Microsoft 14 1~6 Visual Basic 7~14 Internet Windows API ActiveX Visual Basic

More information

<4D F736F F D20B8C4B0E6CABDD0C25642D6B8B5BCC8ABCEC42E646F63>

<4D F736F F D20B8C4B0E6CABDD0C25642D6B8B5BCC8ABCEC42E646F63> 第 3 章实验指导 3.1 实验一 Visual Basic 语言环境实验 实验目的 1. 熟悉 Visual Basic 6.0 集成开发环境 2. 学习用窗体和控件建立界面 3. 学习用属性窗口设置对象的属性 4. 掌握窗体的概念及相关操作 5. 熟练掌握程序开发的基本步骤 相关知识 1. 窗体窗体是 Visual Basic 中的对象, 具有自己的属性 事件和方法 窗体的属性包括 : (1)Name

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

Microsoft Word - 24.doc

Microsoft Word - 24.doc 基 于 VB 平 台 的 游 戏 控 制 器 端 口 数 据 通 信 李 密 吕 钊 ( 空 军 第 一 航 空 学 院 电 子 工 程 系 464000) [ 摘 要 ] 本 文 详 细 分 析 了 API 函 数 调 用 的 基 本 方 法, 在 此 基 础 上 介 绍 了 如 何 实 现 游 戏 控 制 器 端 口 的 数 据 通 讯 [ 关 键 词 ]API, 窗 体, 工 程 TO ACHIEVE

More information

untitled

untitled VB 來 立 李 龍老 年 參 車 令 度 綠 車 不 不 靈 了 來 令來 了老 利 來 練 念 邏 念 數 度 念 狀 不 度 令 數 更 參 VB VB VB 理 VB 類 數 (x,y) (0,0) x y x,y 數 (0,0) (x, 0) (0, y) (x, y) VB 裡 來 VB 來 1 Graphics VB Graphics Private Sub Button1_Click(

More information

Microsoft Word - 扉页

Microsoft Word - 扉页 社 心 版 中 出 版 学 科 术出 k.cn o 技 o b 教 a. 职 ww w 高 等 教 育 十 一 五 规 划 教 材 Visual Basic 程 序 设 计 实 验 指 导 与 习 题 集 郭 元 辉 冯 庆 煜 主 编 李 军 陈 亚 军 副 主 编 北 京 内 容 简 介 本 书 是 与 Visual Basic 程 序 设 计 教 程 配 套 使 用 的 上 机 练 习 和 习

More information

内容简介 本书是根据教育部高等学校计算机科学与技术教学指导委员会关于 计算机程序设计基础课程教学基本要求 编写而成的, 是与 VisualBasic 程序设计 ( 段昌敏主编, 科学出版社 ) 配套的实训教材 为配合主教材的章节顺序和知识点, 本书的第一部分包含 13 个配套实验, 实验内容具有很强

内容简介 本书是根据教育部高等学校计算机科学与技术教学指导委员会关于 计算机程序设计基础课程教学基本要求 编写而成的, 是与 VisualBasic 程序设计 ( 段昌敏主编, 科学出版社 ) 配套的实训教材 为配合主教材的章节顺序和知识点, 本书的第一部分包含 13 个配套实验, 实验内容具有很强 普通高等教育 十二五 重点规划教材 计算机系列 中国科学院教材建设专家委员会 十二五 规划教材 VisualBasic 程序设计实验指导与习题解答 段昌敏主编 涂祥副主编 科学出版社职教技术出版中心 www.aboo 北 京 内容简介 本书是根据教育部高等学校计算机科学与技术教学指导委员会关于 计算机程序设计基础课程教学基本要求 编写而成的, 是与 VisualBasic 程序设计 ( 段昌敏主编,

More information

Microsoft PowerPoint - 5. 指针Pointers.ppt [兼容模式]

Microsoft PowerPoint - 5. 指针Pointers.ppt [兼容模式] 指针 Pointers 变量指针与指针变量 Pointer of a variable 变量与内存 (Variables and Memory) 当你声明一个变量时, 计算机将给该变量一个内存, 可以存储变量的值 当你使用变量时, 计算机将做两步操作 : - 根据变量名查找其对应的地址 ; - 通过地址对该地址的变量内容进行读 (retrieve) 或写 (set) 变量的地址称为变量的指针! C++

More information

vb

vb Visual Basic 程序设计 实验指导书 计算机科学与技术学院 陈治伯 目 录 实验一 Visual Basic 程序设计...3 实验二顺序程序设计...5 实验三顺序程序设计...7 实验四循环结构程序设计...10 实验五数组...13 实验六过程...18 实验七常用控件...22 2 实验一 Visual Basic 程序设计 一 实验目的 1. 了解 Visual Basic 系统对计算机软

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

60 新编计算机应用基础实训指导 (2) 单元格显示格式设置 选中 (A1:I1) 单元格区域, 在 格式 工具栏中选择 加粗 按钮, 将字体设置为 加粗 显示 ; 选择 居中显示 按钮, 将字体设置为居中显示 ; 选择 底纹设置 按钮, 将单元格底纹设置为黄色, 显示结果如图 3 3 所示 图 3

60 新编计算机应用基础实训指导 (2) 单元格显示格式设置 选中 (A1:I1) 单元格区域, 在 格式 工具栏中选择 加粗 按钮, 将字体设置为 加粗 显示 ; 选择 居中显示 按钮, 将字体设置为居中显示 ; 选择 底纹设置 按钮, 将单元格底纹设置为黄色, 显示结果如图 3 3 所示 图 3 模块三电子表格软件 Excel 训练项目 1 教师人事档案管理表的录入与编辑 训练目标 掌握 Excel 2003 工作簿的建立 保存与打开方法 掌握工作表中各种不同类型数据的输入方法 掌握单元格格式的设置方法 掌握表格边框和底纹的设置方法 掌握特殊符号的输入方法 训练内容 制作 教师人事档案管理表, 最终显示效果如图 3 1 所示 图 3 1 教师人事档案管理表 样本 实训步骤 (1) 启动 Excel

More information

Guava学习之Resources

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

More information

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

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

More information

Visual Basic AD/DA Visual Basic 2

Visual Basic AD/DA Visual Basic 2 4900H238 4900H237 4900H208 1 Visual Basic AD/DA Visual Basic 2 PCI AD/DA Visual Basic Visual Basic 3 4 3 3 4 AD/DA ID AD/DA PCI AD/DA 15 Visual Basic 17 5 20 PID Visual Basic 26 31 Visual Basic-------------------------------------------------------------

More information

Microsoft Word - ch05.doc

Microsoft Word - ch05.doc 第 5 章循环结构程序设计 教学提示 : 结构化程序设计有 3 种基本结构 : 顺序结构 选择结构和循环结构 循环结构程序设计的特点是 : 在满足条件 ( 称为循环条件 ) 的情况下反复执行某段代码 ( 称为循环体 ), 直到不满足条件时结束循环 在进行循环结构程序设计时, 关键是要正确选取循环条件和循环体 循环条件设置不当, 可能导致循环的次数偏多或偏少, 甚至死循环 ; 循环体设置不好, 可能导致多做或少做部分工作,

More information

<4D F736F F D B3CCD0F2C9E8BCC6A1AAA1AA E4E4554C9CFBBFACAB5D1E9D6B8B5BCA3A8B5DA33B0E6A3A9CEA2BFCEB0E620CAB5D1E9352E646

<4D F736F F D B3CCD0F2C9E8BCC6A1AAA1AA E4E4554C9CFBBFACAB5D1E9D6B8B5BCA3A8B5DA33B0E6A3A9CEA2BFCEB0E620CAB5D1E9352E646 实验 7 ASP.NET 窗体验证 一 实验目的 (1) 理解客户端和服务器端验证 (2) 掌握 ASP.NET 各验证控件的使用 (3) 掌握分组验证的方法 二 实验内容及要求 1. 设计并实现一个带验证控件的用户注册页面要求如下 : (1) 页面浏览效果如图 5-1 和图 5-2 所示 (2) 用户名 密码 确认密码 生日 电话号码 和 身份证号 等信息必须输入 (3) 密码 和 确认密码 的输入值必须一致

More information

《linux从入门到精通》实验指导第三讲:文件及目录操作

《linux从入门到精通》实验指导第三讲:文件及目录操作 Web 交互开发 实验教学指导 实验六 : 文件 一 实验目的 (5 分 ) 1 掌握文件处理对象的相关操作; 2 了解文件打印的方法; 3 掌握 FileSystem API 的基本概念以及相关属性 方法与事件 ; 4 掌握 FileReader API 读取文件的内容的方法 ; 二 实验环境 (5 分 ) 1 Windows XP/Windows 7 操作系统的计算机 ; 2 局域网网络环境,

More information

F515_CS_Book.book

F515_CS_Book.book /USB , ( ) / L R 1 > > > 2, / 3 L 1 > > > 2 + - 3, 4 L 1 了解显示屏上显示的图标 Wap 信箱收到一条 Wap push 信息 ( ) GSM 手机已连接到 GSM 网络 指示条越多, 接收质量越好 2 ...........................4.............................. 4 Micro SD (

More information

《计算概论》课程 第十九讲 C 程序设计语言应用

《计算概论》课程 第十九讲  C 程序设计语言应用 计算概论 A 程序设计部分 字符数组与字符串 李戈 北京大学信息科学技术学院软件研究所 lige@sei.pku.edu.cn 字符数组的定义 #include int main() char a[10] = 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j' ; for (int i = 0; i < 10; i++) cout

More information

数学分析(I)短课程 [Part 2] 4mm 自然数、整数和有理数

数学分析(I)短课程 [Part 2]   4mm 自然数、整数和有理数 .. 数学分析 (I) 短课程 [Part 2] 自然数 整数和有理数 孙伟 华东师范大学数学系算子代数中心 Week 2 to 18. Fall 2014 孙伟 ( 数学系算子代数中心 ) 数学分析 (I) 短课程 Week 2 to 18. Fall 2014 1 / 78 3. 自然数理论初步 孙伟 ( 数学系算子代数中心 ) 数学分析 (I) 短课程 Week 2 to 18. Fall 2014

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

Microsoft Word - 扉页.doc

Microsoft Word - 扉页.doc 科学出版社职教技术出版中心 www.aboo 普通高等教育 十一五 规划教材 Visual Basic 程序设计 郭贤海 主编 北京 内容简介 Visual Basic 语言是最流行 使用人数最多的编程语言, 它简单易学 应用广泛, 是在校大学生学习编程的首选语言, 学会 Visual Basic 能使你的专业技能如虎添翼 本书针对初学者的特点, 精心设计章节内容 准确定位, 章节的设置符合学习规律,

More information

Excel VBA Excel Visual Basic for Application

Excel VBA  Excel Visual Basic for Application Excel VBA Jun5,00 Sub 分頁 () Dim i As Integer Dim Cname As String Dim Code As Variant Set score=thisworkbook.sheets("sheet") Code=Array(" 專北一 "," 專北二 "," 專北三 "," 專桃園 "," 專桃竹 "," 專中苗 ", " 專台中 "," 專台南 ","

More information

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

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

More information

标题

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

More information

06.doc

06.doc 实验 6 Visual FoxPro 表单设计 实验目的 1. 学习使用表单向导和表单设计器 2. 掌握设计表单的方法 3. 掌握各种控件的常用属性 事件和方法 实验内容 1. 练习使用表单向导 2. 练习使用表单设计器 3. 练习给表单添加控件 实验要求与步骤 实验 6.1 实验准备工作 (1) 将 患者信息.dbf 表复制到 HZXX.dbf 表 (2) 修改 HZXX.dbf 表结构, 添加记录信息,

More information

TQC VB 60程式設計解題秘笈.doc

TQC VB 60程式設計解題秘笈.doc ...I...III...VII...1 1 TQC-PD Visual Basic 6...3 1.1...3 1.2...4 2 Visual Basic 6...5 2.1 1...5 2.1.1 VB6-101...5 2.1.2 VB6-102...6 2.1.3 VB6-103...7 2.1.4 VB6-104...8 2.1.5 VB6-105... 10 2.1.6 VB6-106

More information

IsPostBack 2

IsPostBack 2 5 IsPostBack 2 TextBox 3 TextBox TextBox 4 TextBox TextBox 1 2 5 TextBox Columns MaxLength ReadOnly Rows Text TextMode TextMode MultiLine TextMode MultiLine True False TextMode MultiLine Password MulitLine

More information