用While和一個計數(shù)變量,以下是偽代碼
專注于為中小企業(yè)提供網(wǎng)站設(shè)計制作、成都網(wǎng)站設(shè)計服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)依安免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了1000+企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
定義計數(shù)變量并歸零
定義狀態(tài)變量并歸零
while(計數(shù)變量3且狀態(tài)變量為真)
{
輸入密碼
if(密碼正確)
{
狀態(tài)變量設(shè)定為真
}
else
{
計數(shù)變量+1
密碼框清空
}
}
if(狀態(tài)變量不為真) /說明前面的循環(huán)結(jié)束是因為輸錯了三次
{
提示:請管理員解鎖
【密碼輸入過程與上方用while循環(huán)類似】
}
else
{
(剩余操作)
}
//輸入密碼時肯定會查詢數(shù)據(jù)庫,
//比較直觀的方法就是建立一張表,記錄登錄人員的用戶名及登錄次數(shù)
//例如create table userLogon(
username VARCHAR2(20), --用戶名
logontime VARCHAR2(4),--登錄次數(shù)記錄
logondate DATE --登錄日期
)
//首先是登錄時肯定輸入用戶名、密碼。如果登錄成功,從頁面取得username作為條件查詢建立的userLogon表
//中是否有已存在的用戶,如果沒有那么就插入新的用戶名。
1.登錄日志表中無該人員信息
insert into userLogon (username,logontime,logondate) values('頁面獲取的username','1',getsysdate());
這算一次登錄。
(每次登錄都會查日志表)
若為同一個人的下次登錄的時候繼續(xù)查日志表,select logontime from userLogon where username='頁面獲得的username'
這里可以查到logontime是字符串類型的'1'。
如果登錄成功,那么修改表中的logontime
update userLogon set logontime='2',logondate=getsysdate() where username='頁面獲取的username'。
以此類推,第三次也是判斷l(xiāng)ogontime的值,如果是2,那么就改成3。
那么第四次登錄時會查到logontime的值為3,以這個條件作為判定,彈出不可繼續(xù)登錄的對話框。
if(日志表中的登錄日期與當(dāng)前日期一致){
將以上邏輯編碼寫入
}else{
登錄次數(shù)已達(dá)3次,請明天登錄
}
都是在用戶登陸時查詢數(shù)據(jù)庫表,一般user表中會有:是否禁用、最后一次登陸時間(到秒)、用戶登陸錯誤次數(shù)。
用戶登陸時查詢該用戶數(shù)據(jù),進(jìn)行判斷,若是正確,則更新是否禁用為可用、最后登陸時間、錯誤次數(shù)為0.
若是登陸錯誤時,錯誤次數(shù)+1,若是錯誤次數(shù)=3,則更新是否禁用為禁用,并更新最后一次登陸時間。
若是登陸時該用戶數(shù)據(jù)中是否禁用為禁用,則判斷最后一次登陸時間與當(dāng)前登陸時間相比較,半小時后可以登陸,重復(fù)上面流程。
JAVA做登陸必須會HTML,用HTML做出一個用戶名密碼的界面。
編寫后臺代碼。
如果說想法,也就是對用戶名密碼的正確性判斷和輸入字符是否合法,有些登陸需要驗證碼,可按個人意愿加。
為了安全性,可以寫成3次登陸錯誤就禁止登陸的方式,實現(xiàn)方式使用cookies。
import?java.util.Scanner;
/**
*?@作者?王建明
*?@創(chuàng)建日期?2013-07-15
*?@創(chuàng)建時間?13:48:45
*?@版本號?V?1.0
*/
public?class?Atm5?{
Scanner?sc?=?new?Scanner(System.in);
private?String?name?=?"lorin";
private?double?password?=?123;
private?double?money?=?500;
public?void?jj()?{
System.out.println("***********************");
System.out.println("*?*");
System.out.println("*?歡迎使用ATM?*");
System.out.println("*?*");
System.out.println("*?制作人:lorin?*");
System.out.println("*?*");
System.out.println("*?*");
System.out.println("************************");
System.out.println("請輸入密碼");
Scanner?aa?=?new?Scanner(System.in);
int?a?=?aa.nextInt();
int?count?=?2;
while?(a?!=?password??count??0)?{
System.out.println("密碼錯誤,還有次"?+?(count--)?+?"輸入機(jī)會!");
a?=?aa.nextInt();
}
if?(count?==?0)?{
System.out.println("對不起,您連續(xù)三次輸入密碼錯誤,您的卡已被系統(tǒng)沒收!");
return;
}
land();
}
public?void?land()?{
System.out.println("請選擇操作界面:1取款,2存款,3查詢,4轉(zhuǎn)賬,5退出");
int?a?=?sc.nextInt();
//?請加入此句
switch?(a)?{
case?1:?//?去掉‘’?因為a?為int型。
get();
break;
case?2:
set();
break;
case?3:
query();
break;
case?4:
divert();
break;
case?5:
SetOut();
break;
}
}
//?取款
public?void?get()?{
System.out.println("請輸入取款金額:");
int?a?=?sc.nextInt();
if?(a??money)?{
System.out.println("余額不足!");
}?else?{
money?-=?a;
System.out.println("當(dāng)前余額為:"?+?money);
land();
}
}?//?存款
public?void?set()?{
System.out.println("請輸入存款金額:");
int?a?=?sc.nextInt();
money?+=?a;
System.out.println("當(dāng)前余額為:"?+?money);
land();
}?//?查詢
public?void?query()?{
System.out.println("當(dāng)前余額為:"?+?money);
land();
}?//?轉(zhuǎn)賬
public?void?divert()?{
System.out.println("該功能站未開放!");
land();
}?//?退出
public?void?SetOut()?{
System.exit(0);
}
public?static?void?main(String[]?args)?{
Atm5?atm?=?new?Atm5();
atm.jj();
}
}
package?Hamber_Bao;
import?java.util.Scanner;
public?class?Login?{
public?static?void?main(String?args[])?{
Scanner?input?=?new?Scanner(System.in);
String?manager?=?"admin";
String?password?=?"admin";
boolean?xn?=?false;
int?i?=?0;
do?{
System.out.println("請輸入用戶名:");
String?name?=?input.next();
System.out.println("請輸入密碼:");
String?pass?=?input.next();
xn?=?(!(name.equals(manager))?||?!(pass.equals(password)));
if?(xn)?{
System.out.println("您輸入錯誤!請重新輸入!");
i++;
if?(i?==?3)?{
break;
}
}
}?while?(xn);
if(xn)
System.out.println("您無權(quán)限進(jìn)入該系統(tǒng)!");
else
System.out.println("歡迎光臨!");
}
}
首先利用do-while循環(huán)接受用戶的輸入
聲明整型變量i計數(shù)
聲明布爾類型變量,標(biāo)記用戶名和密碼是否錯誤
若錯誤,提示,i自加,并且判斷i是否等于3
若等于3,跳出
好好看看哦··
祝你學(xué)業(yè)有成!
By?【Hamber_Bao】
while是循環(huán)啊,應(yīng)該用if吧,讓用戶有三次輸入驗證的機(jī)會string uid="XX";//用戶輸入的帳號string pwd="XX";//用戶輸入的密碼int num=1;//用戶輸入驗證的次數(shù) if(num=3){ if(如果用戶輸入的帳號和密碼驗證通過){ // 進(jìn)行相關(guān)操作 }else{ num++; return;// } }else{ //彈出消息,告知用戶因為輸入錯誤超過3次,帳號被鎖定 }}
文章題目:java輸入三次密碼代碼 java輸入三次密碼代碼是什么
文章URL:http://jinyejixie.com/article18/dosshdp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、網(wǎng)站排名、商城網(wǎng)站、品牌網(wǎng)站制作、網(wǎng)頁設(shè)計公司、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)