package com.dao;
import com.pojo.User;
/**
* 这是针对用户进行操作的接口
* @author Administrator
*
*/
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 com.dao.impl;
import java.util.ArrayList;
import com.dao.UserDao;
import com.pojo.User;
/**
* 这是用户操作的具体实现
* @author Administrator
*
*/
public class UserDaoImpl implements UserDao{
//为了让多个方法使用同一个集合,就把集合定义为成员变量
//为了让多个对象共用一个array,所以使用static
private static ArrayList<User> array=new ArrayList<User>();
@Override
public boolean isLogin(String username, String password) {
//遍历集合,获取每一个用户,并判断该用户的用户名和密码是否吻合
for(User u:array){
if(u.getUsername().equals(username) && u.getPassword().equals(password)){
return true;
}
}
return false;
}
@Override
public void regist(User user) {
//把用户信息存储集合
array.add(user);
}
}
package com.game;
import java.util.Scanner;
/**
* 这是猜数字小游戏
* @author Administrator
*
*/
public class GuessNumber {
private GuessNumber(){
}
public static void start(){
int number=(int)(Math.random()*100)+1;
Scanner sc=new Scanner(System.in);
int count=0;
while(true){
count++;
System.out.println("请输入数据(1~100):");
int guessNumber=sc.nextInt();
if(guessNumber>number){
System.out.println("你猜的数据"+guessNumber+"大了");
}else if(guessNumber<number){
System.out.println("你猜的数据"+guessNumber+"小了");
}else{
System.out.println("恭喜你,"+count+"次就猜中了!");
break;
}
}
}
}
package com.pojo;
public class User {
private String username;
private String password;
//private int age;
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;
}
/*public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}*/
public User(String username, String password) {
super();
this.username = username;
this.password = password;
}
public User() {
super();
}
}
package com.test;
import java.util.Scanner;
import com.dao.UserDao;
import com.dao.impl.UserDaoImpl;
import com.game.GuessNumber;
import com.pojo.User;
/**
* 用户测试类
* @author Administrator
*
*/
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 退出");
System.out.println("请输入你的选择:");
//键盘录入选择,根据选择做不同操作
Scanner sc=new Scanner(System.in);
//为了后面的录入信息的方面,我后面所有的信息都用String接受
String choiceString;
//经过简单的思考,我选择使用Switch
String regex="^[1-3]$";
sc=new Scanner(System.in);
choiceString=sc.hasNext(regex)?sc.nextLine():"3";
UserDao ud=new UserDaoImpl();
switch(Integer.valueOf(choiceString)){
case 1:
//登陆页面界面给出用户名和密码
System.out.println("请输入用户名:");
String newUsername=sc.nextLine();
System.out.println("请输入密码:");
String newPassword=sc.nextLine();
boolean flag=ud.isLogin(newUsername, newPassword);
if(flag){
System.out.println("恭喜,登陆成功!");
System.out.println("你玩吗?y/n");
while(true){
String resultString=sc.nextLine();
if(resultString.equalsIgnoreCase("y")){
//玩游戏
GuessNumber.start();
}else{
break;
}
System.out.println("你还玩吗?");
}
System.out.println("谢谢使用,欢迎下次再来!");
System.exit(0);
}else{
System.out.println("用户名或者密码有误,登陆失败!");
}
//调用登陆功能
break;
case 2:
//注册页面界面给出用户名和密码
System.out.println("请输入用户名:");
String newUsername1=sc.nextLine();
System.out.println("请输入密码:");
String newPassword1=sc.nextLine();
User user=new User();
user.setUsername(newUsername1);
user.setPassword(newPassword1);
//调用注册功能
// UserDao ud=new UserDaoImpl();
ud.regist(user);
break;
case 3:
System.out.println("谢谢使用,欢迎下次再来!");
System.exit(0);
break;
}
}
}
}