在考生文件夹下有一个工程文件sjt5.vbp,其窗体中有一个实心圆。程序运行时,当用鼠标左键单击窗体任何位置时,实心圆则向单击位置直线移动:若用鼠标右键单击窗体,则实心圆停止移动。窗体文件中已经给出了全部控件,但程序不完整。 要求:请去掉程序中的注释符,把

admin2010-09-02  22

问题 在考生文件夹下有一个工程文件sjt5.vbp,其窗体中有一个实心圆。程序运行时,当用鼠标左键单击窗体任何位置时,实心圆则向单击位置直线移动:若用鼠标右键单击窗体,则实心圆停止移动。窗体文件中已经给出了全部控件,但程序不完整。
要求:请去掉程序中的注释符,把程序中的?改为正确的内容,使其能正确运行,不能修改程序的其他部分和控件属性。最后把修改后的文件按原文件名存盘。

选项

答案 【操作步骤】 步骤l:打开考生文件下的本题工程文件sjt5.vbp,在代码编辑窗口,去掉程序中的注释符们“’”,将问号“?”改为正确的内容。 参考代码; stepx=0 stepy=a*stepx Timerl.Enabled=True Timerl.Enabled=False Shape].Move Shapel.Left+stepx, Shapel.Top+stepy 步骤2:按要求将文件保存至考生文件夹中。

解析      Sgn(N)符号函数用于返回一个表示N的正、负或O的值。N>0,返回l;N=0,返回0;N<0,返回-1。
     本题在窗体的鼠标按下事件过程中,若按下的是鼠标左键,则通过计算得出圆心的坐标。若圆心与当前鼠标按下点位于同一竖线上时(即x=x0),则设定实心圆纵向移动增量为stepy=Sgn(y-yO)*50,横向移动增量则为O(即stepx=0);否则设定实心圆横向移动增量为stepx=Sgnt(x-xo)*50,并根据斜率a计算出纵向移动增量:stepy,=a*stepx,若计算出的纵向移动增量step),绝对值大于横向移动增量绝对值stepx,则重新设定实心圆纵向移动增量为stepy=sgn(y-y0)*50,计算出横向移动增量stepx=stepy/a,以防止实心圆移动速度不均。启动计时器Timerl(设置其Enabled属性值为True),利用其Timer事件过程控制实心圆移动。
    根据计算出的实心圆横向移动增量和纵向移动增量,其移动的语句为:Shapel.Move Shapel.Left+stepx,Shapel.Top+stepy
转载请注明原文地址:https://jikaoti.com/ti/7Ng0FFFM
0

最新回复(0)