高级程序设计语言 vb 实验指导 -...

16
计算中心 2017年9月 高级程序设计语言 VB 实验指导

Upload: others

Post on 12-Jul-2020

22 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 高级程序设计语言 VB 实验指导 - 天津城建大学cfsfzx.tcu.edu.cn/01-jiangyi.pdf空、随着升空太阳变小,窗体背景和太阳图片可从网上查找)。 保存工程和窗体,窗体文件名为:学号-2-3.frm;工程名为:“学号-2-3.vbp”。将工程文件

计算中心

2017年9月

高级程序设计语言 VB实验指导

Page 2: 高级程序设计语言 VB 实验指导 - 天津城建大学cfsfzx.tcu.edu.cn/01-jiangyi.pdf空、随着升空太阳变小,窗体背景和太阳图片可从网上查找)。 保存工程和窗体,窗体文件名为:学号-2-3.frm;工程名为:“学号-2-3.vbp”。将工程文件

目 录

实验 1 熟悉 Visual Basic6.0 集成开发环境 ...................................... 1

实验 2 使用窗体和常用控件 ............................................................. 1

实验 3 顺序结构程序设计 ................................................................. 1

实验 4 选择结构程序设计 ................................................................. 1

实验 5 循环结构程序设计 ................................................................. 1

实验 6 数组程序设计 ......................................................................... 1

实验 7 列表框、组合框和控件数组的使用 ..................................... 1

实验 8 函数和子过程的使用 ............................................................. 1

Page 3: 高级程序设计语言 VB 实验指导 - 天津城建大学cfsfzx.tcu.edu.cn/01-jiangyi.pdf空、随着升空太阳变小,窗体背景和太阳图片可从网上查找)。 保存工程和窗体,窗体文件名为:学号-2-3.frm;工程名为:“学号-2-3.vbp”。将工程文件

1

实验 1 熟悉 Visual Basic6.0 集成开发环境

【实验目的】

1. 掌握 Visual Basic6.0 集成开发环境的使用。

2. 掌握启动与退出 Visual Basic6.0 的方法。

3. 掌握建立、编辑和运行一个简单的 Visual Basic6.0 应用程序的全过程。

【实验内容】

1、启动 Visual Basic 6.0,创建一个“标准 EXE”类型的应用程序,要求:在屏幕上显示“欢

迎登录”;在文本框 Text1 输入用户名;单击命令按钮“输入密码”,则允许在文本框 Text2 输

入密码,并以“*”号显示。程序运行效果如下图。

保存工程和窗体,窗体文件名为:学号-1-1.frm;工程名为:学号-1-1.vbp。以后每个实

验项目的命名规则都是如此。将工程文件和窗体文件压缩成:学号-1-1.rar,以附件形式提交。

提示:

① 所用的控件及属性设置见下表。

控件名 属性

Label1 Caption=“欢迎登录” ;Font 属性:字体为华文楷体, 字号为

小二

Label2 Caption=“输入用户名:”

Text1 BackColor= &H00C0C0C0&

Command1 Caption=“输入密码:”

Text2 Locked=Ture

② 按钮 Command1 的单击事件过程代码如下:

Private Sub Command1_Click()

Text2.Locked = False

Text2.PasswordChar = "*"

End Sub

Page 4: 高级程序设计语言 VB 实验指导 - 天津城建大学cfsfzx.tcu.edu.cn/01-jiangyi.pdf空、随着升空太阳变小,窗体背景和太阳图片可从网上查找)。 保存工程和窗体,窗体文件名为:学号-2-3.frm;工程名为:“学号-2-3.vbp”。将工程文件

2

2、启动 Visual Basic 6.0,创建一个“标准 EXE”类型的应用程序,模仿案例:求圆面积。

输入圆的半径,计算圆面积,保留两位小数显示。程序运行效果如下图。

保存工程和窗体,窗体文件名为:学号-1-2.frm;工程名为:学号-1-2.vbp。将工程文件

和窗体文件压缩成:学号-1-2.rar,以附件形式提交。

提示:

① 所用的控件及属性设置见下表。

控件名 属性

Label1 Caption=“圆半径”

Text1 Text=“”

Command1 Caption=“圆面积”

Text2 Locked=Ture;Text=“”

② 按钮 Command1 的单击事件过程代码如下:

Private Sub Command1_Click()

Dim r, s As Single

r = Val(Text1.Text)

s = 3.14159 * r * r

Text2.Text = Format(s, "0.00") '显示保留 2 位小数

End Sub

Page 5: 高级程序设计语言 VB 实验指导 - 天津城建大学cfsfzx.tcu.edu.cn/01-jiangyi.pdf空、随着升空太阳变小,窗体背景和太阳图片可从网上查找)。 保存工程和窗体,窗体文件名为:学号-2-3.frm;工程名为:“学号-2-3.vbp”。将工程文件

1

实验 2 使用窗体和常用控件

【实验目的】

1. 掌握 Visual Basic 6.0 集成开发环境的使用。

2. 掌握面向对象程序设计的基本方法。

3. 掌握标签、文本框和按钮控件的使用。

【实验内容】

1、参考文件编辑器案例,利用文本框和按钮,制作一个简单的文本编辑器,能实现复

制、粘贴和剪切功能。界面及控件的属性设置可参考运行效果图如下。

保存工程和窗体,窗体文件名为:学号-2-1.frm;工程名为:学号-2-1.vbp。将工程文件

和窗体文件压缩成:学号-2-1.rar,以附件形式提交。

2、利用文本框和按钮,制作一个简单的计算器,能实现加法和减法的运算。界面及控

件的属性设置可参考运行效果图如下。

保存工程和窗体,窗体文件名为:学号-2-2.frm;工程名为:“学号-2-2.vbp”。将工程文件

和窗体文件压缩成:学号-2-2.rar,以附件形式提交。

3、参照热气球升空和小车行驶案例,自行设计一个类似的例子(例如模拟太阳慢慢升

空、随着升空太阳变小,窗体背景和太阳图片可从网上查找)。

保存工程和窗体,窗体文件名为:学号-2-3.frm;工程名为:“学号-2-3.vbp”。将工程文件

和窗体文件压缩成:学号-2-3.rar,以附件形式提交。

Page 6: 高级程序设计语言 VB 实验指导 - 天津城建大学cfsfzx.tcu.edu.cn/01-jiangyi.pdf空、随着升空太阳变小,窗体背景和太阳图片可从网上查找)。 保存工程和窗体,窗体文件名为:学号-2-3.frm;工程名为:“学号-2-3.vbp”。将工程文件

1

实验 3 顺序结构程序设计

【实验目的】

1. 掌握表达式、赋值语句的正确书写规则

2. 掌握常用函数的使用。

3. 掌握顺序语句结构。

【实验内容】

1、随机生成三个正整数,分别是一个 1 位数、一个 2 位数、一个 3 位数,计算它们的

平均值,保留 2 位小数。运行界面如下图所示。

保存工程和窗体,窗体文件名为:学号-3-1.frm;工程名为:学号-3-1.vbp。将工程文件

和窗体文件压缩成:学号-3-1.rar,以附件形式提交。

提示:

① 随机数生成某范围内的正整数公式:Int(Rnd*范围+基数)

其中:范围=数的上限-下限+1,基数=数的下限

例如要生成 2 位数:Int(Rnd*(99-10+1)+10)=Int(Rnd*90+10)

②保留两位小数,利用 Format 函数:形式 Format(要显示的数值,"0.00")

2、利用 InputBox 函数(如图 1)输入一个合法的 3 位正整数,然后求该数逆序并利用

Print 方法在窗体输出。例如,输入 123,输出是 321。

程序要求判断若输入的数不是 3 位数,用 MsgBox 显示提示信息,如图 2 所示,结束程

序运行。

Page 7: 高级程序设计语言 VB 实验指导 - 天津城建大学cfsfzx.tcu.edu.cn/01-jiangyi.pdf空、随着升空太阳变小,窗体背景和太阳图片可从网上查找)。 保存工程和窗体,窗体文件名为:学号-2-3.frm;工程名为:“学号-2-3.vbp”。将工程文件

2

图 1 图 2

保存工程和窗体,窗体文件名为:学号-3-2.frm;工程名为:学号-3-2.vbp。将工程文件

和窗体文件压缩成:学号-3-2.rar,以附件形式提交。

提示:

① 利用 “Mod”和 “\” 运算符将 3 位数分离出它的百位、十位和个位,然后利用乘法和

加法得到逆序的 3 位数。

3、验证转换函数的使用,Text1 文本框输入字符串,Text2 文本框显示调用所选函数的

结果,4 个命令按钮为转换函数,Label2 显示对应的函数名,运行界面如下图所示。

保存工程和窗体,窗体文件名为:学号-3-3.frm;工程名为:学号-3-3.vbp。将工程文件

和窗体文件压缩成:学号-3-3.rar,以附件形式提交。

Page 8: 高级程序设计语言 VB 实验指导 - 天津城建大学cfsfzx.tcu.edu.cn/01-jiangyi.pdf空、随着升空太阳变小,窗体背景和太阳图片可从网上查找)。 保存工程和窗体,窗体文件名为:学号-2-3.frm;工程名为:“学号-2-3.vbp”。将工程文件

1

实验 4 选择结构程序设计

【实验目的】

1. 掌握条件表达式的正确书写规则。

2. 掌握 If 语句的使用。

3. 掌握 Select 语句的使用。

【实验内容】

1、购买商品时,商品的总金额 x 和所要支付的钱 y 按如下图所示的对应关系折扣支付。

现根据输入的总金额计算需要支付的钱。完成程序功能,界面自行设计。

保存工程和窗体,窗体文件名为:学号-4-1.frm;工程名为:学号-4-1.vbp。将工程文件

和窗体文件压缩成:学号-4-1.rar,以附件形式提交。

提示:用多分支结构实现,注意计算公式和条件表达式的正确书写。

2、输入 x,y,z 三个数,按从大到小的次序显示,程序运行结果如下图所示。

保存工程和窗体,窗体文件名为:学号-4-2.frm;工程名为:学号-4-2.vbp。将工程文件

和窗体文件压缩成:学号-4-2.rar,以附件形式提交。

提示:

① 利用 InputBox 输入三个数,存放到数值型变量中,然后进行比较;若放在字符串变

量中,有时将会得到不正确的结果(因为字符串是从左到右的规则比较,例如会出现”34”>

“2345”>“126789”的情况)。

② 三个数排序,只能通过两两比较,一般可用 3 个单分支的 If 语句来实现。也可用 1

个单分支 if 语句和 1 个嵌套的 if 语句来实现。

Page 9: 高级程序设计语言 VB 实验指导 - 天津城建大学cfsfzx.tcu.edu.cn/01-jiangyi.pdf空、随着升空太阳变小,窗体背景和太阳图片可从网上查找)。 保存工程和窗体,窗体文件名为:学号-2-3.frm;工程名为:“学号-2-3.vbp”。将工程文件

1

实验 5 循环结构程序设计

【实验目的】

1. 掌握 For 语句的使用。

2. 掌握 Do 语句的各种形式的使用。

3. 掌握如何控制循环条件,防止死循环或不循环。

【实验内容】

1、利用循环和 Print 方法显示有规律图形,如下图所示。

保存工程和窗体,窗体文件名为:学号-5-1.frm;工程名为:学号-5-1.vbp。将工程文件和

窗体文件压缩成:学号-5-1.rar,以附件形式提交。

提示:

① 对于特殊字符“★”,通过汉字软键盘菜单中的“特殊符号”输入来实现。

② 在 String(n, "★")函数产生重复字符串,其中 n 为重复个数;

也可通过 Mid(s,n)函数取子串,其中:

Dim s As String = "★★★★★★★★★★★★★★★★★★★",

③然后通过循环结构确定显示的起始位 Tab(20 - 2 * i) ,显示有规律的子串。

2、求 s=1+(1+2)+(1+2+3)+(1+2+3+4)+…+(1+2+3+4+…+n),运行效果如下图所示。

要求如下:

(1)用 For 循环求前 30 项和。

(2)用 Do···Loop Until 求多项式和,直到和大于 5000 为止。

保存工程和窗体,窗体文件名为:学号-5-2.frm;工程名为:学号-5-2.vbp。将工程文件和

窗体文件压缩成:学号-5-2.rar,以附件形式提交。

Page 10: 高级程序设计语言 VB 实验指导 - 天津城建大学cfsfzx.tcu.edu.cn/01-jiangyi.pdf空、随着升空太阳变小,窗体背景和太阳图片可从网上查找)。 保存工程和窗体,窗体文件名为:学号-2-3.frm;工程名为:“学号-2-3.vbp”。将工程文件

2

3、将 Text1 文本框输入的字母反序显示在 Text2,运行效果如下图所示。

保存工程和窗体,窗体文件名为:学号-5-3.frm;工程名为:学号-5-3.vbp。将工程文件和

窗体文件压缩成:学号-5-3.rar,以附件形式提交。

提示:

①要考虑字母包括大写和小写。

②首先利用 Len 函数求 Text1.Text 字符串长度,然后利用 For 循环结构和 Mid 函数逐一

取字符进行判断是否为字母,若是字母则利用语句:Text2.Text =字母 & Text2.Text,将字

母连接到 Text2 文本框前面,实现反序。

4、计算 的近似值, 的计算公式为:

界面自己设计。

保存工程和窗体,窗体文件名为:学号-6-1.frm;工程名为:学号-6-1.vbp。将工程文件和

窗体文件压缩成:学号-6-1.rar,以附件形式提交。

【提示】

① 显示当 n=50 时、当 n=1000 时的结果。

② 要防止大数相乘时溢出问题,将变量类型和常数 2 改为双精度型(即 2#)。

5、编写程序,显示所有的水仙花数,程序的界面自行设计。所谓水仙花数,是指一个 3

位数,其各位数字的立方和等于该数字本身。例如,153 是水仙花数, 。

保存工程和窗体,窗体文件名为:学号-6-2.frm;工程名为:学号-6-2.vbp。将工程文件和

窗体文件压缩成:学号-6-2.rar,以附件形式提交。

提示:

解该题的方法有两种:

①利用三重循环,将三个一位数连接成一个 3 位数进行判断。

例如,将 i,j,k 三个一位数连成一个三位数的表达式为:

i*100+j*10+k ‘ i、j、k 分别为三重循环的循环控制变量

② 利用单循环将一个 3 位数逐位分离后进行判断。例如 x 是一个三位数,分离为三个一

位数 i、j、k:

X=357

Page 11: 高级程序设计语言 VB 实验指导 - 天津城建大学cfsfzx.tcu.edu.cn/01-jiangyi.pdf空、随着升空太阳变小,窗体背景和太阳图片可从网上查找)。 保存工程和窗体,窗体文件名为:学号-2-3.frm;工程名为:“学号-2-3.vbp”。将工程文件

3

i= x \100 ‘ i 获得百位数结果 3

j= (x Mod 100) \10 ‘ j 获得十位数结果 5

k=x Mod 10 ‘ k 获得个位数结果 7

6、求 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。

保存工程和窗体,窗体文件名为:学号-6-3.frm;工程名为:学号-6-3.vbp。将工程文件和

窗体文件压缩成:学号-6-3.rar,以附件形式提交。

提示:

①为了得到不断重复 a 的 n 位的数 Temp,可用如下程序段实现:

Temp=0

For i=1 To n

Temp=Temp*10+a

Next i

Page 12: 高级程序设计语言 VB 实验指导 - 天津城建大学cfsfzx.tcu.edu.cn/01-jiangyi.pdf空、随着升空太阳变小,窗体背景和太阳图片可从网上查找)。 保存工程和窗体,窗体文件名为:学号-2-3.frm;工程名为:“学号-2-3.vbp”。将工程文件

1

实验 6 数组程序设计

【实验目的】

1. 掌握数组的声明、数组元素的引用。

2. 掌握数组的基本操作。

3. 应用数组解决与数组有关的常见问题。

【实验内容】

1、随机产生 10 个 30~100(包括 30、100)的正整数,保存到数组,并求最大值、最小值

和平均值,最后显示数组每个元素的数值及计算结果。运行效果如下图所示。要求:用数组

实现。

保存工程和窗体,窗体文件名为:学号-7-1.frm;工程名为:学号-7-1.vbp。将工程文件和

窗体文件压缩成:学号-7-1.rar,以附件形式提交。

2、输入整数 n,显示出具有 n 行的杨辉三角形,下图显示 n=8 的运行效果。要求:用数

组实现。

保存工程和窗体,窗体文件名为:学号-7-2.frm;工程名为:学号-7-2.vbp。将工程文件和

窗体文件压缩成:学号-7-2.rar,以附件形式提交。

提示:

①定义一个二维数组(若用定长数组实现,则数组大一些;若用动态数组,则数组大小用

ReDim 重新定义);

②对下三角各元素进行设置:第一列及对角线上均为 1,即:

a(i,1)=1, a(i,i)=1; i=1 To n

其余每一个元素正好等于它上面一行的同一列和前一列的两个元素之和,即:

a(i,j)=a(i-1,j-1)+a(i-1,j)

利用两重循环来实现。

③利用 Tab 函数定每列的宽度,使得列对齐。

Page 13: 高级程序设计语言 VB 实验指导 - 天津城建大学cfsfzx.tcu.edu.cn/01-jiangyi.pdf空、随着升空太阳变小,窗体背景和太阳图片可从网上查找)。 保存工程和窗体,窗体文件名为:学号-2-3.frm;工程名为:“学号-2-3.vbp”。将工程文件

1

实验 7 列表框、组合框和控件数组的使用

【实验目的】

1. 掌握列表框和组合框的使用。

2. 应用数组解决与数组有关的常见问题。

【实验内容】

1、窗体上建立一个简单组合框,在组合框的文本框输入数字字符,按回车键后加入到组

合框的列表框内,如下左图所示;单击”交换”命令按钮,将列表框中最小值项目和第 0 个项

目交换;最大值项目与最后项目交换, 如下右图所示。

保存工程和窗体,窗体文件名为:学号-8-1.frm;工程名为:学号-8-1.vbp。将工程文件和

窗体文件压缩成:学号-8-1.rar,以附件形式提交。

提示:

① 只能输入数字,在 Combo1_KeyPress 事件通过如下代码实现:

Select Case KeyAscii

Case 48 To 57, 13 ‘ 0~9 数字和回车键为合法数据

Case Else ‘ 否则为非法数据,去除非法字符

KeyAscii = 0

End Select

② 找最小值和最大值必须声明 4 个变量:如 aMin、iMin、aMax 和 iMax 分别存放最小

值、最小值下标,最大值和最大值下标,并将列表框中第 0 个项目为上述 4 个变量的初值;

③ 按照求最大值和最小值的方法从组合框中找最小值和最大值,并获得最小值和最大值

下标;注意比较时项目要用 Val 函数,否则作为字符串比较。

④ 将组合框的第 0 相与最小值交换、最大值与最后项交换。例最大值与最后项交换的代

码:

t = Combo1.List(Combo1.ListCount - 1)

Combo1.List(Combo1.ListCount - 1) = Combo1.List(imax)

Page 14: 高级程序设计语言 VB 实验指导 - 天津城建大学cfsfzx.tcu.edu.cn/01-jiangyi.pdf空、随着升空太阳变小,窗体背景和太阳图片可从网上查找)。 保存工程和窗体,窗体文件名为:学号-2-3.frm;工程名为:“学号-2-3.vbp”。将工程文件

2

Combo1.List(imax) = t

2、随机产生 20 个学生的成绩 0~100(包括 0、100),统计各分数段人数,即 0~59、60~

69、70~79、80~89、90~100,显示统计结果。产生的数据在 Picture1 显示,统计结果

在 Picture2 显示,运行效果如下图所示。

保存工程和窗体,窗体文件名为:学号-8-2.frm;工程名为:学号-8-2.vbp。将工程文件和

窗体文件压缩成:学号-8-2.rar,以附件形式提交。

提示:

①本程序有两个事件过程,都要用到存放 20 个学生的数组,因此在通用声明段声明一个

数组,例:Dim mark% (19);在 Command2 事件过程中声明一个数组 s(9),分别存放分

数段的人数。

②在统计时关键确定每个人的分数 mark(i)与 s 数组的下标关系,即:

For i=0 To 19

k=mark (i)\ 10

Select Case k

Case 0 To 5 ‘ 0~59 分不及格的人数

s(5)=s(5)+1

Case 9 To 10 ‘90~100 分的人数

s(9)=s(9)+1

Case 6 To 8 ‘ 存放其他三个分数段的下标有规律,根据 K 获得

s(k)=s(k)+1

End Select

Next i

Page 15: 高级程序设计语言 VB 实验指导 - 天津城建大学cfsfzx.tcu.edu.cn/01-jiangyi.pdf空、随着升空太阳变小,窗体背景和太阳图片可从网上查找)。 保存工程和窗体,窗体文件名为:学号-2-3.frm;工程名为:“学号-2-3.vbp”。将工程文件

1

实验 8 函数和子过程的使用

【实验目的】

1. 掌握自定义函数过程和子过程的定义和调用方法。

2. 掌握形参和实参的对应关系。

3. 掌握值传递和地址传递的传递方式。

4. 熟悉程序设计中的常用的算法。

【实验内容】

1、参考教材,编写求两个整数 m,n 最大公约数的函数过程 f(m,n);主调程序在两个文本框

输入数据,单击 “显示”按钮,调用函数 f(m,n),在右边标签框显示结果,程序运行结果如下

图所示。

保存工程和窗体,窗体文件名为:学号-9-1.frm;工程名为:学号-9-1.vbp。将工程文件和

窗体文件压缩成:学号-9-1.rar,以附件形式提交。

2、编一子过程 ProcMin(a(), amin),求一维数组 a 中的最小值 amin。主调程序随机产生

10 个-300~-400 之间的数,显示产生的数组中各元素;调用 ProcMin 子过程,显示出数组

中的最小值。程序运行效果如下图所示。

Page 16: 高级程序设计语言 VB 实验指导 - 天津城建大学cfsfzx.tcu.edu.cn/01-jiangyi.pdf空、随着升空太阳变小,窗体背景和太阳图片可从网上查找)。 保存工程和窗体,窗体文件名为:学号-2-3.frm;工程名为:“学号-2-3.vbp”。将工程文件

2

保存工程和窗体,窗体文件名为:学号-9-2.frm;工程名为:学号-9-2.vbp。将工程文件和

窗体文件压缩成:学号-9-2.rar,以附件形式提交。

3、参考教材,编写将 10 进制数 n 转变成 r(2~16)进制数的函数过程 f(n,r);主调程序

在两个文本框输入数据,单击 “转换”按钮,调用函数 f(n,r),在右边文本框显示结果,程序

运行结果如下图所示。

保存工程和窗体,窗体文件名为:学号-10-1.frm;工程名为:学号-10-1.vbp。将工程文件

和窗体文件压缩成:学号-10-1.rar,以附件形式提交。

4、参考教材,编写加密函数过程 Encode$(s$, key%)和解码函数过程 Decoder$(s$,

key%) ;主调程序在文本框输入字符串,单击 “加密”按钮,调用函数 Encode,在右边文本

框显示结果。单击 “解密”按钮,调用函数 Decoder,在右边文本框显示结果。当 key = 2,

程序运行结果如下图所示。

保存工程和窗体,窗体文件名为:学号-10-2.frm;工程名为:学号-10-2.vbp。将工程文件

和窗体文件压缩成:学号-10-2.rar,以附件形式提交。