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

admin2017-09-22  26

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

选项

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

解析 本题在窗体的鼠标按下事件过程中,若按下的是鼠标左键,则通过计算得出圆心的坐标。若圆心与当前鼠标按下点位于同一竖线上时(即x=x0),则设定实心圆纵向移动增量为stepy=Sgn(y-y0)*50,横向移动增量则为0(即stepx=0);否则设定实心圆横向移动增量为stepx=Sgn(x-x0)*50,并根据斜率a计算出纵向移动增量:stepy=a*stepx,若计算出的纵向移动增量stepy绝对值大于横向移动增量绝对值stepx,则重新设定实心圆纵向移动增量为stepy=Sen(y-y0)*50,计算出横向移动增量stepx=stepy/a,以防止实心圆移动速度不均。启动计时器Timerl(设置其Enabled属性值为True),利用其Timer事件过程控制实心圆移动。
    根据计算出的实心圆横向移动增量和纵向移动增量,其移动的语句为:Shape1.Move Shape1.Left+stepx,Shape 1.Top+stepy。
转载请注明原文地址:https://kaotiyun.com/show/YjGp777K
0

最新回复(0)