根据java的基础学习模拟了一个简单的征兵系统
我是一个初学者,写的不好的勿喷
我的方法都传入了很多参数,因为我把所有的拆分成了很多类里面的很多方法,没有直接写出静态方法直接调用,
创建一个user类用于储存用户数据,我在里面创建了一个集合用来放用户名对应的用户密码
package System.user;
import java.util.HashMap;
/**
* 用户类,用于保存用户数据
* @username 用户名
* @password 用户密码
* @map 用户表
*/
public class user {
//初始化值是为了提供默认的测试用户
private String username ;
private String password ;
private HashMap<String,String> map = new HashMap<String, String>();
public String getUsername() {
return username;
}
//使用代码块,在user对象创建的时候就在集合中添加用户
{
map.put("admin123","Yyt030604");
map.put("Yyt030604","Yyt030604");
map.put("Yyt030604Yh","Yyt030604");
map.put("zuiaiyyta","Yyt030604");
map.put("yyt210702","Yyt030604");
map.put("yanyao123","Yyt030604");
}
public String getPassword() {
return password;
}
public void setUsername(String username) {
this.username = username;
}
public user() {
}
public void setMap(HashMap<String, String> map) {
this.map = map;
}
public void setPassword(String password) {
this.password = password;
}
public user(String username, String password) {
this.username = username;
this.password = password;
}
public HashMap<String, String> getMap() {
return map;
}
}
创建一个main方法,模拟用户进入征兵网页,然后调用我所写的index()主方法
package System.Test;
import System.Conscri.impl.Conscriimpl;
import System.Conscription.impl.Female_conimpl;
import System.Conscription.impl.Male_conimpl;
import System.Standard.impl.*;
import System.Utiles.impl.Decideimpl;
import System.Login.impl.Loginimpl;
import System.Login.impl.login_indeximpl;
import System.Register.impl.registerimpl;
import System.Utiles.impl.Decideimpl_T;
import System.user.user;
import java.util.*;
public class Test {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
//创建一个用户表
user user_table = new user();
//创建登录对象
Loginimpl loginimpl = new Loginimpl();
//创建注册对象
registerimpl registerimpl = new registerimpl();
//创建登录系统,在调用登录功能
login_indeximpl login_indeximpl = new login_indeximpl();
//创建 判断用户密码和用户名是否合法
Decideimpl decideimpl = new Decideimpl();
//创建征兵系统
Conscriimpl conscri = new Conscriimpl();
//男兵
Male_conimpl male = new Male_conimpl();
//女兵
Female_conimpl female = new Female_conimpl();
Male_standardimpl male_standardimpl = new Male_standardimpl();
//首页包括了登录和注册的功能,所以传入的登录和注册的对象,
login_indeximpl.index(sc,user_table, loginimpl, registerimpl, login_indeximpl,
user_table.getMap(), decideimpl,conscri,male,female,male_standardimpl);
}
}
运行展示:
通过键盘录入让用户进入不同的登录注册系统
package System.Login.impl;
import System.Conscri.impl.Conscriimpl;
import System.Conscription.impl.Female_conimpl;
import System.Conscription.impl.Male_conimpl;
import System.Login.Login_index;
import System.Standard.impl.*;
import System.Utiles.impl.Decideimpl;
import System.Register.impl.registerimpl;
import System.Utiles.impl.Decideimpl_T;
import System.user.user;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Scanner;
public class login_indeximpl implements Login_index {
public void index(Scanner sc, user user_table, Loginimpl loginimpl, registerimpl registerimpl,
login_indeximpl login_indeximpl, HashMap<String,String> map, Decideimpl decideimpl, Conscriimpl
conscri, Male_conimpl male, Female_conimpl female, Male_standardimpl male_standardimpl ){
//键盘录入选择你要登录还是注册
System.out.println("用户登录请输入:1");
System.out.println("用户注册请输入:2");
System.out.println("请选择:");
String judge=sc.next();
//判断用户选择的是登录还是注册
if("1".equals(judge)){
//调用登录工具类
loginimpl.login_in(sc,user_table, loginimpl, registerimpl, login_indeximpl,
user_table.getMap(), decideimpl,conscri,male,female,male_standardimpl);
}else if("2".equals(judge)){
//调用注册登录类
registerimpl.register_in(sc,user_table, loginimpl, registerimpl, login_indeximpl,
user_table.getMap(), decideimpl,conscri,male,female,male_standardimpl);
}else {
//如果用户输出的不是正确选项就告诉他然后再重写调用首页选择
while (!("1".equals(judge)) || !("2".equals(judge))){
System.out.println("请输入正确选项:");
index(sc,user_table, loginimpl, registerimpl, login_indeximpl,
user_table.getMap(), decideimpl,conscri,male,female,male_standardimpl);
break;
}
}
}
}
这里还会判断你输入的是否是1和2,如果输入的不是这两个选项,就会告诉用户输入内容不合法,然后再重新调用这个方法再让用户重新选择,如果还是输入不合法的内容就一直调用 输入1就进入登录系统,输入2就进入注册系统
进入登录系统首先会使用Scanner输入用户名和用户密码,输入用户名和密码后首先用正则表达式判断输入的用户名和密码是否符合正则表达式,先判断用户名再判断用户密码,如果用户名不满足,就不用再判断密码,直接告诉用户用户名不合法然后再调用登录让他重新输入,当用户名存在就判断密码是否正确,如果正确就进入征兵系统进行模拟体检,密码错误就让用户再次输入密码,有三次机会重新输入密码,都错了就锁定用户名就退出整个系统了,如果用户名不存在就让用户重新选择登录还是注册,有可能存在用户名不小心输错的情况
package System.Login.impl;