注意:下面出现的“考生文件夹”均为c:\wexam\25160001。
在考生文件夹下有工程文件sjt5.vbp及窗体文件sjt5.frm,该程序是不完整的,请在有号的地方填入正确内容,然后删除及所有注释符(即’号),但不能修改其他部分乙存盘时不得改变文件名和文件夹,相应的dat文件也保存到考生文件夹下,否则没有成绩。
本题描述如下:
在名称为Form1的窗体上有五个Labe1控件和两个命令按钮,数据文件prog8a.dat存放一些字符。按“开始”按钮后,能从考生文件夹下的prog8a.dat中读出数据并分别统计出其中数字、大写字母、小写字母和其他类型字符的个数,将结果写入考生文件夹下的prog8b.dat文件中(以标准格式在一行中输出);执行完毕,“开始”按钮变成“完成”,且无效(变灰)。程序运行界面如图15-6所示。
参考答案: 在程序运行时控件是否可用由其Enable属性决定,当其值为True时可用,当为False不可用(灰色)。对文件进行操作必须先打开文件,同时通知操作系统对文件进行读操作还是写操作,打开文件的命令是Open,其常用形式为:
Open“文件名”For模式As[#]文件号[Len=记录长度]
模式有Output(打开文件,对其进行写操作)、Input(打开文件,对其进行读操作)、Append(打开文件,在文件末尾追加记录)。
统计大小写字符和数字只需根据字符的ASCII码判断,大写字母的ASCII值是FE~I0,小写字母的ASCII值是IG~ABB,数字的为DH~EG。解题步骤:
第一步:编写程序代码。
程序提供的代码:
Private Sub COMEXIT_Click()
End
End Sub
Private Sub COMSTART_Click()
Dim Ch As String, Number As Integer, Cp As Integer, Lp As Integer, Others As Integer
myfileA=App.Path & "\" & "progHa.txt"
myfileB=App.Path & "\" & "progHb.txt"
’Open myfileA For As #A
’Open myfileB For As #B
While Not EOF(A)
’Input , Ch$
If Asc(Ch$)>=DH And Asc(Ch$)<=EG Then
Number=Number+A
ElseIf Asc(Ch$)>=FE And Asc(Ch$)<=I0 Then
Cp=Cp+A
ElseIf Asc(Ch$)>=IG And Asc(Ch$)<=ABB Then
Lp=Lp+A
Else
’Others=
End If
Wend
’Print , Number, Cp, Lp, Others
Close
’COMSTART.Caption=
’COMSTART.Enabled=
End Sub
参考代码:
Private Sub COMEXIT_Click()
End
End Sub
Private Sub COMSTART_Click()
Dim Ch As String, Number As Integer, Cp As Integer, Lp As Integer, Others As Integer
myfileA=App.Path & "\" & "progHa.txt"
myfileB=App.Path & "\" & "progHb.txt"
Open myfileA For Input As #A
Open myfileB For Output As #B
While Not EOF(A)
Input #A, Ch$
If Asc(Ch$)>=DH And Asc(Ch$)<=EG Then
Number=Number+A
ElseIf Asc(Ch$)>=FE And Asc(Ch$)<=I0 Then
Cp=Cp+A
ElseIf Asc(Ch$)>=IG And Asc(Ch$)<=ABB Then
Lp=Lp+A
Else
Others=Others+A
End If
Wend
Print #B, Number, Cp, Lp, Others
Close
COMSTART.Caption="完成"
COMSTART.Enabled=False
End Sub
第二步:调试并运行程序。
第三步:按题目要求存盘。