实现思路:分别创建5个包和5个类{cn.f.pojo(User.java);cn.f.Dao(UserDao.java);cn.f.Dao.impl(UserDaoImpl.java); cn.f.game(GuessNumber.java); cn.f.test(UserTest.java)}
第一步:
封装cn.f.pojo(User.java)类
代码:
package cn.f.pojo;
public class User {
private String name;
private String mima;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getMima() {
return mima;
}
public void setMima(String mima) {
this.mima = mima;
}
public User(String name, String mima) {
super();
this.name = name;
this.mima = mima;
}
public User() {
super();
}
@Override
public String toString() {
return "User [name=" + name + ", mima=" + mima + "]";
}
}
第二步:
创建一个用户登录注册接口cn.f.Dao(UserDao.java)
代码:
package cn.f.Dao;
import cn.f.pojo.User;
public interface UserDao {
// 这是登陆功能
public abstract boolean isLogin(String name,String mima);
//这是注册功能
public abstract void regist(User user);
}
第三步:
创建一个实现用户登录注册功能实现类cn.f.Dao.impl(UserDaoImpl.java)
代码:
package cn.f.Dao.impl;
import java.util.ArrayList;
import cn.f.Dao.UserDao;
import cn.f.pojo.User;
//这是用户操作具体实现类
public class UserDaoImpl implements UserDao {
// 为了让多个方法能够使用一个集合,就把集合定义为成员变量
// 为了不让外人看到,就用private
// 为了让多个对象共享同一个成员变量用static
private static ArrayList u = new ArrayList();
@Override
public boolean isLogin(String name, String mima) {
// 遍历集合,获取每一个用户,并判断该用户名和密码是否和传递过来的匹配
boolean flag = false;
for (User s : u) {
if (s.getName().equals(name) && s.getMima().equals(mima)) {
flag = true;
break;
}
}
return flag;
}
@Override
public void regist(User user) {
// 把用户信息存储集合
u.add(user);
}
}
第四步:
增加用户体验用户注册登录成功后给用户玩个小游戏cn.f.game(GuessNumber.java)
代码:
package cn.f.game;
import java.util.Scanner;
public class GuessNumber {
private GuessNumber() {
}
public static void strat() {
// 产生一个随机数
int number = (int) (Math.random() * 100) + 1;
// 定义一个统计变量
int count = 0;
while (true) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入数据(1-100):");
int guessNumber = sc.nextInt();
count++;
// 判断
if (guessNumber > number) {
System.out.println("你猜的数据" + guessNumber + "大了");
} else if (guessNumber < number) {
System.out.println("你猜的数据" + guessNumber + "小了");
} else {
System.out.println("恭喜你,"+count+"次猜中了!");
break;
}
}
}
}
第五步:
实现用户登录注册功能测试cn.f.test(UserTest.java)
代码:
package cn.f.test;
import java.util.Scanner;
import cn.f.Dao.UserDao;
import cn.f.Dao.impl.UserDaoImpl;
import cn.f.game.GuessNumber;
import cn.f.pojo.User;
public class UserTest {
static Scanner sc = new Scanner(System.in);
// 多态
static UserDao ud = new UserDaoImpl();
public static void main(String[] args) {
while (true) {
// 欢迎界面,给出选项
System.out.println("-------------欢迎光临--------------");
System.out.println("1.登录");
System.out.println("2.注册");
System.out.println("3.退出");
System.out.println("请输入你的选择:");
// 键盘录入选择,根据选择做出不同的操作
// 为了后面录入信息的方便,我所有的数据录入全部用字符接受
String m = sc.nextLine();
switch (m) {
case "1":
denglu();
break;
case "2":
zhuce();
break;
case "3":
default:
System.out.println("谢谢使用,欢迎下次再来!");
System.exit(0);
}
}
}
public static void denglu() {
System.out.println("-------------登录界面(请先注册后再登录!)--------------");
System.out.println("请输入用户名:");
String n = sc.nextLine();
System.out.println("请输入密码:");
String p = sc.nextLine();
// 调用登录功能
boolean flag = ud.isLogin(n, p);
if (flag) {
System.out.println("登录成功!奖励你玩游戏。");
System.out.println("你要玩吗?y/n");
while (true) {
String r = sc.nextLine();
if (r.equalsIgnoreCase("y")) {
// 玩游戏
GuessNumber.strat();
System.out.println("是否继续游戏?y/n");
}else{
break;
}
}
System.out.println("谢谢使用,欢迎下次再来!");
System.exit(0);
} else {
System.out.println("用户名或者密码有误,登录失败!");
}
}
public static void zhuce() {
// 注册界面,请输入用户名和密码
System.out.println("-------------注册界面--------------");
System.out.println("请输入用户名:");
String name = sc.nextLine();
System.out.println("请输入密码:");
String mima = sc.nextLine();
// 把用户名和密码封装到一个对象中
User user = new User();
user.setName(name);
user.setMima(mima);
// 调用注册功能
ud.regist(user);
System.out.println("注册成功!");
}
}
代码运行结果:
-------------欢迎光临--------------
1.登录
2.注册
3.退出
请输入你的选择:
1
-------------登录界面(请先注册后再登录!)--------------
请输入用户名:
232
请输入密码:
232
用户名或者密码有误,登录失败!
-------------欢迎光临--------------
1.登录
2.注册
3.退出
请输入你的选择:
2
-------------注册界面--------------
请输入用户名:
1234
请输入密码:
1234
注册成功!
-------------欢迎光临--------------
1.登录
2.注册
3.退出
请输入你的选择:
1
-------------登录界面(请先注册后再登录!)--------------
请输入用户名:
1234
请输入密码:
1234
登录成功!奖励你玩游戏。
你要玩吗?y/n
y
请输入数据(1-100):
67
你猜的数据67小了
请输入数据(1-100):
87
你猜的数据87大了
请输入数据(1-100):
80
你猜的数据80大了
请输入数据(1-100):
78
你猜的数据78大了
请输入数据(1-100):
76
你猜的数据76大了
请输入数据(1-100):
74
你猜的数据74小了
请输入数据(1-100):
75
恭喜你,7次猜中了!
是否继续游戏?y/n
n
谢谢使用,欢迎下次再来!