1、二级 VISUAL+BASIC 机试-129 及答案解析(总分:100.00,做题时间:90 分钟)一、1 基本操作题(总题数:1,分数:30.00)1.注意:下面出现的“”均为 c:/wexam/25160001。请根据以下各小题的要求设计 Visual Basic 应用程序(包括界面和代码)。(1) 在 Form1 的窗体上建立一个主菜单,标题为“操作”,名称为 Op,该菜单有两个子菜单,其标题分别为“显示”和“清除”,其名称分别为 Dis 和 Clea。编写适当的事件过程,程序运行后,如果单击“操作”菜单中的“显示”命令,则在窗体上显示“等级考试”;如果单击“清除”命令,则清除窗体上显示
2、的内容。程序的运行情况如图 14-1 所示。注意:存盘时必须存放在考生文件夹下,工程文件名为 sjt1.vbp,窗体文件名为 sjt1.frm。(2) 在 Form1 的窗体上画一个标签,其名称为 Lab1;再画一个列表框,其名称为 L1,通过属性窗口向列表框中添加若干个项目,每个项目的具体内容不限,编写适当的事件过程。程序运行后,如果双击列表框中的任意一项,则把列表中的项目数在标签中显示出来。程序中不准使用任何变量,运行情况如图 14-2所示。注意:存盘时必须存放在考生文件夹下,工程文件名为 sjt2.vbp,窗体文件名为 sjt2.frm。(分数:30.00)_二、2 简单应用题(总题数:
3、1,分数:40.00)2.注意:下面出现的“考生文件夹”均为 c:/wexam/25160001。(1) 在考生文件夹下有工程文件 sjt3.vbp 及窗体文件 sjt3.frm,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即号),但不能修改其他部分。存盘时不得改变文件名和文件夹。如图 14-3 所示。本题描述如下:在名称为 Form1,标题为“调用系统对话框”的窗体上有一个文本框和六个命令按钮及一个通用对话框,通过 CommonDialog 实现对系统一些对话框的调用。请将“打开”按钮的功能补充完整,并限制打开的类型为可执行文件(*.com 和*.exe),默认打
4、开文件类型为.exe 文件。(2) 在考生文件夹下有工程文件 jft4.vbp 及窗体文件 jft4.frm,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即号),但不能修改其他部分。存盘时不得改变文件名和文件夹。本题描述如下:在窗体上有一个名为 P1 的图片框,有一个名为 C1,标题为“输入参数”的命令按钮,有两个单选按钮,名称分别是 Op1 和 Op2,标题分别是“画圆环”和“画方框”。要求程序运行后,选中两个单选按钮中的一个,再点击命令按钮 C1,在弹出的输入对话框中输入相应的参数值,则在图片框上画出相应的图形。程序运行界面如图 14-4 所示。(分数:40.0
5、0)_三、3 综合应用题(总题数:1,分数:30.00)3.注意:下面出现的“考生文件夹”均为 c:/wexam/25160001。在考生文件夹下有工程文件 sjt5.vbp 及窗体文件 sjt5.frm,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即号),但不能修改其他部分。存盘时不得改变文件名和文件夹,相应的 dat 文件也保存到考生文件夹下,否则没有成绩。本题描述如下:在名称为 Form1 的窗体上有五个 Labe1 控件和两个命令按钮,数据文件 worker.dat,存放工人的编号、姓名、性别和体重。按“开始”按钮后,能从考生文件夹下的 worker.dat
6、 中读出数据并把体重大于平均体重的工人的所有数据写入考生文件夹下的 worker1.dat 文件中;执行完毕,“开始”按钮变成“完成”,且无效。程序运行界面如图 14-5 所示。(分数:30.00)_二级 VISUAL+BASIC 机试-129 答案解析(总分:100.00,做题时间:90 分钟)一、1 基本操作题(总题数:1,分数:30.00)1.注意:下面出现的“”均为 c:/wexam/25160001。请根据以下各小题的要求设计 Visual Basic 应用程序(包括界面和代码)。(1) 在 Form1 的窗体上建立一个主菜单,标题为“操作”,名称为 Op,该菜单有两个子菜单,其标题
7、分别为“显示”和“清除”,其名称分别为 Dis 和 Clea。编写适当的事件过程,程序运行后,如果单击“操作”菜单中的“显示”命令,则在窗体上显示“等级考试”;如果单击“清除”命令,则清除窗体上显示的内容。程序的运行情况如图 14-1 所示。注意:存盘时必须存放在考生文件夹下,工程文件名为 sjt1.vbp,窗体文件名为 sjt1.frm。(2) 在 Form1 的窗体上画一个标签,其名称为 Lab1;再画一个列表框,其名称为 L1,通过属性窗口向列表框中添加若干个项目,每个项目的具体内容不限,编写适当的事件过程。程序运行后,如果双击列表框中的任意一项,则把列表中的项目数在标签中显示出来。程序
8、中不准使用任何变量,运行情况如图 14-2所示。注意:存盘时必须存放在考生文件夹下,工程文件名为 sjt2.vbp,窗体文件名为 sjt2.frm。(分数:30.00)_正确答案:(解析 在窗体上建立好控件后,先设置控件属性,再编写事件过程。Visual Basic 中,菜单被看作控件,具有属性和事件。菜单由“菜单编辑器”来创建。在窗体上打印信息通过 Print 方法方法来实现。清除在窗体上的打印的信息要通过 Cls 方法来实现Cls 方法清除运行时 Form 或 PictureBox 所生成的图形和文本:语法:Object.Clsobject 代表一个对象表达式。如果省略 object,则默
9、认为当前的 Form 窗体。解题步骤:第一步:打开“菜单编辑器”,建立菜单并设置菜单属性。菜单的属性设置见表 14-1。表 14-1控 件 属 性 设 置 值菜单 名字 标题 Op 操作菜单 名字 标题 Dis 显示菜单 名字 标题 Clea 清除第二步:编写程序代码。参考代码:Private Sub Clea_Click()ClSEnd SubPrivate Sub Dis_Click()Print “等级考试“End Sub第三步:调试并运行程序。第四步:按题目要求存盘。(2) 解析 在窗体上建立好控件后,先设置控件属性,再编写事件过程。双击控件触发 DblClick 事件,ListCou
10、nt 属性返回列表框中表项的数量。列表框中的表项可以通过“属性”窗口的 List 属性设置,也可以通过 AddItem 方法在程序中添加。本题是通过属性窗口来设置的。解题步骤:第一步:建立界面并设置控件属性。程序中用到的控件及其属性见表 14-2。表 14-2控 件 属 性 设 置 值标签 Name Lab1列表框 Name L1第二步:编写程序代码。参考代码:Private Sub L1_DblClick()Lab1.Caption=L1.ListCountEnd Sub第三步:调试并运行程序。第四步:按题目要求存盘。答案考生文件夹)解析:二、2 简单应用题(总题数:1,分数:40.00)2
11、.注意:下面出现的“考生文件夹”均为 c:/wexam/25160001。(1) 在考生文件夹下有工程文件 sjt3.vbp 及窗体文件 sjt3.frm,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即号),但不能修改其他部分。存盘时不得改变文件名和文件夹。如图 14-3 所示。本题描述如下:在名称为 Form1,标题为“调用系统对话框”的窗体上有一个文本框和六个命令按钮及一个通用对话框,通过 CommonDialog 实现对系统一些对话框的调用。请将“打开”按钮的功能补充完整,并限制打开的类型为可执行文件(*.com 和*.exe),默认打开文件类型为.exe 文
12、件。(2) 在考生文件夹下有工程文件 jft4.vbp 及窗体文件 jft4.frm,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即号),但不能修改其他部分。存盘时不得改变文件名和文件夹。本题描述如下:在窗体上有一个名为 P1 的图片框,有一个名为 C1,标题为“输入参数”的命令按钮,有两个单选按钮,名称分别是 Op1 和 Op2,标题分别是“画圆环”和“画方框”。要求程序运行后,选中两个单选按钮中的一个,再点击命令按钮 C1,在弹出的输入对话框中输入相应的参数值,则在图片框上画出相应的图形。程序运行界面如图 14-4 所示。(分数:40.00)_正确答案:(解析
13、文本框中显示的文本由 Text 属性设置;命令按钮的标题由 Caption 属性设置,单击命令按钮触发 Click 事件。通用对话框是一种 ActiveX 控件,通常情况下,启动 Visual Basic 后,在工具箱里没有通用对话框控件,用户必须手动将它添加到工具箱里才可以使用:限制打开对话框的文件类型应对 Filter 属性进行设置。可以通过下列步骤将通用对话框控件添加到工具箱中: 执行“工程”菜单中的“部件”命令,打开“部件”对话框; 在对话框中选择“控件”选项卡,然后在控件列表框中选择“Microsoft Common Dialog Control 6.0”; 单击“确定”按钮,通用对
14、话框即被添加到工具箱中。解题步骤:第一步:编写程序代码。程序提供的代码:Option ExplicitPrivate Sub Commandl_Click()Dim i As IntegerCommonDialog1.CancelError=TrueOn Error GoTo CancelCommonDialog1.Action=5For i=1 To CommonDialog1.CopiesPrintFormNext iCancel:End SubPrivate Sub Command2_Click()CommonDialog1.CancelError=TrueOn Error GoTo C
15、ancelCommonDialog1.HelpCommand=&HBCommonDialog1.HelpFile=“C:/windows/help/windows.hlp“CommonDialog1.Action=6Cancel:End SubPrivate Sub Command3_Click()CommonDialog1.CancelError=TrueOn Error GoTo CancelCommonDialog1.Action=3Text1.ForeColor=CommonDialog1.ColorCancel:End SubPrivate Sub Command4_Click()C
16、ommonDialog1.Flags=&H3& Or &H1& Or &H2&CommonDialog1.CancelError=TrueOn Error GoTo CancelCommonDialog1.Action=4Text1.FontBold=CommonDialog1.FontBoldText1.FontItalic=CommonDialog1.FontItalicText1.FontStrikethru=CommonDialog1.FontStrikethruText1.FontName=CommonDialog1.FontNameText1.FontSize=CommonDial
17、og1.FontSizeCancel:End SubPrivate Sub Command5_Click()EndEnd SubPrivate Sub Command6_Click()CommonDialog1.CancelError=TrueOn Error GoTo CancelCommonDialog1.Filter=“(可执行文件*.exe) *.exe|?| (可执行文件*.com) *.com|?“CommonDialog1.FilterIndex=?CommonDialog1.Action=?Shell CommonDialog1.filename, ?Cancel:End Su
18、b参考代码:Option ExplicitPrivate Sub Command1_Click()Dim i As IntegerCommonDialog1.CancelError=TrueOn Error GoTo CancelCommonDialog1.Action=5For i=1 To CommonDialog1.CopiesPrintFormNext iCancel:End SubPrivate Sub Command2_Click()CommonDialog1.CancelError=TrueOn Error GoTo CancelCommonDialogl.HelpCommand
19、=&HBCommonDialogl.HelpFile=“C:/windows/help/windows.hlp“CommonDialogl.Action=6Cancel:End SubPrivate Sub Command3_Click()CommonDialog1.CancelError=TrueOn Error GoTo CancelCommonDialog1.Action=3Text1.ForeColor=CommonDialog1.ColorCancel:End SubPrivate Sub Command4_Click()CommonDialog1.Flags=&H3& Or &H1
20、& Or &H2&CommonDialog1.CancelError=TrueOn Error GoTo CancelCommonDialog1.Action=4Text1.FontBold=CommonDialog1.FontBoldText1.FontItalic=CommonDialog1.FontItalicText1.FontStrikethru=CommonDialog1.FontStrikethruText1.FontName=CommonDialog1.FontNameText1.FontSize=CommonDialog1.FontSizeCancel:End SubPriv
21、ate Sub Command5_Click()EndEnd SubPrivate Sub Command6_Click()CommonDialog1.CancelError=TrueOn Error GoTo CancelCommonDialog1.Filter=_“(可执行文件*.exe) *.exe|*.exe| (可执行文件*.com) *.com|*.com“CommonDialog1.FilterIndex=0CommonDialog1.Action=1Shell CommonDialog1.FileName,1Cancel:End Sub第二步:调试并运行程序。第三步:按题目要求
22、存盘。(2) 解析 程序中用到了 Circle 方法、Line 方法和 InputBox 函数。Circle 方法在对象上画圆、椭圆或弧。语法:Object.CircleStep(x,y),radius,color,start,end,aspectLine 方法在对象上画直线和矩形。语法:object.LineStep(x1,1)Step(x2,y2),color,BFInputBox 函数在一个对话框中显示提示,等待用户输入正文或按下按钮,并返回包含文本框内容的String。语法:InputBox(prompt,titledefault,xpos,ypos,helpfile,context)
23、解题步骤:第一步:编写程序代码。程序提供的代码:Private Sub C1_Click()Dim a As SingleDim b As SingleDim t As SingleOn Error Resume NextIf Op1.Value=True Thena=InputBox (“输入圆环的内径(输入值必须大于 0 且小于 800) “, _“输入参数“,100)b=InputBox (“输入圆环的外径(输入值必须大于 0 且小于 900) “, _“输入参数“,200)If ab Then t=?a=bb=tEnd IfP1.ClsP1.FillStyle=?P1.FillColo
24、r=vbBlackPi.Circle (1500,1000), ?P1.FillColor=vbButtonFaceP1.Circle (1500,1000), aEnd IfIf Op2.Value=True Thena=InputBox (“输入方框的长度(输入值必须大于 0 且小于 3000) “, _“输入参数“,100)b=InputBox(“输入方框的宽度(输入值必须大大于 0 且小于 1800) “, _“输入参数“,200)P1.ClsP1.Line (100, 100)-(100+a, 100+b) , , ?FEnd IfEnd Sub参考代码:Private Sub C1
25、_Click()Dim a As SingleDim b As SingleDim t As SingleOn Error Resume NextIf Op1.Value=True Thena=InputBox (“输入圆环的内径(输入值必须大于 0 且小于 800) “, _“输入参数“,100)b=InputBox (“输入圆环的外径(输入值必须大于 0 且小于 900) “, _“输入参数“,200)If ab Thent=aa=bb=tEnd IfP1.ClsP1.FillStyle=0P1.FillColor=vbBlackP1.Circle (1500, 1000) , bP1.F
26、illColor=vbButtonFacePi.Circle (1500, 1000) , aEnd IfIf Op2.Value=True Thena=InputBox (“输入方框的长度(输入值必须大于 0 且小于 3000) “, _“输入参数“,100)b=InputBox (“输入方框的宽度(输入值必须大于 0 且小于 1800) “, _“输入参数“, 200)P1.ClsP1.Line (100, 100)-(100+a, 100+b) , , BFEnd IfEnd Sub第二步:调试并运行程序。第三步:按题目要求存盘。)解析:三、3 综合应用题(总题数:1,分数:30.00)
27、3.注意:下面出现的“考生文件夹”均为 c:/wexam/25160001。在考生文件夹下有工程文件 sjt5.vbp 及窗体文件 sjt5.frm,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即号),但不能修改其他部分。存盘时不得改变文件名和文件夹,相应的 dat 文件也保存到考生文件夹下,否则没有成绩。本题描述如下:在名称为 Form1 的窗体上有五个 Labe1 控件和两个命令按钮,数据文件 worker.dat,存放工人的编号、姓名、性别和体重。按“开始”按钮后,能从考生文件夹下的 worker.dat 中读出数据并把体重大于平均体重的工人的所有数据写入考生
28、文件夹下的 worker1.dat 文件中;执行完毕,“开始”按钮变成“完成”,且无效。程序运行界面如图 14-5 所示。(分数:30.00)_正确答案:(解析 本题主要是考查对文件的读写,对文件进行操作之前必须打开文件,使用 Open 语句,其格式为:Open 文件名For 方式Access 存取类型锁定As#文件号Len=记录长度Close 语句关闭 Open 语句所打开的输入/输出文件。其格式为:Closefilenumberlistfilenumberlist 是可选参数,为一个或多个文件号。对文件操作完之后,必须关闭文件,使用 Close 语句关闭文件。解题步骤:第一步:编写程序代码
29、。程序提供的代码:Private Sub COMEXIT_Click()EndEnd SubPrivate Sub COMSTART_Click()Dim i As IntegerDim total As IntegerDim aver As SingleDim num(10) , namstring(10) , sexstring(10) , wages(10)MyFile1=App.Path & “/“ &MyFile2=App.Path & “/“ &Open MyFile1 For Input As #1Open MyFile2 For Output As #2For i=1 To 1
30、0Input ?, num(i) , namstring(i) , sexstring(i) , wages(i)total=total+wages(i)Next iaver=?/10For i=1 To 10If ? Then Write #2, num(i) , namstring(i) , sexstring(i) , wages(i)Next iCOMSTART.Caption=?COMSTART.Enabled=?End Sub参考代码:Private Sub COMEXIT_Click()EndEnd SubPrivate Sub COMSTART_Click()Dim i As
31、IntegerDim total As IntegerDim aver As SingleDim num(10) , namstring(10) , sexstring(10) , wages(10)MyFilel=App.Path & “/“ & “worker.dat“MyFile2=App.Path & “/“ & “worker1.dat“Open MyFilel For Input As #1Open MyFile2 For Output As #2For i=1 To 10Input #1, num(i) , namstring(i) , sexstring(i) , wages(i)total=total+wages(i)Next iaver=total / 10For i=1 To 10If wages(i)aver Then Write #2, num(i) , namstring(i) , sexstring(i) , wages(i)Next iCOMSTART.Caption=“完成“COMSTART.Enabled=FalseEnd Sub第二步:调试并运行程序。第三步:按题目要求存盘。)解析: