1、二级 VISUAL+BASIC 机试-130 及答案解析(总分:100.00,做题时间:90 分钟)一、1 基本操作题(总题数:1,分数:30.00)1.注意:下面出现的“ks/0905/2vb/1/13.zip”均为 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)_二、2 简单应用题(总题数:1,分数:40.00)2.注意:下面出现的“考生文件夹”均为 c:/wexam/25160001。(1) 在考生文件夹下有工程文件 sjt3.vbp 及窗体文件 sjt3.frm,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即号),但不能修改其他部分。存盘时不得改变文件名和文件夹。本题描述如下:在窗口中有一个 RichText 文本框控件和一个文本框控件,名称分别为 rtx1 和 Text1,两个命令按钮,名称分别为 Co
4、mmand1 和 Command2,标题分别为“加入 SJT01.TXT”、“统计字符个数”。要求程序运行后,单击 command1 将考生文件夹下的 sjt01.txt 的内容显示到 rtx1 中;单击“统计字符个数”按钮统计 rtx1 中有多少个字符,将结果显示在 Text1 中。程序运行结果如图 13-4 所示。(2) 在考生文件夹下有工程文件 sjt4.vbp 及窗体文件 sjt4.frm,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即号),但不能修改其他部分。存盘时不得改变文件名和文件夹。本题描述如下:在窗体上有一个名为 Image1 的图像框,要求程序运
5、行后,鼠标左键点击图像框,则图像框变大;鼠标右键点击图像框,图像框变小。设计界面如图 13-5 所示。(分数:40.00)_三、3 综合应用题(总题数: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 机试-130 答案解析(总分:100.00,做题时间:90 分钟)一、1 基本操作题(总题数:1,分数:30.00)1.注意:下面出现的“ks/0905/2vb/1/13.zip”均为 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 属性设置,Tex=“语
9、句可将文本框中的内容清空。解题步骤:第一步:建立界面并设置控件属性。程序中用到的控件及其属性见表 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第三步:调试并运行程序。第四步:按题目要求存盘。答案考生文件夹)解析:二、2 简单应用题(总题数: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 ExplicitPri
14、vate 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.Text)End
15、IfEnd Sub第三步:调试并运行程序。第四步:按题目要求存盘。(2) 解析 在窗体上建立好控件后,先设置控件属性,再编写事件过程图像框的图片由 Picture 属性设置。判断鼠标左键还是右键可以通过图像框的 MouseUp 事件的 Button 参数来判断。MouseUp 事件再释放鼠标按钮时发生。其语法格式为:PrivateSubobject_MouseUp(indexAsInteger,buttonAsInteger,shiftAsInteger,xAsSingle,yAsSingle)Object 一个对象表达式。Index 一个整数,用来惟一地标识一个在控件数组中的控件。Butto
16、n 返回一个整数,用来标识该事件的产生是按下(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+500 I
18、magel.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 Image
19、1.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第三步:调试并运行程序。第四步:按题目要求存盘。)解析:三、3 综合应用题(总题数:1,分数:30.0
20、0)3.注意:下面出现的“考生文件夹”均为 c:/wexam/25160001。在考生文件夹下有工程文件 sjt5.vbp 及窗体文件 sjt5.frm,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即号),但不能修改其他部分。存盘时不得改变文件名和文件夹,相应的 dat 文件也保存到考生文件夹下,否则没有成绩。本题描述如下:在名称为 Form1 的窗体上有五个 Labe1 控件和两个命令按钮,数据文件 stud1.dat 存放考生的考号、姓名、成绩。自定义一个数据类型 stu,字符型数据定长为 10;按“开始”按钮后,能从考生文件夹下的stud1.dat 中读出所有
21、数据并写入考生文件夹下的 stud.dat 文件中;执行完毕,“开始”按钮变成“完成”,且无效 (变灰)。程序运行界面如图 13-6 所示。(分数:30.00)_正确答案:(解析 单击按钮触发其 Click 事件,标题由 Caption 属性设置;标签的标题也是由 Caption属性设置;文件的操作一般按照如下步骤进行:打开或建立文件、进行读或写操作、关闭文件。自定义数据类型通过 Type 语句来实现,形式如下:Type 自定义类型名元素名(下标)As 类型名元素名(下标)As 类型名End Type对于字符串变量类型,根据其存放的字符串长度是否固定,其定义方法有两种:Dim 字符串变量名 A
22、s StringDim 字符串变量名 As String*字符数程序中用到了 App 对象的 Path 属性。Path 属性返回或设置当前路径,在设计时是不可用的,对于 App 对象,在运行时是只读的。解题步骤:第一步:编写程序代码。程序提供的代码:Private Type stunum As Long nam As String ?score As SingleEndPrivate Sub COMEXIT_Click()EndEnd SubPrivate Sub COMSTART_Click()Dim rec AsDim i As Integermyfile1=App. Path & “/“
23、 & ?myfile2=App. Path & “/“ & ?Open myfilel For Input As #1Open myfile2 For Output As #2For i=1 To 8 Input ?, rec.num, rec.nam, rec.score Write ?, rec.num, rec.nam, rec.scbreNext iCloseCOMSTART.Caption=?COMSTART.Enabled=?End Sub参考代码:Private Type stunum As Longnam As String * 10score As SingleEnd Typ
24、ePrivate Sub COMEXIT_Click()EndEnd SubPrivate Sub COMSTART_Click()Dim rec As stuDim i As Integermyfile1=App.Path & “/“ & “stud1.dat“myfile2=App.Path & “/“ & “stud.dat“Open myfile1 For Input As #1Open myfile2 For Output As #2For i=1 To 8Input #1, rec.num, rec.nam, rec.scoreWrite #2, rec.num, rec.nam, rec.scoreNext iCloseCOMSTART.Caption=“完成“COMSTART.Enabled=FalseEnd Sub第二步:调试并运行程序。第三步:按题目要求存盘。)解析: