用户具体类
package cn.itcast.pojo;
/**
* 这是用户基本描述类
*
* @author 风清杨
* @version V1.1
*/
public class User {
// 用户名
private String username;
// 密码
private String password;
public User() {
super();
// TODO Auto-generated constructor stub
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
用户操作接口类
package cn.itcast.dao;
import cn.itcast.pojo.User;
/**
* 这是用户操作类接口
*
* @author 风清杨
* @version V1.1
*/
public interface UserDao {
/**
* 这是登录功能
*
* @param username
* 用户名
* @param password
* 密码
* @return 返回登录是否成功
*/
public abstract boolean isLogin(String username, String password);
/**
* 这是注删除功能
*
* @param user
* 要注册的用户信息
*/
public abstract void regist(User user);
}
用户操作具体实现类
package cn.itcast.dao.impl;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import cn.itcast.dao.UserDao;
import cn.itcast.pojo.User;
/**
* 这是用户操作的具体实现(IO版)
*
* @author 风清杨
* @version V1.1
*/
public class UserDaoImpl implements UserDao {
// 为了保证文件一加载就创建
private static File file = new File("user.txt");
static {
try {
file.createNewFile();
} catch (IOException e) {
System.out.println("创建文件失败");
// e.printStackTrace();
}
}
public boolean isLogin(String username, String password) {
boolean flag = false;
BufferedReader br = null;
try {
// br = new BufferedReader(new FileReader("user.txt"));
br = new BufferedReader(new FileReader(file));
String line = null;
while ((line = br.readLine()) != null) {
// 用户名=密码
String[] datas = line.split("=");
// 判断
if (datas[0].equals(username) && datas[1].equals(password)) {
return flag = true;
}
}
} catch (FileNotFoundException e) {
System.out.println("用户登录找不到信息所在的文件");
// e.printStackTrace();
} catch (IOException e) {
System.out.println("用户登录失败");
// e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
System.out.println("用户登录释放资源失败");
// e.printStackTrace();
}
}
}
return flag;
}
public void regist(User user) {
// 存储用户
/*
* 为了注册的数据能有一定的规则,我就自已定义了一个规则: 用户名=密码
*/
BufferedWriter bw = null;
try {
// bw = new BufferedWriter(new FileWriter("user.txt", true));
// 为了保证数据是追加写,必须加true
bw = new BufferedWriter(new FileWriter(file, true));
bw.write(user.getUsername() + "=" + user.getPassword());
bw.newLine();
bw.flush();
} catch (IOException e) {
System.out.println("用户注册失败");
// e.printStackTrace();
} finally {
if (bw != null) {
try {
bw.close();
} catch (IOException e) {
System.out.println("用户注册释放资源失败");
// e.printStackTrace();
}
}
}
}
}
猜数字小游戏
package cn.itcast.game;
import java.util.Scanner;
/**
* 猜数字小游戏
*
* @author 风清杨
* @version V1.1
*
*/
public class GuessNumber {
private GuessNumber() {
}
public static void start() {
// 创建一个随机数
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;
}
}
}
}
用户测试类
package cn.itcast.test;
import java.util.Scanner;
import cn.itcast.dao.UserDao;
import cn.itcast.dao.impl.UserDaoImpl;
import cn.itcast.game.GuessNumber;
import cn.itcast.pojo.User;
/**
* 测试类
*
* @author 风清杨
* @version V1.1
*
*/
public class UserTest {
public static void main(String[] args) {
while (true) {
// 欢迎界面给出选择
System.out.println("-----------欢迎光临-----------");
System.out.println("1.登录");
System.out.println("2.注册");
System.out.println("3.退出");
// 创建键盘录入对象
Scanner sc = new Scanner(System.in);
System.out.print("请输入你的选择:");
String choicege = sc.nextLine();
// 用户功能对象
UserDao ud = new UserDaoImpl();
switch (Integer.parseInt(choicege)) {
case 1:
// 欢迎界面,输入用户名和密码
System.out.println("-----------登录界面-----------");
System.out.print("请输入用户:");
String username = sc.nextLine();
System.out.print("请输密码:");
String password = sc.nextLine();
// 登录
boolean flag = ud.isLogin(username, password);
if (flag) {
System.out.println("登录成功可以开始游戏了");
// 提示是否玩游戏
System.out.print("你玩吗?y/n:");
while (true) {
String resutString = sc.nextLine();
if (resutString.equalsIgnoreCase("y")) {
GuessNumber.start();
System.out.print("你还玩吗?y/n:");
} else {
break;
}
}
} else {
System.out.println("用户名或者密码错误,登录失败");
}
break;
case 2:
// 欢迎界面,输入用户名和密码
System.out.println("-----------注册界面-----------");
System.out.print("请输入用户名:");
String Newusername = sc.nextLine();
System.out.print("请输入密码:");
String Newpassword = sc.nextLine();
User u = new User();
u.setUsername(Newusername);
u.setPassword(Newpassword);
ud.regist(u);
System.out.println("注册成功");
break;
case 3:
default:
System.out.println("感谢你的使用,欢迎下次再来");
System.exit(0);
break;
}
}
}
}