回 帖 发 新 帖 刷新版面

主题:一个QB编的摇奖程序

下面是一个QBASIC 编的7位数摇奖 程序,大家凑货玩,顺便给点建议
 
次程序 需要 汉字显示 程序支持,用户存档 没加密, 代码也没优化,就是写着玩的

DECLARE SUB chushihua ()
DECLARE SUB zhanghu (huming$, jb&, jrtj)
DECLARE SUB bangzhu ()
DECLARE SUB yaojiang (duihao1$, duihao2$, pdh)
DECLARE SUB duijiang (duihao1$, duihao2$, cs%, jb1&, pdh)
DECLARE SUB xuanhao (duihao1$, duihao2$, jb&, huming$, jrtj)
DECLARE SUB shurushuzhi (dai, cd, kg, zbx, zby, pdh)
DECLARE SUB zf10 (zfdai$, cd, kg, zbx, zby, pdh)
jrtj = 5
OPEN "c:\caipiao.dat" FOR APPEND AS #8
x = LOF(8)
CLOSE #8
IF x < 4 THEN jrtj = 8
CALL zhanghu(huming$, jb&, jrtj)
caidan:
CALL chushihua
IF jrtj = 1 AND jb& < 2 OR jrtj = 4 AND jb& < 2 THEN
COLOR 6, 0: LOCATE 4, 40: PRINT "*****  游 戏 提 示  *****"
COLOR 7: LOCATE 6, 31: PRINT "你的运气也太差了!!!"
COLOR 7: LOCATE 8, 31: PRINT "----- 你帐户亏空了;游戏结束!!!"
COLOR 4: LOCATE 10, 40: PRINT "按任意键退出...."
DO
a$ = INKEY$
LOOP UNTIL a$ <> ""
jrtj = 0
GOTO quit
END IF
IF jrtj = 0 THEN GOTO quit
IF jrtj = 1 OR jrtj = 4 THEN
jjbb$ = LTRIM$(STR$(jb&))
COLOR 5: LOCATE 2, 41: PRINT SPC(30);
LOCATE 2, 41: PRINT huming$; " 的总金额:"; jjbb$
END IF
IF jrtj = 1 THEN CALL zhanghu(huming$, jb&, jrtj)
DO
wen$ = LCASE$(INKEY$)
LOOP UNTIL wen$ = "z" OR wen$ = "x" OR wen$ = "h" OR wen$ = "q"
SELECT CASE wen$
CASE "z"
jrtj = 3
CALL zhanghu(huming$, jb&, jrtj)
IF jrtj = 4 THEN
jjbb$ = LTRIM$(STR$(jb&))
COLOR 5: LOCATE 2, 41: PRINT SPC(30);
LOCATE 2, 41: PRINT huming$; " 的总金额:"; jjbb$
END IF
GOTO caidan
CASE "x"
IF jrtj <> 4 THEN
COLOR 6, 0: LOCATE 4, 40: PRINT "*****  游 戏 帮 助  *****"
COLOR 7: LOCATE 6, 31: PRINT "你没有帐户;请按 Z 键创建或载入"
COLOR 4: LOCATE 10, 40: PRINT "按任意键继续...."
DO
a$ = INKEY$
LOOP UNTIL a$ <> ""
GOTO caidan
END IF
CALL zhanghu(huming$, jb&, jrtj)
IF jrtj = 4 THEN
jjbb$ = LTRIM$(STR$(jb&))
COLOR 5: LOCATE 2, 41: PRINT SPC(30);
LOCATE 2, 41: PRINT huming$; " 的总金额:"; jjbb$
END IF
IF jrtj = 4 AND jb& < 2 THEN jrtj = 1: CALL zhanghu(huming$, jb&, jrtj)
CALL xuanhao(duihao1$, duihao$, jb&, huming$, jrtj)
GOTO caidan
CASE "h"
CALL bangzhu
GOTO caidan
CASE "q"
GOTO quit
END SELECT
quit:
OPEN "c:\lingshi.dat" FOR APPEND AS #9
CLOSE #9
KILL "c:\lingshi.dat"
SHELL "cls"
END

SUB bangzhu
COLOR 6: LOCATE 4, 40: PRINT "*****  游 戏 帮 助  *****"
COLOR 7: LOCATE 5, 31: PRINT "在游戏开始前,你必须按“Z”键创建一个用户名"
LOCATE 6, 27: PRINT "为了存放奖金;初始资金是1万;然后才可以按 X 键买你想"
LOCATE 7, 27: PRINT "要的号码,买好了会自动进入摇奖,10秒后会产生摇奖号码"
LOCATE 8, 27: PRINT "之后让你确认要不要对奖,按Y键对奖,如果按N或者ESC都"
LOCATE 9, 27: PRINT "返回主菜单了,那你就亏大了,哈哈。在对奖时,那一注号"
LOCATE 10, 27: PRINT "码中奖了都会提示你,并询问你要不要继续对奖,对奖结"
LOCATE 11, 27: PRINT "束了会累计你的金额,并打到你的帐号,呵呵,不会不会"
LOCATE 12, 27: PRINT "少你的钱拉!----------在游戏中按“ESC”返回主菜单"
LOCATE 14, 7: PRINT "在游戏中,你买多少彩票将扣除你帐户里的资金,帐户没钱了,就游戏结束了!"
LOCATE 15, 3: PRINT "中了三等奖以上都会有礼炮响,表示庆祝吧!"
LOCATE 17, 3: PRINT "奖金是这样安排的:"
LOCATE 18, 3: PRINT "特等奖     500 万元   |   一等奖     100 万元"
LOCATE 20, 3: PRINT "二等奖       5 万元   |   三等奖     0.1 万元"
LOCATE 22, 3: PRINT "四等奖     100   元   |   五等奖      10   元"
COLOR 4: LOCATE 22, 55: PRINT "按任意键返回主菜单....."
DO
a$ = INKEY$
LOOP UNTIL a$ <> ""
END SUB

SUB chushihua
CLS : COLOR 10
FOR i = 3 TO 77 STEP 2: LOCATE 3, i: PRINT "━": LOCATE 23, i: PRINT "━": LOCATE 13, i: PRINT "━": LOCATE 1, i: PRINT "━": NEXT
FOR i = 1 TO 22: LOCATE i, 1: PRINT "┃": LOCATE i, 79: PRINT "┃": NEXT
FOR i = 4 TO 12: LOCATE i, 25: PRINT "┃": NEXT
LOCATE 1, 1: PRINT "┏": LOCATE 1, 79: PRINT "┓"
LOCATE 23, 1: PRINT "┗": LOCATE 23, 79: PRINT "┛"
LOCATE 3, 25: PRINT "┳": LOCATE 13, 25: PRINT "┻"
LOCATE 1, 39: PRINT "┳": LOCATE 3, 39: PRINT "┻": LOCATE 2, 39: PRINT "┃"
LOCATE 13, 1: PRINT "┣": LOCATE 13, 79: PRINT "┫": LOCATE 3, 1: PRINT "┣": LOCATE 3, 79: PRINT "┫"
COLOR 4: LOCATE 2, 4: PRINT "*** 中国体育彩票 ***"
COLOR 6: LOCATE 4, 9: PRINT "主 菜 单"
COLOR 4: LOCATE 6, 7: PRINT "Z  "; : COLOR 5: PRINT "帐户管理"
COLOR 4: LOCATE 8, 7: PRINT "X  "; : COLOR 5: PRINT "选    号"
COLOR 4: LOCATE 10, 7: PRINT "H  "; : COLOR 5: PRINT "游戏帮助"
COLOR 4: LOCATE 12, 7: PRINT "Q  "; : COLOR 5: PRINT "退    出"
END SUB

SUB duijiang (duihao1$, duihao2$, cs%, jb1&, pdh)
FOR q = 14 TO 22: LOCATE q, 3: PRINT SPC(57); : NEXT q
COLOR 6: LOCATE 14, 30: PRINT "***** 对  奖  区 *****"
cc$ = ""
hao1$ = duihao1$
hao2$ = duihao2$
ii = 1
ce:
xx$ = MID$(hao1$, ii, 1)
yy$ = MID$(hao2$, ii, 1)
IF xx$ = yy$ THEN xx$ = "1": GOTO ce2
xx$ = "0"
ce2:
zz$ = xx$
cc$ = cc$ + zz$
ii = ii + 1
IF ii > 7 THEN GOTO ce3
GOTO ce
ce3:
c1$ = "1111111"
c2$ = "111111"
c3$ = "11111"
c4$ = "1111"
c5$ = "111"
c6$ = "11"
LOCATE 17, 3: PRINT SPC(57);
c1 = INSTR(1, cc$, c1$)
IF c1 > 0 THEN COLOR 6: LOCATE 17, 24: PRINT "中了特等奖    奖金 500 万元": jinbi = 5000000: GOTO lj
c2 = INSTR(1, cc$, c2$)
IF c2 > 0 THEN COLOR 6: LOCATE 17, 24: PRINT "中了一等奖    奖金 10  万元": jinbi = 100000: GOTO lj
c3 = INSTR(1, cc$, c3$)
IF c3 > 0 THEN COLOR 6: LOCATE 17, 24: PRINT "中了二等奖    奖金 5   万元": jinbi = 50000: GOTO lj
c4 = INSTR(1, cc$, c4$)
IF c4 > 0 THEN COLOR 6: LOCATE 17, 24: PRINT "中了三等奖    奖金 1000  元": jinbi = 1000: GOTO lj
c5 = INSTR(1, cc$, c5$)
IF c5 > 0 THEN COLOR 6: LOCATE 17, 24: PRINT "中了四等奖    奖金  100  元": jinbi = 100: GOTO lj
c6 = INSTR(1, cc$, c6$)
IF c6 > 0 THEN COLOR 6: LOCATE 17, 24: PRINT "中了五等奖    奖金   10  元": jinbi = 10: GOTO lj
GOTO jixu
lj:
jb1& = jb1& + jinbi
LOCATE 15, 3: PRINT "恭喜!恭喜!"
LOCATE 17, 3: PRINT "你第"; cs%; "注:"; " "; duihao2$
LOCATE 20, 3: PRINT "继续对奖吗?“N”返回主菜单 (Y,N):"
DO
wen$ = LCASE$(INPUT$(1))
IF wen$ <> "y" AND wen$ <> "n" AND wen$ <> CHR$(27) THEN PLAY "b15g20b20"
LOOP UNTIL wen$ = "y" OR wen$ = "n" OR wen$ = CHR$(27)
pdh = 0
IF wen$ = "n" OR wen$ = CHR$(27) THEN pdh = 1
jixu:
FOR q = 14 TO 22: LOCATE q, 3: PRINT SPC(57); : NEXT q
END SUB

SUB shurushuzhi (dai, cd, kg, zbx, zby, pdh)
pdh = 0
changdu = cd
x = zbx
y = zby
N = 0
b$ = ""
DO
IF LEN(b$) >= changdu THEN b$ = LEFT$(b$, changdu)
LOCATE x, y: PRINT SPC(N + 1);
LOCATE x, y: PRINT b$; "_"
DO
a$ = INPUT$(1)
IF a$ <> CHR$(27) AND a$ <> CHR$(13) AND a$ <> CHR$(8) AND a$ <> "0" AND a$ <> "1" AND a$ <> "2" AND a$ <> "3" AND a$ <> "4" AND a$ <> "5" AND a$ <> "6" AND a$ <> "7" AND a$ <> "8" AND a$ <> "9" THEN
PLAY "b15g20b20"
END IF
qaz% = 0
IF a$ = CHR$(27) OR a$ = CHR$(13) OR a$ = "0" OR a$ = "1" OR a$ = "2" OR a$ = "3" OR a$ = "4" OR a$ = "5" THEN qaz% = 1
IF a$ = "6" OR a$ = "7" OR a$ = "8" OR a$ = "9" OR a$ = CHR$(8) THEN qaz% = 1
LOOP UNTIL qaz% = 1
IF a$ = CHR$(27) THEN pdh = 1: EXIT DO
IF a$ <> CHR$(8) THEN
IF a$ = CHR$(13) AND kg = 1 THEN EXIT DO
IF a$ = CHR$(13) THEN GOTO ok1
b$ = b$ + a$
END IF
IF a$ = CHR$(8) THEN
N = LEN(b$)
IF N < 1 THEN N = 1
b$ = LEFT$(b$, N - 1)
END IF
ok1:
LOOP UNTIL a$ = CHR$(13) AND LEN(b$) = changdu
dai = VAL(b$)
END SUB

SUB xuanhao (duihao1$, duihao2$, jb&, huming$, jrtj)
jrtj = 1
COLOR 6: LOCATE 14, 30: PRINT "***** 选  号  区 *****"
x = 15
y = 1
LOCATE 15, 3: PRINT "你每期最多能买99注!"
LOCATE 16, 3: PRINT SPC(40);
LOCATE 16, 3: PRINT "你想买几注:": cd = 2: zbx = 16: zby = 15: kg = 1
CALL shurushuzhi(dai, cd, kg, zbx, zby, pdh)
IF pdh = 1 THEN GOTO jiexu1
xh% = dai
LOCATE 17, 3: PRINT SPC(40);
LOCATE 17, 3: PRINT "你需要花"; xh% * 2; "元"
jinb = xh% * 2
jb& = jb& - jinb
jjbb$ = STR$(jb&)
COLOR 5: LOCATE 2, 41: PRINT SPC(30);
LOCATE 2, 41: PRINT huming$; " 的总金额:"; jjbb$
DIM h$(xh%)
COLOR 6: LOCATE 18, 3: PRINT "要随机选号吗?“N”自己输入!(Y,N):"
DO
wen$ = LCASE$(INPUT$(1))
IF wen$ <> "y" AND wen$ <> "n" THEN PLAY "b15g20b20"
LOOP UNTIL wen$ = "y" OR wen$ = "n"
IF wen$ = "y" THEN GOTO zidong
FOR i = 1 TO xh%
LOCATE 22, 3: PRINT SPC(40);
LOCATE 22, 3: PRINT "输入第    注彩票号码:"
LOCATE 22, 9: PRINT y
cd = 7: zbx = 22: zby = 24: kg = 2
CALL shurushuzhi(dai, cd, kg, zbx, zby, pdh)
IF pdh = 1 THEN GOTO jiexu1
haoma$ = STR$(dai)
LOCATE 21, 3
h$(i) = haoma$
LOCATE x, 60:  PRINT "第    注:"; h$(i)
LOCATE x, 62: PRINT y
x = x + 1
y = y + 1
IF x > 20 THEN x = 15
NEXT i
GOTO dj
zidong:
FOR i = 1 TO xh%
cx:
x1$ = STR$(CINT(RND * 9))
x2$ = STR$(CINT(RND * 9))
x3$ = STR$(CINT(RND * 9))
x4$ = STR$(CINT(RND * 9))
x5$ = STR$(CINT(RND * 9))
x6$ = STR$(CINT(RND * 9))
x7$ = STR$(CINT(RND * 9))
xian$ = x1$ + x2$ + x3$ + x4$ + x5$ + x6$ + x7$
haoma$ = MID$(STR$(VAL(xian$)), 2)
IF LEN(haoma$) < 7 THEN GOTO cx
LOCATE 21, 3
h$(i) = haoma$
LOCATE 22, 3: PRINT "随机第    注彩票号码为:"; h$(i)
LOCATE 22, 9: PRINT y
LOCATE x, 60:  PRINT "第    注:"; h$(i)
LOCATE x, 62: PRINT y
x = x + 1
y = y + 1
IF x > 20 THEN x = 15
t = TIMER
DO
LOOP UNTIL TIMER - t > .1
NEXT i
dj:
pdh = 0
CALL yaojiang(duihao1$, duihao2$, pdh)
IF pdh = 1 THEN GOTO jiexu1
FOR i = 1 TO xh%
IF pdh = 1 THEN GOTO leiji
duihao2$ = h$(i)
cs% = i
CALL duijiang(duihao1$, duihao2$, cs%, jb1&, pdh)
NEXT i
leiji:
COLOR 5
FOR i = 15 TO 18: LOCATE i, 3: PRINT SPC(50); : NEXT i
LOCATE 17, 3: PRINT "你所有选的号码核对完毕!"
LOCATE 20, 3: PRINT "你总共得到的奖金是:"; jb1&
jb& = jb& + jb1&
jjbb$ = STR$(jb&)
COLOR 4: LOCATE 22, 53: PRINT "按任意键返回主菜单....."
DO
a$ = INKEY$
LOOP UNTIL a$ <> ""
COLOR 5: LOCATE 2, 41: PRINT SPC(30);
LOCATE 2, 41: PRINT huming$; " 的总金额:"; jjbb$
jiexu1:
ERASE h$
END SUB

回复列表 (共10个回复)

沙发

SUB yaojiang (duihao1$, duihao2$, pdh)
COLOR 10: LOCATE 11, 25: PRINT "┣": LOCATE 11, 79: PRINT "┫"
FOR i = 27 TO 77 STEP 2: LOCATE 11, i: PRINT "━": NEXT
COLOR 7: LOCATE 10, 27: PRINT "开始摇奖,这个 500 万是你吗?(回车键停止)"
tt = TIMER
DO
x1$ = STR$(CINT(RND * 9))
x2$ = STR$(CINT(RND * 9))
x3$ = STR$(CINT(RND * 9))
x4$ = STR$(CINT(RND * 9))
x5$ = STR$(CINT(RND * 9))
x6$ = STR$(CINT(RND * 9))
x7$ = STR$(CINT(RND * 9))
xian$ = x1$ + x2$ + x3$ + x4$ + x5$ + x6$ + x7$
COLOR 10: LOCATE 12, 27: PRINT "摇奖号码:"; xian$
x$ = INKEY$
LOOP UNTIL x$ = CHR$(13) OR TIMER - tt > 8
duihao1$ = MID$(STR$(VAL(xian$)), 2)
COLOR 7: LOCATE 7, 27: PRINT "本期号码出来了,它们是:"
LOCATE 10, 27: PRINT "怎么样,你中了吗!需要对奖吗?(y,n):"
COLOR 4: LOCATE 10, 63: PRINT "“N”返回主菜单"
DO
a$ = LCASE$(INPUT$(1))
IF a$ <> "y" AND a$ <> "n" AND a$ <> CHR$(27) THEN PLAY "b15g20b20"
LOOP UNTIL a$ = "y" OR a$ = "n" OR a$ = CHR$(27)
IF a$ = "n" OR a$ = CHR$(27) THEN pdh = 1
END SUB

SUB zf10 (zfdai$, cd, kg, zbx, zby, pdh)
pdh = 0
changdu = cd
x = zbx
y = zby
N = 0
b$ = ""
DO
IF LEN(b$) >= changdu THEN b$ = LEFT$(b$, changdu)
LOCATE x, y: PRINT SPC(N + 1);
LOCATE x, y: PRINT b$; "_"
a$ = INPUT$(1)
IF a$ = CHR$(27) THEN pdh = 1: EXIT DO
IF a$ <> CHR$(8) THEN
IF a$ = CHR$(13) AND kg = 1 THEN EXIT DO
IF a$ = CHR$(13) THEN GOTO ok3
b$ = b$ + a$
END IF
IF a$ = CHR$(8) THEN
N = LEN(b$)
IF N < 1 THEN N = 1
b$ = LEFT$(b$, N - 1)
END IF
ok3:
LOOP UNTIL a$ = CHR$(13) AND LEN(b$) = changdu
zfdai$ = b$
END SUB

板凳

SUB zhanghu (huming$, jb&, jrtj)
IF jrtj = 8 THEN GOTO jiexu
start:
OPEN "c:\caipiao.dat" FOR APPEND AS #1
x = LOF(1)
CLOSE #1
IF x < 4 THEN jrtj = 2

DIM ziliao1$(100)
DIM ziliao2$(100)
IF jrtj = 5 THEN
OPEN "c:\caipiao.dat" FOR INPUT AS #5
xuhao = 0
DO
xuhao = xuhao + 1
INPUT #5, hmdai$, jbdai$
ziliao1$(xuhao) = hmdai$
ziliao2$(xuhao) = jbdai$
LOOP UNTIL EOF(5) OR xuhao = 16
FOR i = 1 TO xuhao
IF VAL(ziliao2$(i)) > 2 THEN
huming$ = ziliao1$(i)
jb& = VAL(ziliao2$(i))
CLOSE #5
ERASE ziliao1$
ERASE ziliao2$
jrtj = 4
GOTO jiexu
END IF
NEXT i
FOR i = 4 TO 12: LOCATE i, 27: PRINT SPC(52); : NEXT i
FOR i = 14 TO 22: LOCATE i, 3: PRINT SPC(76); : NEXT i
CALL chushihua
COLOR 6: LOCATE 4, 40: PRINT "*****  帐 户 管 理  *****"
COLOR 7: LOCATE 8, 31: PRINT "当前已没有可用的帐户了,你可以重新创建一个!"
COLOR 4: LOCATE 12, 50: PRINT "按任意键返回主菜单....."
CLOSE #5
ERASE ziliao1$
ERASE ziliao2$
jrtj = 3
DO
a$ = INKEY$
LOOP UNTIL a$ <> ""
GOTO jiexu
END IF

FOR i = 4 TO 12: LOCATE i, 27: PRINT SPC(52); : NEXT i
FOR i = 14 TO 22: LOCATE i, 3: PRINT SPC(76); : NEXT i
IF jrtj = 3 THEN
OPEN "c:\caipiao.dat" FOR INPUT AS #6
OPEN "c:\lingshi.dat" FOR APPEND AS #7
ERASE ziliao1$
ERASE ziliao2$
DIM ziliao1$(100)
DIM ziliao2$(100)
FOR i = 4 TO 12: LOCATE i, 27: PRINT SPC(52); : NEXT i
FOR i = 14 TO 22: LOCATE i, 3: PRINT SPC(76); : NEXT i
COLOR 6: LOCATE 4, 40: PRINT "*****  帐 户 管 理  *****"
COLOR 4: LOCATE 12, 51: PRINT "ESC 返回主菜单..."
COLOR 7: LOCATE 8, 31: PRINT "1   创 建 帐 户"
LOCATE 10, 31: PRINT "2   删 除 帐 户"
LOCATE 12, 31: PRINT "3   载 入 帐 户"
LOCATE 14, 31: PRINT "帐 户 列 表"
xuhao = 0
DO
xuhao = xuhao + 1
INPUT #6, hmdai$, jbdai$
IF hmdai$ = "" THEN GOTO bujilu1
ziliao1$(xuhao) = hmdai$
ziliao2$(xuhao) = jbdai$
bujilu1:
LOOP UNTIL EOF(6) OR xuhao = 16
CLOSE #6
hangx = 14
hangy = 3
FOR i = 1 TO xuhao
hangx = hangx + 1
IF hangx > 22 THEN hangx = 15: hangy = hangy + 37
COLOR 4: LOCATE hangx, hangy: PRINT i
COLOR 10: LOCATE hangx, hangy + 4: PRINT ziliao1$(i)
COLOR 7: LOCATE hangx, hangy + 13: PRINT ziliao2$(i)
NEXT i
DO
a$ = INPUT$(1)
LOOP UNTIL a$ = "1" OR a$ = "2" OR a$ = "3" OR a$ = CHR$(27)
IF a$ = "1" THEN
IF xuhao = 16 THEN
ERASE ziliao1$
ERASE ziliao2$
COLOR 10: LOCATE 14, 45
PRINT "帐户资料已满!"
PLAY "a20b10a20"
CLOSE #7
SLEEP 2
GOTO start
END IF
jbdai$ = "10000"
cjzs1:
FOR i = 5 TO 12: LOCATE i, 27: PRINT SPC(52); : NEXT i
LOCATE 6, 31: PRINT "请输入帐户名:"
cd = 8: kg = 1: zbx = 6: zby = 45
CALL zf10(zfdai$, cd, kg, zbx, zby, pdh)
IF pdh = 1 THEN
CLOSE #7
KILL "c:\lingshi.dat"
ERASE ziliao1$
ERASE ziliao2$
jrtj = 3
GOTO start
END IF
huming$ = LTRIM$(zfdai$)
IF LEN(huming$) < 1 THEN COLOR 7: LOCATE 10, 31: PRINT "帐户名不能为空": SLEEP 2: GOTO cjzs1
FOR i = 1 TO xuhao
IF ziliao1$(i) = huming$ THEN COLOR 7: LOCATE 10, 31: PRINT "此帐户以存在": SLEEP 2: GOTO cjzs1
NEXT i
WRITE #7, huming$, jbdai$
FOR i = 1 TO xuhao
WRITE #7, ziliao1$(i), ziliao2$(i)
NEXT i
CLOSE #7
KILL "c:\caipiao.dat"
NAME "c:\lingshi.dat" AS "c:\caipiao.dat"
ERASE ziliao1$
ERASE ziliao2$
jrtj = 4
jb& = VAL(jbdai$)
GOTO jiexu
END IF
IF a$ = "2" THEN
FOR i = 5 TO 12: LOCATE i, 27: PRINT SPC(52); : NEXT i
COLOR 7: LOCATE 6, 31: PRINT "请输入要删除的帐户名:"
cd = 8: kg = 1: zbx = 6: zby = 52
CALL zf10(zfdai$, cd, kg, zbx, zby, pdh)
IF pdh = 1 THEN
CLOSE #7
KILL "c:\lingshi.dat"
ERASE ziliao1$
ERASE ziliao2$
jrtj = 3
GOTO start
END IF
FOR i = 1 TO xuhao
zfdai$ = LTRIM$(zfdai$)
IF ziliao1$(i) = zfdai$ THEN
ziliao1$(i) = ""
ziliao2$(i) = ""
END IF
IF ziliao1$(i) = "" THEN GOTO buxie
WRITE #7, ziliao1$(i), ziliao2$(i)
buxie:
NEXT i
CLOSE #7
ERASE ziliao1$
ERASE ziliao2$
KILL "c:\caipiao.dat"
NAME "c:\lingshi.dat" AS "c:\caipiao.dat"
GOTO start
END IF

3 楼

IF a$ = "3" THEN
FOR i = 5 TO 12: LOCATE i, 27: PRINT SPC(52); : NEXT i
COLOR 7: LOCATE 6, 31: PRINT "请输入要载入的帐户名:"
cd = 8: kg = 1: zbx = 6: zby = 52
CALL zf10(zfdai$, cd, kg, zbx, zby, pdh)
zfdai$ = LTRIM$(zfdai$)
IF pdh = 1 THEN
CLOSE #7
KILL "c:\lingshi.dat"
ERASE ziliao1$
ERASE ziliao2$
jrtj = 3
GOTO start
END IF
FOR i = 1 TO xuhao
IF ziliao1$(i) = zfdai$ THEN
huming$ = ziliao1$(i)
jbdai$ = ziliao2$(i)
huming2$ = huming$
jbdai2$ = jbdai$
ziliao1$(i) = ""
ziliao2$(i) = ""
GOTO you
END IF
NEXT i
FOR i = 5 TO 12: LOCATE i, 27: PRINT SPC(52); : NEXT i
COLOR 7: LOCATE 6, 31: PRINT "没有成功载入帐户名!"
PLAY "a20b10a20"
SLEEP 2
ERASE ziliao1$
ERASE ziliao2$
CLOSE #7
KILL "c:\lingshi.dat"
GOTO start
you:
WRITE #7, huming$, jbdai$
FOR i = 1 TO xuhao
IF ziliao1$(i) = "" THEN GOTO buxie5
huming$ = ziliao1$(i)
jbdai$ = ziliao2$(i)
WRITE #7, ziliao1$(i), ziliao2$(i)
buxie5:
NEXT i
CLOSE #7
KILL "c:\caipiao.dat"
NAME "c:\lingshi.dat" AS "c:\caipiao.dat"
huming$ = huming2$
jrtj = 4
jb& = VAL(jbdai2$)
ERASE ziliao1$
ERASE ziliao2$
GOTO jiexu
END IF
IF a$ = CHR$(27) THEN
jrtj = 5
CLOSE #7
ERASE ziliao1$
ERASE ziliao2$
GOTO start
END IF
END IF

IF jrtj = 1 THEN
OPEN "c:\caipiao.dat" FOR INPUT AS #2
xuhao = 0
DO
INPUT #2, hmdai$, jbdai$
IF hmdai$ = "" THEN GOTO bujilu
xuhao = xuhao + 1
ziliao1$(xuhao) = hmdai$
ziliao2$(xuhao) = jbdai$
bujilu:
LOOP UNTIL EOF(2) OR xuhao = 16
CLOSE #2
OPEN "c:\lingshi.dat" FOR OUTPUT AS #3
FOR i = 1 TO xuhao
IF ziliao1$(i) = huming$ THEN
jbdai$ = LTRIM$(STR$(jb&))
ziliao1$(i) = huming$
ziliao2$(i) = jbdai$
END IF
WRITE #3, ziliao1$(i), ziliao2$(i)
NEXT i
CLOSE #3
KILL "c:\caipiao.dat"
NAME "c:\lingshi.dat" AS "c:\caipiao.dat"
ERASE ziliao1$
ERASE ziliao2$
jrtj = 4
GOTO jiexu
END IF
IF jrtj = 2 THEN
COLOR 6: LOCATE 4, 40: PRINT "*****  帐 户 管 理  *****"
COLOR 4: LOCATE 12, 51: PRINT "ESC 返回主菜单..."
COLOR 7: LOCATE 8, 31: PRINT "1   创 建 帐 户"
LOCATE 16, 33: PRINT "*** 没 有 帐 户 !***"
DO
a$ = INPUT$(1)
LOOP UNTIL a$ = "1" OR a$ = CHR$(27)
IF a$ = "1" THEN
jbdai$ = "10000"
cjzs:
FOR i = 4 TO 12: LOCATE i, 27: PRINT SPC(52); : NEXT i
LOCATE 6, 31: PRINT "请输入帐户名:"
cd = 8: kg = 1: zbx = 6: zby = 45
CALL zf10(zfdai$, cd, kg, zbx, zby, pdh)
IF pdh = 1 THEN
CLOSE #7
ERASE ziliao1$
ERASE ziliao2$
jrtj = 2
GOTO start
END IF
huming$ = LTRIM$(zfdai$)
IF LEN(huming$) < 1 THEN COLOR 7: LOCATE 10, 31: PRINT "帐户名不能为空": SLEEP 2: GOTO cjzs
OPEN "c:\caipiao.dat" FOR OUTPUT AS #4
WRITE #4, huming$, jbdai$
CLOSE #4
jb& = VAL(jbdai$)
jrtj = 4
ERASE ziliao1$
ERASE ziliao2$
GOTO jiexu
END IF
IF a$ = CHR$(27) THEN
ERASE ziliao1$
ERASE ziliao2$
jrtj = 2
GOTO jiexu
END IF
END IF
jiexu:
END SUB

4 楼

这么复杂?

5 楼

goto..
又见goto..

风云即会。。
乱象再生。。

用我的basic老师的话来说:会用goto并不算什么。。难就难在用了N多goto能得出正确的答案
我记得当年我的一个同学硬是用了10个goto把老师布置的作业给做出来了。。而且答案是正确的。。我们老师就说了上面这句话。

6 楼

我现在也不完全排斥用GOTO,一般只用GOTO来跳出多重循环,从某语句重新开始等,这样效率得到提高,而结构也不会受影响。用但是不滥用,呵呵

如:

For i = 1 To 14
AGAIN:
      BallNum = Int(Rnd * 49) + 1
      For j = 1 To i - 1
         If BallNum = BallNumQue(j) Then [b]GoTo[/b] AGAIN
      Next j
      BallNumQue(i) = BallNum
Next i


For i = 0 To MatrixHeight - 1
               For j = 0 To MatrixWidth - 1
                  If ((Not (Status(j, i, 1) = MarkMine)) And (Status(j, i, 3) = MarkButtonUp)) Then
                     GameOver = False
                     [b]GoTo[/b] out
                  End If
               Next j
            Next i
out:        Debug.Print GameOver

7 楼

good

8 楼

很不错嘛!再接再厉!!!!!!

9 楼

把这打进去,手指不断了才怪!
又不能直接复制
太复杂了!

10 楼

goto 不是这么好用的

我来回复

您尚未登录,请登录后再回复。点此登录或注册