• 沒有找到結果。

Visual Basic语言程序设计教程实验指导及习题解答(第二版) - 万水书苑-出版资源网

N/A
N/A
Protected

Academic year: 2021

Share "Visual Basic语言程序设计教程实验指导及习题解答(第二版) - 万水书苑-出版资源网"

Copied!
7
0
0

加載中.... (立即查看全文)

全文

(1)

一、实验目的

1.熟悉常用的输入和输出的方法。

2.掌握 InputBox 函数和 MsgBox 函数的用法。

3.掌握编写顺序结构程序的一般步骤。

二、实验内容

1.设计一个计算圆面积的程序。

要求:利用 InputBox 函数输入圆的半径,利用 MsgBox 显示最后的计算结果。

2.设计一个简单的水果商店结算程序。

要求:利用文本框输入香蕉、梨子、苹果三类水果的单价和重量,自动计算最后的总金

额,顾客付款后自动计算应得的找零。程序运行界面如图 5-1 所示。

图 5-1 程序运行界面

3.编写程序将一个 4 位整数反序输出。

要求:采用 InputBox 函数输入这个 4 位整数,反序后的结果显示在窗体上。

三、实验指导

1.设计一个计算圆面积的程序。

【思路】

此题要求利用 InputBox 函数输入圆的半径,在单击窗体的事件中定义一个单精度型变量

r,将从 InputBox 对话框中输入的数据赋给 r,但是要注意的是 r 为单精度型变量,而从对话

框中返回的数据为字符型变量,因此需要用 Val 函数将字符型数据转换为数值类型。

(2)

获得 r 的值后就可以利用赋值计算圆面积 s 了,该结果要求用 MsgBox 来输出,则常量字

符串与变量 s 之间要用“&”符号进行连接,并需要利用 Str 函数将数值型变量 s 转换为字符

类型。

【实验步骤】

(1)界面设计。该例由于采用各函数完成输入和输出操作,因此新建窗体后无须界面设

计,直接进行代码设计即可。

(2)代码设计。窗体 Form1 的单击事件代码如下:

Private Sub Form_Click() Dim r As Single, s As Single

r = Val(InputBox("请输入半径:", "输入")) s = 3.1415 * r * r

MsgBox "圆面积为" & Str(s), vbInformation + vbOKOnly, "计算结果" End Sub

(3)运行程序。运行程序时单击窗体,在弹出的对话框中输入 3,如图 5-2 所示,则窗

体上显示的结果如图 5-3 所示。

图 5-2 输入半径 图 5-3 显示结果

【注意】

(1)MsgBox 函数的用法,参考配套教材上涉及到的 MsgBox 函数运用实例。

(2)本例的实现可以采用多种方法,既可以利用文本框、标签等控件,也可以采用各种

输入输出函数或者 Print 方法等,在做完该实验后,可尝试采用其他方法来实现。

2.设计一个简单的水果商店结算程序。

【思路】

本例中需要设计若干文本框用于输入三类水果的单价以及购买的重量,程序中定义若干

变量,分别从这些文本框中获得对应的值,通过计算得到总金额,最后将总金额输出到对应的

标签中。找零的过程类似,结果输出到文本框内。

【实验步骤】

(1)界面设计。双击“工具箱”上的控件按钮,分别向窗体添加 9 个标签控件、8 个文

本框和 3 个命令按钮,注意调整各个控件的大小和位置。界面设计如图 5-4 所示。

(3)

(2)属性设置。在窗体中选择不同的控件,在属性窗口中设置它们的属性。属性设置见

表 5-1。

图 5-4 界面设计 图 5-5 已设置属性的设计界面 表 5-1 属性列表 对象 属性 属性值 作用 Name Label1 Label Caption 单价/斤 Name Label2 Label Caption 重量(斤) Name Label3 Label Caption 香蕉 Name Label4 Label Caption 梨子 Name Label5 Label Caption 苹果 Name Label6 Label Caption 合计: Name Label7 显示总计 Label Caption 空白 Name Label8 Label Caption 实付: Name Label9 Label Caption 找零: Name Text1 输入香蕉单价 TextBox Text 空白 Name Text2 输入梨子单价 TextBox Text 空白

(4)

续表 对象 属性 属性值 作用 Name Text3 输入苹果单价 TextBox Text 空白 Name Text4 输入香蕉重量 TextBox Text 空白 Name Text5 输入梨子重量 TextBox Text 空白 Name Text6 输入苹果重量 TextBox Text 空白 Name Text7 输入实付金额 TextBox Text 空白 Name Text8 显示找零金额 TextBox Text 空白 Name Command1 CommandButton Caption 计算 计算总金额 Name Command2 CommandButton Caption 清空 清空文本框 Name Command3 CommandButton Caption 找零 计算找零

各对象属性设置完成后,设计状态下的窗体如图 5-5 所示。

(3)代码设计。

Command1 按钮实现计算功能,其单击事件代码如下:

Private Sub Command1_Click()

Dim bp As Single, bw As Single 'bp 代表香蕉单价,bw 代表香蕉重量 Dim pp As Single, pw As Single 'pp 代表梨子单价,pw 代表梨子重量 Dim ap As Single, aw As Single 'ap 代表苹果单价,aw 代表苹果重量 Dim suma As Single

bp = Val(Text1) bw = Val(Text4) pp = Val(Text2) pw = Val(Text5) ap = Val(Text3) aw = Val(Text6) '各变量从文本框中获得值 suma = bp * bw + pp * pw + ap * aw '计算总金额 Label7.Caption = suma 'Label7 中显示总金额 End Sub

(5)

Text1 = "" Text2 = "" Text3 = "" Text4 = "" Text5 = "" Text6 = "" Label7.Caption = "" Text7 = "" Text8 = "" End Sub

Command3 按钮实现找零功能,其单击事件代码如下:

Private Sub Command3_Click()

Dim sum As Single, pay As Single, ret As Single sum = Val(Label7.Caption) '获得总金额

pay = Val(Text7) '获得实付 ret = pay - sum '计算找零 Text8 = ret '输出结果 End Sub

(4)运行程序。运行程序时对应输入顾客购买的水果单价及重量,单击“计算”按钮,

就会出现合计的金额;当顾客付款后,在“实付”对应的文本框内输入金额,单击“找零”按

钮,对应文本框中则出现找零金额。单击“清空”按钮,用于清空显示数据的控件,方便下一

次计算。某次结算的运行结果见图 5-1。

3.编写程序将一个 4 位整数反序输出。

【思路】

该程序的算法一般有如下两种:

(1)利用 Mod 函数和“\”运算依次分离出该 4 位整数的千位、百位、十位和个位数字

给 4 个变量,再重新将这 4 个变量组合成反序的 4 位数即可。

(2)将这个 4 位数转换为字符串来处理。利用 Left、Right 和 Mid 函数取它的各位字符,

最后将取出的字符用字符连接符“&”重新组合成反序字符串。

【实验步骤】

(1)界面设计。在窗体上添加 1 个标签和 1 个文本框,Text1 用于输入一个 4 位整数,

反序后的数值利用 Print 方法直接显示在窗体上。注意标签和文本框的位置要稍微偏下,留出

窗体显示的位置。另外设计两个按钮,分别采用算法 1 和算法 2 来解决反序的问题。

(2)属性设置。在窗体中选择不同的控件,在属性窗口中设置它们的属性。属性设置见

表 5-2。

表 5-2 属性列表 对象 属性 属性值 Name Label1 Label Caption 输入一个四位数: Name Text1 TextBox Text 空白

(6)

续表 对象 属性 属性值 Name Command1 CommandButton Caption 反序 1 Name Command2 CommandButton Caption 反序 2

各对象属性设置完成后,设计状态下的窗体如图 5-6 所示。

图 5-6 已设置属性的设计界面

(3)代码设计。

Command1 的单击事件代码如下:

Private Sub Command1_Click() Dim m As Integer, n As Integer

Dim a As Integer, b As Integer, c As Integer, d As Integer m = Val(Text1) a = m \ 1000 '取千位数 b = (m - a * 1000) \ 100 '取百位数 c = (m - a * 1000 - b * 100) \ 10 '取十位数 d = m Mod 10 '取个位数 Print d * 1000 + c * 100 + b * 10 + a '反序输出 End Sub

【注意】

此方法只能解决各位数不为 0 的 4 位数反序,若有某位数为 0,则只能采用 Command2

对应的程序。

Command2 的单击事件代码如下:

Private Sub Command2_Click() Dim n As String

Dim a As String, b As String, c As String, d As String n = Trim(Text1)

a = Left(n, 1) '取千位数 b = Mid(n, 2, 1) '取百位数 c = Mid(n, 3, 1) '取十位数 d = Right(n, 1) '取个位数

(7)

Print d & c & b & a '反序输出 End Sub

(4)运行程序。在文本框内输入任意一个 4 位整数,单击“反序 1”按钮,在窗体上显

示为该 4 位数的反序结果。单击“反序 2”按钮的运行结果与前面显示的结果一致。某次运行

效果如图 5-7 所示。

图 5-7 程序运行界面

四、练习题

1.利用 MsgBox 函数实现如图 5-8 所示的效果。

(a) (b) 图 5-8 运行结果

2.利用文本框输入三角形的三边长度,并对三角形的面积进行计算。

提 示 : 已 知 三 角 形 的 三 边 为 a 、 b 、 c , 计 算 三 角 形 的 面 积 可 以 用 海 伦 公 式 :

s= p (p

a) (p

b) (p

c)

,其中 p=

a

b

c

2

 

3.利用 InputBox 函数输入参数 a、b、c,计算二次方程 aX

2

+bX+c=0 的两个根(仅考

虑有实根的情况)。

參考文獻

相關文件

通过 HSK(二级)的考生可以用汉语就熟悉的日常话题进行简单而直接的 交流,达到初级汉语优等水平。..

通过 HSK(二级)的考生可以用汉语就熟悉的日常话题进行简单而直接的 交流,达到初级汉语优等水平。..

通过 HSK(二级)的考生可以用汉语就熟悉的日常话题进行简单而直接的 交流,达到初级汉语优等水平。..

C-C-6 用一般語言及數學語言說明解題的過程 C-C-8 能尊重他人解決數學問題的多元想法 C-E-4 能評析解法的優缺點.

微积分的创立是数学发展中的里程碑, 它的发展 和广泛应用开启了向近代数学过渡的新时期, 为研究 变量和函数提供了重要的方法和手段. 运动物体的瞬

下面我们将用 这一点将一元函数的 Taylor 展开推广到多元函数.. 我们希望借助此给出多元函数

3.正弦函数y=Asin(ωx+φ)的图象之间的变换关系是学生最熟悉的一种伸缩变换.教 材从学生最熟悉的这一内容入手 ,分别比较了函数y=sin2x 和y=sinx 的图象之间的关

是偏振光。 光的偏振现象应用很广,如汽车夜间行车时,为了避免 对方汽车的灯光晃眼以保证行车安全,可以在所有汽车的车窗玻 璃和车灯前装上与水平方向成