首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查登录算法

检查登录算法
EN

Stack Overflow用户
提问于 2010-02-12 16:17:01
回答 1查看 1.4K关注 0票数 0

我目前正在讨论如何创建一个登录算法,该算法将基于两个HashMap对象(即学生和来自DataStorage类的StaffMembers )来登录用户,我不知道在从LoginHandler()获得文本输入之后,我应该如何处理它们才能将其与我的DataStorage进行比较。

/*类数据存储*/

代码语言:javascript
复制
public class DataStorage 
{
    HashMap<String, Student> students = new HashMap<String, Student>();  
    HashMap<String, Staff> staffMembers = new HashMap<String, Staff>();  
    //Default constructor
    public DataStorage(){
    }

    public void addStaffMember(Staff aAcc) 
    {
     staffMembers.put(aAcc.getAccID(),aAcc);
    }

    public void addStudentMember(Student aAcc)
    {
     students.put(aAcc.getAccID(),aAcc);
    }

   public Staff getStaffMember(Staff aAcc)
   {
   return staffMembers.get(aAcc.getAccID());
   }

   public Student getStudent(Student aAcc)
   {
    return students.get(aAcc.getAccID());
   }

   public Account authUser(String user, String pass)
   {

   }  
}

/*类帐户*/

代码语言:javascript
复制
public class Account {

 private String name;
 private String department;
 private String username;
 private String password;
 private String accountID;
 public Account()
 {
 } 
    public Account(String nm,String dep,String user,String pass, String accID) 
    {
     name = nm;
       department = dep;
     username = user;
     password = pass;
     accountID = accID;

    }

    public void setName(String nm)
    {
     name = nm;
    }

    public String getName()
    {
     return name;
    }

    public void setDep(String d)
    {
     department = d;
    }

    public String getDep()
    {
     return department;
    }

    public void setUser(String u)
    {
     username = u;
    }
    public String getUser()
    {
     return username;
    }

    public void setPass(String p)
    {
     password = p;
    }

    public String getPass()
    {
     return password;
    }

    public void setAccID(String a)
    {
     accountID = a;
    }

    public String getAccID()
    {
     return accountID;
    }
}

/*类员工扩展帐户*/

代码语言:javascript
复制
public class Staff extends Account {

 public Staff(String n, String id, String dep, String user, String pass)
 {
  super(n, dep, user, pass, id);

 }

}

/**类学生扩展帐户**/

代码语言:javascript
复制
public class Student extends Account {

 private String studentNRIC;

 public Student(String n, String nr, String id, String dep, String user, String pass)
 {
  super(n, dep, user, pass, id);
  studentNRIC = nr;
 }

    public void setStudentNRIC(String nr)
    {
     studentNRIC = nr;
    }

    public String getStudentNRIC()
    {
     return studentNRIC;
    }

}

/*类loginHandler,它将处理登录按钮/

代码语言:javascript
复制
class LoginHandler implements ActionListener
 {
  public void actionPerformed(ActionEvent e)
  {
   String tempUser;
   String tempPass;
   tempUser = txfUser.getText();
   tempPass = txfPass.getText();

  }

 }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-02-12 20:32:20

首先,您应该将DataStorage中的getter更改为具有字符串参数,以便可以根据学生(或工作人员)的帐户ID查找她:

代码语言:javascript
复制
public Student getStudent(String aAcc)
{
    return students.get(aAcc);
}

然后可以在actionPerformed中查找用户名,如

代码语言:javascript
复制
Student student = dataStorage.getStudent(tempUser);
if (student != null && student.getPass().equals(tempPass))
{
    // login successful
    ...
} else {
    // Login failed - display error message
}

工作人员也是如此。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2253225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档