2016-08-11 151 views
0
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。我有个问题。 拜托,我不知道为什么我不能马上登录到“詹帐户”我的预期是,当我登录编译器会自动检查是否是登录详细的比赛在图书馆系统中的数据。图书馆系统登录注销

+0

可以请你澄清你的问题?什么是登录细节和图书馆系统?你是否期待它做到 - 自动登录你? – Arthur

+0

的问题是...例我第一次登录到我的“丹尼尔,A001”帐户...它的工作原理,但不知道为什么,我完成登录编译问我要重新登录。 – NoName

+0

当我再次重新编译程序我试图马上登录到第二个账户“詹,A002”编译器提示“登录失败”的消息 – NoName

回答

1

您所请求的构造函数中的登录信息。这意味着无论何时您制作新的Patron,它都会提示您使用该用户的信息登录。

而不是里面做删除一切/ while循环,并添加像loginFromLibrary()的方法,将提示用户输入他们的名字和密码。然后检查所有Patron以查看它们的名称是否与给定的用户名匹配。然后确保用户名与密码匹配。

这个例子将需要一些吸气剂(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(); 
} 
+0

感谢Arthur:D – NoName

+0

@DanielChoo np。如果这是正确的答案,那么不要忘记标记为这样。 – Arthur