java - 图书馆系统登录 退出

标签 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帐户”,我期望的是当我登录时编译器会自动检查登录详细信息是否与图书馆系统中的数据匹配。

最佳答案

您正在构造函数内请求登录信息。这意味着每当您创建新的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();
}

关于java - 图书馆系统登录 退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38886328/

相关文章:

java - Java中的参数化字符串

java - 如何创建 Windows 可执行文件?

java - 将 Java 集合转换为 Clojure 数据结构

java - 将 HTML 写入 txt 文件时出现编码错误

Heroku 上的 Java 网络应用程序 : Unable to access jarfile

java - 当 URL 包含 JSON 时处理 RestTemplate 的模式匹配

java - AEM 上的 RESTful 服务

java - 如何使用 Long id 查询实体的 java appengine 数据存储 VIEWER

java - 拉出特定线

java - 多线程和静态 block