模拟注册功能
功能要求:
1.使用数组存储个人信息;
2.register(String id,String name,String pwd,String email):void;
3.check(String name,String pwd):boolean
4.updateInfo(String name,String email):void
5.updatePwd(String newPwd):void
main方法
1.注册
2.登录
0.退出系统
登陆成功之后,进入用户管理
1.修改个人信息
2.修改密码
0.返回上一级菜单
话不多说直接来看源码,这是菜单栏的实现,主要是使用了switch语句来实现,识别用户输入的数字
public static String [] uid = {};
public static String [] uname = {};
public static String [] upassword = {};
public static String [] uemail = {};
static int nowId = -1;
public static void main(String[] args) {
menu();
}
private static void menu() {
Scanner scanner = new Scanner(System.in);
System.out.println("1:注册");
System.out.println("2:登录");
System.out.println("0:退出系统");
int a = scanner.nextInt();
switch (a) {
case 1:
System.out.println("请输入用户id");
String id = scanner.next();
System.out.println("请输入用户名");
String name = scanner.next();
System.out.println("请输入密码");
String password = scanner.next();
System.out.println("请输入email");
String email = scanner.next();
register(id, name, password, email);
break;
case 2:
System.out.println("请输入用户名");
name = scanner.next();
System.out.println("请输入密码");
password = scanner.next();
denglu(name, password);
break;
case 0:
System.out.println("退出成功");
System.exit(0);
break;
default:
System.out.println("输入错误请重输!");
menu();
break;
}
下面是菜单menu的第二种实现,和第一种实现任选一种都行
private static void menu() {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("1:注册");
System.out.println("2:登录");
System.out.println("0:退出系统");
int a = scanner.nextInt();
switch (a) {
case 1:
System.out.println("请输入用户id");
String id = scanner.next();
System.out.println("请输入用户名");
String name = scanner.next();
System.out.println("请输入密码");
String password = scanner.next();
System.out.println("请输入email");
String email = scanner.next();
register(id, name, password, email);
break;
case 2:
System.out.println("请输入用户名");
name = scanner.next();
System.out.println("请输入密码");
password = scanner.next();
denglu(name, password);
break;
case 0:
System.out.println("退出成功");
System.exit(0);
default:
System.out.println("输入错误请重输!");
break;
}
}
}
登陆方法及剩余代码
private static void register(String id,String name,String password,String email) {
uid = Arrays.copyOf(uid, uid.length+1);
uid [uid.length-1] = id;
uname = Arrays.copyOf(uname, uname.length+1);
uname [uname.length-1] = name;
upassword = Arrays.copyOf(upassword, upassword.length+1);
upassword [upassword.length-1] = password;
uemail = Arrays.copyOf(uemail, uemail.length+1);
uemail [uemail.length-1] = email;
System.out.println("注册成功");
showinfo();
menu();
}
private static void showinfo() {
for(int i=0;i<uid.length;i++) {
System.out.println("用户id :"+uid[i]+"\t"+"用户名称 :"+uname[i]+"\t"+"用户密码 :"+upassword[i]+"\t"+"email :"+uemail[i]);
}
}
/*private static boolean check(String name,String pwd) {
if (name.equals(uname[nowId])&&pwd.equals(upassword[nowId])) {
return true;
}
return false;
}*/
private static void denglu(String name,String pwd) {
int count = 0;
for (int i = 0; i < uid.length; i++) {
if (uname[i].equals(name)&&upassword[i].equals(pwd)) {
nowId = i;
System.out.println("登录成功");
denglushow();
return;
}
}
for(int j=0;j<3;j++) {
count ++;
System.out.println("输入错误请重新输入");
dengluerr();
if (count >3) {
System.out.println("连续3次输入错误");
System.exit(0);
}
}
}
private static void dengluerr() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入用户名");
String name = scanner.next();
System.out.println("请输入密码");
String password = scanner.next();
denglu(name, password);
}
private static void denglushow() {
Scanner scanner = new Scanner(System.in);
System.out.println("1:修改个人信息");
System.out.println("2:修改密码");
System.out.println("0:返回上一级");
int a = scanner.nextInt();
switch (a) {
case 1:
System.out.println("请输入修改后的用户名:");
String name = scanner.next();
System.out.println("请输入修改后的email:");
String email = scanner.next();
updateInfo(name, email);
denglushow();
break;
case 2:
System.out.println("请输入原密码:");
String oldPwd = scanner.next();
System.out.println("请输入修改后的密码:");
String newPwd = scanner.next();
updatePwd(oldPwd, newPwd);
System.out.println("修改成功");
denglushow();
break;
case 0:
menu();
break;
}
}
private static void updateInfo(String name,String email) {
uname[nowId] = name;
uemail[nowId] = email;
showinfo();
}
private static void updatePwd(String oldPwd,String newPwd) {
if (upassword[nowId].equals(oldPwd)) {
upassword[nowId] = newPwd;
showinfo();
}
else {
System.out.println("旧密码输入错误!");
denglushow();
}
}
我拿这个出来的意思是分享一下菜单实现的两种方法,第一种方法是使用无限死循环的while(true)来实现,另一种是将各个菜单分成不同的方法,在方法之间来回跳转来达到调用的目的。
完整代码已经上传到CSDN了下面附链接:链接