注意:下面出现的“考生文件夹”均为c:\wexam\25160001。
在考生文件夹下有工程文件sjt5.vbp及窗体文件sjt5.frm,该程序是不完整的,请在有号的地方填入正确内容,然后删除及所有注释符(即’号),但不能修改其他部分。存盘时不得改变文件名和文件夹,相应的dat文件也保存到考生文件夹下,否则没有成绩。
本题描述如下:
在名称为Form1的窗体上有五个Labe1控件和两个命令按钮,数据文件worker.dat,存放工人的编号、姓名、性别和体重。按“开始”按钮后,能从考生文件夹下的worker.dat中读出数据并把体重大于平均体重的工人的所有数据写入考生文件夹下的worker1.dat文件中;执行完毕,“开始”按钮变成“完成”,且无效。程序运行界面如图14-5所示。
参考答案: 本题主要是考查对文件的读写,对文件进行操作之前必须打开文件,使用Open语句,其格式为:
Open文件名[For 方式][Access 存取类型][锁定]As[#]文件号[Len=记录长度]
Close语句关闭Open语句所打开的输入/输出文件。其格式为:
Close[filenumberlist]
filenumberlist是可选参数,为一个或多个文件号。
对文件操作完之后,必须关闭文件,使用Close语句关闭文件。解题步骤:
第一步:编写程序代码。
程序提供的代码:
Private Sub COMEXIT_Click()
End
End Sub
Private Sub COMSTART_Click()
Dim i As Integer
Dim total As Integer
Dim aver As Single
Dim num(A0) , namstring(A0) , sexstring(A0) , wages(A0)
’MyFileA=App.Path & "\" &
’MyFileB=App.Path & "\" &
Open MyFileA For Input As #A
Open MyFileB For Output As #B
For i=A To A0
’Input , num(i) , namstring(i) , sexstring(i) , wages(i)
total=total+wages(i)
Next i
’aver=/A0
For i=A To A0
’If Then Write #B, num(i) , namstring(i) , sexstring(i) , wages(i)
Next i
’COMSTART.Caption=
’COMSTART.Enabled=
End Sub
参考代码:
Private Sub COMEXIT_Click()
End
End Sub
Private Sub COMSTART_Click()
Dim i As Integer
Dim total As Integer
Dim aver As Single
Dim num(A0) , namstring(A0) , sexstring(A0) , wages(A0)
MyFilel=App.Path & "\" & "worker.dat"
MyFileB=App.Path & "\" & "workerA.dat"
Open MyFilel For Input As #A
Open MyFileB For Output As #B
For i=A To A0
Input #A, num(i) , namstring(i) , sexstring(i) , wages(i)
total=total+wages(i)
Next i
aver=total / A0
For i=A To A0
If wages(i)>aver Then Write #B, num(i) , namstring(i) , sexstring(i) , wages(i)
Next i
COMSTART.Caption="完成"
COMSTART.Enabled=False
End Sub
第二步:调试并运行程序。
第三步:按题目要求存盘。