全球旧事资料 分类
终点位置Li
eSY2Y0LSCosS_setaIf3The
MMi
uteTimeLi
eMX2X0LMSi
PiM30分针的终点位置
fLi
eMY2Y0LMCosPiM30HHourTimeIfH>12The
HH12H_setaPi4时针的转角Li
eHX2X0LHSi
H_seta时针的终点位置Li
eHY2Y0LHCosH_serafirst5E
dIfE
dSub试题七分析本题中,时针、分针、秒针三条线形需要定时调整位置。按题意要求,秒针应每隔半秒调整一次,分针和时针应每隔1分钟调整一次本题要求在秒数为0时进行调整。还需要注意,在应用程序运行初始时时针分针首次调整前应确定分针和时针的正确位置否则,会在开始的一段时间内显示不正确时间,最长可能持续约1分钟。因此,该应用程序开发时需要设置一个定时器,时间间隔为半秒500毫秒。每次定时事件都会触发秒针的调整,而当秒数为0或初始状态时,还需要重新定位分针和时针。定时器的时间间隔由I
terval属性值确定,因此,该值应设置成500以毫秒为单位,即1处应填写500。该应用的程序代码中,首先定义了若干个常数,包括Piπ、时钟圆心的位置X0Y0、时针的长度LH、分针的长度LM、秒针的长度LS,还定义了逻辑布尔变量first描述是否为初始状态。Form_Load过程是应用程序装载该窗口时自动执行的。该过程的任务是进行初始化:将时分秒针的起点位置设置成时钟的圆心位置,并且将逻辑变量first设置成初始值true。在定时器定时事件触发的过程中,先从系统中取得当前秒值S。以S0时的秒针为标准,秒针的转角S_seraS0时Sseta0S→60时Sseta→2π可以计算如下:S_setaπS30因此,2处应填写S30。根据秒针的起点以及转角就可以设置秒针的终点坐标Li
eSX2Li
eSY2。按照题意,当S0或firsttrue时,需要定位分针与时针。因此,3处可以填写成S0orfirst。注意,first本身是逻辑变量,可以不用再写出firsttree。根据系统当前的分值调整分针的位置见程序代码,没有要求填空。调整时针的位置比较复杂些。首先,应取得系统中的当前时值H0~23,当H≥12时,应按H12处理。计算时针的转角时,应包括时值对转角的作用以及分值对转角的作用。时值H为0时,转角为0;时值H→12时,转角→2π。分值M为0时,增加转角为0;分值M→60时,增加转角→2π12。根据时值的作用可以算出其转角为πH6,根据分值的作用可以算出其增加的转角为πM360,因此,时针的转角计算公式如下:H_setaπH6M360也就是说,4处应填写H6M360。在调整了时针和分针后,逻辑变量first就应设置成False表示已经处于非初始状态。因此,5处应填写False。r
好听全球资料 返回顶部