2016-08-11 2 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); 
    } 
    } 

Hey Leute, ich lerne Java in Diplom-Level. Ich habe eine Frage. Bitte, ich habe keine Ahnung, warum ich mich nicht sofort in "Chiam Account" einloggen kann. Ich erwarte, dass bei der Anmeldung der Compiler automatisch überprüft, ob das Login-Detail mit den Daten im Bibliothekssystem übereinstimmt.Bibliothek System Login Logout

+0

können Sie bitte Ihre Frage klären? Wie lautet das Login-Detail und das Bibliothekssystem? Und haben Sie damit gerechnet - melden Sie sich automatisch an? – Arthur

+0

Das Problem ist ... Beispiel Ich melde mich zuerst in meinem "Daniel, A001" Account an ... es funktioniert, aber ich weiß nicht warum ich den Logger beendet habe, bitte logge mich erneut ein. – NoName

+0

Wenn ich das Programm erneut kompiliere, habe ich sofort versucht, mich in den zweiten Account "Chiam, A002" einzuloggen. Der Compiler meldet die Meldung "Logging fail" – NoName

Antwort

1

Sie fordern die Anmeldeinformationen im Konstruktor an. Das bedeutet, dass Sie bei jedem neuen Eintrag Patron dazu aufgefordert werden, sich mit den Informationen dieses Benutzers anzumelden.

Stattdessen entfernen Sie alles innerhalb dieser Do/While-Schleife und fügen Sie eine Methode wie loginFromLibrary(), die den Benutzer zur Eingabe ihres Namens und des Kennworts aufgefordert werden. Überprüfen Sie dann alle Patron s, um festzustellen, ob einige ihrer Namen mit dem angegebenen Benutzernamen übereinstimmen. Dann stelle sicher, dass der Benutzername mit dem Passwort übereinstimmt. Dieses Beispiel wird einige Getter (getPassword() und getUsername()) erfordern

:

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

Danke Arthur: D – NoName

+0

@DanielChoo np. Wenn dies die richtige Antwort war, dann vergiss nicht, es so zu markieren. – Arthur