实现登录注册功能:
一、需求:
使用集合实现注册登陆功能:
第一步: 提示用户选择功能, A(注册) B(登陆) 。
要求: 功能选择 的时候要忽略大小写。
第二步:注册:
1、提示用户输入注册的账号(数字)与密码,如果输入账号已经存在集合中,提示用户重新输入。
2、注册完毕之后,把集合中的所有用户信息打印出来。
第三步:登陆:
提示用户输入登陆的账号与密码,如果账号与密码这个用户已经存在集合中,那么登陆成功,否则登陆失败。
二、代码实现:
1、用户实体类:
class User{
private int usernumber;//账号
private String password;//密码
public int getUsernumber() {
return usernumber;
}
public void setUsernumber(int usernumber) {
this.usernumber = usernumber;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public User() {
super();
}
public User(int usernumber, String password) {
super();
this.usernumber = usernumber;
this.password = password;
}
public boolean equals(Object obj){
User user = (User)obj;
return user.usernumber == usernumber;
}
@Override
public String toString() {
return "User [usernumber=" + usernumber + ", password=" + password + "]";
}
}
2、主程序:
static Collection c = new ArrayList();
static Scanner s = new Scanner(System.in);
public static void main(String[] args){
while(true){
System.out.println("请选择功能 A(注册 ) B(登陆)");
String option = s.next();
if("a".equalsIgnoreCase(option)){
reg();
}else if("b".equalsIgnoreCase(option)){
login();
}
}
}
3、reg()注册功能:
private static void reg() {
User user = null;
while(true){
System.out.println("欢迎来到注册页面,请输入账号:");
int usernumber = s.nextInt();
user = new User(usernumber,null);
/*
* 不能使用迭代器
Iterator i = c.iterator();
while(i.hasNext()){
User user = (User)i.next();
*/
if(c.contains(user)){//根本原理是比较equals,所以重写了equals方法
System.out.println("用户名重复请重新输入!");
}else{
break;
}
}
System.out.println("请输入密码:");
String password = s.next();
user.setPassword(password);
c.add(user);
System.out.println("注册成功");
System.out.println("已注册用户:"+c);
}
4、login()登陆功能:
private static void login() {
System.out.println("欢迎来到登陆页面,请输入账号:");
int usernumber = s.nextInt();
System.out.println("请输入密码:");
String password = s.next();
boolean flag = false;
Iterator i = c.iterator();
while(i.hasNext()){
User user = (User)i.next();
//字符串比较使用equals方法,不能使用等号
if(user.getUsernumber()==usernumber&&
user.getPassword().equals(password)){
flag = true;
}else{
flag = false;
}
}
if(flag==true){
System.out.println("登陆成功!");
}else{
System.out.println("登陆失败!");
}
}