模拟用户注册并登陆玩猜字小游戏

模拟用户的注册和登录

模拟用户登录的特点分析:

 

一个实体用户类(User类)

创建用户名和密码的变量

一个接口(UserDao)

创建注册和登录的功能

一个子实现类(UserDaoimpl)

去实现接口中的注册和登录功能

一个测试类,去调用接口中的方法从而达到注册和登录的功能

给每一个包命名的时候:
   用户的描述类:user类
     包:公司域名.entity;实体类
       org.westos.entity;
   用户操作的接口:
     包:公司域名.dao:里面放的 是接口
       org.westos.dao :接口层
   用户操作接口的实现类:
     包:
       org.westos.dao.impl:业务逻辑层:接口子实现类
   测试类:
     包:
       org.westos.test:需要针对注册或者的登陆进行测试

例如:

package com.westos.entity;
/**
 * 这是用户的实体类
 * @author 杰哥
 * @version 2.0
 */
public class User {
 
private String username;
private String password;
public User() {
super();
}

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 com.westos.Dao;
 
import com.westos.entity.User;
 
/**
 * @author 杰哥
 *这是用户进行注册和登录的接口
 */
public interface UserDao {
 
/**
 *这是用户的注册方法
 *输入用户名和密码即表示注册成功
 * @param user
 */
public abstract  void regist(User user) ;

/**
 * 这是用户的登录方法
 * return返回的值是true代表登录成功,false代表登录失败
 * @param username
 * @param password
 * @return
 */
public abstract boolean Login(String username,String password); 
}

 

package com.westos.Dao.impl;
 
import java.util.ArrayList;
 
import com.westos.Dao.UserDao;
import com.westos.entity.User;
 
/**
 * @author 杰哥
 *这是对UserDao接口的子实现接口
 */
public class UserDaoimpl implements UserDao {
 
private static ArrayList<User> list=new ArrayList<User>();
@Override
public void regist(User user) {
list.add(user);
}
 

@Override
public boolean Login(String username, String password) {
//先假设登录失败,给一个失败的初始值
boolean flag=false;
//增强for循环遍历集合
for(User x:list) {
//如果输入的值和注册的值一样,那么将会返回true
if(x.getUsername().equals(username)&&x.getPassword().equals(password)) {
flag=true;
break;
}
}
return flag;
}
 
}

 

package com.westos.game;
 
import java.util.Scanner;
 
/**
 * @author 杰哥
 *这是一个猜字小游戏
 */
public class GuessNumberGame {
private  GuessNumberGame() {

}
 
public static void strat (){
//创建一个随机获取100以内的数字
int num=(int) (Math.random()*100)+1;
//猜字小游戏
while(true) {
Scanner sc=new Scanner(System.in);
System.out.println("请您输入您要猜测的数字...");
int number =sc.nextInt();
if(number>num) {
System.out.println("有点偏大哦...");
}else if(number<num) {
System.out.println("有点偏小哦...");
}else {
System.out.println("恭喜你,猜中了...");
break;
}
}

}

}

 

package com.westos.test;
 
import java.util.Scanner;
 
import com.westos.Dao.UserDao;
import com.westos.Dao.impl.UserDaoimpl;
import com.westos.entity.User;
import com.westos.game.GuessNumberGame;
 
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 退出");
//创建接口类对象,多态的形式体现,可以去调用接口中的方法
UserDao ud=new UserDaoimpl();
//创建键盘录入
Scanner sc2=new Scanner(System.in);
int n=sc2.nextInt();
Scanner sc=new Scanner(System.in);
switch(n) {
case 1:
//注册
System.out.println("请输入您的用户名:");
String str2=sc.nextLine();
System.out.println("请输入您的密码:");
String str3=sc.nextLine();
//创建实体类对象
User user=new User();
//通过封装将登录的用户名和密码加入实体类中,然后进入集合中
user.setPassword(str3);
user.setUsername(str2);
//调用接口中的regist方法
ud.regist(user);
System.out.println("恭喜您注册成功...");
break;
case 2:
//登录
System.out.println("请输入您的用户名:");
String str4=sc.nextLine();
System.out.println("请输入您的密码:");
String str5=sc.nextLine();
boolean flag=ud.Login(str4, str5);
if(flag) {
System.out.println("恭喜您登录成功...,准备好玩游戏了吗?");
System.out.println("要玩吗?yes/no");
while(true) {
//键盘录入yes或者no
String st=sc.nextLine();
if(st.equalsIgnoreCase("yes")) {
GuessNumberGame.strat();
System.out.println("还有继续吗?yes/no");
}else {
System.out.println("游戏结束....");
break;
}
}

System.exit(0);
}else {
System.out.println("您输入的有误,请重新输入...");
}
break;
//这里运用了case穿透
case 3:
default:
System.out.println("欢迎您下次再来,再见");
System.exit(0);
}
}
}
}

运行结果:
请您选择以下选项
1 注册
2 登录
3 退出
1
请输入您的用户名:
admin
请输入您的密码:
admin
恭喜您注册成功...
请您选择以下选项
1 注册
2 登录
3 退出
2
请输入您的用户名:
admin
请输入您的密码:
admin
恭喜您登录成功...,准备好玩游戏了吗?
要玩吗?yes/no
yes
请您输入您要猜测的数字...
15
有点偏小哦...
请您输入您要猜测的数字...
30
有点偏小哦...
请您输入您要猜测的数字...
40
有点偏小哦...
请您输入您要猜测的数字...
60
有点偏小哦...
请您输入您要猜测的数字...
80
恭喜你,猜中了...
还有继续吗?yes/no
no
游戏结束....

     

猜你喜欢

转载自blog.csdn.net/j_better/article/details/80265754