大学计算机基础实验指导教程电子版

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录
实验一熟悉Visual Basic 6.0编程环境 ....................................................................... 实验二Visual Basic语句基础 ............................................................................................ 实验三顺序结构 . (23)
实验四选择结构(一) ..................................................................................................... 实验五选择结构(二) ..................................................................................................... 实验六循环结构(一) ..................................................................................................... 实验七循环结构(二) ..................................................................................................... 实验八循环结构(三) ..................................................................................................... 实验九循环结构(四) ..................................................................................................... 实验十一维数组程序设计 ................................................................................................. 实验十一二维数组程序设计 ............................................................................................. 实验十二控件数组和自定义数组程序设计 ..................................................................... 实验十三过程程序设计(一) ......................................................................................... 实验十四过程程序设计(二) ......................................................................................... 实验十五窗体和常用控件(一) ..................................................................................... 实验十六窗体和常用控件(二) ..................................................................................... 实验十七窗体和常用控件(三) ..................................................................................... 实验十八用户界面设计(一) ......................................................................................... 实验十九用户界面设计(二) ......................................................................................... 实验二十用户界面设计(三) ....................................................................................... 实验二十一图形操作 .........................................................................................................
实验一熟悉Visual Basic 6.0编程环境
【实验目的】
(1)熟悉VB集成开发环境。

(2)掌握建立、编辑和运行一个VB应用程序的全过程。

(3)掌握窗体、文本框、标签和命令按钮控件的基本属性及其设置。

(4)掌握窗体、文本框、标签和命令按钮的应用。

(5)掌握每个控件的常用事件和方法。

【实验内容】
用事例介绍在VB集成环境下操作的整个过程。

【1-1】用VB设计一个应用程序,完成以下功能。

(1)单击“文字”命令按钮,显示出红色文字“面向对象的程序设计语言——VB”,如图1-4所示。

(2)单击“计算”命令按钮,计算并显示该门课程的学时,如图1-5所示。

(3)“文字”命令按钮和“计算”命令按钮可以多次使用。

(4)单击“结束”命令按钮,则结束程序的运行。

操作步骤:
(1)启动VB后,出现如图1-1所示的界面。

在“新建工程”对话框中,在默认选项下,直接单击“打开”按钮,新建一个窗体Form1,如图1-2所示。

图1-1 Microsoft Basic 6.0中文版的启动界面
工具箱窗体
代码窗口
立即窗口工程资源管理窗口
属性窗口
窗口布局
图1-2 VB窗口的布局
(2)单击工具箱中的控件,在窗体设计窗口中添加一个标签和3个命令按钮,如图1-3所示。

图1-3 应用程序界面
(3)设置每个对象(控件)的属性如表1-1。

表1-1 窗体及各控件属性值设置
(4)输入代码
代码又称为命令或者语句。

◆双击“文字”按钮,进入代码窗口。

Private Sub Command1_Click() ‘Command1的Click(单击)事件过程
Form1.Cls
Label1.Caption = "面向对象程序设计--VB"
End Sub
说明:
Form1表示窗体这个对象。

Cls是一个方法,功能是清除。

因为“文字”和“计算”两个命令按钮允许多次使用,为了不使结果在窗口上重复显示,用Form1.Cls方法,清屏。

1-4 单击“文字”命令按钮以下几个
◆双击“计算”按钮,进入代码窗口。

Private Sub Command2_Click()
Form1.Cls
Label1.Caption = ""
Print ‘输出一空行
Print Spc(6); "VB程序设计课程学时数为:" & 4 * 16 & "学时"
End Sub
1-5 运行“计算”命令按钮运行结果界面
双击Command3(结束)按钮,进入代码窗口
Private Sub Command3_Click()
End
End Sub
(5)保存过程
选择“文件”菜单中的“保存过程”命令,先保存窗体文件,然后保存过程文件。

或使用标准工具栏上的“保存”按钮。

单击“标准”工具栏中的“保存工程”按钮 ,系统将打开“文件另存为”对话框,主要保存类型,保存窗体文件(*.frm)到指定文件夹中。

窗体文件存盘后系统会弹出“工程另存为”对话框,保存类型为工程文件(*.vbp),默认工程文件名为“工程
1.vpb”,保存工程文件到指定文件夹中。

工程文件保存后,随后弹出“Source Code Control”消息框,询问是否把当前工程添加到微软的版本管理器中,单击“No”按钮即可。

如果计算机上没有安装Visual Source Safe则不会出现“Source Code Control”消息框。

注意:由于一个工程可能会有多种文件,如工程文件和窗体文件,这些文件集合在一起才能构成应用程序。

因此,建议在保存工程时将同一工程所有类型的文件存放在同一文件夹中,以便修改和管理工程文件。

保存VB工程文件的默认路径是VB98。

(6)运行程序
单击“标准”工具栏中的“启动”按钮 (或直接按F5功能键)。

反复按三个命令按钮,观察程序运行结果界面。

(7)生成可执行文件
选择“文件”菜单中的“生成工程1.exe”命令,在打开的“生成工程”对话框中使用“工程1.exe”文件名,则工程就编译成可脱离VB环境的EXE文件。

注意:窗体的MDIChild属性设置为False。

否则,无法运行。

(8)完整的源程序文件如下:
Private Sub Command1_Click()
Form1.Cls
Label1.Caption = "面向对象程序设计--VB"
End Sub
Private Sub Command2_Click()
Form1.Cls
Label1.Caption = ""
Print
Print Spc(6); "VB程序设计课程学时数为:" & 4 * 16 & "学时"
End Sub
Private Sub Command3_Click()
End
End Sub
【1-2】通过窗体的Caption(标题)、MaxButton(最大化按钮)和MinButton(最小化按钮)等属性设置,了解窗体属性设置的一般方法,运行结果如图1-6所示。

图1-6 运行结果
操作步骤:
(1)在属性列表中单击Caption属性,在文本框中输入标题“我的第一个窗体”。

(2)在属性列表中单击MaxButton属性,在属性值中选择False(用户也可双击改变该属性)。

(3)同样,在属性列表中单击MixButton属性,在属性值中选择False.
(4)单击“标准”工具栏中的“启动”按钮 (或直接按F5功能键),运行该程序。

从运行结果图1-1看到应用程序窗口中没有最大化和最小化按钮。

【1-3】按以下操作步骤,利用标签创建如图1-7所示的“宿舍管理系统”界面的窗体。

图1-7 标签使用事例运行结果界面
操作步骤:
(1)创建一个新工程,在窗体中,使用控件工具箱中的“标签”按钮,分别创建3个标签控件。

按住Ctrl键同时按工具箱中的“标签”按钮,在窗口中可以拖曳无数个标签。

按ESC 键取消。

(2)在属性窗口中,分别为窗体和控件设置如表1-2所示的属性值。

(3)按F5功能键,启动该程序,观察运行效果。

表1-2 窗体及各控件属性值设置
【1-4】利用命令按钮,创建如图1-8所示的应用程序。

窗体中有4个命令按钮,分别实现以下功能。

● 窗体运行时,自动居中,且命令按钮Command2(白色)不可用。

● 单击命令按钮Command1(红色)时,要求改变窗口背景颜色为红色,且命令按钮Command3(图形按钮)不可用,其它命令按钮可用。

● 单击命令按钮Command2时,要求改变窗口背景颜色为白色,且命令按钮Command1、命令按钮Command3(图形按钮)和命令按钮Command4可用。

● 当单击命令按钮
Command3时,窗体标题处显示单击该按钮的次数。


单击命令按钮Command4(退出)时,退出窗体程序。

图1-8运行结果界面
操作步骤:
(1)新建一工程,在窗体中添加4个命令按钮。

调整各控件的相互位置,窗体对象各属性如表1-2所示。

表1-3 窗体及控件属性值的设置
(2)在“窗体布局”窗口中,单击鼠标右键,依次选择快捷菜单中的“启动位置”——“屏幕中心”命令,可设置程序执行时窗口在屏幕中央的位置,如图1-9所示(或在“窗体布局”窗口中直接将窗体移动到中央)。

图1-9 “窗口布局”窗口和快捷菜单
(3)各命令按钮的事件代码如下。

◆在事件代码编辑窗口中,在“对象”列表框选择“通用”选项,定义一个模块
级变量sss,用于存储单击按钮的次数:
Dim sss As Integer '定义一个模块级变量,用于存储单击按钮的次数
◆窗体Form1的Load的事件代码为:
Private Sub Form_Load()
‘或Command2.Enabled = False
End Sub
◆命令按钮Command1的Click事件代码为:
Private Sub Command1_Click()
form1.BackColor = RGB(255, 0, 0) ‘设置窗体颜色为红色
Command1.Enabled = False ‘命令按钮Command1不可用
Command2.Enabled = True ‘命令按钮Command2可用
Command3.Enabled = False
Command4.Enabled = True
End Sub
◆命令按钮Command2的Click事件代码为:
Private Sub Command2_Click()
BackColor = vbWhite ‘设置窗体颜色为白色
Command1.Enabled = True
Command3.Enabled = True
Command4.Enabled = True
End Sub
◆命令按钮Command3的Click事件代码为:
Private Sub Command3_Click()
sss = sss + 1
Form1.Caption = "你本次是第" & Trim(Str(sss)) & "次按下此按钮"
‘trim函数的功能:将字符串的前导空格和尾随空格都除去
‘str函数的功能:将数值转换为字符串
End Sub
◆命令按钮Command4的Click事件代码为:
Private Sub Command4_Click()
End
End Sub
(4)完整的源程序如下:
Dim sss As Integer '定义一个模块级变量,用于存储单击按钮的次数
Private Sub Form_Load()
End Sub
Private Sub Command1_Click()
Form1.BackColor = RGB(255, 0, 0)
Command1.Enabled = False '命令按钮Command1不可用
Command2.Enabled = True '命令按钮Command2可用
Command3.Enabled = False
Command4.Enabled = True
End Sub
Private Sub Command2_Click()
BackColor = vbWhite '设置窗体颜色为白色
Command1.Enabled = True
Command3.Enabled = True
Command4.Enabled = True
End Sub
Private Sub Command3_Click()
sss = sss + 1
Form1.Caption = "你本次是第" & Trim(Str(sss)) & "次按下此按钮"
'trim函数的功能:将字符串的前导空格和尾随空格都除去
'str函数的功能:将数值转换为字符串
End Sub
Private Sub Command4_Click()
End
End Sub
【1-5】在窗体上建立两个命令按钮和一个文本框,一个命令按钮放大文本框内的文字,另一个命令按钮缩小文本框内的文字,运行结果界面如图1-10所示。

窗体及控件属性值的设置如表1-4所示。

图1-10 运行界面
表1-4 窗体及控件属性值的设置
操作步骤:
(1)在窗体上画一个文本框和两个命令按钮。

(2)设置控件属性。

(3)将改变字体的代码分别写入两个命令按钮的单击事件过程中。

Private Sub Command1_Click()
Text1.FontSize = 30
End Sub
Private Sub Command2_Click()
Text1.FontSize = 18
End Sub
【作业】
(1)在窗体上使用标签控件显示文字“VB程序设计”,通过属性窗口完成设置,要求:字体为黑色、28号,前景色为红色,标签能自动调整大小,背景透明并带有边框,效果如图1-11所示。

图1-11 设置标签属性及其效果
(2)编写一个实现英文字母大小写自动转换的程序,运行结果如图1-12所示。

要求边输入边转换,对英文字母进行大小写转换,其余字符保留原样。

控件中的属性参照图1-12进行设置,部分属性分别如下:
Label1标签:Font属性为“宋体、小四号”
Label2标签:Font属性为“黑体、小四号”
Text1和Text2文本框:Text属性为空,Multiline为True,ScrollBars为
“2-Vertical”。

因为要求实现边输入边转换功能,所以就要对文本框Text1的Keypress事件进行编辑。

图1-12 运行结果界面
源程序:
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim x As String * 1, y As String * 1
x = Chr(KeyAscii) ‘Chr函数的功能:将Ascii值转换为相应的字母
y = Chr(KeyAscii)
If x >= "A" And x <= "z" Then y = Chr(KeyAscii + 32)
If x >= "a" And x <= "z" Then y = Chr(KeyAscii - 32)
Text2.Text = Text2.Text + y
End Sub
(3)“数学计算”程序。

在窗体上添加两个命令按钮Command1、Command2、3个文本框和3个标签,要求单击Command1按钮可以清除3个文本框的文字,单击Command2按钮可以根据在Text1中输入的半径,计算出周长、面积并显示到Text2、Text3中。

运行结果如图1-13所示。

控件中的属性参照图1-12进行设置,部分属性分别如下:窗体内各控件字体:Font属性为“粗体、小四号”
Text2、Text3文本框的Locked属性均设置为True。

图1-13 运行结果界面
源程序:
Private Sub Command1_Click()
Text1.Text = "" ‘清空文本框内容
Text2.Text = ""
Text3.Text = ""
End Sub
Private Sub Command2_Click()
Text2.Text = 2 * 3.14 * Val(Text1.Text) 'Val函数将字符串转换为数值
Text3.Text = 3.14 * Val(Text1.Text) ^ 2
End Sub
实验二Visual Basic语句基础
【实验目的】
(1)掌握变量的数据类型定义、赋值、表达式和内部函数的应用。

(2)进一步了解窗体(Form)、命令按钮(CommandButton)、标签(Label)、文本框(TextBox)的使用。

【实验内容】
1、尝试编写下列程序
【2-1】设计一个能实现计算《大学计算机基础》课程期末综合成绩的简单程序,综合成绩=平时成绩×20%+考试成绩×80%。

2-1 运行结果界面
Option Explicit '强制变量显式定义
Private Sub Command1_Click()
Dim zonghe As Single, ps As Single, ks As Single '变量定义
Dim xm As String
xm = Text1.Text '数据输入
ks = Val(Text2.Text)
ps = Val(Text3)
zonghe = ks * 0.8 + ps * 0.2 '数据的运算处理
Label4.Caption = xm & "的综合成绩是" & zonghe & "分"
End Sub
【2-2】设有变量x%和y%,随机产生两个[1,10]之间的数,计算x/y和x\y的值,试设计一个简单的窗体。

窗体装入界面如图2-2-1所示,运行结果界面如图2-2-2所示。

2-2-1 窗体装入界面 2-2-2 窗体运行结果界面
源程序:
Dim x%, y% '在“通用”状态下定义模块变量,供几个过程使用Private Sub Form_Load()
x = Int(Rnd * 10 + 1) '产生[1,10]之间的数
Text1.Text = Str(x) 'str函数,将数值型数据转换为字符型
y = Int(Rnd * 10 + 1)
Text2.Text = Str(y)
Text3.Text = "" '清除文本框内容
Text4.Text = ""
End Sub
Private Sub Command1_Click()
Text3.Text = x / y
Text4.Text = x \ y
End Sub
Private Sub Command2_Click()
Text3.Text = ""
Text4.Text = ""
Text1.SetFocus '文本框text1重新获得焦点
Text2.SetFocus
Randomize '每次产生的随机数不同
x = Int(Rnd * 10 + 1)
Text1.Text = Str(x)
y = Int(Rnd * 10 + 1)
Text2.Text = Str(y)
End Sub
Private Sub Command3_Click()
End
End Sub
【2-3】随机产生一个3位的整数,然后逆序输出,要求产生的数与逆序数都显示。

窗体设计界面如图2-3-1所示。

运行结果界面如图2-3-2所示。

2-3-1 窗体设计界面 2-3-2 运行结果界面
源程序:方法一
Option Explicit '强制变量显式定义
Dim a As Integer
Private Sub Command1_Click()
a = Int(Rnd * 900 + 100)
Text1.Text = a '或Text1.Text =str(a)
Text2.Text = ""
End Sub
Private Sub Command2_Click()
Dim b As Integer, a1%, a2%, a3%
a1 = a \ 100
a2 = a \ 10 Mod 10
a3 = a Mod 10
b = a3 * 100 + a2 * 10 + a1 '如果a3为0,则不准确
Text2.Text = Str(b)
End Sub
源程序:方法二
Option Explicit '强制变量显式定义
Dim a As Integer
Private Sub Command1_Click()
a = Int(Rnd * 900 + 100)
Text1.Text = a '或Text1.Text =str(a)
Text2.Text = ""
End Sub
Private Sub Command2_Click()
Dim b As String, a1$, a2$, a3$, s$
s = Trim(Str(a)) '将整型值转换为字符串型再去掉前后的空格
a1 = Left(s, 1)
a2 = Mid(s, 2, 1)
a3 = Right(s, 1)
b = a3 & a2 & a1
Text2.Text = b
End Sub
【2-4】任意输入一个字母,分别以大写字母和小写字母形式显示。

运行结果界面如图2-4所示。

图2-4 运行结果界面
源程序:
Private Sub Form_Load()
Text1.MaxLength = 1 ‘文本框可以输入字符的最大数
Text1.Text = "": Text2.Text = "": Text3.Text = ""
End Sub
Private Sub Command1_Click()
Dim s As String * 1
s = Text1.Text
Text2.Text = UCase(s) ‘小写字母转换为大写字母
Text3.Text = LCase(s)
End Sub
Private Sub Command2_Click()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text1.SetFocus
End Sub
Private Sub Command3_Click()
End
End Sub
【2-5】(选作)制作一个倒计时牌,计算当前到暑假所剩下的时间,并将时间分别以天、周、月等为单位显示。

运行结果如图2-5所示。

2-5 运行结果界面
提示:计算两个时间之差可以使用DateDiff()函数。

形式:DateDiff(间隔日期形式,日期1,日期2)。

其中:间隔日期形式有“d”、“w”、“m”等,分别表示以天、周、月等作为单位。

函数返回值为:日期2-日期1
源程序:
Dim tim As Date
Private Sub Form_Load()
Text1.Text = "2012"
Text2.Text = "7"
Text3.Text = "20": Text4.Text = ""
tim = Text1.Text & "," & Text2.Text & "," & Text3.Text
End Sub
Private Sub Command1_Click()
tim = Text1.Text & "," & Text2.Text & "," & Text3.Text
Text4.Text = DateDiff("d", Now, tim)
End Sub
Private Sub Command2_Click()
Text4.Text = DateDiff("w", Now, tim)
End Sub
Private Sub Command3_Click()
Text4.Text = DateDiff("m", Now, tim)
End Sub
【2-6】(选作)假设某电话系统按秒计费(0.02元/秒),编程实现其通话计费程序。

要求能够显示通话开始时间、通话结束时间、通话时间以及通话费。

窗体设计界面如图
2-6-1所示,运行结果界面如图2-6-2所示。

2-6-1 窗体设计界面 2-6-2 运行结果界面
源程序:
Rem 在代码窗口选择“通用”,声明几个模块级变量供几个事件过程共同使用
Dim t1 As Date, t2 As Date, t3 As Date
Rem 按钮Command1的Click事件(通话开始)过程代码:
Private Sub Command1_Click()
t1 = Time '读取通话开始时间,并存入变量t1中
Text1.Text = t1 '显示通话开始时间
Text2.Text = "" '将文本框内容清空
Text4.Text = ""
End Sub
2、填空题
(1) 设有变量x=35,y=20,试设计一个如图所示的窗体界面2-7-1、2-7-22-7-3,显示相应的值。

2-7-1窗体界面图形
2-7-2窗体装入结果图
2-7-3计算结果图
源程序:
Private Sub Form_Load()
_______【1】________
End Sub
Private Sub Command1_Click()
Dim x _____【2】________
x = 35
y = 20
Text1.Text = x > y
Text2.Text = x >= y
Text3.Text = x = y
______【3】_____
End Sub
Private Sub Command2_Click()
_____【4】______
End Sub
(2)输入圆半径,计算圆面积。

运行结果如图2-8所示。

2-8运行结果界面
源程序:
Private Sub Form_Load()
Text1.Text = ""
Text2.Text = ""
End Sub
Private Sub Command1_Click()
Dim r As Single, area As Single
Const pi ____【1】_____
area = r * r * pi
Text2.Text = Str(area) End Sub
Private Sub Command3_Click() End
End Sub
实验三顺序结构
【实验目的】
(1)掌握顺序结构程序执行方式。

(2)掌握InputBox()和MsgBox()函数的使用方法。

(3)掌握Print方法以及与之相关的函数的使用方法。

【实验内容】
1、尝试编写下列程序
【3-1】设有如下的人员名册:
姓名年龄职务单位籍贯
李爽25 科长劳资科辽宁
赵旭40 处长科研处上海
编程序显示上面的表格(不显示横线)。

输出结果如图3-1所示。

3-1 运行结果界面
源程序:
Private Sub Form_Click()
Print: Print
FontName = "华文新魏" '字体类型
FontSize = 18 '字体大小
Print Tab(20); "人员", "名单" '用逗号分隔
Print
FontName = "隶书" '字体类型
FontSize = 16 '字体大小
Print Spc(5); "姓名"; Tab(14); "年龄"; Tab(23); "职务"; '一个汉字占两个字节Print Tab(32); "单位"; Tab(40); "籍贯"
Print
Print
Print Space$(5) & "李爽"; Spc(4); "科长"; Tab(23); "25"; Spc(6); "劳资科";
Print Space$(3) & "辽宁"
End Sub
【3-2】从键盘上输入4个数,编写程序,计算并输出这4个数的和及平均值。

通过InputBox函数输入数据,在窗体上显示和及平均值。

运行结果如图3-2所示。

3-2 运行结果界面
源程序:
Private Sub Form_Click()
Dim a%, b%, c%, d%, sum%, aver!
a = InputBox("输入第一个数")
a = Val(a)
b = InputBox("输入第二个数")
b = Val(b)
c = InputBox("输入第三个数")
c = Val(c)
d = InputBox("输入第四个数")
d = Val(d)
sum = a + b + c + d: aver = sum / 4
Print "所输入的4个数分别为:"; a, b, c, d
Print "4个数的和为:"; sum
Print "4个数的平均值为:"; aver
End Sub
【3-3】用InputBox函数替代文本框实现【2-1】中的“考试姓名”、“考试成绩”和“平时成绩”数据的输入,本题的功能与【2-1】相同。

程序运行结果如图3-3-4所示,其中包括一个PictureBox和一个Command。

该工程项目的名称为“3-3”。

3-3-1 “考生姓名输入框”对话框
3-3-2 “考生成绩输入框”对话框
3-3-3 “考试成绩输入框”对话框
3-3-4 运行结果界面
源程序:
Option Explicit '强制显示声明
Private Sub Command1_Click()
Dim zonghe As Single, ps As Single, ks As Single
Dim xm As String, strs1 As String, strs2$
strs1 = "请输入考生姓名" + Chr(13) + Chr(10) + "然后单击确定"
'Chr(13) + Chr(10)回车换行
strs2 = "请输入考试成绩" + Chr(13) + Chr(10) + "然后单击确定"
xm = InputBox(strs1, "考生姓名输入框", "王晓明", 100, 100)
ps = Val(InputBox(strs2, "考试成绩输入框", "90", , 400))
ks = Val(InputBox("请输入平时成绩", , , 300, 200))
zonghe = ps * 0.2 + ks * 0.8
Picture1.Print Tab(5); "姓名:"; xm
Picture1.Print "考试成绩:"; ks
Picture1.Print "平时成绩:"; ps
Picture1.Print xm & "的综合成绩是:" & zonghe & "分"
End Sub
【3-4】输入矩形的长和宽,然后输出矩形的面积。

要求采用InputBox函数和MsgBox函数结合的方式进行输入和输出。

运行结果界面如图3-4所示。

3-4 运行结果界面
源程序:
Private Sub Command1_Click()
Dim x As Integer, y As Integer, area As Integer
x = Val(InputBox("给变量x赋值"))
y = Val(InputBox("给变量y赋值"))
area = x * y
MsgBox "矩形的面积是:" & area
End Sub
2.填空题
(1)写出下面事件过程测试数据的格式化输出___【1】_____。

源程序:
Private Sub Form_Click()
Print Spc(10); Format(23456, "########"),
Print Spc(10); Format(23456, "00000000")
Print
Print Spc(10); Format(234.56, "0000.00"),
Print Spc(10); Format(234.567, "####.##")
Print
Print Spc(10); Format(12345.67, "###,##"), '不输出小数
Print Spc(10); Format(12345.67, "####,#.#")
'千位分隔符不可以放在小数点和第一个字符的前面
Print
Print Spc(10); Format(12345.67, "####,0.0"),
Print Spc(10); Format(123.4, "$###.00") '在数值前加$
Print
Print Spc(10); Format(123.4, "-0000.##"), '在数值前加“-”号,注意输出时小数位数Print Spc(10); Format(0.123, "0.00%") '数值以百分数形式显示
Print
Print Spc(10); Format(12345.6, "0.00e+00") '数值以指数形式表示
Print Format(123); Format(123) '比较这两行输出结果
Print Str(123); Str(123)
End Sub
(2)在运行下面程序时,先后在两个输入对话框中输入456和123,则输出结果及数据类型是_____【1】______
源程序:
Private Sub Form_Click()
a = InputBox("输入第一个数")
b = InputBox("输入第二个数")
Print a + b
End Sub
(3)假定有如下窗体事件过程,程序运行后,信息框标题栏中显示的信息是__【1】____ Private Sub Command1_Click()
a$ = "Microsoft Visual Basic"
b$ = Right(a$, 5)
c$ = Mid(a$, 1, 9)
MsgBox a$, 34, b$, c$, 5
End Sub
实验四选择结构(一)
【实验目的】
(1)掌握单分支与双分支条件语句的使用方法。

(2)掌握多分支条件语句的使用方法。

【实验内容】
1、尝试编写下列程序
【4-1】编写一个程序,程序初始界面如图4-1-1所示。

程序运行时,单击“开始”按钮,弹出如图4-1-2所示的对话框,要求用户任意输入一个整数,程序自动判断其奇偶性,程序运行时,界面如图4-1-3所示。

图4-1-1 程序初始界面图4-1-2 “数据输入”对话框
图4-1-3 程序运行结果
源程序:
Private Sub Command1_Click()
Dim a%, s$
a = Val(InputBox("请输入一个整数", "数据输入")) '可以省略Val函数
If a / 2 = a \ 2 Then '或a/2=int(a/2) 或a mod 2=0
s = "整数" & a & "是偶数"
MsgBox s, 65, "奇偶数判断" '65=1+64,即显示“确定”、“取消”按钮和消息图标Else
MsgBox "整数" & a & "是奇数", 65, "奇偶数判断"
End If
End Sub
【4-2】任意输入两个数,从大到小输出。

运行结果界面如图4-2所示。

图 4-2 运行结果界面
源程序:
Private Sub Form_Load()
Text1.Text = "" '文本框内容清空
Text2.Text = "": Text3.Text = ""
End Sub
Private Sub Command1_Click()
Dim x%, y%, t%
Text3.Text = "" '再次判断另外一组数时,将文本框中原有的内容清空
x = Val(Text1.Text) '将文本框中输入的字符转换为数值赋给x变量
y = Val(Text2.Text)
If x < y Then t = x: x = y: y = t '两个变量内容交换
Text3.Text = "x=" & x & "," & "y=" & y
End Sub
【4-3】任意输入3个数,比较其大小,并输出其中最大值。

执行结果界面如图4-3。

图 4-3 运行结果界面
源程序:方法一
Private Sub Form_Load()
Text1.Text = "": Text2.Text = "": Text3.Text = "": Text4.Text = ""
End Sub
Private Sub Command1_Click()
Dim a%, b%, c%, max%
a = Val(Text1.Text) '将文本框中输入的字符转换为数值赋给a变量
b = Val(Text2.Text)
c = Val(Text3.Text)
If a > b Then
max = a
Else
max = b
End If
If c > max Then max = c
Text4.Text = Str(max)
End Sub
源程序:方法二
Private Sub Form_Load()
Text1.Text = "": Text2.Text = "": Text3.Text = "": Text4.Text = ""
End Sub
Private Sub Command1_Click()
Dim a%, b%, c%, max%
a = Val(Text1.Text) '将文本框中输入的字符转换为数值赋给a变量
b = Val(Text2.Text)
c = Val(Text3.Text)
max=IIf( a > b,a,b)
max=IIf( c > max ,c, max)
Text4.Text = Str(max)
End Sub
【4-4】字符分类,输入一个字符,判断输入的字符属于哪一类别,并在相应的文本框中显示。

要限制文本框中只输入长度为1的字符。

运行结果界面如图4-4所示。

图4-4 字符分类运行界面
源程序:
Private Sub Form_Load()
Text1.Text = "" '文本框内容清空
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text1.MaxLength = 1 '文本框中输入长度为1的字符
End Sub
Private Sub Command1_Click()
Dim s$
Text2.Text = "" '再次判断另外一个字符时,将文本框中原有的内容清空
Text3.Text = ""
Text4.Text = ""
s = Text1.Text '将文本框中输入的字符赋给s 变量
If s >= "a" And s <= "z" Or s >= "A" And s <= "Z" Then
Text2.Text = s
ElseIf s >= "0" And s <= "9" Then
Text3.Text = s
Else
Text4.Text = s
End If
End Sub
2、程序填空
(1)在购买某物品时,若所花的钱数x 在下述范围内,所付钱数y 按对应折扣支付如下:
x, x<1000
0.9x, 1000≤x<2000
0.8x, 2000≤x<3000
0.7x, x ≥3000
输入顾客的购物金额,计算并显示顾客的实际应付金额。

运行结果界面如图4-5所示。

图4-5 运行结果界面
源程序:方法一
Private Sub Form_Load()
Text1.Text = "": Text2.Text = ""
y=
End Sub
Private Sub Command1_Click()
Dim x!, y!
x = Val(Text1.Text) '将文本框中输入的字符转换为数值赋给a变量
If x < 1000 Then
y = x
ElseIf x < 2000 Then
y = 0.9 * x
ElseIf x < 3000 Then
y = 0.8 * x
Else
y = 0.7 * x
End If
Text2.Text =str(y)
End Sub
源程序:方法二
Private Sub Form_Load()
Text1.Text = "": Text2.Text = ""
End Sub
Private Sub Command1_Click()
Dim x!, y!
x = Val(Text1.Text) '将文本框中输入的字符转换为数值赋给a变量
If x < 1000 Then
y = x
ElseIf____【1】_____Then
y = 0.9 * x
ElseIf ____【2】____ Then
y = 0.8 * x
Else
y = 0.7 * x
End If
Text2.Text = y
End Sub
(2)利用InputBox()函数输入三角形三条边的长度a,b,c,如果能构成三角形,计算并显示三角形的面积。

双击窗体,编写窗体的Click事件过程代码:
Private Sub Form_Click()
Dim a As Single, b As Single, c As Single
Dim s As Single, area As Single
a = Val(InputBox("请输入边长a:"))
b = Val(InputBox("请输入边长b:"))
c = Val(InputBox("请输入边长c:"))
If _____【1】_________ Then
s = (a + b + c) / 2
area = ______【2】_________
Print Tab(5); "a"; Tab(13); "b"; Tab(21); "c"; Tab(29); "area"
Print Tab(4); a; Tab(12); b; Tab(20); c; Tab(28); area
Else
Print "不能构成三角形"
End If
End Sub
(3)输入一个年份,判断它是否为闰年,并显示是否是闰年的有关信息。

判断闰年的条件是:年份能被4整除但不能被100整除,或者能被400整除。

源程序:
Private Sub Command1_Click()
Dim y%
y = InputBox("任意输入一个年份")
If _____【1】______ Or y Mod 4 = 0 Then
MsgBox y & "年是闰年", 64
Else
MsgBox y & "年是平年", 48
End If
End Sub
实验五选择结构(二)
【实验目的】
(1)掌握Select Case语句的使用方法。

(2)掌握Select Case语句与多分支条件语句的区别。

【实验内容】
1、尝试编写下列程序
【5-1】将实验四填空1第一种方法使用Select Case/End Select来完成。

源程序:
Private Sub Form_Load()
Text1.Text = "": Text2.Text = ""
End Sub
Private Sub Command1_Click()
Dim x!, y!
x = Val(Text1.Text) '将文本框中输入的字符转换为数值赋给a变量
Select Case x
Case Is < 1000
y = x
Case Is < 2000
y = 0.9 * x
Case Is < 3000
y = 0.8 * x
Case Else
y = 0.7 * x
End Select
Text2.Text = y
End Sub
【5-2】从键盘上输入一个字母或一个0~9的数字,编写程序对其进行分类。

运行界面如图5-1所示。

5-1 运行结果界面
源程序:
Private Sub Command1_Click()
Dim mg
Cls '再次输入数据前,清除原来显示的结果
mg = InputBox("输入一个字符")
Select Case mg
Case "a" To "z"
Print "输入的是一个小写字母" & mg
Case "A" To "Z"
Print "输入的是一个大写字母" & mg
Case "0" To "9"
Print "输入的是一个数字" & mg
End Select
End Sub
【5-3】利用Select Case 语句计算分段函数。

(试着再用If 语句完成)
x 2+3x+2,x>20
y= 201023≤≤-x ,x
运行界面如图5-2所示。

5-2 运行界面
源程序:
Private Sub Command1_Click()
Dim x!, y!
x = Val(Text1.Text)
Select Case x
Case Is > 20
y = x * x + 3 * x + 2
Case is>=10 , is<= 20
y = Sqr(3 * x) - 2
Case else
y = 1 / x + Abs(x)
End Select
MsgBox ("y=" & y)
End Sub
【5-4】任意输入一个月份,根据月份来判断是什么季节。

运行结果界面如图5-3所示。

5-3 运行结果界面
源程序:
Private Sub Form_Click()
Dim mm%
mm = InputBox("输入月份")
Select Case mm
Case 3, 4, 5
Print mm & "月份是春季"
Case 6 To 8
Print mm & "月份是夏季"
Case 9 To 11
Print mm & "月份是秋季"
Case 12, 1, 2 '注意这里不能写成12 to 2
Print mm & "月份是冬季"
End Select
End Sub
【5-5】编写一个计算器,程序运行结果界面如图5-4所示。

5-4 程序运行结果界面
源程序:
Private Sub Form_Load()
Text1.Text = "": Text2.Text = "": Text3.Text = "": Text4.Text = "" End Sub
Private Sub Command1_Click()
Dim x As Single, y As Single
x = Val(Text1.Text)
y = Val(Text2.Text)
Select Case Trim(Text3.Text)
Case "+"
Text4.Text = Str(x + y)
Case "-"
Text4.Text = Str(x - y)
Case "*"
Text4.Text = Str(x * y)
Case "/"
If y <> 0 Then
Text4.Text = Str(x / y)
Else
MsgBox "分母为零,出错!", vbRetryCancel
Text2.Text = ""
Text2.SetFocus
End If
Case Else
MsgBox "运算符输入有错误,请重新输入", vbRetryCancel
Text3.Text = ""
Text3.SetFocus
End Select
End Sub
Private Sub Command2_Click()
Text1.Text = "": Text2.Text = "": Text3.Text = "": Text4.Text = ""
End Sub
Private Sub Command3_Click()
End '退出程序
End Sub
2、程序填空
(1)根据输入的学生成绩,判断其成绩等级:100~90分为优秀,89~80分为良好,79~70分成绩为中等,69~60分成绩为及格,60分以下成绩为不及格。

运行结果界面如图5-5所示。

图5-5运行结果界面
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim s%
s = Val(Text1.Text)
If KeyAscii = 13 Then '判断是否按回车
If s >= 90 Then
Label3.Caption = "成绩优秀"
ElseIf s >= 80 Then
Label3.Caption = "成绩良好"
ElseIf s >= 70 Then
Label3.Caption = "成绩中等"
ElseIf s >= 60 Then
Label3.Caption = "成绩及格"
Else
Label3.Caption = "成绩不及格"
End If
End If
End Sub
下面用Select Case结构改写上述程序,实现同样的功能。

Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim s%
s = Val(Text1.Text)
If KeyAscii = 13 Then '判断是否按回车
Select Case s
Case____【1】_____>= 90
Label3.Caption = "成绩优秀"
Case 80 to 89
Label3.Caption = "成绩良好"
Case 70 to 79
Label3.Caption = "成绩中等"
Case _____【2】_______>= 60
Label3.Caption = "成绩及格"
Case Else
Label3.Caption = "成绩不及格"
End Select
End If
End Sub
(2)边输入字母,边分别统计元音字母和其他字母的个数,直到按下Enter键结束,并显示统计结果,不区分字母大小写。

运行结果界面如下图5-6所示。

其中X存放元音字母个数,Y存放其他字母个数。

图5-6运行结果界面
Dim x%, y% '定义全局变量
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim c As String * 1
c = UCase(Chr(KeyAscii)) 'Chr(KeyAscii)功能为;将KeyAscii转换为字符
If c >= "A" And c <= "Z" Then
Select Case c
Case ___【1】____
x = x + 1
Case ____【2】______
y = y + 1
End Select
End If
If ____【3】_____ Then '如果输入的是Enter
Print "元音字母有:"; x; "个"
Print "其它字母有:"; y; "个"
End If
End Sub。

相关文档
最新文档