1、二级 VISUAL+BASIC 机试 31 及答案解析(总分:100.00,做题时间:90 分钟)一、B1 基本操作题/B(总题数:1,分数:30.00)1.注意:下面出现的“考生文件夹”均为 c:/wexam/25160001。 请根据以下各小题的要求设计 Visual Basic 应用程序(包括界面和代码)。 (1) 在 Form1 的窗体上画一个名称为 Text1 的文本框,然后建立一个主菜单,标题为“操作”,名称为 Op,该菜单有两个子菜单,其标题分别为“显示”和“清除”,名称分别为 Dis 和 Clea,编写适当的事件过程。程序运行后,如果单击“操作”菜单中的“显示”命令,则在文本框
2、显示“计算机考试”;如果单击“清除”命令,则清除文本框中显示的内容。程序的运行情况如图 13-1 和图 13-2 所示。 注意:存盘时必须存放在考生文件夹下,工程文件名为 sjt1.vbp,窗体文件名为 sjt1.frm。 (2) 在窗体上画一个文本框,名称为 Text1,Text 属性为空白。再画一个列表框,名称为 L1,通过“属性”窗口向列表框中添加 4 个项目,分别为“早上好”、“上午好”、“中午好”和“下午好”,编写适当的事件过程。程序运行后,在文本框中输入一个字符串,如果双击列表框中的任一项,则把文本框中的字符串添加到列表框中。程序的运行情况如图 13-3 所示。 注意:存盘时必须存
3、放在考生文件夹下,工程文件名为 sjt2.vbp,窗体文件名为 sjt2.frm。 (分数:30.00)_二、B2 简单应用题/B(总题数:1,分数:40.00)2.注意:下面出现的“考生文件夹”均为 c:/wexam/25160001。 (1) 在考生文件夹下有工程文件sjt3.vbp 及窗体文件 sjt3.frm,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即号),但不能修改其他部分。存盘时不得改变文件名和文件夹。 本题描述如下: 在窗口中有一个 RichText 文本框控件和一个文本框控件,名称分别为 rtx1 和 Text1,两个命令按钮,名称分别为Comm
4、and1 和 Command2,标题分别为“加入 SJT01.TXT”、“统计字符个数”。要求程序运行后,单击command1 将考生文件夹下的 sjt01.txt 的内容显示到 rtx1 中;单击“统计字符个数”按钮统计 rtx1 中有多少个字符,将结果显示在 Text1 中。程序运行结果如图 13-4 所示。 (2) 在考生文件夹下有工程文件sjt4.vbp 及窗体文件 sjt4.frm,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即号),但不能修改其他部分。存盘时不得改变文件名和文件夹。 本题描述如下: 在窗体上有一个名为 Image1 的图像框,要求程序运行
5、后,鼠标左键点击图像框,则图像框变大;鼠标右键点击图像框,图像框变小。设计界面如图 13-5 所示。 (分数:40.00)_三、B3 综合应用题/B(总题数:1,分数:30.00)3.注意:下面出现的“考生文件夹”均为 c:/wexam/25160001。 在考生文件夹下有工程文件 sjt5.vbp及窗体文件 sjt5.frm,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即号),但不能修改其他部分。存盘时不得改变文件名和文件夹,相应的 dat 文件也保存到考生文件夹下,否则没有成绩。 本题描述如下: 在名称为 Form1 的窗体上有五个 Labe1 控件和两个命令按
6、钮,数据文件stud1.dat 存放考生的考号、姓名、成绩。自定义一个数据类型 stu,字符型数据定长为 10;按“开始”按钮后,能从考生文件夹下的 stud1.dat 中读出所有数据并写入考生文件夹下的 stud.dat 文件中;执行完毕,“开始”按钮变成“完成”,且无效 (变灰)。程序运行界面如图 13-6 所示。 (分数:30.00)_二级 VISUAL+BASIC 机试 31 答案解析(总分:100.00,做题时间:90 分钟)一、B1 基本操作题/B(总题数:1,分数:30.00)1.注意:下面出现的“考生文件夹”均为 c:/wexam/25160001。 请根据以下各小题的要求设计
7、 Visual Basic 应用程序(包括界面和代码)。 (1) 在 Form1 的窗体上画一个名称为 Text1 的文本框,然后建立一个主菜单,标题为“操作”,名称为 Op,该菜单有两个子菜单,其标题分别为“显示”和“清除”,名称分别为 Dis 和 Clea,编写适当的事件过程。程序运行后,如果单击“操作”菜单中的“显示”命令,则在文本框显示“计算机考试”;如果单击“清除”命令,则清除文本框中显示的内容。程序的运行情况如图 13-1 和图 13-2 所示。 注意:存盘时必须存放在考生文件夹下,工程文件名为 sjt1.vbp,窗体文件名为 sjt1.frm。 (2) 在窗体上画一个文本框,名称
8、为 Text1,Text 属性为空白。再画一个列表框,名称为 L1,通过“属性”窗口向列表框中添加 4 个项目,分别为“早上好”、“上午好”、“中午好”和“下午好”,编写适当的事件过程。程序运行后,在文本框中输入一个字符串,如果双击列表框中的任一项,则把文本框中的字符串添加到列表框中。程序的运行情况如图 13-3 所示。 注意:存盘时必须存放在考生文件夹下,工程文件名为 sjt2.vbp,窗体文件名为 sjt2.frm。 (分数:30.00)_正确答案:()解析:解析 在窗体上建立好控件后,先设置控件属性,再编写事件过程。通过“菜单编辑器”来创建菜单,文本框的内容通过 Text 属性设置,Te
9、x=“语句可将文本框中的内容清空。解题步骤:第一步:建立界面并设置控件属性。程序中用到的控件及其属性见表 13-1。表 13-1 控 件 属 性 设 置 值菜单 名字 标题 Op 操作菜单 名字 标题 Dis 显示 菜单 名字 标题 Cle 清除 文本框 Name Text1第二步:编写程序代码。参考代码:Private Sub Clea_Click()Text1.Text=“End SubPrivate Sub Dis_Click()Text1.Text=“计算机考试“End Sub第三步:调试并运行程序。第四步:按题目要求存盘。(2) 解析 在窗体上建立好控件后,先设置控件属性,再编写事件
10、过程。列表框的内容由 List 属性设置,文本框的内容由 Text 属性设置,双击触发 DblClick 事件,向列表框中添加内容用 Addltem 方法。解题步骤:第一步:建立界面并设置控件属性。程序中用到的控件及其属性见表 13-2。表 13-2 控 件 属 性 设 置 值文本框 Name Text1列表框 Name L1第二步:编写程序代码:参考代码:Private Sub L1_DblCliCk()L1.AddItem Text1.TextEnd Sub第三步:调试并运行程序。第四步:按题目要求存盘。二、B2 简单应用题/B(总题数:1,分数:40.00)2.注意:下面出现的“考生文件
11、夹”均为 c:/wexam/25160001。 (1) 在考生文件夹下有工程文件sjt3.vbp 及窗体文件 sjt3.frm,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即号),但不能修改其他部分。存盘时不得改变文件名和文件夹。 本题描述如下: 在窗口中有一个 RichText 文本框控件和一个文本框控件,名称分别为 rtx1 和 Text1,两个命令按钮,名称分别为Command1 和 Command2,标题分别为“加入 SJT01.TXT”、“统计字符个数”。要求程序运行后,单击command1 将考生文件夹下的 sjt01.txt 的内容显示到 rtx1 中
12、;单击“统计字符个数”按钮统计 rtx1 中有多少个字符,将结果显示在 Text1 中。程序运行结果如图 13-4 所示。 (2) 在考生文件夹下有工程文件sjt4.vbp 及窗体文件 sjt4.frm,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即号),但不能修改其他部分。存盘时不得改变文件名和文件夹。 本题描述如下: 在窗体上有一个名为 Image1 的图像框,要求程序运行后,鼠标左键点击图像框,则图像框变大;鼠标右键点击图像框,图像框变小。设计界面如图 13-5 所示。 (分数:40.00)_正确答案:()解析:解析 在窗体上建立好控件后,先设置控件属性,再编
13、写事件过程RichTextBox 控件可以用 LoadFile 和 SaveFile 方法可以方便的为 RichTextBox 控件打开或保存文件,LoadFile 方法能将 RTF 文件或文本文件装入控件,其形式如:对象.LoadFile 文件标志符,文件类型;统计字符的个数可用 Len(要统计的内容)函数。解题步骤:第一步:建立界面并设置控件属性。程序中用到的控件及其属性见表 13-3。表 13-3 控 件 属 性 设 置 值Command1 Caption 加入 sjt01.txtCommand2 Caption 统计字符个数第二步:编写程序代码。程序提供的代码:Option Expli
14、citPrivate Sub Command1_Click()rtx1.? App.Path+“/sjt01.txt“End SubPrivate Sub Command2_Click()If rtx1.Text “ Then Text1.Text=?End IfEnd Sub参考代码:Option ExplicitPrivate Sub Commandl_Click()rtx1.LoadFile App. Path+“/sjt01.txt“End SubPrivate Sub Command2_Click()If rtx1.Text “ ThenText1.Text=Len(rtx1.Tex
15、t)End IfEnd Sub第三步:调试并运行程序。第四步:按题目要求存盘。(2) 解析 在窗体上建立好控件后,先设置控件属性,再编写事件过程图像框的图片由 Picture 属性设置。判断鼠标左键还是右键可以通过图像框的 MouseUp 事件的 Button 参数来判断。MouseUp 事件再释放鼠标按钮时发生。其语法格式为:PrivateSubobject_MouseUp(indexAsInteger,buttonAsInteger,shiftAsInteger,xAsSingle,yAsSingle)Object 一个对象表达式。Index 一个整数,用来惟一地标识一个在控件数组中的控件
16、。Button 返回一个整数,用来标识该事件的产生是按下(MouseDown)或者释放(MouseUp)按钮引起的。button 参数是具有相应于左按钮(位 0),右按钮(位 1),以及中间按钮(位 2)的一个位字段。这些位的值分别等于 1,2,和 4。其中仅有一位被设置,指示出引起该事件的那个按钮 Shift 返回一个整数,在button 参数指定的按钮被按下或者被释放的情况下,该整数相应于 SHIFT,CTRL 和 ALT 键的状态。某键被按下使得一个二进制位被设置。shift 参数是具有相应于 SHIFT 键(位 0),CTRL 键(位”,以及 ALT 键(位 2)最少二进制位的一个位字
17、段。这些位的值分别等于 1,2,和 4。shift 参数指示这些键的状态。这些位中可能有一些、全部或者一个也没有被设置,指示这些键中的一些、全部或者一个也没有被按下。解题步骤:第一步:建立界面并设置控件属性。第二步:编写程序代码。程序提供的代码:Private Sub Image1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)If Button=1 ThenIf Image1.Height4000 Or Image1.Width4000 ThenImagel.Height=Imagel.Height
18、+500 Imagel.Width=Imagel.Width ? 500End IfEnd IfIf Button=? ThenIf Image1.Height1000 Or Image1.Width1000 ThenImage1.Height=Image1.Height-500Image1.Width=Image1.Width-500End IfEnd IfEnd Sub参考代码:Private Sub Image1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)If Button=1 ThenIf
19、 Image1.Height4000 Or Image1.Width4000 ThenImage1.Height=Image1.Height+500Image1.Width=Image1.Width+500End IfEnd IfIf Button=2 ThenIf Image1.Height1000 Or Image1.Width1000 ThenImage1.Height=Image1.Height-500Image1.Width=Image1.Width-500End IfEnd IfEnd Sub第三步:调试并运行程序。第四步:按题目要求存盘。三、B3 综合应用题/B(总题数:1,分数
20、:30.00)3.注意:下面出现的“考生文件夹”均为 c:/wexam/25160001。 在考生文件夹下有工程文件 sjt5.vbp及窗体文件 sjt5.frm,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即号),但不能修改其他部分。存盘时不得改变文件名和文件夹,相应的 dat 文件也保存到考生文件夹下,否则没有成绩。 本题描述如下: 在名称为 Form1 的窗体上有五个 Labe1 控件和两个命令按钮,数据文件stud1.dat 存放考生的考号、姓名、成绩。自定义一个数据类型 stu,字符型数据定长为 10;按“开始”按钮后,能从考生文件夹下的 stud1.da
21、t 中读出所有数据并写入考生文件夹下的 stud.dat 文件中;执行完毕,“开始”按钮变成“完成”,且无效 (变灰)。程序运行界面如图 13-6 所示。 (分数:30.00)_正确答案:()解析:解析 单击按钮触发其 Click 事件,标题由 Caption 属性设置;标签的标题也是由 Caption 属性设置;文件的操作一般按照如下步骤进行:打开或建立文件、进行读或写操作、关闭文件。 自定义数据类型通过 Type 语句来实现,形式如下: Type 自定义类型名 元素名(下标)As 类型名 元素名(下标)As 类型名 End Type 对于字符串变量类型,根据其存放的字符串长度是否固定,其定
22、义方法有两种: Dim 字符串变量名 As String Dim 字符串变量名 As String*字符数 程序中用到了 App 对象的Path 属性。Path 属性返回或设置当前路径,在设计时是不可用的,对于 App 对象,在运行时是只读的。解题步骤: 第一步:编写程序代码。 程序提供的代码: Private Type stu num As Long nam As String ? score As Single End Private Sub COMEXIT_Click() End End Sub Private Sub COMSTART_Click() Dim rec As Dim i
23、As Integer myfile1=App. Path & “/“ & ? myfile2=App. Path & “/“ & ? Open myfilel For Input As #1 Open myfile2 For Output As #2 For i=1 To 8 Input ?, rec.num, rec.nam, rec.score Write ?, rec.num, rec.nam, rec.scbre Next i Close COMSTART.Caption=? COMSTART.Enabled=? End Sub 参考代码: Private Type stu num A
24、s Long nam As String * 10 score As Single End Type Private Sub COMEXIT_Click() End End Sub Private Sub COMSTART_Click() Dim rec As stu Dim i As Integer myfile1=App.Path & “/“ & “stud1.dat“ myfile2=App.Path & “/“ & “stud.dat“ Open myfile1 For Input As #1 Open myfile2 For Output As #2 For i=1 To 8 Input #1, rec.num, rec.nam, rec.score Write #2, rec.num, rec.nam, rec.score Next i Close COMSTART.Caption=“完成“ COMSTART.Enabled=False End Sub 第二步:调试并运行程序。 第三步:按题目要求存盘。