应用题 1. 在考生文件夹下有一个工程文件sjt5.vbp,含三个窗体,标题分别为“启动”、“注册”、“登录”,程序运行时显示“启动”窗体,单击窗体上按钮时弹出对应窗体进行注册或登录。
    注册信息放在全局数组users中,注册用户数(小于或等于10个)放在全局变量n中(均已在标准模块中定义)。
    注册时用户名不能重复,且“口令”与“验证口令”必须相同,注册成功则在“启动”窗体的标签中提示“注册成功”,否则提示相应错误信息。登录时,检验用户名和口令,若正确,则在“启动”窗体的标签上提示“登录成功”,否则提示相应错误信息。
    标准模块中函数finduser的功能是:在users数组中搜索用户名(参数ch),找到则返回该用户名在users中的位置,否则返回0。
    文件中已经给出了所有控件和程序,但程序不完整,请去掉程序中的注释符,把Form2、Form3窗体文件中的?改为正确的内容。
    注意:不得修改已经存在的程序和控件的属性;最后,程序按原文件名存盘。
【正确答案】【操作步骤】
   步骤1:打开本题工程文件。
   步骤2:打开代码编辑窗口,去掉程序中的注释符“'”,将问号改为正确的内容。
   参考答案(字体加粗部分是需考生填入的内容)
   'Form2窗体代码
   Private Sub Command1_Click() '清空重置
   Text1=""
   Text2=""
   Text3=""
   End Sub
   Sub writeusers() '向数组users中写入新用户信息
   n=n+1 '用户数目自增
   users(n,1)=Text1 '保存用户的用户名、密码
   users(n,2)=Text2
   End Sub
   Private Sub Command2_Click()
   If Text1=""Then
   MsgBox("必须输入用户名!")
   Text1.SetFocus 'Text1重新获得焦点
   ElseIf finduser(Trim$(Text1))>0 Then
   '如找到相同名,则返回位置一定大于0
   MsgBox("此用户名已经存在!")
   ElseIf Text2<>Text3 Then '比较口令与验证口令是否相同
   MsgBox("口令验证错误!")
   Else
   writeusers
   Form1.Label1="注册成功!"
   '当注册成功后Label1显示成功信息
   Form2.Hide
   End If
   End Sub
   'Form3窗体代码
   Private Sub Command1_Click()
   k=finduser(Trim$(Text1))
   If k=0 Then '验证用户名是否存在
   MsgBox("没有注册!")
   ElseIf Trim$(Text2)<>users(k,2)Then '验证输入的密码是否正确
   MsgBox("口令错误!")
   Else
   Form1.Label1.Caption="登录成功!"
   Form3.Hide
   End If
   End Sub
   步骤3:调试并运行程序,关闭程序后按题目要求存盘。
   
【答案解析】[考点] 本题考点有:窗体Show和Hide方法、标签的Caption属性、MsgBox()函数、Trim()函数以及文本框SetFocus方法。
因为本题的窗体比较多,含有一个模块,所以首先要理清思路,了解每一个窗体的功能。窗体1是启动界面,可以选择登录或者注册,窗体2是注册窗口实现用户的注册,窗体3是登录窗口实现用户的登录,模块中函数的功能是在数组中寻找用户名,并返回其所在的位置。理清了各个窗体和模块的关系,就可以开始分析并编写代码了。