[JAVA练习] 使用集合实现注册与登录功能

需求:使用集合实现注册登陆功能,

1: 提示用户选择功能, A(注册)  B(登陆) 。 要求: 功能选择 的时候要忽略大小写。
2:注册:
      1. 提示用户输入注册的账号(数字)与密码,如果输入的id号已经存在集合中,提示用户重新输入。

      2. 注册完毕之后,把集合中的所有用户信息打印出来。(使用:toArrry()方法)    
3:登陆: 
     提示用户输入登陆的账号与

写的比较简粗糙,慢慢进步。

package com.itcsat.object;

import java.awt.List;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
import java.util.Scanner;


class User{
	
	long id;
	String code;
	

	public String getCode() {
		return code;
	}


	public User(long id, String code) {
		// TODO Auto-generated constructor stub
		this.id = id;
		this.code = code;
	}
	
	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return "{账号:" + this.id + "  密码:" + this.code+ "}";
	}
	
	@Override
	public boolean equals(Object obj) {
		// TODO Auto-generated method stub
		User u = (User) obj;
		return this.id == u.id;
	}
	
	
	@Override
	public int hashCode() {
		// TODO Auto-generated method stub
		return (int) this.id;
	}
}

public class Demo26 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		Collection users = new ArrayList();
		
		users.add(new User(123, "pyy"));
		users.add(new User(234, "jyj"));
		users.add(new User(345, "ydq"));
		users.add(new User(456, "xyz"));
		
		choose(users);

	}
	//注册
	public static void register(Collection users){
		
		boolean flag = true;
		while(flag){
			Scanner sc1 = new Scanner(System.in);
			System.out.println("请输入注册账号:");
			long id = sc1.nextLong();//提示输入注册账号
			
			//判断的时候 用户还没有code 所以创建的用户code 为null
			if (users.contains(new User(id, null))) {//判断输入的账号用户是否存在  这里比较的是用户的ID 因为我们重写课equals方法
				System.out.println("您输入的账号已存在!请重新输入!");
			}else {
				//账号不存在   就可以继续输入密码
				System.out.println("请输入注册密码:");
				Scanner sc2 = new Scanner(System.in);
				String code = sc2.nextLine();
				
				//账号 密码都有了  就可以将该用户添加到集合中了
				users.add(new User(id, code));
				
				flag = false;
				System.out.println("恭喜您注册成功!");
				
				//使用toArray 打印集合元素
				Object[] arr = users.toArray(); //将集合中的元素 返回到一个obj的数组中
				System.out.println("所有成功注册用户为:" + Arrays.toString(arr));
			}
		}

	}
	
	//登录
	public static void login(Collection users){	
		
		boolean flag = true;
		while(flag){
			Scanner sc1 = new Scanner(System.in);
			System.out.println("请输入登录账号:");
			long id = sc1.nextLong();
			
			//先判断用户id 不存在的话 直接不允许登录 
			if(users.contains(new User(id, null))){
				
				System.out.println("请输入登录密码:");
				Scanner sc2 = new Scanner(System.in);
				String code = sc2.nextLine();
				
				//遍历集合 判断密码
				Iterator it = users.iterator();
				while(it.hasNext()){
					User u = (User) it.next();
					if(code.equals(u.getCode()) ){
						flag = false;
						System.out.println("登录成功,欢迎来到魔域世界!");
						break;
					}
				}
				if(flag){
					System.out.println("密码错误,请重新输入!");
				}
		
			}else {
				System.out.println("用户不存在,请重新输入!");
			}
		}
	}
	
	//提示功能
	public static void choose(Collection users){
	
		boolean flag = true;
		while(flag){
			
			System.out.println("选择功能:A:注册       B:登录");
			Scanner sc = new Scanner(System.in);
			String c = sc.nextLine();
			
			if("A".equals(c.toUpperCase())){
				flag = false;
				//注册方法
				register(users);
			}else if("B".equals(c.toUpperCase())){
				flag = false;
				//登录方法
				login(users);
			}else {
				System.out.println("选择错误,请重新选择!");
			}
		}
	}

}

密码,如果账号与密码这个用户已经存在集合中,那么登陆成功,否则登陆失败。

你可能感兴趣的:(JAVA练习)