vb

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

Microsoft Word - 实验3.doc

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

VB程序设计教程

四川省普通高等学校

Microsoft Word - VB全文.doc

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

Microsoft Word - 正文.doc

Microsoft Word - 第3章.doc

Visual Basic D 3D

untitled

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

<4D F736F F D D342DA57CA7DEA447B14D2DA475B57BBB50BADEB27AC3FEB14DA447B8D5C344>

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

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

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

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

Microsoft PowerPoint - OPVB1基本VB.ppt

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

Microsoft PowerPoint - 01_Introduction.ppt

2

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

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

TC35短信发送程序设计

穨文件1

《C语言程序设计》

PowerPoint 演示文稿

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

PowerPoint Presentation


投稿類別:電子工程類

chap07.key

幻灯片 1

4.C ( 详细解析见视频课程 绝对值 01 约 21 分 15 秒处 ) 5.E ( 详细解析见视频课程 绝对值 01 约 32 分 05 秒处 ) 6.D ( 详细解析见视频课程 绝对值 02 约 4 分 28 秒处 ) 7.C ( 详细解析见视频课程 绝对值 02 约 14 分 05 秒处 )

Guava学习之Resources

Microsoft Word - 实验3.doc

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

穨ac3-3.PDF


第五讲 数组 一维数组 二维数组 数组作为函数参数

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

untitled

untitled

求出所有的正整数 n 使得 20n + 2 能整除 2003n n 20n n n 20n n 求所有的正整数对 (x, y), 满足 x y = y x y (x, y) x y = y x y. (x, y) x y =

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

F515_CS_Book.book

手册 doc

2

《Visual Basic程序设计》实验课


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

SMM667.mps

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

Excel VBA Excel Visual Basic for Application

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

TwinCAT 1. TwinCAT TwinCAT PLC PLC IEC TwinCAT TwinCAT Masc

Microsoft Word - 新1-16最新.doc

没有幻灯片标题

VB控件教程大全

X713_CS_Book.book

Microsoft Word - 《C语言开发入门》课程教学大纲-2.doc

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

期中考试试题讲解

第 3 章选择结构 q q q Python 中表示条件的方法 if 语句 选择结构程序设计方法

Microsoft PowerPoint - VB14.ppt

标题

C语言上机实验

<4D F736F F F696E74202D BDE1B9B9BBAFB3CCD0F2C9E8BCC D20D1ADBBB7>

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

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

MVB-1001.DOC

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

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

bt627.pptx

CHAPTER VC#

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

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

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

标题

Microsoft Word - Vcj05.doc

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!" 分别代

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

5. 用于管理 Visual Basic 模块或文件类的窗口是, 用于临时输出程序或调试程序的 窗口是, 描述对象属性的窗口是 6.Visual Basic 6.0 的 3 种工作模式分别是 和 7. 工程文件的扩展名是, 窗体文件的扩展名是 8.Visual Basic 窗体设计器的主要功能是 9

Microsoft PowerPoint - 07 派生数据类型

全国计算机技术与软件专业技术资格(水平)考试

Visual Basic AD/DA Visual Basic 2

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

<C8EBC3C5C6AAA3A8B5DA31D5C2A3A92E696E6464>

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

网C试题(08上).doc

2015年计算机二级(C语言)模拟试题及答案(三)

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

壹 前 言 解 開 2048 的 謎 一 研 究 動 機 最 近 我 們 都 很 熱 衷 於 2048 這 款 遊 戲, 遊 戲 方 法 非 常 簡 單, 但 是 想 要 達 成 2048 卻 很 難, 每 次 只 差 臨 門 一 腳 就 能 達 到 2048, 因 此 都 沒 有 成 功 過 於

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

新 闻 学 46 7 新 闻 传 播 学 院 广 告 学 28 4 广 播 电 视 学 23 3 新 闻 学 广 告 学 ). 级 学 生 申 请 准 入 需 修 完 或 正 在 修 2 门 专 业 准 入 课 程 并 取 得 相 应 学 分 ;2). 级 学 生 申 请 准 入 需

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

Microsoft PowerPoint - 4. 数组和字符串Arrays and Strings.ppt [兼容模式]

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

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

PowerPoint 演示文稿

Transcription:

Visual Basic 程序设计 实验指导书 计算机科学与技术学院 陈治伯

目 录 实验一 Visual Basic 程序设计...3 实验二顺序程序设计...5 实验三顺序程序设计...7 实验四循环结构程序设计...10 实验五数组...13 实验六过程...18 实验七常用控件...22 2

实验一 Visual Basic 程序设计 一 实验目的 1. 了解 Visual Basic 系统对计算机软 硬件的要求 2. 掌握启动与退出 Visual Basic 的方法 3. 掌握建立 编辑和运行一个简单的 Visual Basic 应用程序的全过程 4. 掌握常用控件 ( 文本框 标签 命令按钮 ) 的应用 二 实验内容 1. 启动 Visual Basic 6.0, 创建一个 " 标准 EXE" 类型的应用程序, 要求 : 在屏幕上显示 " 欢迎您使用 Visual Basic", 并 " 请输入您的姓名 "; 屏幕设计的界面如图 2.1.1, 以 Sy1-1.frm 和 Sy1-1.vbp 文件名保存在您的软盘上 提示 : (1) 程序中用到 2 个标签和 1 个文本框, 标签显示所需的文字, 文本框用于输入您的姓名, 最多输入 4 个字符, 对于 2 个标签内的字号大小可在标签的属性窗口中选择 Font 属性改变 (2) " 欢迎您使用 Visual Basic" 要在两行显示, 只要将 Label1 控件的宽度缩小一些 图 2.1.1: 实验 1.1 运行界面 2. 模仿教材例题, 练习对窗体三个事件过程 (Load Click DblClick) 的编程, 三个事件中装入不同的图片, 可以是你自己喜欢的任何图片 ; 练习对鼠标指针的改变, 改变为 Key04.ico 图标文件 ; 练习对窗体图标 边框线类型 最大化按钮和最小化按钮的改变 3

3. 字号 按钮 随机函数练习 在文本框输入一字符串, 对字符格式进行设置, 包括字体 (FontName) 字号 (FontSize) ; 文本框有垂直滚动条, 效果见图 2.1.3 图 2.1.3: 实验 1.3 运行界面 提示 : 对字体设置必须将字体在双引号内括住, 例如 Text1.FontName=" 宋体 " 4.Move 方法练习, 移动具有浮雕效果的文字 在窗体插入图片, 文件名为 So02963_.wmf( 读者也可插入你所喜欢的图片 ), 窗体上以浮雕效果显示的字符串 " 新年快乐 ", 还有两个命令按钮, 文件 Point02.ico 表示左指向 文件 Point04.ico 表示右指向, 如图 2.1.4 所示 要求当单击左指向按钮, 字符串 " 新年快乐 " 向左移动 50; 单击右指向按钮, 向右移动 50 提示 : (1) 浮雕效果的实现见教学篇例 2.5, 也就是建立两个相同属性 ( 大小 文字 ) 的标签, 通过设置 BackStyle 为 0( 透明 ) ForeColor 字颜色 Left 和 Top 位置等属性 (2) 移动利用 Move 方法, 因为浮雕效果的实现通过 2 个标签来实现, 所以移动时也同时进行 例如, 对 Label1 向左移动语句为 : Label1.Move Label1.Left - 50 Label2.Move Label2.Left - 50 4

上述用 Move 方法实现移动, 也可利用对属性的改变实现移动, 语句为 : Label1.Left=Label1.Left - 50 (3) Point02.ico 等的图标文件在 Visual Basic 的..graphics\Icons\Arrows 目录下, 读者也可以通过 Windows 的 " 查找 " 功能来找到 图 2.1.4: 实验 1.4 运行界面 实验二 顺序程序设计 一 实验目的 1. 掌握表达式 赋值语句的正确书写规则 2. 掌握常用函数的使用 3. 掌握 InputBox 与 MsgBox 的使用 二 实验内容 1. 编一个华氏温度与摄氏温度之间转换的程序 华氏温度与摄氏温度之间转换的公式是 : ' 摄氏温度转化为华氏温度,F 为华氏 ' 华氏温度转化为摄氏温度,C 为摄氏 要求用按钮实现转换 即单击 " 华氏转 " 按钮, 则将摄氏温度转换为华氏温度 ; 同样, 单击 " 摄氏转 " 按钮, 则将华氏温度转换为摄氏温度 5

提示 : (1)Text 文本框存放的 String 类型, 为了程序正常运行, 应通过 Val() 函数将字符串转换为数值类型 (2) 上述公式中右边的变量 F C 应该是有值的, 该值可通过 Text1 Text2 分别赋值获得 例对文本框 1(Text1) 输入的华氏温度, 要在文本框 2 显示转换后的摄氏温度, 事件过程如下 : 是即 : Private Sub Command1_Click() Dim f!, c! ' 使用变量 f = Val(Text1) 'f 变量有了值 c = 5 / 9 * (f - 32) Text2 = c End Sub 也可以不用 f\c 变量, 直接利用文本框实现, 即 : Private Sub Command1_Click() Text2 = 5 / 9 * (Val(Text1) - 32) ' 不使用变量, 直接使用文本框 End Sub 两者效果相同 对于摄氏温度转化为华氏温度, 请读者自行完成. 2. 输入半径, 计算圆周长和圆面积, 见图 2.2.2 进一步要求, 为了保证程序运行的正确, 对输入的半径要进行合法性检查, 若发现输入的数中有非法数字 ( 调用 IsNumeic 函数 ), 参阅教材例 2.7, 利用 MsgBox 显示出错信息, 通过 SetFocus 方法定位于出错的文本框处, 重新输入 ; 计算结果保留 2 位小数 图 2.2.2: 实验 2.2 运行界面 3. 我国有 13 亿人口, 按人口年增长 0.8% 计算, 多少年后我国人口超过 26 亿 6

提示 : 已知年增长率 r=0.8%, 求人数超过 26 亿的年数 n 公式为 : 其中 :Log(x) 为对数函数. 4. 利用计算机解决古代数学问题 " 鸡兔同笼问题 " 即已知在同一笼子里有总数为 m 只鸡和兔, 鸡和兔的总脚数为 n 只, 求鸡和兔各有多少只? 提示 :m,n 通过 InputBox 函数获得 ; 鸡 兔的只数通过已知 m,n 列出方程可解, 但不要求出荒唐的解 ( 例 3.5 只鸡 4.5 只兔, 或者求得的只数为负数, 也就是对输入的总脚数必须是偶数, 并且脚数应是头数的倍数 ), 若出现荒唐的解, 要求显示有关信息, 并重新输入 5. 窗体上有 2 个命令按钮, 第一个按钮显示 " 文字处理 " 第二个按钮显示 "VB6.0", 要求单击命令按钮, 利用 Shell 函数执行对应的应用程序 提示 : (1)" 文字处理 " 即 Word 软件的可执行文件名为 "WinWord.exe", 可通过 " 开始 " 菜单的 " 查找 " 命令, 找到该文件, 单击鼠标右键在快捷菜单的 " 属性 " 选项中可显示文件的路径, 通过复制 粘贴可将文件路径和文件名取到 Shell 函数中 (2)"VB6.0" 即 Visual Basic6.0 软件的可执行文件可通过 " 开始 " 菜单的 " 程序 " 子菜单项, 然后指向对应的菜单项, 单击鼠标右键在快捷菜单的 " 属性 " 选项中可显示文件标识符, 通过复制 粘贴可将文件标识符取到 Shell 函数中 图 2.2.3: 实验 2.5 运行界面 实验三 顺序程序设计 一 实验目的 1. 掌握表达式 赋值语句的正确书写规则 2. 掌握常用函数的使用 3. 掌握 InputBox 与 MsgBox 的使用 二 实验内容 1. 编一个华氏温度与摄氏温度之间转换的程序, 运行界面如图 2.2.1 所示 7

图 2.2.1: 实验 2.1 运行界面 华氏温度与摄氏温度之间转换的公式是 : ' 摄氏温度转化为华氏温度,F 为华氏 ' 华氏温度转化为摄氏温度,C 为摄氏 要求用按钮实现转换 即单击 " 华氏转 " 按钮, 则将摄氏温度转换为华氏温度 ; 同样, 单击 " 摄氏转 " 按钮, 则将华氏温度转换为摄氏温度 提示 : (1)Text 文本框存放的 String 类型, 为了程序正常运行, 应通过 Val() 函数将字符串转换为数值类型 (2) 上述公式中右边的变量 F C 应该是有值的, 该值可通过 Text1 Text2 分别赋值获得 例对文本框 1(Text1) 输入的华氏温度, 要在文本框 2 显示转换后的摄氏温度, 事件过程如下 : 是即 : Private Sub Command1_Click() Dim f!, c! ' 使用变量 f = Val(Text1) 'f 变量有了值 c = 5 / 9 * (f - 32) Text2 = c End Sub 也可以不用 f\c 变量, 直接利用文本框实现, 即 : Private Sub Command1_Click() Text2 = 5 / 9 * (Val(Text1) - 32) ' 不使用变量, 直接使用文本框 End Sub 两者效果相同 对于摄氏温度转化为华氏温度, 请读者自行完成. 8

2. 输入半径, 计算圆周长和圆面积, 见图 2.2.2 进一步要求, 为了保证程序运行的正确, 对输入的半径要进行合法性检查, 若发现输入的数中有非法数字 ( 调用 IsNumeic 函数 ), 参阅教材例 2.7, 利用 MsgBox 显示出错信息, 通过 SetFocus 方法定位于出错的文本框处, 重新输入 ; 计算结果保留 2 位小数 图 2.2.2: 实验 2.2 运行界面 3. 我国有 13 亿人口, 按人口年增长 0.8% 计算, 多少年后我国人口超过 26 亿 提示 : 已知年增长率 r=0.8%, 求人数超过 26 亿的年数 n 公式为 : 其中 :Log(x) 为对数函数. 4. 利用计算机解决古代数学问题 " 鸡兔同笼问题 " 即已知在同一笼子里有总数为 m 只鸡和兔, 鸡和兔的总脚数为 n 只, 求鸡和兔各有多少只? 提示 :m,n 通过 InputBox 函数获得 ; 鸡 兔的只数通过已知 m,n 列出方程可解, 但不要求出荒唐的解 ( 例 3.5 只鸡 4.5 只兔, 或者求得的只数为负数, 也就是对输入的总脚数必须是偶数, 并且脚数应是头数的倍数 ), 若出现荒唐的解, 要求显示有关信息, 并重新输入 5. 窗体上有 2 个命令按钮, 第一个按钮显示 " 文字处理 " 第二个按钮显示 "VB6.0", 要求单击命令按钮, 利用 Shell 函数执行对应的应用程序 提示 : (1)" 文字处理 " 即 Word 软件的可执行文件名为 "WinWord.exe", 可通过 " 开始 " 菜单的 " 查找 " 命令, 找到该文件, 单击鼠标右键在快捷菜单的 " 属性 " 选项中可显示文件的路径, 通过复制 粘贴可将文件路径和文件名取到 Shell 函数中 (2)"VB6.0" 即 Visual Basic6.0 软件的可执行文件可通过 " 开始 " 菜单的 " 程序 " 子菜单项, 然后指向对应的菜单项, 单击鼠标右键在快捷菜单的 " 属性 " 选项中可显示文件标识符, 通过复制 粘贴可将文件标识符取到 Shell 函数中 9

图 2.2.3: 实验 2.5 运行界面 实验四 循环结构程序设计 一 实验目的 1. 掌握 For 语句的使用 2. 掌握 Do 语句的各种形式的使用 3. 掌握如何控制循环条件, 防止死循环或不循环 二 实验内容 1. 用单循环显示有规律图形, 如图 2.4.1 提示 : (1) 对于特殊字符 " " " " 通过汉字标准输入的软键盘 菜单中的 " 特殊符号 " 命令来实现 (2) 循环体内显示 n 个字符用 String 函数来实现, 例如函数 :String(5, " ") 将产生 " " ; 本例要找出循环控制变量 i 与 String 函数内个数的关系, 即 :String(2*i, " ") (3) 每个 " " 的列宽约为 2, 要显示如图的图形, 必须定好每行的起始位, 本例为 :Tab(20-2*i) 图 2.4.1: 实验 4.1 运行界面图 2.4.2: 实验 4.2 运行界面 2. 用单循环实现如图 2.4.2 提示 : (2) 与实验 4.1 类似, 找出每一行的输出语句的通项表示, 形式为 : " " Print Tab(x); " ";String(y," "); 10

其中 x,y 是要与循环变量与关的表达式, 请你自己解决 3. 编一程序, 计算 100 以内的所有 7 或 5 的倍数和, 并将这些数在文本框每一个为一行显示, 如图 2.4.3 所示 图 2.4.3: 实验 4.3 运行界面 提示 : 要在文本框每行显示一个, 首先设置文本框的 "MultiLine" 属性为 True 和 " ScrollBars" 为非 0; 然后通过每产生的一个数 x 执行如下语句在文本框显示 : Text1=Text1 & x & vbcrlf 其中 :vbcrlf 为回车换行的 VB 符号常数 4. 计算当第 i 项的值 <10-4 时结束 提示 : 找出规律, 第 i 项的分母是前一项的分母加上表示有分母项开始计数 5. 计算的近似值, 的计算公式为 : 提示 : 要防止大数相乘时溢出问题, 将变量类型和常数 2 改为双精度型 ( 即 2#) 6. 编一程序, 显示出所有的水仙花数 所谓水仙花数, 是指一个 3 位数, 其各位数字立方和等于该数字本身 例如,153 是水仙花数, 因为 提示 : 解该题的方法有两种 : (1) 利用三重循环, 将三个个位数连接成一个 3 位数进行判断 例如, 将 i,j,k 三个个位数连成一个三位数的表达式为 : 11

i*100+j*10+k 将 1~9 连接成一个 123456789 的 9 位数, 程序段如下 : s = 0 For i = 1 To 9 s = s * 10 + i Next I (2) 利用单循环将一个 3 位数逐位分离后进行判断 例如, 将 123456789 的一个 9 位数, 从右边开始逐位分离, 程序段如下 : s = 123456789 Do While s > 0 s1 = s Mod 10 s = s \ 10 Print s1; ' 从右边开始显示分离出每一位 Loop 7. 求 Sn=a+aa+aaa+aaa+ aa aaa(n 个 a), 其中 a 是一个由随机数产生的 1~9( 包括 1,9) 中的一个正整数,n 是一个由随机数产生的 5~10( 包括 5,10) 中的一个数 例如 : 当 a=2,n=5 时,Sn=2+22+222+2222+22222 提示 : 为了得到不断重复 a 的 n 位的数 Temp, 可用如下程序段实现 : Temp=0 For i=1 To n Temp=Temp*10+a Next i 8. 参阅教材例 4.18, 用迭代法求, 求立方根的迭代公式为 : 假定 x 的初值为 a, 迭代到为止 迭代的流程图见图 2.4.4 显示 a=3 27 的值, 并通过求 a^(1/3) 的表达式加以验证 12

图 2.4.4: 迭代法求根流程图 实验五 数组 一 实验目的 1. 掌握数组的声明 数组元素的引用 2. 掌握静态数组和动态数组的使用差别 3. 应用数组解决与数组有关的常用算法 二 实验内容 1. 随机产生 10 个 30~100( 包括 30,100) 的正整数, 求最大值 最小值 平均值, 并显示整个数组的值和结果, 如图 2.5.1 所示 图 2.5.1: 实验 5.1 运行界面 2. 随机产生 20 个学生的计算机课程的成绩, 统计各分数段人数 即 0~59 60~69 70~79 80~89 90~100, 并显示结果 产生的数据在窗体显示, 统计结果在图形框显示, 见图 2.5.2 13

图 2.5.2: 实验 5.2 运行界面 提示 : 声明一个数组 mark(1 to 20), 存放 20 个学生的成绩 ; 声明一个数组 s(5 to 9), 分别存放分数段的人数, 并且确定分数与 s 数组的下标关系, 即 : k=mark (i)\ 10 ' i=1 To 20 Select Case k Case 0 To 5 ' 不及格的人数 s(5)=s(5)+1 Case 9 To 10 ' >=90 分的人数 s(9)=s(9)+1 Case 6 To 8 ' 其他三个分数段的人数 s(k)=s(k)+1 End Select 3. 随机产生 15 个不重复的 A~Z 包括 A,Z 的大写字母, 存放在字符数组中 提示 : (1) 要产生 A~Z 的字母, 可通过调用函数 Chr Int Rnd 及找出字母对应的 AscII 码值的关系获得, 即 c=chr(int(rnd*26+65)) (2) 要产生不重复的字母, 每产生一个, 在数组中查找已产生的字母 若找到, 刚产生的字母作废, 重新产生 ; 找不到, 则产生的字母放入数组中, 下标加 1 假定刚产生的字母存放在 c 字符变量中, 已产生的 n 个不重复的字母存放在 s 字符数组中, 则产生不重复的有关程序段如下 : Dim s(1 to 15) As String * 1, c As String * 1, Found As Boolean s(1)=chr(int(rnd*26+65)) n=2 do while n<=15 c=chr(int(rnd*26+65)) Found = False For j = 1 To n - 1 14

If s(j) = c Then Found = True Next j If Not fount Then ' 没有找到, 产生的字母非重复, 存放到数组中 s(n) = c n = n + 1 End If Loop 4. 实行学分制, 学生的平均绩点是衡量学生学习的重要依据 成绩等级与绩点的关系见表 2.5.1 所示 等级 绩点 表 2.5.1: 成绩等级与绩点的关系 100~ 89~ 79~ 90 80 70 69~ 60 60 以下 4 3 2 1 0 编一程序利用两个一维数组分别输入某学生的 5 门课程的学分 对应成绩, 计算其平均绩点 例如, 某学生的 5 门课程的学分 成绩分别如表 2.5.2, 求该学生的平均绩点, 程序运行结果见图 2.5.3 表 2.5.2: 各课程学分与成绩学分 3 2 3 4 1 成绩 78 98 83 68 90 图 2.5.3: 实验 5.4 运行界面 5. 随机产生 10 个数 2 位数, 按从递增的次序排列, 并将排序结果存放在文本框的控件数组中 提示 : (1) 本程序有两个事件过程, 都要用到存放 10 个数据的数组, 因此在通用声明段声明一个数组, 例 :Dim a%(0 to 9) (2) 在 " 产生 " 命令按钮的 Command1 事件过程中随机产生 10 个数, 存放在数组 a, 并在窗体显示 (3) 在 " 排序 " 命令按钮的 Command2 事件过程中, 对 a 数组排序, 并将排序的结果存放在文本框 Text1() 控件数组中, 见图 2.5.5 15

(4) 对 Text1 控件数组的建立, 首先在设计时建立一个 Text1 控件, 其 "Index" 属性为 0, 表示是控件数组, 见图图 2.5.4; 在排序后通过如下语句建立其余控件数组元素, 并显示 : Text1(0) = a(0) For i = 1 To 9 Load Text1(i) ' 产生一个控件数组元素 Text1(i) = a(i) ' 将排好序的对应数组元素放入控件数组元素 Text1(i).Left = Text1(i - 1).Left + Text1(i).Width + 10 ' 控件数组元素定位 Text1(i).Visible = True ' 控件数组元素显示 Next i 图 2.5.4: 实验 5.5 设计界面图 2.5.5: 实验 5.5 运行界面 6. 完成本使用所配套的教材的第五章第 3 题, 上机验证, 见图 2.5.6 本题由 6 个命令按钮的事件过程构成, 在 4 个图形框显示 ; 为了多个事件过程访问 A B 矩阵, 这两个矩阵应在通用声明段声明 要求 : (1) 利用随机数生成两个矩阵 ( 前者 30~70 范围 后者 101~135) (2) 将两个矩阵相加结果放入 C 矩阵中 (3) 将 A 矩阵转置, 即行 列交换 (4) 统计 A 矩阵中最大值和下标 (5) 以下三角形式显示 A 矩阵 上三角形式显示 B 矩阵 (6) 求 A 矩阵两条对角线元素之和 16

(a) 产生 A B 矩阵 (a) A+B 矩阵相加 (c) A 矩阵转置 (d) A 矩阵中最大值和下标 (e) A 下三角形式 B 上三角形式 (f) A 矩阵两条对角线元素之和图 2.5.6: 实验 5.6 运行界面 7. 输入整数 n, 显示出具有 n 行的杨辉三角形 一个具有 8 行的杨辉三角形运行结果如图 2.5.7(a) 所示 若要显示如图 2.5.7(b) 所示的效果, 原程序要作如何微小的改动? 提示 : 解决此题的方法有以下要点 : (1) 定义一个二维数组如图 2.5.7(a), 其中上三角各元素均为 0, 对下三角各元素进行设置 : 第一列及对角线上均为 1, 其余每一个元素正好等于它上面一行的同一列和前一列的两个元素之和, 即 a(i,j)=a(i-1,j-1)+a(i-1,j) (2) 利用 TAB 函数定每行显示的起始位, 利用两重循环显示上三角各元素 (3) 为了便于控制, 显示的内容在图形框 (PictureBox) 17

(a) (b) 图 2.5.7: 实验 5.7 杨辉三角形运行界面 8. 自定义一个职工类型, 包含职工号 姓名 工资 在通用声明段声明一个职工类型的静态数组, 可存放 5 个职工 ; 窗体中设计 3 个文本框 2 个命令按钮和 1 个图形框控件, 文本框分别输入职工号 姓名 工资 ; 当单击 " 添加 " 命令按钮, 将文本框输入的内容添加到数组的当前元素中 ; 当单击 " 排序 " 命令按钮, 将输入的内容按工资递减的顺序排序, 并在图形框显示 程序运行界面见图 2.5.8 提示 : (1) 自定义一个职工类型只能在标准模块内定义, 若在窗体通用声明段定义, 必须为 Private (2) 为了保存当前输入职工元素的个数, 该变量应在通用声明段声明, 若在事件过程中声明, 每次运行将被初始化为 0 图 2.5.8: 实验 5.8 运行界面 实验六 过程 一 实验目的 1. 掌握自定义函数过程和子过程的定义和调用方法 2. 掌握形参和实参的对应关系 3. 掌握值传递和地址传递的传递方式 4. 掌握变量 函数和过程的作用域 5. 掌握递归概念和使用方法 6. 熟悉程序设计中的常用算法 18

二 实验内容 1. 编一子过程 ProcMin(a(),mina), 求一维数组 a 中的最小值 mina 主调程序随机产生 10 个 -300~-400 之间的数, 显示产生的数组中各元素 ; 调用 ProcMin 子过程, 显示出数组中的最小值 2. 参见本实验所对应的教材中的例 4.12, 编一求两数 m,n 最大公约数的函数过 f(m,n); 主调程序在两个文本框输入数据, 在图形框显示结果, 见图 2.6.1 图 2.6.1: 实验 6.2 运行界面 提示 : 为了在 Text3 文本框每行一组 并整齐地显示结果, 利用格式函数来实现, 如下表示 : Text3 = Text3 & Format(Text1, "@@@@@") & Format(Text2, "@@@@") _ & Format(y, "@@@@") & vbcrlf 其中 : y 为求得的公约数 ;"@@@@@" 表示输出占 5 列, 显示数据小于 5, 左边补空 ; vbcrlf 为回车换行的常数符号 ; 注意 : 为了在文本框显示多行, 文本框的 MultiLine 属性必须设置为 True 3. 编一个函数过程 Mysin(x), 求 Mysin(x)= 当第 n 项的精度小于 10-5 时结束,x 为弧度 ; 主调程序同时调用 Mysin 和内部函数 sin, 进行验证 提示 : 关键是找部分级数和的通项, 如下表示 : i=1,3,5,7 4. 参照实验 4.8, 用迭代法求 X=, 求立方根的迭代公式为 : 19

假定 x 的初值为 a, 迭代到 xi+1-xi < 为止 a 的值为 1~10, 并显示结果 ; 同时, 利用运算符 "^" 检验函数过程的正确性, 保留 5 位小数, 效果见图 2.6.2 图 2.6.2: 实验 6.4 运行界面 5. 编一子过程 MaxLength(s,MaxWord), 在已知的字符串 s 中, 找出最长的单词 MaxWord 假定字符串 s 内只含有字母和空格, 空格分隔不同的单词 程序运行界面如图 2.6.3 所示 算法思想 : (1) 首先利用 InStr 函数从 S 中从左开始找第一个出现的空格, 利用 Left 函数分离出空格左边的单词, 与最长单词比较 ; i=instr(s," ") ' 找第一个出现的空格 Word=Left(s,i-1) ' 分离出空格左边的单词 (2) 取 S 中剩余字符串, 重复 (1), 直到 S 为空 s=mid(s,i+1) ' 取 S 中剩余字符串 图 2.6.3: 实验 6.5 运行界面 6. 编一函数过程 IsH(n), 对于已知正整数 n, 判断该数是否是回文数, 函数的返回值类型为布尔型 主调程序每输入一个数, 调用 IsH 函数过程, 然后在图形框显示输入的数, 对于是回文数显示一个 " ", 见图 2.6.4 20

图 2.6.4: 实验 6.4 回文数程序运行界面 提示 : (1) 所谓回文数是指顺读与倒读数字相同, 即指最高位与最低位相同, 次高位与次低位相同, 依次类推 当只有一位数时, 也认为是回文数 (2) 回文数的求法, 只要对输入的数 ( 按字符串类型处理 ), 利用 MID 函数从两边往中间比较, 若不相同, 就不是回文数 *7 用递归方法, 编写求的函数 对于有如下递归形式 : 递归条件 : *8 用递归法编函数过程 f2(x0,a), 求 X=, 求立方根的迭代公式为 : 精度为 主调程序分别调用函数过程,a 的值为 1~10, 并显示结果 ; 同时, 利用运算符 "^" 检验函数过程的正确性 提示 : 递归法求根时, 形参要有两个,x0 为每次递归调用时的初值, 假定 x0 的初值为 a 21

实验七 常用控件 一 实验目的 1. 掌握常用控件的重要属性 事件和方法 2. 初步掌握利用控件创建基于图形用户界面的应用程序的技术 3. 熟练掌握键盘事件 鼠标事件及其事件过程的编写 二 实验内容 1. 设计如图 2.7.1 所示的计算程序 图 2.7.1: 实验 7.1 单选按钮 复选框和框架应用示例 2. 设计一个如图 2.7.2 所示的应用程序 它能利用 LostFocus 事件过程对输入的内存大小进行合法性检查, 确保最后两个字符是 "MB", 其余的都是数字字符 当用户单击 "Ok" 按钮后, 在右边的文本框中显示所选择的信息 图 2.7.2: 实验 7.2 计算机配置选择界面 3. 编写一个如图 2.7.3 所示的程序 用户能从 " 饭店菜单 " 把选定的 " 菜 " 添加到下面的列表框中 要求 :" 饭店菜单 " 列表框支持多项选择 22

图 2.7.3: 实验 7.3" 点菜 " 程序 提示 : 假定 " 饭店菜单 " 和 " 我点的菜 " 列表框的名称分别为 List1 和 List2 因为需要在 List1 中能够进行多项选择, 所以 MultiSelect 属性应设为 1 或 2, 而且在 " 添加 " 事件过程中不能简单地用 List2.AddItem List1.Text 语句添加项目 应编写如下的程序 : Sub Command1_Click() For I = 0 To List1.ListCount-1 23