class Test{
public static void main(String args[])
{
Patron list[] = new PatronData().getPatronData();
/*for(Patron p: list)
{
System.out.println(p);
}*/
}
}
class PatronData{
//Patron patron[] = {new Patron("Daniel","A001","15WAD00001","A4701,Jalan Kepong, Pahang","JK01",0.00,"012-8765432"),
// new Patron("Chiam","A002","15WAD00002","A4702,Jalan Akar,Pahang","JK02",0.00,"0102288554")};
Patron patron[] = new Patron[2];
public Patron[] getPatronData()
{
patron[0] = new Patron("Daniel","A001","15WAD00001","A4701,Jalan Kepong, Pahang","JK01",0.00,"012-8765432");
patron[1] = new Patron("Chiam","A002","15WAD00002","A4702,Jalan Akar,Pahang","JK02",0.00,"0102288554");
return patron;
}
}
class Patron{
private String userName;
private String password;
private String userCode;
private String streetAddress;
private String postCode;
private double overdueBalance;
private String phoneNumber;
Patron(String userName[], String password[], String userCode,
String streetAddress, String postCode, double overdueBalance, String phoneNumber)
{
this.userName = userName;
this.password = password;
this.userCode = userCode;
this.streetAddress = streetAddress;
this.postCode = postCode;
this.overdueBalance = overdueBalance;
this.phoneNumber = phoneNumber;
int logNMatch = 0;
Scanner scan = new Scanner(System.in);
do{
System.out.print("Please Enter Your User Name > ");
String inputUserName=scan.nextLine();
System.out.println();
System.out.print("Please Enter Your Password > ");
String inputPassword = scan.nextLine();
if(userName.compareTo(inputUserName) == 0 && password.compareTo(inputPassword) == 0)
{
System.out.println("Logging Successful");
System.out.print("\n\n");
}
else
{
System.out.println("Loging fail");
System.out.println("Please again later");
logNMatch++;
}
}while(logNMatch > 0);
}
}
嘿伙计们,我正在攻读文凭级别的Java。我有个问题。 拜托,我不知道为什么我不能马上登录" Chiam Account"我预计当我登录编译器时会自动检查登录详细信息是否与库系统中的数据匹配。
答案 0 :(得分:1)
您正在构造函数中请求登录信息。这意味着无论何时创建新Patron
,它都会提示您使用该用户的信息登录。
而是删除do / while循环中的所有内容,并添加类似loginFromLibrary()
的方法,以提示用户输入其名称和密码。然后检查所有Patron
以查看它们的名称是否与给定的用户名相匹配。然后确保用户名与密码匹配。
此示例需要一些getter(getPassword()
和getUsername()
):
public void loginFromLibrary(Patron[] patrons){
Scanner scan = new Scanner(System.in);
while (true){
// get usernmae
System.out.println("Username > ");
String username = scan.nextLine();
Patron user = null;
// check array to see if username exists
for (Patron p : patrons){
if (p.getUsername().equals(username)){
user = p;
break;
}
}
if (user == null){
// username not found
System.out.println("Username not found");
continue;
}
// get password
System.out.println("Password > ");
String pass = scan.nextLine();
// check password
if (pass.equals(user.getPassword())){
// logged in
break;
} else {
// wrong password
}
}
scan.close();
}