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

Similar documents
FJXBQ





Microsoft Word - 实验3.doc




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

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

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

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

Microsoft Word - VB全文.doc

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

VB程序设计教程

Visual Basic D 3D

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

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

Microsoft PowerPoint - OPVB1基本VB.ppt

Microsoft Word - 正文.doc

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

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

TC35短信发送程序设计

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

穨文件1

四川省普通高等学校

PowerPoint Presentation

2


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


<4D F736F F D D342DA57CA7DEA447B14D2DA475B57BBB50BADEB27AC3FEB14DA447B8D5C344>

untitled

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

!"# $ %&'!"#$

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

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

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

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

Microsoft Word - FM{new}.doc

Microsoft Word - 第3章.doc

untitled

图书在版编目渊 CIP 冤数据速成财富课院成就富翁的圆缘条法则 / 石向前著援北京院蓝天出版社袁 2005 援员园 ISBN 愿怨 -1 玉援速... 域援石... 芋援商业经营要通俗读物郁援 F71 缘原源怨中国版本图书馆 CIP 数据核字渊 2005 冤第 0 愿怨猿猿员号

《Visual Basic程序设计》实验课

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

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

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

<4D F736F F D20B8C4B0E6CABDD0C25642D6B8B5BCC8ABCEC42E646F63>

Microsoft PowerPoint - VB14.ppt

Microsoft Word - 新1-12.doc

PowerPoint 演示文稿

2

<C8EBC3C5C6AAA3A8B5DA31D5C2A3A92E696E6464>

2

!"#$ %&' '!"#$!" #$ % %& ' %( ' )* #+,-.

VB控件教程大全

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

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

Excel VBA Excel Visual Basic for Application


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

Microsoft Word - fy.doc

<4D F736F F F696E74202D BDE1B9B9BBAFB3CCD0F2C9E8BCC D20D1ADBBB7>

第5章修改稿

untitled

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

Microsoft PowerPoint - VB5

吳元康

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

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

2007年4月全国计算机二级考试VB语言笔试真题

download.kaoyan.com_2006ÄêÌì½ò¹¤Òµ´óѧ¸ß¼¶ÓïÑÔ³ÌÐòÉè¼Æ£¨409£©¿¼ÑÐÊÔÌâ

5. 要在窗体上显示 " 欢迎您! ", 使用的语句是 ( ) A.Form.caption=" 欢迎您! " C. Form1. print" 欢迎合! " B. Forml. caption= " 欢迎您!" D.Form.print " 欢迎您!" 6. 关于语句行, 下列说法正确的是 ( A

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

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

投稿類別:電子工程類

untitled

科学计算的语言-FORTRAN95

Microsoft Word - FM_new_.doc

TwinCAT 1. TwinCAT TwinCAT PLC PLC IEC TwinCAT TwinCAT Masc

ThreeDtunnel.doc

Microsoft PowerPoint - VB3

Microsoft Word - 新1-16最新.doc

MVB-1001.DOC

Microsoft Word - 第3章.doc

C/C++ - 文件IO

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

Converting image (bmp/jpg) file into binary format



05 CHAPTER Information.IsNumeric ( ) Information.IsDate ( ) True False Date Date True False Y Y Information.IsArray ( ) True False Y Information.IsErr

C/C++程序设计 - 字符串与格式化输入/输出

Microsoft Word - 实验3.doc

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

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


Generated by Unregistered Batch DOC TO PDF Converter , please register! 浙江大学 C 程序设计及实验 试题卷 学年春季学期考试时间 : 2003 年 6 月 20 日上午 8:3

SMM667.mps

《C语言程序设计》

Transcription:

普通高等教育 十二五 重点规划教材 计算机系列 中国科学院教材建设专家委员会 十二五 规划教材 VisualBasic 程序设计实验指导与习题解答 段昌敏主编 涂祥副主编 科学出版社职教技术出版中心 www.aboo 北 京

内容简介 本书是根据教育部高等学校计算机科学与技术教学指导委员会关于 计算机程序设计基础课程教学基本要求 编写而成的, 是与 VisualBasic 程序设计 ( 段昌敏主编, 科学出版社 ) 配套的实训教材 为配合主教材的章节顺序和知识点, 本书的第一部分包含 13 个配套实验, 实验内容具有很强的代表性, 能够体现出所在章节的重点和难点 ; 第二部分根据大量教学实例并结合历年 全国计算机等级考试 试题以及模拟试题, 精心挑选和编辑了练习题, 题目涵盖各种典型操作和算法, 实训性强 综合性强 代表性强 ; 第三部分是参考答案, 包含本书第二部分习题的参考答案和 VisualBasic 程序设计 课后习题的参考答案 本书可作为高等院校非计算机专业 VisualBasic 程序设计 课程的实验教材, 也可供相关工程技术人员和计算机爱好者学习使用 图书在版编目 (CIP) 数据 VisualBasic 程序设计实验指导与习题解答 / 段昌敏主编. 北京 : 科学出版社,2012 ( 普通高等教育 十二五 重点规划教材 计算机系列中国科学院教材建设专家委员会 十二五 规划教材 ) ISBN978-7-03-036306-0 Ⅰ.1V Ⅱ.1 段 Ⅲ.1BASIC 语言 - 程序设计 - 高等学校 - 教学参考资料 Ⅳ.1TP312 中国版本图书馆 CIP 数据核字 (2012) 第 309155 号 责任编辑 : 戴薇刘文军 / 责任校对 : 刘玉靖加工编辑 : 张静 / 版式设计 : 科地亚盟责任印制 : 吕春珉 / 封面设计 : 科地亚盟 印刷科学出版社发行各地新华书店经销 * 2013 年 7 月第一版开本 :787 1092 1/16 2013 年 7 月第一次印刷印张 :113/4 字数 :267000 定价 :23.00 元 ( 如有印装质量问题, 我社负责调换 < >) 销售部电话 010-62134988 编辑部电话 010-62135763-2003 版权所有, 侵权必究举报电话 :010-64030229;010-64034315;13501151303

教育部高等学校计算机科学与技术教学指导委员会在提出高等学校 3 个层次的计算 机课程体系结构 ( 计算机文化基础 计算机技术基础 计算机应用基础 ) 的基础上, 又提出了 计算机模块化 的教育体系 对于非计算机专业的学生来说, 学习高级语言程 序设计, 掌握一门面向对象的程序设计方法是非常必要的 学习和掌握计算机程序设计的最重要的一个环节就是实践, 理论课程的学习必须通 过上机实训以检测和验证程序设计的准确性和差错率 只有这样, 才能够加深理解程序 设计的精髓和思想, 才能够把 VisualBasic 程序设计学习好 全书分为 3 部分, 第一部分根据 VisualBasic 程序设计 编写了相关的 13 个实验 每一个实验都包括实验目的 实验内容, 进行了科学的安排, 紧扣教材的内容, 并体现出相 关内容的重点和难点, 从而达到实训的目的 实验内容包括 VisualBasic6.0 环境和程序 设计 VisualBasic 简单程序设计 顺序结构 / 选择结构程序设计 循环结构程序设计 数组 的定义 数组的高级应用 子过程和函数的定义 参数传递 过程与变量的作用域 常用内 部控件的使用 图形的制作 界面设计以及文件管理等 有些实验配有思考题, 大多数是 以本实验为核心, 进行思维拓展的训练 第二部分是编者根据多年来的教学实例, 并结合历年 全国计算机等级考试二级 VisualBasic 语言程序设计 试题以及模拟试题, 精心挑选和编写而成的练习题, 题目包含 各种典型操作和算法, 实训性强 综合性强 代表性强 第三部分是参考答案, 包含本书第二部分习题的参考答案和 VisualBasic 程序设计 课后习题的参考答案 本书由段昌敏策划 统稿并担任主编, 由涂祥担任副主编 科学出版社职教技术出版中心 www.aboo 由于编者水平有限, 书中难免存在不足或者疏漏之处, 恳请读者批评指正! 段昌敏 2012 年 10 月

前言 第一部分实验指导 1 实验 1 集成开发环境和程序设计入门 2 实验 2 简单程序设计 4 实验 3 顺序结构 - 选择结构程序设计 9 实验 4 循环结构程序设计 ( 一 ) 12 实验 5 循环结构程序设计 ( 二 ) 16 实验 6 数组的定义 19 实验 7 数组的高级应用 26 实验 8 子过程和函数的定义 28 实验 9 参数传递 过程与变量的作用域 32 实验 10 常用内部控件的使用 37 实验 11 图形的制作 42 实验 12 界面设计 46 实验 13 文件管理 52 第二部分习题训练 57 第 1 章 VisualBasic 概述 58 第 2 章面向对象程序设计基础 61 第 3 章 VisualBasic 程序设计基础 64 第 4 章 VisualBasic 控制结构 72 第 5 章数组及应用 84 第 6 章过程 97 第 7 章常用控件及对象 117 第 8 章图形操作 136 第 9 章可视化界面程序设计 138 第 10 章文件 140 第 11 章 VisualBasic 与数据库 145 第三部分参考答案 148 习题参考答案 149 VisualBasic 程序设计 课后习题参考答案 155 参考文献 181

第一部分 实验指导 科学出版社职教技术出版中心 www.aboo

2 实验 1 集成开发环境和程序设计入门 一 实验目的 1) 掌握 VisualBasic6.0 启动和退出的方法 2) 熟悉 VisualBasic6.0 的集成开发环境 3) 掌握 VisualBasic6.0 程序设计的基本步骤 4) 掌握基本控件 ( 窗体 标签 命令按钮和文本框 ) 的基本使用方法 二 实验内容 实验 1-1 认识 VisualBasic6.0 集成开发环境启动 VisualBasic6.0, 创建一个 标准 EXE 工程 了解 VisualBasic6.0 集成开发环境下各组成部分及其作用 1) 在 VisualBasic6.0 集成开发环境中分别寻找 对象 窗口 属性 窗口 工程资源管理器 窗体布局 窗口 工具箱 窗口, 熟悉它们的默认位置 2) 通过在 视图 菜单或工程资源管理器中切换显示代码窗口和 窗体 窗口 3) 在 视图 菜单中选择 立即窗口 命令, 观察刚刚显示的 立即 窗口 4) 分别将各部分关闭, 然后在 视图 菜单中选择对应的命令将其显示 实验 1-2 简单的程序设计编写一个简单的应用程序 要求窗体的标题为 简单 VB 实验, 窗体中有一个标题为 显示 的按钮, 单击该按钮后在窗体上显示红色文字 湖北民族学院 1. 界面设计在窗体中创建 1 个命令按钮 1 个标签, 如图 1-1 所示 图 1-1 实验 1-2 窗体界面设计 2. 属性设置 窗体中各个对象的属性按照表 1-1 进行设置

第一部分实验指导 3 表 1-1 属性设置 3. 程序代码 对象名称属性名称属性值 Form1 Caption 简单 VB 实验 Label1 ForeColor 红色 Command1 Caption 显示 Private Command1_Click( ) Label1.Caption=" 湖北民族学院 " 4. 运行程序 运行程序后, 单击 显示 命令按钮, 结果 如图 1-2 所示 5. 存盘 以 学号 +VB1 为文件名对工程和窗体 进行存盘 思考 : 为什么以上两种方法中在颜色的设置上有所不同? 通过编程修改控件的属性 1. 界面设计 实验 1-3 控件属性应用 图 1-2 实验 1-2 程序运行结果 在窗体中创建 1 个标签 1 个命令按钮 初始设计界面如图 1-3 所示 2. 属性设置 图 1-3 实验 1-3 窗体界面设计 窗体中各个对象的属性按照表 1-2 进行设置 科学出版社职教技术出版中心 www.aboo 表 1-2 属性设置 对象名称 属性名称 属性值 Form1 Caption 设计界面 Label1 Caption 欢迎使用 VB6.0 Command1 Caption 单击此处

4 3. 程序代码 Private Command1_Click( ) Form1.Caption=" 编程后界面 " Label1.Caption=" 第一个 VB 程序 " Command1.Caption=" 运行结果 " 图 1-4 实验 1-3 程序运行结果 运行程序后, 单击 单击此处 命令按钮, 结果如图 1-4 所示 4. 存盘以 学号 +VB2 为文件名对工程和窗体进行存盘 提示 : 可以通过以下两种方法设置对象的属性 1) 在设计模式下, 通过属性窗口对该属 性进行修改或设置 2) 在运行模式下, 通过程序语句动态地更改对象的属性 修改对象属性的语句格式如下 对象名. 属性名称 = 新设置属性值 实验 2 简单程序设计 一 实验目的 1) 掌握常量和变量 表达式的基本概念和正确书写格式 2) 掌握赋值语句和常用函数的正确使用方法 3) 掌握输入 输出对话框 (InputBox 和 MsgBox) 的基本使用方法 二 实验内容 实验 2-1 随机数的应用编写程序, 使得单击一次按钮可以产生一个 [60,90] 之间的随机数并显示在标签 Label1 上, 并求出该数的正弦值, 将结果写在标签 Label2 上 1. 界面设计在窗体中创建 1 个命令按钮 2 个标签 2. 属性设置窗体中各个对象的属性按照表 2-1 进行设置

第一部分实验指导 5 表 2-1 属性设置 对象名称 属性名称 属性值 Form1 Caption 随机数的正弦值 Command1 Caption 下一个随机数 Label1 Caption Label2 Caption 3. 程序代码 Private Command1_Click( ) Dim x!, y! Randomize x=rnd*31+60 y=sin(x) Label1.Caption=" 随机数 (60-90):" & Str(x) Label2.Caption= " 正弦值 :" & Str(y) 4. 运行程序 运行程序, 结果如图 2-1 所示 5. 存盘 图 2-1 实验 2-1 程序运行界面 以 学号 + 随机数 为文件名对工程和窗体进行存盘 思考 : 怎样产生一个 [60,90] 之间的随机数? 实验 2-2 温度转换 编写一个华氏温度 (F) 与摄氏温度 (C) 之间转换的应用程序, 其中 F 与 C 之间的关系 为 F=9/5C+32 1. 界面设计 在窗体中创建 2 个命令按钮 2 个标签 2 个文本框 科学出版社职教技术出版中心 www.aboo

6 2. 属性设置 窗体中各个对象的属性按照表 2-2 进行设置 表 2-2 属性设置 对象名称 属性名称 属性值 Form1 Caption 温度转换 Command1 Caption Command2 Caption Label1 Caption 华氏温度 Label2 Caption 摄氏温度 Text1 Text2 Text Text 3. 程序代码 Private Command1_Click( ) Dim f!, c! f=val(text1.text) c=(f-32)*5/9 Text2=Str(c) Private Command2_Click( ) Dim f!, c! c=val(text2.text) f=9 / 5*c+32 Text1 = Str(f) 4. 运行程序运行程序, 结果如图 2-2 所示 图 2-2 实验 2-2 程序运行界面 5. 存盘以 学号 + 温度 为文件名对工程和窗体进行存盘 实验 2-3 圆的计算求圆的面积及圆柱体的体积

第一部分实验指导 7 1. 界面设计在窗体中创建 2 个命令按钮 4 个标签和 4 个文本框 2. 属性设置窗体中各个对象的属性按照表 2-3 进行设置 表 2-3 属性设置 对象名称 属性名称 属性值 Command1 Caption 求圆的面积 Command2 Caption 求圆柱的体积 Label1 Caption 圆的半径 Label2 Caption 圆柱的高 Label3 Caption 圆的面积 Label4 Caption 圆柱的体积 Text1 Text2 Text3 Text4 Text 3. 程序代码 Private Command1_Click( ) Dim r As Single, s As Single r=val(text1.text) s=3.14159*r*r Text3.Text=Str(s) Private Command2_Click( ) Dim r!, h!, v! r=val(text1.text) h=val(text2) v=3.14159*r*r*h Text4=v 4. 运行程序运行程序, 结果如图 2-3 所示 科学出版社职教技术出版中心 www.aboo 图 2-3 实验 2-3 程序运行界面

8 5. 存盘以 学号 + 圆 为文件名对工程和窗体进行存盘 实验 2-4 收费系统编写一个简单的网吧收费系统 根据不同的上机时间 x, 上机费用 y 可以按以下公式计算收费 : ì2x x<3 ï ï2 0.9x 3 x<5 y= í ï2 0.8x 5 x<10 ï î2 0.75x 10 x 1. 界面设计在窗体中创建 1 个命令按钮 2 个标签和 2 个文本框 2. 属性设置窗体中各个对象的属性按照表 2-4 进行设置 表 2-4 属性设置 对象名称 属性名称 属性值 Command1 Caption 计费 Label1 Caption 上机时间 Label2 Caption 上机费用 Text1 Text2 Text 3. 程序代码 Private Command1_Click( ) Dim x!, y! x=val(text1) IF x<3 Then y=2*x ElseIF x<5 Then y=2*0.9*x ElseIF x<10 Then y=2*0.8*x Else y=2*0.75*x IF Text2=Str(y) 4. 运行程序 运行程序, 结果如图 2-4 所示

第一部分实验指导 9 图 2-4 程序界面 5. 存盘 以 学号 + 收费系统 为文件名对工程和窗体进行存盘 实验 3 顺序结构 - 选择结构程序设计 一 实验目的 1) 掌握顺序结构程序设计的一般方法 2) 掌握选择结构程序设计的一般方法 3) 掌握赋值语句的使用 二 实验内容 输入一个圆的半径, 计算它的面积 1. 界面设计 实验 3-1 顺序结构的应用 在窗体中创建 3 个标签 1 个文本框和 1 个命令按钮 初始界面如图 3-1 所示 科学出版社职教技术出版中心 www.aboo 图 3-1 实验 3-1 窗体界面设计 2. 属性设置 窗体中各个对象的属性按照表 3-1 进行设置

10 表 3-1 属性设置 对象 属性 属性值 Label1 Caption 请输入半径 r: Label2 Caption 圆的面积 S 为 : Label3 Caption BorderStyle 1-FixedSingle Text1 Text Command1 Caption 计算圆的面积 3. 程序代码 Private Command1_Click( ) Dim r As Single, area As Single r=text1.text area=3.14*r*r Label3.Caption=area 4. 运行程序 运行程序后, 在文本框中输入圆的半径, 然后单击 计算圆的面积 按钮, 即可在标签中 输出圆的面积 程序运行结果如图 3-2 所示 5. 存盘 以 学号 + 面积 为文件名对工程和窗体 进行存盘 思考 : 1) 如何将求出的面积值在新建的文本框 中显示? 2) 如果给定另一个参数 高, 则应在 窗体中应如何设计对象? 如何求出对应参数 图 3-2 实验 3-1 程序运行结果 的圆锥体的体积? 实验 3-2 选择结构的应用 税务部门征收个人所得税, 规定如下 1) 个人收入 3000 元, 免税 2)3000 元 < 个人收入 5000 元, 按 2% 纳税 3) 个人收入 >5000 元,5000 元按 2% 纳税, 超过 5000 元的部分按 5% 纳税 编程实现上述操作 1. 界面设计在窗体中创建 1 个标签 1 个文本框和 2 个命令按钮 初始界面如图 3-3 所示 图 3-3 实验 3-2 窗体界面设计

第一部分实验指导 11 2. 属性设置 窗体中各个对象的属性按照表 3-2 进行设置 表 3-2 属性设置 对象 属性 属性值 Label1 Caption 请输入个人收入 : Text1 Text Command1 Caption 计算个税 Command2 Caption 退 出 3. 程序代码 方法一 : Private Command1_Click( ) Dim m As Single,Dim r As Single m=inputbox( " 输入金额 " ) IF m<=3000 Then r=0 ElseIF m<=5000 Then r=m*0.02 Else r=5000*0.02+( m-5000 )*0.05 IF Print " 应缴纳个人所得税 :" ; r ; " 元 " Private Command2_Click( ) 方法二 : Private Command1_Click( ) Dim m As Single, Dim r As Single m=inputbox( " 输入金额 " ) Select Case money Case Is <=3000 r=0 Case Is>5000 r=5000*0.02+(money-5000)*0.05 Case Else r=m*0.02 Select Print " 应缴纳个人所得税 :" ; r ; " 元 " 科学出版社职教技术出版中心 www.aboo

12 Private Command2_Click( ) 4. 运行程序 运行程序后, 在文本框中输入个人收入, 然后单击 计算个税 命令按钮, 就会在标签 中输出应该缴纳的个人所得税 程序运行结果如图 3-4 所示 图 3-4 实验 3-2 程序运行结果 实验 4 循环结构程序设计 ( 一 ) 一 实验目的 1) 掌握循环结构的书写格式 2) 掌握 For Next 循环结构程序设计方法 3) 掌握 Do While 循环结构程序设计方法 4) 掌握循环的控制, 防止无限循环 二 实验内容 实验 4-1 For Next 循环结构基本应用求 1~100 间所有奇数之和 1. 界面设计在窗体中创建 1 个标签 1 个文本框和 1 个命令按钮 初始界面如图 4-1 所示 图 4-1 实验 4-1 窗体界面设计

第一部分实验指导 13 2. 属性设置 窗体中各个对象的属性按照表 4-1 进行设置 表 4-1 属性设置 对象 属性 属性值 Label1 Caption 1~100 间所有奇数之和 : Text1 Text Command1 Caption 计 算 3. 程序代码 Private Command1_Click( ) For i=1 To 100 Step 2 s=s+i Next i Text1.Text=s 4. 运行程序 运行程序, 单击 计算 命令按钮, 将在文本框中输出相应的结果, 如图 4-2 所示 5. 存盘 图 4-2 实验 4-1 程序运行结果 以 学号 + 奇数和 为文件名对工程和窗体进行存盘 思考 : 1) 在步长为默认值的情况下, 如何求出正确结果? 2) 如何求 1~100 间所有偶数之和? 实验 4-2 For Next 循环结构高级应用 科学出版社职教技术出版中心 www.aboo 编程计算 S=1+22+333+4444+ +n n, 其中 n 9 1. 界面设计在窗体中创建 1 个标签 1 个文本框和 1 个命令按钮 初始界面如图 4-3 所示 2. 属性设置窗体中各个对象的属性按照表 4-2 进行设置

14 图 4-3 实验 4-2 窗体界面设计 表 4-2 属性设置 对象 属性 属性值 Label1 Caption 1+22+333+4444+ +n n=: Text1 Text Command1 Caption 计 算 3. 程序代码 Private Command1_Click( ) Dim s As Long, t As Long s= 1 For n=1 to 9 t=0 For i = 1 to n t=t*10+n Next i s=s+t Next n Text1.Text=s 4. 运行程序 运行程序, 单击 计算 命令按钮, 将在文本框中输出相应的结果, 如图 4-4 所示 图 4-4 实验 4-2 程序运行结果 5. 存盘 以 学号 + 数列和 为文件名对工程和窗体进行存盘

第一部分实验指导 15 实验 4-3 Do While 循环结构应用 编程实现 : 目前世界人口约为 65 亿, 如果以每年 1.358% 的速度增长, 那么多少年后 世界人口达到或超过 80 亿? 1. 程序代码 Private Form_Click( ) Dim p As Double Dim r As Single p=6500000000# r=0.01358 n=0 Do While p<8000000000# p=p*( 1+r ) n=n+1 Loop Debug.Print n ; " 年后," ; " 世界人口达 " ; p 运行程序后, 单击窗体, 在 立即 窗口输出结果为 : 16 年后, 世界人口达 8065696496.49987 2. 存盘 以 学号 + 人口 为文件名对工程和窗体进行存盘 实验 4-4 Exit 的应用 编程求自然数的和, 当和超过 50000 时结束计算, 输出总和 所加的最后一个数以及 循环次数 程序代码如下 Private Form_Click( ) Dim s As Long For i =1 To 100000 n=n+1 s=s+i IF s>50000 Then Exit IF For Debug.Print " 所加总和为 :s=" ; s Debug.Print " 所加的最后一个数为 : " ; i Debug.Print " 循环次数为 : " ; n Next i 运行程序后, 单击窗体, 在 立即 窗口输出结果为 : 科学出版社职教技术出版中心 www.aboo

16 所加总和为 :s= 50086 所加的最后一个数为 : 316 循环次数为 : 316 实验 5 循环结构程序设计 ( 二 ) 一 实验目的 1) 在循环结构中使用各种函数 2) 掌握循环结构的嵌套应用 二 实验内容 实验 5-1 求完数求 1~1000 之间的所有完数和 所谓完数是指能被该数整除的所有数 ( 不包括该数本身 ) 的和正好等于该数, 如 28=1+2+4+7+14,28 即是完数 1. 界面设计在窗体中创建 2 个标签 2 个文本框和 2 个命令按钮 初始界面如图 5-1 所示 图 5-1 实验 5-1 窗体界面设计 2. 属性设置 窗体中各个对象的属性按照表 5-1 进行设置 表 5-1 属性设置 对象 属性 属性值 Label1 Caption 所有的完数和为 : Label2 Caption 各个完数分别为 : Text1 Text Text2 Text Command1 Caption 计 算 Command1 Caption 退 出 3. 程序代码 Private Command1_Click( )

第一部分实验指导 17 For i=1 To 1000 s=0 For j=1 To i/2 IF I Mod j=0 Then Next s=s+j j IF IF i=s Then Next Text1.Text=Text1.Text+" " +Str( s ) s1=s1+s i IF Text2=s1 Private Command2_Click( ) 4. 运行程序 运行程序, 单击 计算 按钮, 将在文本框中输出相应的结果, 如图 5-2 所示 5. 存盘 图 5-2 实验 5-1 程序运行结果 以 学号 + 完数 为文件名对工程和窗体进行存盘 思考 : 如完数之类的特殊数列, 包括奇数 偶数 素数 水仙花数等, 如何利用循环程序设计 实现数列的找寻? 科学出版社职教技术出版中心 www.aboo 实验 5-2 找零 编程实现 : 将一张面值为 100 元的人民币等值换成若干张 5 元 1 元和 0.5 元的零 钞, 要求每种零钞不少于 1 张, 一共 100 张, 问有哪几种组合?

18 1. 程序代码 Private Form_Click( ) Print "5 元 1 元 0.5 元 " For i=1 To 20 For j=1 To 100-i k=100-i-j IF 5*i+1*j+0.5*k=100 Then Print I, j, k IF Next j Next i 2. 运行程序 运行程序, 结果如图 5-3 所示 图 5-3 实验 5-2 程序运行结果 3. 存盘以 学号 + 找零 为文件名对工程和窗体进行存盘 实验 5-3 求素数利用 For Next 循环和 While Wend 循环的嵌套求 3 位数的素数 注意 : 所谓 3 位数的素数就是指包含在 100~999 之间的素数 1. 程序代码 Private Form_Click( ) For n=100 To 999 k=int( Sqr( n ) ) i=2 swit=0 While i<=k And swit=0 IF n Mod i=0 Then

第一部分实验指导 19 swit=1 Else i=i+1 IF Wend IF swit=0 Then d=d+1 IF d Mod 5=0 Then Print n ; " " ; Print Else Print n ; " " ; IF IF Next n 2. 运行程序 运行程序, 结果如图 5-4 所示 3. 存盘 图 5-4 实验 5-3 程序运行结果 以 学号 + 素数 1 为文件名对工程和窗体进行存盘 科学出版社职教技术出版中心 www.aboo 实验 6 数组的定义 一 实验目的 1) 掌握数组的基本概念 2) 掌握数组的声明和引用

20 3) 掌握一维 二维数组的定义和引用 4) 掌握矩阵的表示方法以及操作方法 5) 对比一维数组和二维数组 6) 进一步熟悉数组的基本操作, 特别是 LBound 和 UBound 等函数的使用 二 实验内容 实验 6-1 数组的定义 1. 界面设计在窗体中创建 2 个命令按钮, 标题名称分别为 数组元素赋值 和 数组元素输出, 如图 6-1 所示 要求通过单击命令按钮以实现数组元素的赋值和数组元素的输出 图 6-1 实验 6-1 窗体界面设计 2. 属性设置 窗体中各个对象的属性按照表 6-1 进行设置 表 6-1 属性设置 对象名称属性名称属性值 Command1 Caption 数组元素赋值 Command2 Caption 数组元素输出 3. 程序代码 Dim a( 1 To 5 ) As Integer ' 定义一个大小为 5 的整型数组 ' 赋值命令按钮事件过程代码 Private Command1_Click( ) For i=1 To 5 a(i)=int(inputbox(" 请给第 " & i & " 个数组元素赋值 : ") ) Next i ' 显示数组元素命令按钮事件过程代码 Private Command2_Click( ) For i=1 To 5 Print " 第 " & i & " 个数组元素是 :";a(i)

第一部分实验指导 21 Next i 4. 运行程序运行程序后, 单击 数组元素赋值 命令按钮, 为数组的每个元素赋值, 然后单击 数组元素输出 命令按钮, 结果如图 6-2 所示 5. 存盘以 学号 + 数组 为文件名对工程和窗体进行存盘 思考 : 1) 如何改变数组元素的定义格式, 以使用不同个数的数组元素? 2) 如何改变对数组元素的赋值方法? 图 6-2 实验 6-1 程序运行结果 3) 如何处理数组元素的定义个数与数组元素的应用个数之间的多少问题? 实验 6-2 数组的应用 1. 界面设计在窗体中创建 3 个命令按钮, 在程序代码中定义 3 个 3 行 4 列的二维数组, 要求单击 第一矩阵 和 第二矩阵 命令按钮时, 可分别在窗体中显示第一个和第二个数组元素的值, 数组元素的值通过键盘输入 通过单击 求和 图 6-3 实验 6-2 窗体设计界面设置 表 6-2 命令按钮将在窗体中显示前面两个数组元素对 应元素的和 初始界面如图 6-3 所示 2. 属性设置 属性设置 窗体中各个对象的属性按照表 6-2 进行 对象名称属性名称属性值 Command1 Caption 第一矩阵 Command2 Caption 第二矩阵 Command3 Caption 求和 3. 程序代码 Dim a(3, 4) As Integer Dim b(3, 4) As Integer Dim c(3, 4) As Integer ' 第一矩阵数组元素赋值事件过程 Private Command1_Click( ) Print " 第一矩阵为 : " For i=1 To 3 科学出版社职教技术出版中心 www.aboo

22 For j=1 To 4 a( i, j )=InputBox(" 请给位于第 "& i & " 行 "& j & " 列的数组元素赋值 :") Print a( i, j ); Next j Print Next i ' 第二矩阵数组元素赋值事件过程 Private Command2_Click( ) Print " 第二矩阵为 : " For i=1 To 3 For j=1 To 4 b( i, j )=InputBox(" 请给位于第 " & i & " 行 " & j & " 列的数组元素赋值 :") Print b( i, j ); Next j Print Next i ' 第三矩阵数组元素赋值事件过程 Private Command3_Click( ) Print " 第三矩阵为 :" For i=1 To 3 For j=1 To 4 c( i, j )=a( i, j )+b( i, j ) Print c( i, j ); Next j Print Next i 4. 运行程序运行程序后, 单击 第一矩阵 命令按钮产生矩阵 A, 单击 第二矩阵 命令按钮产生矩阵 B, 最后单击 求和 命令按钮, 将产生前面 图 6-4 实验 6-2 程序运行结果 两个矩阵之和, 即第三矩阵 C, 结果如图 6-4 所示 5. 存盘以 学号 + 矩阵 为文件名对工程和窗体 进行存盘 思考 : 1) 过程中如何定义二维数组? 2) 过程中如何定义二维数组元素的输出格式?

第一部分实验指导 23 3) 如何正确选择一维数组与二维数组? 实验 6-3 矩阵的应用 利用随机数 ( 假设范围为 10~100) 产生一个 4 行 4 列的矩阵 A, 根据需求设计控件, 并完成如下要求 1 行 1) 求矩阵的两对角线元素之和 2) 求矩阵的最大值和其下标 3) 分别输出矩阵的上三角和下三角元素 4) 将矩阵的第 1 行元素与第 4 行元素交换位置, 即第 1 行变为第 4 行, 第 4 行变为第 5) 将矩阵的两对角线元素均设为 1, 其余均设为 0 6) 保存 以学号为文件名对工程和窗体进行存盘 相关参考程序如下 Option Base 1 Dim a(4, 4) ' 窗体载入初始化数组 Private Form_Load( ) For i=lbound( a, 1) To UBound( a, 1) For j=lbound( a, 2) To UBound( a, 2) a( i, j )=Int(91*Rnd)+10 Next Next i j ' 显示原始矩阵 Private Command1_Click( ) For i=lbound( a, 1) To UBound( a, 1) For j=lbound( a, 2) To UBound( a, 2) a( i, j)=int(91*rnd)+10 Next Next i j Picture1.Cls Picture1.Print " 原始矩阵为 :" For i=lbound( a, 1) To UBound( a, 1) For j=lbound( a, 2) To UBound( a, 2) Picture1.Print Tab( (j-1)*4+1); a( i, j ); Next j Picture1.Print Next i ' 对角线之和 科学出版社职教技术出版中心 www.aboo

24 Private Command2_Click( ) Dim s1, s2 's1 记录左对角线之和,s2 记录右对角线之和 s1=0: s2=0 For i=lbound( a, 1) To UBound( a, 1) For j=lbound( a, 2) To UBound( a, 2) IF i=j Then s1=s1+a( i, j ) IF i=5-j Then s2=s2+a( i, j ) Next j Next i Picture2.Cls Picture2.Print " 左对角线之和 : "; s1 Picture2.Print " 右对角线之和 : "; s2 ' 求最大值 Private Command3_Click( ) Dim max, d1, d2 'max 记录最大值,d1 记录第 1 维下标,d2 记录第 2 维下标 max=a(1, 1) For i=lbound( a, 1) To UBound( a, 1) For j=lbound( a, 2) To UBound( a, 2) IF a( i, j)>max Then max=a( i, j) d1=i d2=j IF Next j Next i Picture3.Cls Picture3.Print " 矩阵最大值为 : " ; max Picture3.Print " 其位置 ( 下标 ) 为 : 第 " ; d1; " 行, 第 " ; d2;" 列 " ' 上三角元素 Private Command4_Click( ) Picture4.Cls Picture4.Print " 上三角矩阵为 :" For i=lbound( a, 1) To UBound( a, 1) For j=i To UBound( a, 2) Picture4.Print Tab((j-1)*4+1); a( i, j); Next j Picture4.Print Next i ' 下三角元素

第一部分实验指导 25 Private Command5_Click( ) Picture5.Cls Picture5.Print " 下三角矩阵为 :" For i=lbound( a, 1) To UBound( a, 1) For j=lbound( a, 2) To i Picture5.Print Next j Picture5.Print Next i ' 第 1 行和第 4 行交换位置 a( i, j); Private Command6_Click( ) For j=lbound( a, 2) To UBound( a, 2) tmp=a( 1, j) a( 1, j)=a( 4, j) a( 4, j)=tmp Next j Picture6.Cls Picture6.Print " 交换位置后的矩阵为 :" For i=lbound( a, 1) To UBound( a, 1) For j=lbound( a, 2) To UBound( a, 2) Picture6.Print Tab( (j-1)*4+1); a( i, j); Next j Picture6.Print Next i ' 置数操作 Private Command7_Click( ) For i=lbound( a, 1) To UBound( a, 1) For j=lbound( a, 2) To UBound( a, 2) IF i=j Or i= 5-j Then a( i, j)=1 Else Next Next a( i, j)=0 i j IF Picture7.Cls Picture7.Print " 重置后的矩阵为 :" For i=lbound( a, 1) To UBound( a, 1) For j=lbound( a, 2) To UBound( a, 2) Picture7.Print Tab((j-1)*4+1); a( i, j); 科学出版社职教技术出版中心 www.aboo

26 Next j Picture7.Print Next i 实验 7 数组的高级应用 一 实验目的 1) 进一步熟悉并掌握数组的定义以及应用 2) 复习并掌握数组的排序算法 3) 掌握合并排序算法 二 实验内容 实验 7-1 数组排序 1. 设计界面如图 7-1(a) 所示, 在窗体中创建 1 个标签 1 个文本框 1 个图片框和 1 个命令按钮, 要求在文本框中输入杨辉三角的显示行数 n, 然后根据 n 值首先在标签中显示直角三角形的杨辉三角形图案, 然后通过修改源程序, 将图案显示为等腰三角形, 如图 7-1(b) 所示 2. 属性设置窗体中各个对象的属性按照表 7-1 进行设置 表 7-1 属性设置 对象名称属性名称属性值 Label1 Caption 行数 : Picture1 Text1 Text Command1 Caption 确定 3. 程序代码 Dim a( ) As Integer, n As Integer Private Form_Click( ) Form1.Cls n=val( InputBox(" 请任意输入杨辉三角显示行数 : " ) ) ReDim a( 1 To n, 1 To n ) For i=1 To n a( i, 1 )=1 For j=2 To i a( i, j )=a( i-1, j-1 )+a( i-1, j )

第一部分实验指导 27 Next j Next i y=3 For i=1 To n Picture1.Print Tab( y ); For j= 1 To i Picture1.Print Format( a( i, j ), "! @@@ @@@@ " ); Next j Print Next i 4. 存盘 以 学号 + 杨辉三角 为文件名对工程和窗体进行存盘 1. 设计界面 图 7-1 杨辉三角 实验 7-2 控件数组 在窗体中创建包含 4 个命令按钮的控件数组, 当单击不同的按钮时, 在窗体右侧的图 片框中显示不同的颜色 2. 属性设置窗体中各个对象的属性按照表 7-2 进行设置 科学出版社职教技术出版中心 www.aboo 表 7-2 属性设置 对象名称 属性名称 属性值 Index Command1 Caption 蓝色 0 Command2 Caption 红色 1 Command3 Caption 绿色 2 Command4 Caption 黄色 3

28 3. 程序代码 Private Command1_Click( Index As Integer ) Select Case Index Case 0 Picture1.BackColor=vbBlue Case 1 Picture1.BackColor=vbRed Case 2 Picture1.BackColor=vbGreen Case 3 Picture.BackColor=vbYellow Select 4. 运行程序 运行程序, 结果如图 7-2 所示 图 7-2 实验 7-2 程序运行结果 5. 存盘 以 学号 + 控件数组 为文件名对工程和窗体进行存盘 实验 8 子过程和函数的定义 一 实验目的 1) 掌握子过程和函数的定义 2) 掌握子过程和函数的调用格式 二 实验内容 实验 8-1 子过程的定义和调用编写一个求长方形面积的子过程, 要求调用该子过程并在文本框中输入长方形的长和宽后, 可求出其面积 1. 设计界面在窗体中创建 3 个标签 3 个文本框和 1 个命令按钮, 要求单击命令按钮时, 根据标

第一部分实验指导 29 签所对应的文本框的内容求面积, 如图 8-1 所示 图 8-1 实验 8-1 窗体界面设计 2. 属性设置 窗体中各个对象的属性按照表 8-1 进行设置 表 8-1 属性设置 对象名称属性名称属性值 Label1 Caption 长 : Label2 Caption 宽 : Label3 Caption 面积 : Text1 Text2 Text3 3. 程序代码 Text Text Text Command1 Caption 求面积 Private command1_click( ) Dim m, n m=val(text1.text) n=val(text2.text) Recarea m, n Call Recarea(m, n) Recarea(a, b) Dim area area=a*b Text3.Text=area 4. 运行程序 运行程序后, 在两个文本框中分别输入矩形的长和宽, 单击 求面积 命令按钮, 矩形 所对应的面积就会在第 3 个文本框中显示, 结果如图 8-2 所示 科学出版社职教技术出版中心 www.aboo

30 图 8-2 实验 8-1 程序运行结果 5. 存盘以 学号 + 面积 为文件名对工程和窗体进行存盘 思考 : 1) 如何定义子过程? 2) 如何完成子过程的调用? 实验 8-2 函数的定义和调用编写一个求素数的函数, 并调用该函数求 3~1000 之间的素数 1. 界面设计在窗体中创建 1 个文本框 1 个标签和 1 个命令按钮, 文本框用于显示 3~1000 的各个数是否为素数, 标签用于显示素数的个数, 命令按钮用于启动对象, 初始界面如图 8-3 所示 图 8-3 实验 8-2 窗体界面设计 2. 属性设置 窗体中各个对象的属性按照表 8-2 进行设置 表 8-2 属性设置 对象名称 属性名称 属性值 Text1 Text Label1 Caption Command1 Caption 3~1000 之间的素数

第一部分实验指导 31 3. 程序代码 Private command1_click( ) For i=3 To 100 IF prime(i) Then Else Next n=n+1 Text1=Text1+Str(i)+" 是一个素数! " +vbcrlf Text1.Text=Text1.Text+Str(i)+" 不是一个素数!" i IF Label1.Caption="3~ 1000 之间共有 " +Str(n)+" 个素数!" Function prime(j) k=int(sqr(j)) x=2 swit=true While x<=k And swit=true IF j Mod x=0 Then Else Wend swit=false x=x+1 IF prime=swit Function 4. 运行程序 +vbcrlf 运行程序后, 单击 3~1000 之间的素数 命令按钮, 结果如图 8-4 所示 科学出版社职教技术出版中心 www.aboo 图 8-4 实验 8-2 程序运行结果 5. 存盘 以 学号 + 素数 2 为文件名对工程和窗体进行存盘

32 思考 : 1) 如何定义函数? 2) 如何完成子过程的调用? 3) 函数的定义和调用与子过程的定义和调用有什么区别? 实验 9 参数传递 过程与变量的作用域 一 实验目的 1) 掌握子过程和函数中参数的值传递方式和地址传递方式 2) 掌握数组作为参数如何传递的过程 3) 掌握过程的作用域 4) 掌握变量的作用域 二 实验内容 实验 9-1 参数传递编写一个求任意数的平方的函数, 调用该函数求 1~10 的平方数 1. 设计界面在窗体中创建 1 个标签和 1 个命令按钮, 要求单击该命令按钮, 在标签中显示 1~10 的平方数, 初始界面如图 9-1 所示 图 9-1 实验 9-1 窗体界面设计 2. 属性设置 窗体中各个对象的属性按照表 9-1 进行设置 表 9-1 属性设置 对象名称 属性名称 属性值 Label1 Caption Command1 Caption 求平方

第一部分实验指导 33 3. 程序代码 Private Command1_Click ( ) For i=1 To 10 t=0 Call x( i, t ) Label1.Caption=Label1.Caption & i & " 的平方为 :" & t & vbcrlf Next i Private x( j, k ) k=j*j 4. 运行程序 运行程序后, 单击 求平方 命令按钮, 结果如图 9-2 所示 5. 存盘 图 9-2 实验 9-1 程序运行结果 以 学号 + 平方 为文件名对工程和窗体进行存盘 思考 : 对照以上实验程序, 分析与以下几段程序代码的区别 程序代码一 : Private Command1_Click ( ) For i=1 To 10 Next t=0 Call x( i, t ) Label1.Caption=Label1.Caption & i & " 的平方为 :" & t & vbcrlf i Private x( ByVal j, ByVal k ) k=j*j 科学出版社职教技术出版中心 www.aboo

34 程序代码二 : Private Command1_Click ( ) For i=1 To 10 t=0 Call x( i, (t) ) Label1.Caption=Label1.Caption & i & " 的平方为 :" & t & vbcrlf Next i Private x(j, k ) k=j*j 程序代码三 : Private Command1_Click ( ) For i=1 To 10 Call x( i, (t) ) Label1.Caption=Label1.Caption & i & " 的平方为 :" & t & vbcrlf Next i Private x( ByVal j, ByVal k ) k=j*j * 实验 9-2 过程的综合应用 汉诺塔问题 : 传说印度教的主神梵天创造世界时, 在印度北部佛教圣地贝拿勒斯圣庙 中, 安放了一块黄铜板, 板上插着 3 根针, 在其中 1 根针上自下而上放着由大到小的 64 个 圣盘 这就是所谓的汉诺塔, 梵天要僧侣们按下面的规律把 64 个盘子移到另一根针上 1) 一次只能移一个盘子 2) 盘子只允许在 3 根针上存放 3) 永远不允许大盘压小盘 梵天称, 当把这 64 个盘子全部移到另一根针上时, 就是世界毁灭之日 请编制程序 解决该问题 程序代码如下 Dim pan(10) As Shape Dim l(3) As Integer Dim p(3) As Integer Dim k As Integer Dim h(3, 10) As Integer Dim num As Integer Private Command1_Click( ) For i=1 To num

第一部分实验指导 35 h(1, i)=i Next i p(1)=num k=0 Call han(num, 1, 2, 3) s=l(1): l(1)=l(3): l(3)=s For i=1 To 3 p(i)=0 Next i Private Form_Activate( ) num=val(text1.text) For i=1 To num pan(i).left=pan(i).tag pan(i).visible=true Next For i=num+1 To 10 pan(i).visible=false Next i For i=1 To 3 l(i)=line1(i-1).x1 Next i Private Form_Load( ) For i=1 To 10 Set pan(i)=shape1(i-1) pan(i).tag=pan(i).left Next i Private han(m As Integer, u As Integer, v As Integer, w As Integer) IF m=1 Then Call yd(u, w) Else Call han(m-1, u, w, v) Call yidong(u, w) Call han(m-1, v, u, w) IF Private yd(x As Integer, y As Integer) a=p(x) 科学出版社职教技术出版中心 www.aboo

36 b=p(y)+1 h(y, b)=h(x, a) pan(h(y, b)).top=200 Call ys(0.1) pan(h(y, b)).left=l(y)-pan(h(y, b)).width/2 Call ys(0.2) pan(h(y, b)).top=1700-p(y)*100 Call ys(0.1) p(x)=a-1 p(y)=b k=k+1 Label3.Caption=" 移动了 "+LTrim(Str(k))+" 次 " Form1.Refresh Private ys(pausetime) Dim start start=timer Do While Timer<start+pausetime Loop Private Text1_Change( ) n=val(text1.text) IF n>2 And n<10 Then Form_Activate IF 实验 9-3 过程的作用域 调用标准模块的全局过程求阶乘 窗体模块级程序代码如下, 如图 9-3(a) 所示 Private Command1_Click( ) Print Print Tab( 20 ) ; "p="; ( Module1.fac(3)+Module1.fac(5) )/fac(7) 标准模块全局级过程代码如下, 如图 9-3(b) 所示 Public Function fac( n ) As Single p=1 For i=1 To n p=p*i Next i

第一部分实验指导 37 fac=p Function 图 9-3 标准模块全局过程调用代码窗口 在主调过程中,3 次调用位于标准模块中的全局函数过程中,2 次完整地表述了调用方法, 第 3 次调用则采用了默认表述 实验 9-4 变量的作用域当下列程序运行时, 单击窗体和命令按钮后, 写出程序运行结果 Public x As Integer Private Form_Load( ) x=10 Private Form_Click( ) Dim x As Integer x=10 Print x Print Form1.x Private Command1_Click( ) Print x 实验 10 常用内部控件的使用 科学出版社职教技术出版中心 www.aboo 一 实验目的 1) 掌握单选按钮 复选框和框架的使用方法 2) 掌握列表框控件和组合框控件的使用方法 3) 掌握时钟控件的使用方法 4) 掌握图片框控件和图像框控件的使用方法 5) 掌握滚动条控件的使用方法

38 二 实验内容 实验 10-1 单选按钮 复选框和框架对文本框中文本的字体 字型和颜色进行修改 1. 设计界面在窗体中创建一个由单选按钮 复选框和框架组成的综合对象, 如图 10-1 所示 图 10-1 实验 10-1 设置属性后的界面 2. 属性设置 窗体中各个对象的属性按照表 10-1 进行设置 表 10-1 控件属性 Name 属性 Caption 属性值 Name 属性 Caption 属性值 Option1(0) 仿宋 (F) Option2(1) 绿 色 Option1(1) 宋体 (S) Option2(2) 蓝 色 Option1(2) 楷体 (K) Frame1 字体 Check1(0) 粗体 (B) Frame2 字型 Check1(1) 斜体 (I) Frame3 颜色 Check1(2) 下划线 (U) Text1 VB 高级语言程序设计! Option2(0) 红 色 3. 程序代码 Option Explicit Private Form_Load( ) Text1.FontSize=20 Text1.FontName=" 黑体 " Private Option1_Click(Index As Integer) Select Case Index

第一部分实验指导 39 Case 0 Text1.FontName=" 仿宋 _GB2312" Case 1 Text1.FontName=" 宋体 " Case 2 Text1.Fonṭ Name = " 楷体 _GB2312" Select Private Option2_Click(Index As Integer) Select Case Index Case 0 Text1.ForeColor=RGB(255, 0, 0) Case 1 Text1.ForeColor=VBGreen Case 2 Text1.ForeColor=BBlue Select Private Check1_Click(Index As Integer) IF Check1(Index).Value=1 Then Select Case Index Else Case 0 Text1.Font.Bold=True Case 1 Text1.FontItalic=True Case 2 Text1.Font.Underline=True Select Select Case Index Case 0 Text1.FontBold=False Case 1 Text1.Font.Italic=False Case 2 Text1.FontUnderline=False IF 4. 运行程序 Select 运行程序, 选择仿宋 粗体 斜体 蓝色, 结果如图 10-2 所示 科学出版社职教技术出版中心 www.aboo

40 图 10-2 实验 10-1 程序运行界面 实验 10-2 成绩评分系统 1. 设计界面在窗体中创建 6 个独立的科目标签 6 个由控件数组组成的文本框 6 个由控件数组组成的检查框以及所对应的 6 个科目标签 1 个总分标签 1 个统计结果标签和 1 个统计命令按钮 初始界面如图 10-3 所示 图 10-3 实验 10-2 窗体界面设计 2. 属性设置 窗体中各个对象的属性按照表 10-2 进行设置 表 10-2 控件属性 Name 属性 Caption 属性值 Name 属性 Caption 属性值 Label1 语 文 Command1 统 计 Label2 数 学 Check1(0) Check1 Label3 英 语 Check1(1) Check2 Label4 物 理 Check1(2) Check3 Label5 化 学 Check1(3) Check4 Label6 体 育 Check1(4) Check5 Label7 总 分 Check1(5) Check6 Label8 Text1(0)

第一部分实验指导 41 Name 属性 Caption 属性值 Name 属性 Caption 属性值 Text1(1) Text1(2) Text1(3) 3. 程序代码 Private Form_Load( ) For i=0 To 5 Text1(i).Text=" " Next i Label8=" " Text1(4) Text1(5) Private Text1_lostFocus(Index As Integer) a=val(text1(index).text) IF a <0 Or a >100 Or Not IsNumeric(Text1(Index).Text) Then MsgBox " 不是有效成绩!" Text1(Index).Text="" Text1(Index).SetFocus IF Private Command1_Click( ) s=0 For i=0 To 5 Next IF Check1(i).Value=Checked Then s=s+val(text1(i).text) i Label8=s IF 4. 运行程序 运行程序, 任意选择 4 门科目, 统计结果如图 10-4 所示 续表 科学出版社职教技术出版中心 www.aboo 图 10-4 实验 10-2 程序运行结果

42 实验 11 图形的制作 一 实验目的 1) 掌握 VisualBasic 的坐标系统 2) 掌握 VisualBasic 的基本绘图方法 3) 理解绘图过程中其他相关的基本概念 二 实验内容 实验 11-1 绘制 金刚石 设计一个窗体, 用画线条的方法, 在窗体中绘制出 金刚石 的图形 1. 界面设计在窗体中创建 1 个命令按钮, 标题名称为 绘制,1 个图片框 初始界面如图 11-1 所示 图 11-1 实验 11-1 窗体界面设计 2. 属性设置 窗体中各个对象的属性按照表 11-1 进行设置 表 11-1 属性设置 对象名称 属性名称 属性值 Command1 Caption 绘 制 Picture1 3. 程序代码 Private Command1_Click( ) Const pi=3.14159 Picture1.ForeColor=RGB( Rnd*255, Rnd*255, Rnd*255 )

第一部分实验指导 43 Picture1.Cls n=10 x0=picture1.width / 2 y0=picture1.height / 2 r=y0*0.9 Dim px( ), py( ) As Double ReDim px(n), py(n) For i = 1 To n px( i )=y0+r*cos( i*2*pi / n ) py( i )=y0+r*sin( i*2*pi / n ) For j=1 To i-1 Picture1.Line ( px( i ), py( i ) )-( px( j ), py( j ) ) Next j Next i 4. 运行程序运行程序后, 单击 绘制 按钮, 则显示如图 11-2 所示的图案 图 11-2 实验 11-1 程序运行结果 科学出版社职教技术出版中心 www.aboo 5. 存盘以 学号 + 金刚石 为文件名对工程和窗体进行存盘 思考 : 1) 在编程过程中如何修改图案角个数? 2) 如何使图形变得更大? 实验 11-2 动态点阵图设计一个窗体, 以图片框为画板, 在画板上绘制动态的点阵

44 1. 界面设计 在窗体中创建 2 个命令按钮 1 个图片框和 1 个计时器控件, 初始界面如图 11-3 所示 图 11-3 实验 11-2 窗体界面设计 2. 属性设置 窗体中各个对象的属性按照表 11-2 进行设置 表 11-2 属性设置 对象名称 属性名称 属性值 command1 Caption 开 始 command2 Caption 结 束 Picture1 Timer1 Enabled False Interval 40 3. 程序代码 Dim x, y As Integer, r As Integer Private Command1_Click( ) Command1.Caption =" 继续 " Timer1.Enabled=True Command1.Enabled=False Command2.Enabled=True Private Command2_Click( ) Timer1.Enabled=False Command2.Enabled=False Command1.Enabled=True Private Form_load( ) Picture1.AutoRedraw=True Picture1.DrawWidth=4

第一部分实验指导 45 x=picture1.width / 2 y=picture1.height / 2 r=1000 Private timer1_timer( ) Static i As Single Picture1.Cls i=i+0.2 For j=1 To 32 Picture1.PSet (x+cos((i+j)*3.14 / 16)*r, y+sin((i + j)*3.14 / 16)*r), _ QBColor(1) Next j For j=1 To 16 Picture1.PSet (x+cos((i+j)*3.14 / 8)*r / 2, y+sin((i+j)*3.14 / 8) _ *r / 2), QBColor(1) Next j For j=1 To 32 Picture1.PSet (x+cos((i+j)*3.14 / 16)*r*3 / 4, y+sin((i+j)*3.14 / 16) _ *r*3 / 4), QBColor(1) Next j For j=1 To 16 Picture1.PSet (x+cos((i+j)*3.14 / 8)*r / 4, y+sin((i+j)*3.14 / 8) *r / 4), QBColor(1) Next j 4. 运行程序 运行程序后, 单击 开始 按钮, 则显示如图 11-4 所示的点阵图 科学出版社职教技术出版中心 www.aboo _ 图 11-4 实验 11-2 程序运行结果

46 5. 存盘以 学号 + 点阵图 为文件名对工程和窗体进行存盘 思考 : 1) 在编程过程中如何增加点阵的圈数? 2) 如何改变点阵的颜色? 3) 如何描述椭圆的点阵图? 4) 如何将点阵图修改为水平方向的对称陀螺形状? 实验 12 界面设计 一 实验目的 1) 了解通用对话框的特征 2) 掌握通用对话框的使用方法 3) 了解菜单的使用方法和功能 4) 掌握窗体菜单的设计方法 二 实验内容 实验 12-1 设计通用对话框在窗体中利用通用对话框创建一个文本编辑器, 文本编辑器由 RichTextBox 控件生成, 新建 打开 另存为 格式 颜色 由 1 个命令按钮控件数组生成 1. 设计界面在窗体中利用通用对话框创建一个文本编辑器, 在文本编辑器中使用水平滚动条和垂直滚动条 ; 由 6 个命令按钮组成命令按钮控件数组, 对应的名称分别为 新建 打开 另存为 格式 颜色 退出, 如图 12-1 所示 图 12-1 实验 12-1 窗体界面设计

第一部分实验指导 47 2. 属性设置 窗体中各个对象的属性按照表 12-1 进行设置 表 12-1 属性设置 对象名称属性名称属性值 RichTextBox1 Text CommonDialog1 Command1 Caption 新建 Command1 Caption 打开 Command1 Caption 另存为 Command1 Caption 格式 Command1 Caption 颜色 Command2 Caption 退出 3. 程序代码 Private Command1_Click( Index As Integer ) Select Case Index Case 0 Call Case 1 Call Case 2 Call Case 3 Call Case 4 Call Select fnew fopen fsave cfont ccolor Private fnew( ) IF Trim( RichTextBox1.Text ) <>" " Then t=msgbox(" 是否保存 ", vbyesno+vbinformation+vbdefaultbutton2 ) IF t=vbyes Then Call Fsave RichTextBox1.Text=" " Else RichTextBox1.Text=" " IF IF Private Fopen( ) IF Trim( RichTextBox1.Text ) <>" " Then 科学出版社职教技术出版中心 www.aboo

48 t=msgbox(" 是否放弃保存 ", vbyesno+vbinformation+vbdefaultbutton2 ) IF t=vbyes Then CommonDialog1.Filter="txt 文件 (*.txt) *.txt 所有文件 *.*" CommonDialog1.Action=1 RichTextBox1.FileName=CommonDialog1.FileName IF Else CommonDialog1.Filter="txt 文件 (*.txt) *.txt 所有文件 *.*" CommonDialog1.Action=1 RichTextBox1.FileName=CommonDialog1.FileName IF Private Fsave( ) CommonDialog1.Filter="txt 文件 (*.txt) *.txt" CommonDialog1.Action=2 RichTextBox1.SaveFile ( CommonDialog1.FileName ) Private cfont( ) CommonDialog1.Flags=cdlCFBoth Or cdlcfeffects CommonDialog1.ShowFont RichTextBox1.SelFontName=CommonDialog1.FontName RichTextBox1.SelFontSize=CommonDialog1.FontSize RichTextBox1.SelBold=CommonDialog1.FontBold RichTextBox1.SelItalic=CommonDialog1.FontItalic RichTextBox1.SelUnderline=CommonDialog1.FontUnderline RichTextBox1.SelStrikeThru = CommonDialog1.FontStrikethru RichTextBox1.SelColor=CommonDialog1.Color Private ccolor( ) CommonDialog1.Action=3 RichTextBox1.SelColor=CommonDialog1.Color Private command2_click( ) 4. 运行程序 运行程序后, 在文本编辑器中任意录入一些文本内容, 通过选择其中一部分文本内 容, 并单击文本框下面的按钮, 就可以对选中的文本内容进行选择性的操作 示例操作结 果如图 12-2 所示 5. 存盘 以 学号 + 文本编辑器 为文件名对工程和窗体进行存盘

第一部分实验指导 49 图 12-2 实验 12-1 程序运行结果 思考 : 1) 编程过程中是否可以用简单文本框替换文本编辑器? 2) 编程过程中如何设置水平滚动条和垂直滚动条? 实验 12-2 设计菜单 在窗体中放置一个文本框, 设计一个含 字体 菜单和 颜色 菜单的菜单系统 其中, 字体 菜单包含 粗体 斜体 和 自定义 3 个命令 ; 颜色 菜单包含 红色 绿色 蓝色 和 自定义 命令 另外, 可通过鼠标右键打开 颜色 菜单 1. 设计界面 在窗体中创建一个 CommonDialog 和一个命令按钮, 通过菜单编辑器完成相应的菜 单设计 初始界面如图 12-3 所示 科学出版社职教技术出版中心 www.aboo 图 12-3 实验 12-2 窗体界面设计 2. 属性设置 窗体中各个对象的属性按照表 12-2 和表 12-3 进行设置

50 表 12-2 标题名称 标题 名称 标题 名称 字体 DFont 蓝色 Blue 颜色 Color 绿色 Green 红色 Red 表 12-3 属性设置 控件名称 属性 属性值 Text1 Text Command1 Caption 存 盘 Command2 Caption 退 出 3. 程序代码 Private DFont_Click( ) CommonDialog1.Flags=cdlCFBoth Or cdlcfeffects CommonDialog1.ShowFont IF CommonDialog1.FontName>" " Then Text1.FontName=CommonDialog1.FontName IF Text1.FontSize=CommonDialog1.FontSize Text1.FontBold=CommonDialog1.FontBold Text1.FontItalic=CommonDialog1.FontItalic Text1.FontStrikethru=CommonDialog1.FontStrikethru Text1.FontUnderline=CommonDialog1.FontUnderline Text1.ForeColor=CommonDialog1.Color Private color_click( ) IF Text1.Text=" " Then Red.Enabled=False Blue.Enabled=False Green.Enabled=False Else Red.Enabled=True Blue.Enabled=True Green.Enabled=True IF Private red_click( ) Text1.ForeColor=vbRed Private blue_click( ) Text1.ForeColor=vbBlue Private green_click( )

第一部分实验指导 51 Text1.ForeColor=vbGreen Private DColor_Click( ) CommonDialog1.CancelError=False CommonDialog1.ShowColor Text1.ForeColor=CommonDialog1.Color Private Command1_Click( ) CommonDialog1.CancelError=True CommonDialog1.DefaultExt="TXT" CommonDialog1.FileName="lbw.txt" CommonDialog1.Filter="Text files(*.txt) *.TXT ALL Files(*.*) *.*" CommonDialog1.FilterIndex=1 CommonDialog1.DialogTitle="Save File As (*.TXT) " CommonDialog1.Flags=vbOFNOverwritePrompt Or vbofnpathmustexist CommonDialog1.Action=2 Private Command2_Click( ) 4. 运行程序 运行程序后, 在文本框中任意录入一些文本内容, 通过选择菜单命令, 就可以对选中 的文本内容进行选择性的操作 操作结果如图 12-4 所示 科学出版社职教技术出版中心 www.aboo 图 12-4 实验 12-2 程序运行结果 5. 存盘以 学号 + 菜单 为文件名对工程和窗体进行存盘 思考 : 1) 编程过程中如何选择性地对文本进行操作? 2) 编程过程中如何加载新的菜单选项?

52 实验 13 文件管理 一 实验目的 1) 掌握顺序文件 随机文件 二进制文件的使用方法 2) 掌握文件打开和关闭的方法 3) 掌握文件的读写方法 4) 了解文件系统控件的使用 二 实验内容 实验 13-1 顺序文件利用文件系统控件 组合框 文本框, 制作一个文件浏览器, 要求组合框限定文件列表框中显示文件的类型, 如选中 "*.txt" 文件 当在文件列表框选中要显示的文件时, 在文本框中显示该文件的内容 1. 界面设计在窗体中创建 1 个驱动器列表框 1 个目录列表框 1 个文件列表框 1 个组合框以及 1 个文本框 初始界面如图 13-1 所示 图 13-1 实验 13-1 窗体界面设计 2. 属性设置 窗体中各个对象的属性按照表 13-1 进行设置 表 13-1 属性设置 对象名称 属性名称 属性值 Drive1 Dir1 File1 Combo1 Style 2 Text1 Multilinetrue True ScrolBars 3

第一部分实验指导 53 3. 程序代码 Private Drive1_Change( ) Dir1.Path=Drive1.Drive Private Dir1_Change( ) File1.Path=Dir1.Path Private File1_Click( ) Text1.Text="" IF Right( Dir1.Path, 1)="\"Then f=dir1.path & File1.FileName Else f=dir1.path & "\" & File1.FileName IF Open f For Input As # 1 Do While Not EOF(1) Line Input # 1, s Text1.Text=Text1.Text+s+vbCrLf Loop Close #1 Private Combo1_Click( ) Select Case Combo1.Text Case " 所有文件 (*.*)" filetype="*.*" Case " 图片文件 (*.jpg)" filetype="*.jpg" Case " 文本文件 (*.txt)" filetype="*.txt" Select File1.Pattern=filetype Private Form_Load( ) Combo1.AddItem " 所有文件 (*.*)" Combo1.AddItem " 图片文件 (*.jpg)" Combo1.AddItem " 文本文件 (*.txt)" Combo1.ListIndex=2 4. 运行程序 科学出版社职教技术出版中心 www.aboo 运行程序后, 选择某一个驱动器, 在其中选择某一个文件夹, 再选择 文本文件 (*.txt) 类型, 在文件列表框中就会列出相应的文件, 选中某一个文件, 在右侧的文本框

54 中就会显示文件的内容, 结果如图 13-2 所示 图 13-2 实验 13-1 程序运行结果 5. 存盘以 学号 + 顺序文件 为文件名对工程和窗体进行存盘 思考 : 1) 如何显示图片格式文件? 2) 如何显示音频格式文件? 实验 13-2 随机文件设计一个窗体, 将某个学生的学号 姓名 性别 成绩输入到一个名为 xs.dat 的随机文件中 1. 界面设计在窗体中创建 5 个标签 4 个文本框 2 个单选按钮和 2 个命令按钮 初始界面如图 13-3 所示 图 13-3 实验 13-2 窗体界面设计 2. 属性设置 4 个文本框使用 Text1 控件数组,2 个单选按钮使用 Option1 控件数组 窗体中各个对象的属性按照表 13-2 进行设置

第一部分实验指导 55 表 13-2 属性设置 对象名称属性名称属性值 Label1 Caption 学号 Label2 Caption 姓名 Label3 Caption 性别 Label4 Caption 年龄 Label5 Caption 成绩 Text1 Text Option1 Caption 男 Option1 Caption 女 Command1 Caption 输入信息 Command2 Caption 退出 3. 程序代码 Private Command1_Click( ) Dim no As String*5 Dim name As String*10 Dim sex As String*2 Dim age As Integer Dim cj As Single no=text1(0).text name=text1(1).text sex=iif(option1(0).value, " 男 ", " 女 ") age=val(text1(2).text) cj=val(text1(3).text) Write #1, no, name, sex, age, cj For i=0 To 3 Next Text1( i ).Text=" " i Option1(0).Value=True Text1(0).SetFocus Private Command2_Click( ) Close #1 Private Form_Load( ) Open "xs.dat" For Append As #1 4. 运行程序 科学出版社职教技术出版中心 www.aboo 运行程序后, 在相应的文本框中录入学生的信息, 如图 13-4 所示 退出后可以在默 认目录下找到并打开文件 xs.dat, 即可看到所录入学生的相关信息, 如图 13-5 所示

56 图 13-4 学生信息录入状态 图 13-5 随机文件存储结果 5. 存盘 以 学号 + 随机文件 为文件名对工程和窗体进行存盘 思考 : 1) 如何添加照片信息? 2) 如何实现随机文件的覆盖操作?