qbasicを使って簡単なログインプログラムを作ろうとしました。私は3つのサブモジュールと1つのメインモジュールを使用しました。ここでは、コードは次のようになります。qbasic - 私のコードに何が問題なのですか?私が欲しいものが得られません。
DECLARE SUB login()
DECLARE SUB menu()
DECLARE SUB REGISTER()
CLS
CALL menu
END
SUB login
OPEN "USERPASS.TXT" FOR INPUT AS #2
CLS
97
LOCATE 2, 30: PRINT "LOGIN"
LOCATE 4, 10: INPUT "PLEASE ENTER CORRECT USERNAME OR PRESS B IF YOU WANT TO GO BACK"; USER$
IF UCASE$(USER$) = "B" THEN
CLOSE #2
CALL menu
ELSE
DO WHILE NOT EOF(2)
INPUT #2, U$, p$
IF U$ = USER$ THEN
TEMPUSER$ = U$
PASSWORDS$ = p$
EXIT DO
END IF
LOOP
END IF
IF USER$ = TEMPUSER$ THEN
98
PRINT PASSWORDS$
LOCATE 5, 30: INPUT "ENTER PASSWORD OR PRESS B if you want to go back"; password$
IF UCASE$(password$) = "B" THEN
GOTO 97
ELSE
IF password$ = PASSWORDS$ THEN
PRINT "HURRAY YOU LOGGED IN"
ELSE
GOTO 98
END IF
END IF
ELSE
GOTO 97
END IF
CLOSE #2
END SUB
SUB menu
CLS
23
LOCATE 2, 30: PRINT "MAIN MENU"
LOCATE 4, 30: PRINT "1.LOGIN"
LOCATE 5, 30: PRINT "2.REGISTER"
LOCATE 6, 30: INPUT "PLEASE! Enter 1 or 2"; a
IF a = 1 THEN
CALL login
ELSE
IF a = 2 THEN
CALL REGISTER
ELSE
CLS
GOTO 23
END IF
END IF
END SUB
SUB REGISTER
CLS
OPEN "userpass.txt" FOR APPEND AS #1
LOCATE 2, 30: PRINT "REGISTER MENU"
LOCATE 4, 30: INPUT "ENTER NEW USERNAME"; NEWU$
CLS
LOCATE 4, 30: INPUT "ENTER NEW PASSWORD"; PASSU$
WRITE #1, NEWU$, PASSU$
END SUB
すべてが私の願望としてあるが、サブモジュールのログインに何かが、私は推測間違っています。正しいパスワードとユーザー名を入力してもログインマッサージが表示されません。しかし、存在しないユーザー名を入力すると、ログインメッセージが表示されます。助けてください。前もって感謝します。
ので、小さなミスと私はイライラだった:あなたがいることをしなかった場合
とにかく、あなたが不足している
END IF
が表示されることがあります。助けてくれてありがとう! – uvrichest