在学完对象类和集合后为了练习写了个简单的征兵系统,技术含量不高仅供参考
首先是要确定这个系统需要哪些功能,有登录系统就需要存放用户账户的类,然后是存放征兵信息的类,最后是执行程序的main方法类
首先创建用户账户类:
账户的属性有用户名和密码
/**
* @className practice.UserInformation
* @description 用户账户信息类
* @author Rimuru
* @version V1.0
* @data 2022/05/12 09:37
*/
public class UserInformation {
private String userName; //用户名
private String passWord; //密码
//无参构造方法
public UserInformation(){
}
//有参构造方法
public UserInformation(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;
}
}
创建userName和passWord成员变量用于保存用户的账户
在main方法里填写初始数据
//创建存储用户账号的集合
ArrayList<UserInformation> information = new ArrayList<>();
//创建存储用户填写征兵信息的集合
ArrayList<ConscriptionClass> Conscription = new ArrayList<>();
//创建管理员账户
UserInformation p = new UserInformation("Rimuru","123456");
information.add(p);
//创建默认信息方便测试
ConscriptionClass c = new ConscriptionClass("张三",18,"男",180,70,"511681200205201890",4.8,5.0,"本科","生源应征地","空军","系统模板");
ConscriptionClass c2 = new ConscriptionClass("李四",17,"男",160,70,"511681200205204325",4.2,4.5,"大专","生源应征地","海军","系统模板");
Conscription.add(c);
Conscription.add(c2);
创建用户账户集合,创建征兵信息集合,创建管理员账户,创建初始数据便于测试,把数据添加进征兵信息集合里
注意:集合一定要创建在main方法体里,由于集合存在的周期是跟随所在方法的存在而存在,集合是放在内存里的,当方法执行完毕后就会释放内存,放在main方法里能够保证程序只要不退出,数据就一直存在,但是当main方法执行完毕后(程序关闭后)集合就会消失,数据就会丢失,目前只使用集合是无法保存数据的
创建一个main方法类用于执行程序,在main方法里打印出登录界面和选项
//打印界面
while (true){
System.out. println("----------------------------小程序-----------------------------");
System.out.println("***** 欢迎来到征兵系统页面! ****");
System.out.println("***** 默认管理员账户:Rimuru ****");
System.out.println("***** 默认管理员密码:123456 ****");
System.out.println("****************************************************************");
System.out.println("***** w(゚Д゚)w 1.登录 w(゚Д゚)w ****");
System.out.println("***** w(゚Д゚)w 2.注册 w(゚Д゚)w ****");
System.out.println("***** w(゚Д゚)w 3.退出 w(゚Д゚)w ****");
这个打印界面用while一直循环,创建Scanner输入,获取用户的选项
用switch判断用户的选项,在case的代码块放上对应选项的方法
//根据用户选择调用对应方法
switch (Confirm){
case 1:
loginPage(information,Conscription);
break;
case 2:
registeredPage(information,Conscription);
break;
default:
System.out.println("您输入的有误,请重新输入");
System.out.println("**********");
break;
}
然后是编写登录系统
注册方法:
调用注册方法要传入用户账户集合和征兵信息集合
首先声明用户名,密码,确认密码三个变量便于使用
/**
* @methodsName registeredPage
* @param information 用户信息
* @param Conscription 征兵信息
* @description 注册页面 判断用户名是否重复,验证