📄 adduser.java
字号:
/********************************************************
* 本类用于添加用户,并将判断该用户是否已经存在,当用户选择
* "注册用户"时调用此类
*/
package user;
import java.util.StringTokenizer;
import util.FactoryClass;
import util.FatherInterface;
import util.Input;
import util.ShowGUI;
public class AddUser implements FatherInterface {
private String newCardNo = "";
private String newUserName = "";
private String newUserPass1 = "";
private String newUserPass2 = "";
private static int flag = 0;// 用于计数用户不符合要求输入的次数
public AddUser() {
ShowGUI.showFace("faceNewUser.txt");
getNewUserInfo();
}
public void getNewUserInfo() {
System.out.println("请输入您要注册的卡号:");
newCardNo = Input.getInput();
if (Input.isNumeric(newCardNo)) {// 如果用户输入的卡号为数字类型,就进行下一步的注册
if (checkCardNo(newCardNo)) {// 如果用户输入的新用户名在帐号文件中不存在,则可以开始建立新用户档案
System.out.println("请输入您要注册的用户名:");
newUserName = Input.getInput();
System.out.println("请输入您的密码:");
newUserPass1 = Input.getInput();
System.out.println("请再输入一次的密码:");
newUserPass2 = Input.getInput();
if (newUserPass1.equals(newUserPass2)) {
CurrentUser.setCurrentUser(newCardNo, newUserName,
newUserPass1);
// 将用户的新注册信息加载给当前用户类CurrentUser,然后对信息进行保存
// 如果用户要登录,就使用ReadAccounts类重新读取存放用户信息的文件
flag=0;
WriteAccounts.setAccountInfo(true);// 将新注册的用户信息写入到文件中
} else {
System.out.println("两次输入的密码不匹配");
flag=0;
FactoryClass.getInstance(FactoryClass.classNameArray[1]);
// 返回到进入系统时的菜单界面
}
} else {
System.out.println("对不起,该卡号已经存在");
// System.out.println("注册退出");
flag++;
if (flag < 4) {
System.out.println("输入错误次数: " + flag);
FactoryClass.getInstance(FactoryClass.classNameArray[0]);
// 用户输入了重复的卡号,重新输入卡号
}
flag = 0;// 将用户输入错误的计数变量清零,以便下次使用
System.out.println("输入错误次数超过3次,注册退出");
FactoryClass.getInstance(FactoryClass.classNameArray[1]);
// 用户超过3次输入了重复卡号,就返回程序初始菜单
}
} else {
System.out.println("错误,用户的卡号必须为数字");
flag++;
if (flag < 4) {
System.out.println("输入错误次数: " + flag);
FactoryClass.getInstance(FactoryClass.classNameArray[0]);
// 用户输入了非数字的卡号,重新输入卡号
}
flag = 0;// 将用户输入错误的计数变量清零,以便下次使用
System.out.println("输入错误次数超过3次,注册退出");
FactoryClass.getInstance(FactoryClass.classNameArray[1]);
// 用户超过3次输入了非数字卡号,就返回程序初始菜单
}
}
private boolean checkCardNo(String inputCardNo) {
// 本方法用于检测新用户注册所输入的卡号是否与文件中现有的卡号重复
for (int i = 0; i < CurrentUser.userNum; i++) {
StringTokenizer tempTokenizer = new StringTokenizer(
CurrentUser.allAccounts[i]);
String str = tempTokenizer.nextToken();// 注意:用户帐号文件中不能有空回车,否则会因读取空数据而发生异常
if (str.equals(inputCardNo)) {
return false;
}
}
return true;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -