用户登录注册案例

需求:实现用户注册 通过用户名和密码登录

        //用的是集合 充当数据库 实现的。        登录成功后可以进行猜字小游戏。 

一、分析 

用户登录注册案例

 分析:

通过面向对象思想分析

A.有哪些类

B.类里面都有哪些东西

C.类和类之间的关系

扫描二维码关注公众号,回复: 1723205 查看本文章

有哪些类: 

用户类:

成员变量:用户名、密码

成员方法:getXxx,setXxx

用户操作类:

登录、注册

测试类:

main方法

类和类之间的关系:

测试类里面使用用户类和用户操作的功能

分包:分类管理

A.按功能划分

B.按模块划分

C.先按模块划分再按功能划分

按功能划分:

com.shulian.pojo 放实体类

com.shulian.dao 放功能接口

com.shulian.dao.impl 放功能接口的实现类

com.shulian.test 放测试类

今天我们用集合来实现,后面学完IO,再用IO来实现,再学了数据库,就用数据库来实现。

用哪种实现就在com.shulian.dao.impl这个包下面写个具体的实现类就可以了

图解


二、先写实体类

package com.shulian.pojo;

/**
 * 用户类
 * 
 * @author zzh
 *
 */
public class User {
	private String userName;
	private String userPwd;

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getUserPwd() {
		return userPwd;
	}

	public void setUserPwd(String userPwd) {
		this.userPwd = userPwd;
	}

}

二、功能接口

package com.shulian.dao;

import com.shulian.pojo.User;

/**
 * 用户操作接口
 * 
 * @author zzh
 *
 */
public interface UserDao {
	/**
	 * 登录功能
	 * 
	 * @param userName
	 * @param userPwd
	 * @return
	 */
	public abstract boolean isLogin(String userName, String userPwd);

	/**
	 * 注册功能
	 * 
	 * @param user
	 */
	public abstract void isRegister(User user);
}

三、功能实现类

package com.shulian.dao.impl;

import java.util.ArrayList;

import com.shulian.dao.UserDao;
import com.shulian.pojo.User;
/**
 * 用户功能实现类(集合版)
 * @author zzh
 *
 */
public class UserDaoImpl implements UserDao {
	
	private static ArrayList<User> userList = new ArrayList<User>();

	@Override
	public boolean isLogin(String userName, String userPwd) {
		boolean flag = false;
		//登录验证
		for(User u:userList){
			if (u.getUserName().equals(userName) && u.getUserPwd().equals(userPwd)){
				return true;
			}
		}
		return flag;
	}

	@Override
	public void isRegister(User user) {
		//将用户添加到集合中
		userList.add(user);
	}

}

四、猜字游戏

package com.shulian.game;

import java.util.Scanner;

public class PlayGame {
	private static Scanner sc;

	public static void caiZiYouXi() {
		int x = (int) (100 * Math.random() + 1);
		sc = new Scanner(System.in);

		while (true) {
			System.out.println("请输入你想要猜的数字");
			int n = sc.nextInt();
			if (x > n) {
				System.out.println("你猜的数字小了!!!");
			} else if (x < n) {
				System.out.println("你猜的数字大了!!!");
			} else {
				System.out.println("恭喜你猜对了!!!");
				break;
			}
		}
	}
}

五、测试类

package com.shulian.test;

import java.util.Scanner;

import com.shulian.dao.UserDao;
import com.shulian.dao.impl.UserDaoImpl;
import com.shulian.game.PlayGame;
import com.shulian.pojo.User;

public class UserTest {

	public static void main(String[] args) {
		while (true) {
			// 创建键盘录入对象
			Scanner sc = new Scanner(System.in);
			System.out.println("欢迎使用***系统!!!");
			System.out.println("1.登录");
			System.out.println("2.注册");
			System.out.println("0.退出");
			System.out.println("请选择:");
			String options = sc.nextLine();
			// 可以用if判断 如果选项比较多,用if写起来比较复杂,所以选择用switch
			switch (options) {
			case "1":
				System.out.println("用户名:");
				String loginUserName = sc.nextLine();
				System.out.println("密码:");
				String loginUserPwd = sc.nextLine();
				// 创建用户操作类 调用用户操作类的登录功能
				UserDao loginUserDao = new UserDaoImpl(); // 多态
				boolean flag = loginUserDao
						.isLogin(loginUserName, loginUserPwd);
				if (flag) {
					System.out.println("登陆成功!!!");
					System.out.println("欢迎来到猜字小游戏!!!");
					PlayGame.caiZiYouXi();
				} else {
					System.out.println("用户名密码错误!!!");
				}
				break;
			case "2":
				System.out.println("用户名:");
				String inUserName = sc.nextLine();
				System.out.println("密码:");
				String inUserPwd = sc.nextLine();
				// 创建用户对象
				User user = new User();
				// 把输入的用户名放到user对象里
				user.setUserName(inUserName);
				// 把输入的密码放到user对象里
				user.setUserPwd(inUserPwd);
				// 创建用户操作类对象
				UserDao userDao = new UserDaoImpl(); // 多态
				// 调用用户操作类的注册功能
				userDao.isRegister(user);
				System.out.println("注册成功");
				break;
			case "0":
			default:
				System.exit(0);
				break;
			}
		}
	}

}
输出 实现


猜你喜欢

转载自blog.csdn.net/latesummer_/article/details/80198971