问答题

完成下列问题:
在考生目录下有一个工程文件sjt3.vbp。窗体上有个钟表图案,其中代表指针的直线的名称是Line1,还有一个名称为Label1的标签,和其他一些控件(如图3所示)。在运行时,若用鼠标左键单击圆的边线,则指针指向鼠标单击的位置(如图4所示);若用鼠标右键单击圆的边线,则指针恢复到起始位置(如图3所示);若鼠标左键和右键单击其他位置,则在标签上显示“鼠标位置不对”。




文件中已经给出了所有控件和程序,但程序不完整,请去掉程序中的注释符,在程序中的横线处填写正确的内容。程序中函数oncircle()的作用是判断鼠标单击位置是否在圆的边线上(判断结果略有误差),“是”则返回True,“否”则返回False。符号常量x0、y0是圆心距窗体左上角的距离;符号常量radius是圆的半径。
注意:不能修改程序中的其他部分和各控件的属性。最后把修改后的文件按原文件名存盘。
[题目提供的源程序]
Const y0&=1110, x0&=1100, radius&=750
Private Function oncircle(X As Single, Y As Single) As Boolean
precision=55000
If Abs((X-x0)*(X-x0)+(y0-Y)*(y0-Y)-radius*radius)<precision Then
oncircle=True
Else
oncircle=False
End If
End Function
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Const LEFT_BUTTON=1
If oncircle(X,Y)Then
Linel.X1=x0
Line1.Y1=y0
If Button=LEFT_BUTTON Then
Line1.X2=X
Line1.Y2= (1)
Else
Line1.X2=Line1. (2)
Line1.Y2=y0- (3)
End If
Label1.Caption=""
Else
(4) ="鼠标位置不对"
End If
End Sub

【参考答案】

[操作步骤]
第1步:打开工程文件sjt3.vbp。
第2步:修改源程序。
第3步:调试、......

(↓↓↓ 点击下方‘点击查看答案’看完整答案、解析 ↓↓↓)
热门 试题

问答题
在考生文件夹下有一个工程文件sjt5.vbp,其中含3个窗体,标题分别为“启动”、“注册”、“登录”,运行时显示“启动”窗体,单击其上的按钮时将弹出对应窗体以进行注册和登录。 注册信息放在全局数组users中,注册用户数(最多10个)放在全局变量n中(均已在标准模块中定义)。 注册时用户名不能重复,且“口令”与“验证口令”须相同,注册成功则在“启动”窗体的标签中显示“注册成功”,否则显示相应错误信息。登录时,检验用户名和口令,若正确,则在“启动”窗体的标签上显示“登录成功”,否则显示相应的错误信息。 标准模块中函数finduser()的功能是:在users数组中搜索用户名(即参数ch),找到则返回该用户名在users中的位置,否则返回0。 已经给出了所有控件和程序,但程序不完整,在Form2、Form3窗体文件中的横线处填写正确的内容。 注意:不得修改已经存在的程序和控件的属性,最后程序按原文件名存盘。 [题目提供的源程序] 1.标准模块源程序 Option Base 1 Public users(10,2) As String Public n As Integer Public Function finduser(ch As String) As Integer For k=1 To 10 If users(k,1)=ch Then finduser=k Exit Function End If Next k finduser=0 End Function 2.Form1源程序 Private Sub Command1_Click() Form2.Text1= Form2.Text2= Form2.Text3= Label1.Caption= Form2.Show End Sub Private Sub Command2_Click() Form3.Text2= Label1.Caption= Form3.Show End Sub 3.Form2源程序 Private Sub Command1_Click() Text1= Text2= Text3= End Sub Sub writeusers() n=n+ (1) users(n,1)=Text1 users(n,2)=Text2 End Sub Private Sub Command2_Click() If Text1= Then MsgBox( 必须输入用户名! ) Text1.SetFocus ElseIf finduser(Trim $ (Text1))> (2) Then MsgBox( 此用户名已经存在! ) ElseIf Text2<>Text3 Then MsgBox( 口令验证错误! ) Else writeusers (3) = 注册成功! Form2.Hide End If End Sub 4.Form3源程序 Private Sub Command1_Click() k=finduser(Trim $ (Text1)) If k= (4) Then MsgBox( 没有注册! ) ElseIf Trim $(Text2) <> users( (5) ) Then MsgBox( 口令错误! ) Else Form1.Label1.Caption= 登录成功! Form3.Hide End If End Sub