package com.Summer_0421.cn;
import java.util.Arrays;
import java.util.Scanner;
/**
* @author Summer
* 使用java面向对象之前的知识 完成规定的功能;
* 附加要求 :
* 1. 可以注册多个用户
* 2. 每个注册的用户都可以登录
* 3. 注册的用户名是唯一的
* 4. 已经登录的用户 必须注销登录才可以继续登录
*/
public class Test05 {
static Scanner sc = new Scanner(System.in);
//用户名数组,用来存储用户名
static int [] usernames = new int[5];
//密码数组,用来存储所用的密码
static int [] passwords = new int[5];
//数组元素的真实数量
static int count =0;
public static void main(String[] args) {
int input = 0;
while (input!=4) {
menu();
input = sc.nextInt();
switch (input) {
case 1:
System.out.println("1.欢迎注册用户账号");
resign();//注册用户名方法
break;
case 2:
System.out.println("2.欢迎登录用户账号");
login();
break;
case 3:
System.out.println("3.注销用户账号成功");
break;
case 4:
System.out.println("4.退出成功!");
break;
case 5:
System.out.println("5.修改账户密码");
change();
break;
default:
System.out.println("请输入有效的数字提示");
break;
}
}
}
public static void change() {
System.out.println("请输入用户名:");
int username = sc.nextInt();
System.out.println("请输入密码:");
int password = sc.nextInt();
int index = check(username);
//判断用户名是否存在,-1则为不存在
if (index ==-1) {
System.out.println("用户名不存在,请注册一个用户");
return;
}
System.out.println("当前用户密码为"+password);
System.out.println("请输入您要修改的密码:");
passwords[index] = sc.nextInt();
if (passwords[index]==password) {
System.out.println("此密码与当前密码一致,请重新输入");
change();
}else{
System.out.println("修改密码成功!");
}
}
public static void login() {
System.out.println("请输入用户名:");
int username = sc.nextInt();
System.out.println("请输入密码:");
int password = sc.nextInt();
int index = check(username);
//判断用户名是否存在,-1则为不存在
if (index ==-1) {
System.out.println("用户名不存在,请重新输入一个");
return;
}
if (usernames[index]==username&&passwords[index]==password) {
System.out.println("登录成功");
} else {
System.out.println("用户名或密码输入错误,请重新输入");
}
}
/**
* 用户注册
*
*/
public static void resign() {
System.out.println("请输入用户名:");
int username = sc.nextInt();
System.out.println("请输入密码:");
int password = sc.nextInt();
//判断是否已经被注册
int index = check(username);
if (index!=-1) {
System.out.println("用户已经被注册,请重新输入");
return;
}
//存入数组
usernames[count]=username;
passwords[count]=password;
//数组元素累加
count++;
System.out.println("用户名"+username +"注册成功"+"\t数组的数量为"+count);
//用户名密码数量超出数组的范围 (扩容)
if (count == usernames.length) {
usernames = Arrays.copyOf(usernames, usernames.length*2);
passwords = Arrays.copyOf(passwords, passwords.length*2);
}
System.out.println("扩容后的长度为"+usernames.length);
}
/**
* 判断用户是否已经注册或者登录
* count真实数量来进行判断
* 如果用户名存在,返回当前用户名的下标
* 如果不存在,返回-1
*/
public static int check(int name){
for (int i = 0; i < count; i++) {
if (usernames[i]==name) {
return i;
}
}
return -1;
}
/**
* 登录菜单
*/
public static void menu() {
System.out.println("....欢迎来到登录系统....");
System.out.println("___________________");
System.out.println("1.欢迎注册用户账号");
System.out.println("2.欢迎登录用户账号");
System.out.println("3.注销用户账号成功");
System.out.println("4.退出成功!");
System.out.println("5.修改密码");
}
}