2 简单应用题1. 在窗体上建立一个名称为Texl1的文本框,然后建立两个主菜单,标题分别为“操作系统”和“帮助”,名称分别为vbOS和vbHelp,其中“操作系统”菜单包括“windows”、“Unix”和“AppleMacos”三个子菜单,名称分别为vbOS1、vbOS2和vbOS3。要求程序运行后,在“操作系统”的下拉菜单中选择“windows”,则在文本框内显示“个人用户”;如果选择“Unix”,则在文本框内显示“服务器”;如果选择“AppleMacOS”,则在文本框内显示“苹果电脑”,如下图所示。
注意:保存时必须存放在考生文件夹下,窗体文件名为sj3.frm,工程文件名为sj3.vbp。

在Visual Basic中,菜单也被看做控件,具有属性和事件。菜单的建立在菜单编辑器中完成,菜单的级数通过内缩符
号来表示,第一级菜单没有内缩符号,第二级菜单的内缩符号为1。
根据题意,新建“标准EXE”工程,按<Ctrl+E>组合键打开菜单编辑器,在其中添加如下菜单项:
标 签 |
名 称 |
内 缩 |
操作系统 |
vbOS |
无 |
Windows |
vbOS1 |
一位 |
Unix |
vbOS2 |
一位 |
AppleMacOS |
vbOS3 |
一位 |
帮助 |
vbHelp |
无 |
单击“确定”按钮,完成菜单编辑。再将一个文本框控件添加到窗体中,将其名称设为Text1。如下代码:
Private Sub vbOS1_Click(Index As Integer) 'Windows选项
Text1.Text="个人用户"
End Sub
Private Sub vbOS2_Click(Index As Integer) 'Unix选项
Text1.Text="服务器"
End Sub
Private Sub vbOS3_Click(Index As Integer) 'AppleMacOS选项
Text1.Text="苹果电脑"
End Sub
单击

按钮运行程序,并按要求保存。
2. 在考生文件夹中有文件sj4.vbp及其窗体文件sj4.frm,该程序是不完整的,请在有“?”的地方填入正确内容,然后删除“?”及代码前的所有注释符(即'号),但不能修改其他部分。存盘时不得改变文件夹和文件名。
本题描述如下:
窗体上有一个名称为Text1的文本框,两个复选框,名称分别为Check1和Check2,标题分别为“C++”和“Basic”。要求程序运行后,如果Check1和Check2都不选,则单击窗体后,在文本框中什么都不显示;如果只选中Check1,则单击窗体后,在文本框中显示“我掌握C++”;如果只选中Check2,则单击窗体后,在文本框中显示“我掌握Basic”;如果同时选中Check1和Check2,则单击窗体后,在文本框中显示“我掌握C++和Basic”。程序运行后,若选择Check2,则单击窗体后,显示界面如下图所示。

复选框用来表示状态,在程序运行期间可以改变其状态。复选框标题由Caption属性来设置,复选框的Value属性
用来表示复选框的状态,其取值有:0表示复选框未被选中;1表示复选框被选中;2表示复选框被禁止使用(灰色)。
根据题意,将一个文本框控件和两个复选按钮添加到窗体中,文本框控件的名称设为Text1,复选按钮的名称分别设为Check1
和Check2,Caption属性分别设为C++和Basic。由于是单击窗体触发事件,因此,双击窗体进入代码窗口,补充后的代码如下:
Private Sub form click()
Text1.Text=" "
If Check1.Value And Not Check2.Value Then Text1.Text="我掌握C++"
If Check1.Value=0 And Check2.Value Then Text1.Text="我掌握Basic"
If Check1.Value And Check2.Value=
1 Then Text1.Text="我掌握C++和Basic"
End Sub
单击

按钮运行程序,并按要求保存。
3 综合应用题1. 在考生文件夹中有工程文件Sj5.vbp及其窗体文件sj5.frm,该程序是不完整的,请在有“?”的地方填入正确内容,然后删除“?”及代码前的所有注释符(即'号),但不能修改其他部分。存盘时不得改变文件名和文件夹。
本题描述如下:
在名称为Form1的窗体上有一个文本框,名称为Text1、MultiLine属性为True、ScrollBars属性为2;两个命令按钮,名称分别为Command1和Command2,标题分别为“读取”和“计算保存”,运行界面如下图所示。要求程序运行后,如果单击“读取”按钮,则读人“in.txt”文件中的50个整数,放入一个数组中(数组下界为1),同时在文本框中显示出来;如果单击“计算保存”按钮,则计算大于或等于500的所有数的平均数,并把求得的结果在文本框Text1中显示出来,同时把该结果存入考生文件夹中的文件“out.txt”中(在考生文件夹下的标准模块mode.bas中的writedata过程可以把结果存入指定的文件)。
注意:文件必须存放在考生文件夹下,窗体文件名为sj5.frm,工程文件名为sj5.vbp,计算结果存入out.txt文件,否则没有成绩。

文本框显示的内容由Text属性设置,Multiline属性设置文本框是否可多行显示;按钮的标题由Caption属性设置,单击命令按钮触发Click事件。题中涉及对文件的操作,读入顺序文件以顺序的方式打开,用Input #语句读取数据,另外需要注意的是对文件操作完后,一定要关闭文件。
根据题意要求将一个文本框控件和两个命令按钮添加到窗体中,其中文本框的名称为Name1,MultiLine属性为True,滚动属性为2;命令按钮的名称分别为Command1和Command2,Caption的属性分别为“读取”和“计算保存”。在“工程”窗口中单击鼠标右键,在弹出的快捷菜单中选择“添加”→“添加模块”,然后在弹出对话框的“现存”选项卡中选择“mode.bas”,单击“确定”按钮即添加成功。模块mode.bas中的代码如下:
Function writeData(total As Long)
Open "out.txt" For Output As # 1
Write # 1,total
Close # 1
End Function
窗体中补充后的代码如下:
Dim a(50) As Long '全局变量
Dim str(50) As String '全局变量
Dim total As Long
Dim n As Integer
Private Sub Command1_Click()
total=0
n=0
Text1.Text=" "
Open "in.txt" For
Input As # 1 '打开“in.txt”文件
Dim i AS Integer
Dim temp As Integer
For i=0 To 49
Input # 1,temp
a(i)=temp '按顺序读入到数组中
Next i
For i=0 To 49
If
a(i)>=500 Then
total=total+a(i) '当符合条件时进行相加
n=n+1 '当符合条件是则n增1
End If
str(i)=a(i)
Text1.
Text=Text1.
Text+str(i)+vbCrLf '将数组中的50个数放入Text中显示
Next i
total=total\n Close # 1
End Sub
Private Sub Command2_Click()
Text1.Text=total
writeData(total) '将结果保存到out.txt
End Sub
单击

按钮运行程序,并按要求保存。