图书馆系统登录注销

时间:2016-08-11 02:23:55

标签: java

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"我预计当我登录编译器时会自动检查登录详细信息是否与库系统中的数据匹配。

1 个答案:

答案 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();
}