正文

用QB做的电子表程序(建议多看几下)2007-10-06 12:33:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/IamMato/29908.html

分享到:

(来源:QB论坛的myworld《一个想法而已....描述不正确表砸我..》) 这个电子表可以调整日期、时间、闹铃,并有整点报时功能。 使用说明: (1)日期的范围:1500年1月1日到2499年12月31日。 (2)按“1”“2”“3”分别调整日期、时间、闹铃。 (3)按“E”退出。 (4)请在输入程序时按Alt+Enter把QB环境调整为全屏,不然在闹铃的时候发出的声音有问题。 源代码: DECLARE SUB printdat ()DECLARE SUB printtim ()DECLARE SUB printcase ()DECLARE SUB setdat ()DECLARE SUB settim ()DECLARE SUB setbell ()DECLARE SUB printbell ()CLSDIM SHARED dat$, tim$, bell$dat$ = DATE$: tim$ = TIME$: bell$ = "10:30:00"DO  CALL printdat  CALL printtim  CALL printcase  IF RIGHT$(tim$, 5) = "00:00" THEN BEEP  IF tim$ = bell$ THEN FOR i = 1 TO 5: BEEP: NEXT i  s$ = INKEY$  IF s$ = "1" THEN     CALL setdat: DATE$ = dat$     CALL printdat  ELSEIF s$ = "2" THEN     CALL settim: TIME$ = tim$     CALL printtim  ELSEIF s$ = "3" THEN     CALL setbell  ELSEIF LCASE$(s$) = "e" THEN     END  END IF  dat$ = DATE$: tim$ = TIME$LOOP SUB printbellLOCATE 13, 36: PRINT bell$END SUB SUB printcaseLOCATE 18, 4: PRINT "(1)set date"LOCATE 18, 34: PRINT "(2)set time"LOCATE 18, 64: PRINT "(3)set bell"END SUB SUB printdatLOCATE 12, 33: PRINT "Today is "; dat$END SUB SUB printtimLOCATE 13, 36: PRINT tim$END SUB SUB setbellCLS : vbell$ = bell$LOCATE 10, 35: PRINT "Input bell:"CALL printbelli = 0DO  IF i < 8 THEN i = i + 1 ELSE EXIT DO  IF MID$(bell$, i, 1) <> ":" THEN     m$ = MID$(bell$, i, 1): MID$(bell$, i, 1) = "_"     CALL printbell7    n$ = INPUT$(1): n$ = LCASE$(n$)     IF n$ >= "0" AND n$ <= "9" THEN        MID$(bell$, i, 1) = n$        CALL printbell     ELSEIF n$ = "a" AND i > 1 THEN        MID$(bell$, i, 1) = m$: i = i - 2: CALL printbell: GOTO 8     ELSEIF n$ = "d" AND i < 8 THEN        MID$(bell$, i, 1) = m$: CALL printbell: GOTO 8     ELSEIF n$ = "r" THEN        EXIT DO     ELSE GOTO 7     END IF  END IF8 LOOPhour = VAL(LEFT$(bell$, 2))min = VAL(MID$(bell$, 4, 2))sec = VAL(RIGHT$(bell$, 2))IF hour < 0 OR hour > 24 OR min < 0 OR min > 59 OR sec < 0 OR sec > 59 THEN GOTO 9CLS : LOCATE 12, 34: PRINT "Set success!": SLEEP 3: CLS : EXIT SUB9 CLS : LOCATE 12, 34: PRINT "Invalid bell!": SLEEP 3: CLS : bell$ = vbell$END SUB SUB setdatCLS : vdat$ = dat$LOCATE 10, 35: PRINT "Input date:"CALL printdati = 0DO  IF i < 10 THEN i = i + 1 ELSE EXIT DO  IF MID$(dat$, i, 1) <> "-" THEN     m$ = MID$(dat$, i, 1): MID$(dat$, i, 1) = "_"     CALL printdat1    n$ = INPUT$(1): n$ = LCASE$(n$)     IF n$ >= "0" AND n$ <= "9" THEN        MID$(dat$, i, 1) = n$        CALL printdat     ELSEIF n$ = "a" AND i > 1 THEN        MID$(dat$, i, 1) = m$: i = i - 2: CALL printdat: GOTO 2     ELSEIF n$ = "d" AND i < 10 THEN        MID$(dat$, i, 1) = m$: CALL printdat: GOTO 2     ELSEIF n$ = "r" THEN        EXIT DO     ELSE GOTO 1     END IF  END IF2 LOOPyear = VAL(RIGHT$(dat$, 4))month = VAL(LEFT$(dat$, 2))day = VAL(MID$(dat$, 4, 2))IF year < 1500 OR year > 2499 OR month < 1 OR month > 12 OR day < 1 THEN GOTO 3SELECT CASE monthCASE 1, 3, 5, 7, 8, 10, 12: maxday = 31CASE 4, 6, 9, 11: maxday = 30CASE 2IF year MOD 4 = 0 AND year MOD 100 <> 0 OR year MOD 400 = 0 THEN   maxday = 29ELSE maxday = 28END IFEND SELECTIF day > maxday THEN GOTO 3CLS : LOCATE 12, 34: PRINT "Set success!": SLEEP 3: EXIT SUB3 CLS : LOCATE 12, 34: PRINT "Invalid date!": SLEEP 3: CLS : dat$ = vdat$END SUB SUB settimCLS : vtim$ = tim$LOCATE 10, 35: PRINT "Input time:"CALL printtimi = 0DO  IF i < 8 THEN i = i + 1 ELSE EXIT DO  IF MID$(tim$, i, 1) <> ":" THEN     m$ = MID$(tim$, i, 1): MID$(tim$, i, 1) = "_"     CALL printtim4    n$ = INPUT$(1): n$ = LCASE$(n$)     IF n$ >= "0" AND n$ <= "9" THEN        MID$(tim$, i, 1) = n$        CALL printtim     ELSEIF n$ = "a" AND i > 1 THEN        MID$(tim$, i, 1) = m$: i = i - 2: CALL printtim: GOTO 5     ELSEIF n$ = "d" AND i < 8 THEN        MID$(tim$, i, 1) = m$: CALL printtim: GOTO 5     ELSEIF n$ = "r" THEN        EXIT DO     ELSE GOTO 4     END IF  END IF5 LOOPhour = VAL(LEFT$(tim$, 2))min = VAL(MID$(tim$, 4, 2))sec = VAL(RIGHT$(tim$, 2))IF hour < 0 OR hour > 24 OR min < 0 OR min > 59 OR sec < 0 OR sec > 59 THEN GOTO 6CLS : LOCATE 12, 34: PRINT "Set success!": SLEEP 3: CLS : EXIT SUB6 CLS : LOCATE 12, 34: PRINT "Invalid time!": SLEEP 3: CLS : tim$ = vtim$END SUB  

阅读(1811) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册