《Visual Basic语言》上机实验四
实验名称:数据的输入输出(2学时)
一、实验目的
1.掌握Visual Basic中数据输入方法。
2.掌握Visual Basic中数据输出方法。
二、背景知识
1.InputBox函数
该函数产生一个对话框,在对话框中显示提示信息,等待用户输入正文或按下按钮,此时返回包含文本框内容的字符串。
2.MsgBox函数
MsgBox函数也产生一个对话框,在对话框中显示消息,等待用户单击按钮,并返回一个Integer数,告诉用户单击了哪一个按钮。MsgBox函数根据所选定参数的不同,可以弹出不同形式的消息框供用户使用。
如果不需要返回值,只是用于显示一个简单的提示信息,采用MsgBox语句即可。
3.Print方法
Print方法用于在对象上输出表达式的值。这里的对象可以是Form(窗体)、Debug(立即窗口)、Picture(图片框)、Printer(打印机)。在窗体上Print方法的对象名可以省略。
与该方法经常搭配使用的两个函数是Spc(n)和Tab(n),其中Spc(n)用来在输出中插入空白字符(n为要插入的空白字符数),Tab(n)用来将插入点定位在绝对列号上(n为列号)。
Print方法后面的多个输出项之间采用“,”或“;”来分隔。用“;”分隔时表示各项按紧凑格式输出,用“,”分隔时表示各项分区段输出。如果在Print语句行末尾无分隔符,表示输出完本语句内容后换行。
三、实验举例
实例1 InputBox函数的不同用法。
Private Sub Form_Click()
Dim strName As String, strTitle As String
Dim strDefault As String, strMyValue As String
' 设置提示信息
strName = "请输入数据"
' 设置标题
strTitle = "InputBox函数使用举例"
' 设置缺省值
strDefault = "2"
' 第一种:显示提示信息、标题及缺省值
strMyValue = InputBox(strName, strTitle, strDefault)
' 第二种:指定坐标:在1000,1000的位置显示对话框
strMyValue = InputBox(strName, strTitle, strDefault, 1000, 1000)
' 第三种:显示“帮助”按钮,使用帮助文件
strMyValue = InputBox(strName, strTitle, , , , "DEMO.HLP", 10)
End Sub
观察运行结果。
说明:InputBox函数可以使用7个参数,其中第1个参数为必选参数,其余6个为可选参数。上面的实例演示的是给出不同可选参数的值时InputBox函数的运行效果,以帮助读者理解该函数各个参数的含义。
实例1完成后,要求将窗体文件保存为Syjl41.frm,工程文件保存为Syjl41.vbp。
实例2 MsgBox函数和语句的使用。
Private Sub Command1_Click()
Dim r As Integer
MsgBox "最简单的MsgBox"
r = MsgBox("复杂的MsgBox", vbYesNo + vbCritical + vbDefaultButton2, "你看到了么?")
Print "你按的值为"; r
End Sub
观察运行结果。
实例2完成后,要求将窗体文件保存为Syjl42.frm,工程文件保存为Syjl42.vbp。
实例3 Print方法的使用。
在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:
Private Sub Command1_Click()
Print "12345678901234567890"
Print Tab(3);10;Spc(3);20,Space$(3); "abc"
Print
Print "cde";
Print 30;Tab(5); "efg"
End Sub
提示:Space$(n)函数的功能是返回n个空格。
程序运行后,单击命令按钮,写出在窗体上显示的内容。请先自己填写下面横线中的内容,然后与计算机的输出结果进行比较,看是否一致,如果不一致找出其中的原因,记录下正确的结果。
(1)数值10显示在第 行的第 列和 列。
(2)数值20显示在第 行的第 列和 列。
(3)字符串"abc"显示在第 行的第 列、 列和 列。
(4)字符串"cde"显示在第 行的第 列、 列和 列。
(5)数值30显示在第 行的第 列和 列。
(6)字符串"efg"显示在第 行的第 列、 列和 列。
实例3完成后,要求将窗体文件保存为Syjl43.frm,工程文件保存为Syjl43.vbp。
四、实验内容
1.用Inputbox函数输入原串与子串,若子串在原串中,用Msgbox语句提示子串的起始位置。在