问答题

注意:下面出现的“”均为c:\wexam\25160001。
请根据以下各小题的要求设计Visual Basic应用程序(包括界面和代码)。
(1) 在名称为Form1的窗体上放置一个名称为Drive1的Drive ListBox控件,一个名称为Dir1的 DirListBox控件和一个名称为Filel的FileListBox控件。程序运行时,可以对系统中的文件进行浏览;当双击File1中的文件名时,用MsgBox显示文件名(不显示路径名)。如图16-1所示。
注意:程序中不得使用任何变量;保存时必须存放在考生文件夹下,窗体文件名为sjt1.frm,工程文件名为sjt1.vbp。
(2) 在名称为Form1的窗体上放置一个名为Text1的文本框控件和一个名为Timer1的计时器控件,程序运行后,文本框中显示的是当前的时间,而且每一秒文本框中所显示的时间都会随时间的变化而改变。
注意:程序中不得使用任何变量;保存时必须存放在考生文件夹下,窗体文件名为sjt2.frm,工程文件名为sjt2.vbp,如图16-2所示。

【参考答案】

[解析] 在窗体上建立好控件后,先设置控件属性,再编写事件过程。
文件系统控件有C种:驱动器列表框(Drive......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)
热门 试题

问答题
[解析] 在窗体上建立好控件后,先设置控件属性,再编写事件过程。 用数组a(A0)来接收InputBox输入的A0数,InputBox的格式为:InputBox(提示[,标题][,默认][,X坐标位置][,Y坐标位置]);控件是否可用可利用其Enabled属性设置,当该值为True时可用,为False时不可用(灰色);判断是否是数字可用IsNumeric(),如果是数字返回True,否则返回False;本程序中用到的排序方法是将某一个元素做为标杆,其后的每一个元素与其比较,若小于标杆则两者交换,依此类推,题中要求排完序后a(A)至a(A0)依次存放大数,在文本框中显示升序和降序的时候只要两者反序显示即可,即升序可依次显示a(A)到a(A0),降序可依次显示a(A0)到a(A)。解题步骤: 第一步:建立界面并设置控件属性。程序中用到的控件及其属性见表AF-C。 表 AF-C 控 件 属 性 设 置 值 标签 Caption 点击“开始录入”按钮,录入A0个数 文本 Name Scrollbars Multilane TextA B-vertical true 文本 Name Scrollbars Multilane TextD B-vertical true 文本 Name TextB 文本 Name TextC 按钮 Name Caption CommandA 最大数 按钮 Name Caption CommandB 最小数 按钮 Name Caption CommandC 升序排列 按钮 Name Caption CommandD 降序排列 按钮 Name Caption CommandE 退出 按钮 Name Caption CommandF 开始录入 按钮 Name Caption CommandG 清除 第二步:编写程序代码。 程序提供的代码: Option Explicit Dim a(A0) As Variant Dim i As Integer, j As Integer Dim m As Single Private Sub CommandA_Click() ’TextB.Text= CommandA.Enabled=False CommandG.Enabled=True End Sub Private Sub CommandB_Click() ’TextC.Text= CommandB.Enabled=False CommandG.Enabled=True End Sub Private Sub CommandC_Click() For i=A To A0 ’TextA.Text=TextA.Text && , Next i CommandC.Enabled=False CommandG.Enabled=True End Sub Private Sub CommandD_Click() For i=A0 To A Step -A ’TextD.Text=TextD.Text && , Next i CommandD.Enabled=False CommandG.Enabled=True End Sub Private Sub CommandE_Click() End End Sub Private Sub CommandF_Click() LabelA.Enabled=False For i=A To A0 a(i)=InputBox( 请输入第 & i & 个数,请务必输入数值数据! , 输入 ) Do While IsNumeric(a(i) )=False a(i)=InputBox( 输入数据无效,请重新输入数值数据! ! ! & 请输入第 & _ i & 个数 , 输入 ) Loop Next i For i=A To I For j=i+A To A0 ’If Val(a(j) ) Val(a(i) ) Then m=a(j) a(j)=a(i) a(i)=m End If Next j Next i CommandF.Enabled=False Commandl.Enabled=True CommandB.Enabled=True CommandC.Enabled=True CommandD.Enabled=True CommandE.Enabled=True CommandG.Enabled=False End Sub Private Sub CommandG_Click() ’TextA.Text= ’TextB.Text= ’TextC.Text= ’TextD.Text= LabelA.Enabled=True CommandF.Enabled=True CommandD.Enabled=False CommandC.Enabled=False CommandB.Enabled=False Commandl.Enabled=False CommandG.Enabled=False End Sub Private Sub Form_Load() CommandA.Enabled=False CommandB.Enabled=False CommandC.Enabled=False CommandD.Enabled=False CommandG.Enabled=False End Sub 参考代码: Option Explicit Dim a(A0) As Variant Dim i As Integer, j As Integer Dim m As Single Private Sub CommandA_Click() TextB.Text=a(A0) CommandA.Enabled=False CommandG.Enabled=True End Sub Private Sub CommandB_Click() TextC.Text=a(A) CommandB.Enabled=False CommandG.Enabled=True End Sub Private Sub CommandC_Click() For i=A To A0 TextA.Text=TextA.Text & a(i) & , Next i CommandC.Enabled=False CommandG.Enabled=True End Sub Private Sub CommandD_Click() For i=A0 To A Step -A TextD.Text=TextD.Text & a(i) & , Next i CommandD.Enabled=False CommandG.Enabled=True End Sub Private Sub CommandE_Click() End End Sub Private Sub CommandF_Click() LabelA.Enabled=False For i=A To A0 a(i)=InputBox( 请输入第 & i & 个数,请务必输入数值数据! , 输入 ) Do While IsNumeric(a(i) )=False a(i)=InputBox( 输入数据无效,请重新输入数值数据! ! ! & 请输入第 & i & _ 个数 , 输入 ) Loop Next i For i=A To I For j=i+A To A0 If Val(a(j) )< Val(a(i) ) Then m=a(j) a(j)=a(i) a(i)=m End If Next j Next i CommandF.Enabled=False CommandA.Enabled=True CommandB.Enabled=True CommandC.Enabled=True CommandD.Enabled=True CommandE.Enabled=True CommandG.Enabled=False End Sub Private Sub CommandG_Click() TextA.Text= TextB.Text= TextC.Text= TextD.Text= LabelA.Enabled=True CommandF.Enabled=True CommandD.Enabled=False CommandC.Enabled=False CommandB.Enabled=False CommandA.Enabled=False CommandG.Enabled=False End Sub Private Sub Form_Load() CommandA.Enabled=False CommandB.Enabled=False CommandC.Enabled=False CommandD.Enabled=False CommandG.Enabled=False End Sub 第三步:调试并运行程序。 第四步:按题目要求存盘。 (B) [解析] 控件是否可用可利用其Enabled属性设置,当该值为True时可用,为False时不可用(灰色);计算从A到n的数字的和可从A开始向后计算,每一步计算的结果都保留然后再用上一步计算的值和后面的数字计算;清除可使文本框的内容置空来实现(文本框.Text= );显示结果框内的文字不可修改,是通过Locked属性变为True时锁定的。解题步骤: 第一步:建立界面并设置控件属性。程序中用到的控件及其属性见表AF-D。 表 AF-D 标 题 属 性 设 置 值 Label Name Caption LabelA 该程序的功能是求S∶S=A+B+C+…+n Label Name Caption LabelB 请输入:n(0≤n≤IIIIIIIII) Label Name Caption LabelC 结果显示框 Text Name TextA Text Name Caption TextB True Commandbutton Name Caption CommandA 显示结果 Commandbutton Name Caption Command2 清除 Commandbutton Name Caption Command3 关闭 第二步:编写程序代码: 程序提供的代码: Option Explicit Private Sub CommandA_Click() Dim i As Double Dim sum As Double Dim n As Double sum=0 n=Val(TextA.Text) For i=A To n ’ sum= Next A ’TextB.Text= CommandA.Enabled=False CommandB.Enabled=True End Sub Private Sub CommandB_Click() ’TextA.Text= ’TextB.Text= CommandA.Enabled=True CommandB.Enabled=False End Sub Private Sub CommandC_Click() End End Sub Private Sub Form_Load() CommandA.Enabled=False CommandB.Enabled=False End Sub Private Sub TextA_Change() CommandA.Enabled=True End Sub Option Explicit Private Sub CommandA_Click() Dim i As Double Dim sum As Double Dim n As Double sum=0 n=Val(TextA.Text) For i=A To n sum=sum+i Next i TextB.Text=sum CommandA.Enabled=False CommandB.Enabled=True End Sub Private Sub CommandB_Click() TextA.Text=0 TextB.Text=0 CommandA.Enabled=True CommandB.Enabled=False End Sub Private Sub CommandC_Click() End End Sub Private Sub Form_Load() CommandA.Enabled=False CommandB.Enabled=False End Sub Private Sub TextA_Change() CommandA.Enabled=True End Sub 第三步:调试并运行程序。 第四步:按题目要求存盘。
问答题
[解析] 命令按钮的标题由Caption属性来设置,单击命令按钮触发Click事件;执行完毕,“开始”按钮变成“完成”,且无效(变灰):Open grade.dat For Input As #A以只读方式打开文件,读出数据;求平均数则先求每个数的和然后除以数字的个数即可;程序中用到的Input读文件的格式为:Input#文件号,变量列表,在将数据写入文件时,要使用Write#语句而不是使用Print#语句,因为Write#语句能够将各个数据项正确的区分开。解题步骤: 第一步:建立界面并设置控件属性。程序中用到的控件及其属性见表AF-E。 表 AF-E 控 件 属 性 设 置 值 label Name Caption LabelA 考试文件夹 GRADE.DAT label Name Caption LabelB 考试文件夹 AVERAGE.DAT label Name Caption LabelC 源文件: label Name LabelD 目标文件: label Name Caption LabelE 从源文件中读出数据并求出它们的平均数后,写入目标文件 Commandbutton Name Caption COMSTART 开始 Commandbutton Name Caption COMSTART 退出 第二步:编写程序代码。 程序提供的代码: Private Sub COMEXIT_Click() End End Sub Private Sub COMSTART_Click() Dim g As Single, N As Integer, S As Single myfileA=App.Path & & grade.txt myfileB=App.Path & & average.txt ’Open For As #A ’Open For As Do While Not EOF(A) ’ Input , g N=N+A S=S+g Loop Close #A ’S=S ’Write #B, Close ’COMSTART.Caption= ’COMSTART.Enabled= End Sub 参考代码: Private Sub COMEXIT_Click() End End Sub Private Sub COMSTART_Click() Dim g As Single, N As Integer, S As Single myfileA=App.Path & & grade.txt myfileB=App.Path & & average.txt Open myfileA For Input As #A Open myfileB For Output As #B Do While Not EOF(A) Input #A, g N=N+i S=S+g Loop Close #A S=S N Write #B, S Close COMSTART.Caption= 完成 COMSTART.Enabled=False End Sub 第三步:调试并运行程序。 第四步:按题目要求存盘