2010-02-12 3 views
0

Я в настоящее время зациклен на том, как создать алгоритм входа в систему, который войдет в систему пользователя на основе двух объектов HashMap, а именно студентов и StaffMembers из класса DataStorage, я не знаю, после ввода текстов, введенных из LoginHandler(), что я делаю с ними, чтобы сравнить его с моим DataStorage.проверка алгоритма входа в систему

/* Класс DataStorage */

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) 
    { 

    } 
} 

/* Класс счета */

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; 
    } 
} 

/* Класс Staff расширяет счет */

public class Staff extends Account { 

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

} 

} 

/** Класс Student расширяет счета **/

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, который будет обрабатывать кнопку входа/

class LoginHandler implements ActionListener 
{ 
    public void actionPerformed(ActionEvent e) 
    { 
    String tempUser; 
    String tempPass; 
    tempUser = txfUser.getText(); 
    tempPass = txfPass.getText(); 

    } 

} 

ответ

1

Прежде всего, вы должны изменить добытчиками в DataStorage к имеют параметры String, чтобы вы могли найти студента (или сотрудника) на основании ее ID счета:

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

Вы можете Lookup имя пользователя в actionPerformed, как

Student student = dataStorage.getStudent(tempUser); 
if (student != null && student.getPass().equals(tempPass)) 
{ 
    // login successful 
    ... 
} else { 
    // Login failed - display error message 
} 

Аналогично для сотрудников.

+0

спасибо за ответ, означает ли это, что мне нужно использовать итератор для прохождения коллекции, так как мои ключи HashMap основаны на идентификаторах учетных записей, а не на имени пользователя, поэтому actionPerformed должен передавать идентификатор учетной записи вместо имени пользователя для для проверки – sutoL

+0

@kyrogue в целом лучше всего использовать это свойство в качестве ключа карты, с помощью которого вам чаще всего приходится искать пользователей. Я предположил, что имя пользователя и идентификатор учетной записи совпадают, извините. Если вы используете имя пользователя для входа в систему, обновите карту, чтобы использовать это свойство в качестве ключа. –

Смежные вопросы