注意:下面出现的“考生文件夹”均为c:\wexam\25160001。 在考生文件夹下有工程文件sjt5.vbp及窗体文件sjt5.frm,该程序是不完整的,请在有号的地方填入正确内容,然后删除及所有注释符(即’号),但不能修改其他部分。存盘时不得改变文件名和文件夹,相应的dat文件也保存到考生文件夹下,否则没有成绩。如图16-4所示。 本题描述如下: 在名称为Form1的窗体上有五个Labe1控件和两个命令按钮,数据文件grade.dat存放一些成绩。按“开始”按钮后,从考生文件夹下的grade.dat中读出数据并求出它们的平均数,将结果写入考生文件夹下的average.dat文件中;执行完毕,“开始”按钮变成“完成”,且无效(变灰)。
参考答案:
解析: 命令按钮的标题由Caption属性来设置,单击命令按钮触发Click事件;执行完毕,“开始”按钮变成“完成”,且无效(变灰):Open grade.dat For Input As #1以只读方式打开文件,读出数据;求平均数则先求每个数的和然后除以数字的个数即可;程序中用到的Input读文件的格式为:Input#文件号,变量列表,在将数据写入文件时,要使用Write#语句而不是使用Print#语句,因为Write#语句能够将各个数据项正确的区分开。解题步骤:
第一步:建立界面并设置控件属性。程序中用到的控件及其属性见表16-5。
表 16-5
控 件 | 属 性 | 设 置 值 |
label | Name Caption | Label1 考试文件夹\GRADE.DAT |
label | Name Caption | Label2 考试文件夹\AVERAGE.DAT |
label | Name Caption | Label3 源文件: |
label | Name | Label4 目标文件: |
label | Name Caption | Label5 从源文件中读出数据并求出它们的平均数后,写入目标文件 |
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
myfile1=App.Path & "\" & "grade.txt"
myfile2=App.Path & "\" & "average.txt"
’Open For As #1
’Open For As
Do While Not EOF(1)
’ Input , g
N=N+1
S=S+g
Loop
Close #1
’S=S /
’Write #2,
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
myfile1=App.Path & "\" & "grade.txt"
myfile2=App.Path & "\" & "average.txt"
Open myfile1 For Input As #1
Open myfile2 For Output As #2
Do While Not EOF(1)
Input #1, g
N=N+i
S=S+g
Loop
Close #1
S=S/N
Write #2, S
Close
COMSTART.Caption="完成"
COMSTART.Enabled=False
End Sub
第三步:调试并运行程序。
第四步:按题目要求存盘