考生文件夹下有工程文件sjt5.vbp,各控件及其属性见窗体文件,窗体界面如图所示。 程序功能如下: (1)单击“读数据”按钮,则将考生文件夹下in5.dat文件的内容读到变量a中; (2)单击“操作”按钮.则依次完成以下两个任务。

admin2020-06-30  23

问题 考生文件夹下有工程文件sjt5.vbp,各控件及其属性见窗体文件,窗体界面如图所示。
    程序功能如下:
    (1)单击“读数据”按钮,则将考生文件夹下in5.dat文件的内容读到变量a中;
    (2)单击“操作”按钮.则依次完成以下两个任务。
    任务一:自动统计in5.dat文件(文件中有若干单词,单词之间由一个空格隔开,无其他字符)中单词的个数,并将其值显示在Text1文本框内;
    任务二:删除in5.dat文件中的所有定冠词the,并将其个数显示在Text2文本框内。
    “读数据”按钮的Click事件过程已经给出,请完善“操作”按钮Click事件过程(有一段程序需考生自行编写,另有一处需将注释符去掉,把?改为正确内容),以实现上述程序功能。

    注意:考生不得修改窗体文件中已经存在的控件和程序,程序须按原文件名存盘。
    在结束程序运行之前,必须单击“操作”按钮运行,且必须用窗体右上角的关闭按钮结束程序,否则将影响最终成绩。

选项

答案步骤1:打开本题工程文件。 步骤2:打开代码编辑窗口,填入相应的代码以实现题目的功能。 参考答案(画横线部分是需要填入的内容) Dim a As String Private Sub Command1_Click() Open App.Path&"\in5.dat"For Input As#1 a=Input(LOF(1),#1) Close#1 End Sub Private Sub Command2_Click() Dim s As String Dim Bum As Integer Dim m As Integer,t_num As Integer ’统计单词个数 ’****************************** sp=Split(a," ") num=UBound(sp)+1 Textl.Text=num ’****************************** ’删除定冠词 s=LCase(Trim(a)) m=InStr(s,"the") Do While m>0 t_num=t_num+1 s=Left(s,m-1) +Mid(s,m+4) m=InStr(s,”the”) Loop Text2.Text=t_num End Sub Private Sub Form_Unload(Cancel As Integer) Open App.Path&"\out5.dat"For Output As#1 Print#1,Text1.Text,Text2.Text Close#1 End Sub 步骤3:调试并运行程序,单击“读数据”按钮,冉单击“操作”按钮,最后关闭程序后按题目要求存盘。

解析 单击“读数据”按钮,运用文件操作将考生文件夹下in5.dat文件的内容存入变量a中。在Command2_Click()事件中,运用Split()函数把a中的内容以空格分割,得到一个全是单词的一维数组,下标从0开始。UBound()函数可以得到一个数组的下标,该下标加1即为该数组的长度。InStr()函数是字符串匹配函数,例如,InStr(s1,s2),在字符串s1中查找s2的位置,若找到,则返回s2字符串的第一个字符在sl中的位置,找不到则返回0。Left()和Mid()都是字符串截取函数,Left(s,m-1)+Mid(s,m+4)的作用是把已经查到的单词“the”从该字符串中删除,最后把查到的单词“the”的个数显示在text2中。
转载请注明原文地址:https://kaotiyun.com/show/LFHp777K
0

最新回复(0)