一、基本操作题下面出现的“考生文件夹”均为c:\wexam\20060001。
请根据以下各小题的要求设计Visual Basic应用程序(包括界面和代码)。
1.在窗体上建立一个二级菜单,该菜单含有“文件”和“帮助”两个主菜单项(名称分别为vbFile和vbHelp),其中“文件”菜单包括“打开”、“关闭”和“退出”三个子菜单项(名称分别为vbOpen、vbClose和vbExit)。
只建立菜单,不必定义其事件过程。
注意:保存时必须存放在考生文件夹下,窗体文件名为kt1.frm,工程文件名为kt1.vbp。
2.在名称为Form1的窗体上建立两个名称分别为Cmd1和Cmd2、标题分别为“喜欢”和“不喜欢”的命令按钮。
编写适当的事件过程,要求程序运行后,如果单击“喜欢”命令按钮,则在窗体上显示“数理化”;如果单击“不喜欢”命令按钮,则在窗体上显示“政史地”。
程序中不能使用任何变量,直接显示字符串。
注意:保存时必须存放在考生文件夹下,窗体文件名为kt2.frm,工程文件名为kt2.vbp。
一、基本操作题答案1.【解题步骤】(1)打开“菜单编辑器”。
(2)菜单设计见表4-1。
表4-1标题名称内缩符号文件vbFile 0打开vbOpen 1关闭vbClose 1退出vbExit 1帮助vbHelp 0(3)按要求设计含有“文件”和“帮助”的菜单栏。
(4)为“文件”菜单设计“打开”、“关闭”和“退出”三个子菜单项。
(5)设计完成之后,按规定方式存盘。
2.【解题步骤】(1)建立界面和控件并设置控件属性。
程序中用到的控件及其属性见表4-2。
表4-2控件属性设置值按钮Name Cmd1Caption 喜欢按钮Name Cmd2Caption 不喜欢(2)编写程序代码。
参考代码:Private Sub Cmd1_Click()Print"数理化"End SubPrivate Sub Cmd2_Click()Print"政史地"End Sub(3)调试并运行程序。
(4)按题目要求存盘。
二、简单应用题下面出现的“考生文件夹”均为c:\wexam\20060001。
1.在考生文件夹中有工程文件kt3.vbp及其窗体文件kt3.frm,该程序是不完整的,请在有“?”号的地方填入正确内容,然后删除“?”及所有注释符(即“'”号),但不能修改其他部分。
保存时不得改变文件名和文件夹。
本题描述如下:在窗体上有一个列表框,名称为List1;一个文本框,名称为Text1;一个命令按钮,名称为C1,标题为“复制”。
要求程序运行后,在列表框中自动建立4个列表项,分别为Item1、Item2、Item3和Item4。
如果选择列表框中的一项,单击“复制”按钮,就可以把该项复制到文本框中。
2.在考生文件夹中有工程文件kt4.vbp及其窗体文件kt4.frm,该程序是不完整的,请在有“?”号的地方填入正确内容,然后删除“?”及所有注释符(即“'”号),但不能修改其他部分。
保存时不得改变文件名和文件夹。
在窗体上有3个复选框,名称分别为Ch1、Ch2和Ch3,标题分别为“体育”、“音乐”和“美术”,还有一个命令按钮,名称为C1,标题为“显示”。
要求程序运行后,如果选中某个复选框,当单击“显示”命令按钮时,则显示相应的信息。
例如,如果选中“体育”和“美术”复选框,单击“显示”命令按钮后,在窗体上显示“我的爱好是体育美术”。
二、简单应用题答案1.【解析步骤】(1)首先按要求打开给定工程文件kt3.vbp及其窗体文件kt3.frm。
(2)在窗体上建立控件并设置控件属性。
程序中用到的控件及属性设置见表4-3。
表4-3控件属性设置值列表框Name List1文本框Name Text1命令按钮Name C1Caption 复制(3)进入代码窗口,得到如下程序代码:Option ExplicitPrivate Sub C1_Click()m i As Integer'For i = ? To List1.ListCount - 1If List1.Selected(i) = True Then'? = List1.List(i)End IfNext iEnd SubPrivate Sub Form_Load()List1.AddItem "Item1"List1.AddItem "Item2"List1.AddItem "Item3"List1.AddItem "Item4"End Sub(4)For语句循环变量的起始值为0。
(5)列表框的Text属性为最后一次选中的表项的文本。
(6)修改这两处的代码。
参考代码如下:Option ExplicitPrivate Sub C1_Click()Dim i As IntegerFor i = 0 To List1.ListCount - 1If List1.Selected(i) = True ThenText1.Text = List1.List(i)End IfNext iEnd SubPrivate Sub Form_Load()List1.AddItem "Item1"List1.AddItem "Item2"List1.AddItem "Item3"List1.AddItem "Item4"End Sub(7)调试并运行。
(8)按题目要求存盘。
2.【解析步骤】(1)在窗体上先按要求建立控件,设置控件属性,程序中用到的控件及属性见表4-4。
表4-4对象属性设置值复选按钮Name Ch1Caption 体育复选按钮Name Ch2Caption 音乐复选按钮Name Ch2Caption 美术标签Caption 爱好按钮Name C1Caption 显示(2)打开代码窗口,程序提供的代码如下:Option ExplicitPrivate Sub C1_Click()'Dim s As ?s = "我的爱好是"If Ch1.Value = 1 Thens = s + Ch1.CaptionEnd IfIf Ch2.Value = 1 Thens = s + Ch2.CaptionEnd IfIf Ch3.Value = 1 Thens = s + Ch3.CaptionEnd If'Print ?End Sub(3)读懂程序,分析代码。
①通过语句s = "我的爱好是"可知s为字符串,所以应改为:Dim s As String②由语句:s = s + Chx.Caption可知输出的变量为s,所以应改为:Print s(4)编写程序代码,整理后可得如下参考代码:Option ExplicitPrivate Sub C1_Click()Dim s As Strings = "我的爱好是"If Ch1.Value = 1 Thens = s + Ch1.CaptionEnd IfIf Ch2.Value = 1 Thens = s + Ch2.CaptionEnd IfIf Ch3.Value = 1 Thens = s + Ch3.CaptionEnd IfPrint sEnd Sub(5)调试并运行程序。
(6)按题目要求存盘。
三、综合应用题在考生文件夹中有工程文件kt5.vbp及其窗体文件kt5.frm,该程序是不完整的,请在有“?”号的地方填入正确内容,然后删除“?”及所有注释符(即“'”号),但不能修改其他部分。
本题描述如下:在名称为Form1的窗体上有两个单选按钮,名称分别为Opt1和Opt2,标题分别为“100~200之间素数”和“200~400之间素数”;一个文本框,名称为Text1;两个命令按钮,其名称分别为Cmd1和Cmd2,标题分别为“计算”和“存盘”。
程序运行后,如果选中一个单选按钮并单击“计算”按钮,则计算出该单选按钮标题所指明的所有素数之和,并在文本框中显示出来。
如果单击“存盘”按钮,则把计算结果存入out.txt文件中,该文件必须放在考生文件夹中(在考生文件夹中有标准模块mode.bas,其中的putdata过程可以把结果存入指定的文件,而isprime函数可以判断整数x是否为素数,如果是素数,则函数返回True,否则返回False,考生可以将该模块文件添加到自己的工程中)。
注意:必须把素数之和存入考生文件夹下的out.txt文件中,否则没有成绩。
保存程序时必须存放在考生文件夹下,窗体文件名为kt5.frm,工程文件名为kt5.vbp。
三、综合应用题答案【解析步骤】(1)建立界面并设置控件属性。
题目提供了程序用到的控件及其属性,见表4-5。
表4-5控件属性设置值单选按钮Name Op1Caption 100~200之间素数单选按钮Name Op2Caption 200~400之间素数文本框Name Text1命令按钮Name Cmd1Caption 计算命令按钮Name Cmd2Caption 存盘(2)打开代码窗口,得到程序提供的代码如下:'标准模块代码Option ExplicitSub putdata(t_FileName As String, T_Str As Variant)Dim sFile As StringsFile = "\" & t_FileNameOpen App.Path & sFile For Output As #1Print #1, T_StrClose #1End SubFunction isprime(t_I As Integer) As BooleanDim J As Integerisprime = FalseFor J = 2 To t_I / 2If t_I Mod J = 0 ThenExit ForNext JIf J > t_I / 2 Thenisprime = TrueEnd Function'窗体代码Private Sub Cmd1_Click()Dim i As IntegerDim temp As Long'temp = ?If Opt2.Value ThenFor i = 200 To 400' If isprime(?) Thentemp = temp + iEnd IfNextElseFor i = 100 To 200If isprime(i) Thentemp = temp + iEnd IfNextEnd If'Text1.? = tempEnd SubPrivate Sub Cmd2_Click()putdata "\out.txt", Text1.TextEnd Sub(3)分析代码,找出答案。