使用集合实现登录注册功能。
1、保证用户输入的是数字,不是数字,提示用户输入数字, 2、登录次数给三次 3、对用户和密码进行一个规则的校验
接口:
public interface UserDao {
//注册的操作
public abstract void register(User user);
//登录的操作
public abstract boolean login(String username,String password);
}
接口实现类:
public class UserDaoImpl implements UserDao {
static private ArrayList<User> list =new ArrayList<>();
@Override
public void register(User user) {
list.add(user);//将用户信息添加到集合
}
@Override
public boolean login(String username, String password) {
boolean flag=false;
for(User user:list){
//对登录信息进行验证
if(username.equals(user.getUsername())&&password.equals(user.getPassword())){
flag=true;
break;
}
}
return flag;
}
}
用户类:
public class User {
private String username;
private String password;
public User() {
}
public User(String username, String password) {
this.username = username;
this.password = password;
}
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 class GuessNumber {
public static void playGame(){
Random random = new Random();
int num=random.nextInt(100)+1;
Scanner sc = new Scanner(System.in);
while(true){
System.out.println("请输入一个数字 0——100");
int guessNumber=sc.nextInt();
if(guessNumber>num){
System.out.println("猜大了");
}else if(guessNumber<num){
System.out.println("猜小了");
}else if(guessNumber==num){
System.out.println("猜对了");
break;
}
}
}
}
登录界面
package org.westo.login.view;
import org.westo.login.dao.UserDao;
import org.westo.login.dao.UserDaoImpl;
import org.westo.login.game.GuessNumber;
import org.westo.login.pojo.User;
import java.util.Scanner;
public class LoginUI {
public static void main(String[] args) {
int i=0;
Scanner sc = new Scanner(System.in);
UserDao userDao = new UserDaoImpl();
while(true){
System.out.println("1注册2登录3退出");
String num=String.valueOf(sc.nextLine());
String regx="[1-3]";//验证是否是正确数字,
while(!num.matches(regx)){
System.out.println("请输入正确数字");
num=sc.nextLine();
}
switch(num){
case "1":
System.out.println("------注册------");
System.out.println("请输入用户名");
String username=sc.nextLine();
//账号正则判断
String usernameRegx="[\\w$]{6}";
if(!username.matches(usernameRegx)){
System.out.println("您输入的用户名不合法,请重新输入");
username = sc.nextLine();
}
System.out.println("请输入密码");
String password=sc.nextLine();
// //密码正则判断
String passwordRegx = "[\\w$]{6}";
if (!password.matches(passwordRegx)) {
System.out.println("您输入的密码不合法,请重新输入");
password=sc.nextLine();
}
User user = new User(username, password);
userDao.register(user);
break;
case "2":
System.out.println("---------登录--------");
System.out.println("请输入用户名");
String username2 = sc.nextLine();
System.out.println("请输入密码");
String password2 = sc.nextLine();
boolean b = userDao.login(username2, password2);
if(b){
System.out.println("登陆成功,要玩么?y/n");
while(true){
String play=sc.nextLine();
if(play.equalsIgnoreCase("y")){
GuessNumber.playGame();
System.out.println("还玩么?y/n");
}else{
System.exit(0);
}
}
//三次登录机会
} else if (!b&&i<2){
i++;
System.out.println("登录失败,你还有"+(3-i)+"次机会");
}else if(!b&&i>=2){
System.out.println("登录失败");
System.exit(0);
}
break;
case "3":
default:
System.exit(0);
break;
}
}
}
}