问题 问答题

完成下列问题:

在考生目录下有一个工程文件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步:调试、运行并保存程序。
[1]Y [2]X1 [3]radius [4]Label1

解析: 在Form_MouseDown事件过程中,先用函数oncircle()来判断鼠标单击的位置(X,Y)是否在圆的边界上:若鼠标单击的位置不在边界上,则在标签上显示“鼠标位置不对”,所以[4]处应填Label1或Label1.Caption;若鼠标单击的位置在边界上,再根据单击的是鼠标左键还是右键来决定直线的显示位置。直线Line1由它的端点坐标(X1,Y1)和(X2,Y2)控制位置。

填空题
名词解释