package com.jn.expressage;
import java.util.Scanner;
public class atm {
static Scanner sc = new Scanner(System.in);
static String[] names = new String[10];
static String[] id = new String[10];
static int[] accounts = new int[10];
static String[] passWorld = new String[10];
static int index=0;
public static void main(String[] args) {
while(true){
mainInterFace();
}
}
private static void mainInterFace(){
System.out.println("--------------------------------------------");
System.out.println("|\t请输入你的选项:\t\t\t\t\t\t\t|");
System.out.println("|\t1.管理员\t\t\t" + "2.用户\t\t" + "3.退出\t\t|");
System.out.println("--------------------------------------------");
int option = sc.nextInt();
if (option==1){
rootPass();
} else if (option==2) {
int userIndex=userPass();
if(userIndex!=-1){
user(userIndex);
}
} else if (option==3) {
System.exit(0);
}
}
/**
* 当在主界面中输入选项 2 时,会执行以下流程来调用 userPass()和 user()方法:
*
* 在 `mainInterFace()方法中,当用户选择 2 时:
*
* else if (option==2) {
* int userIndex=userPass();
* if(userIndex!=-1){
* user(userIndex);
* }
* }
* 首先,会调用userPass()方法。userPass()方法用于让用户输入用户名和密码,并在已有的用户信息中进行查找和验证。如果找到匹配的用户且密码正确,就返回该用户在数组中的索引;如果未找到匹配用户或密码错误,就返回 -1 。
*
* 然后,根据userPass()的返回值userIndex进行判断。如果userIndex不为 -1 ,说明登录成功,就会调用user(userIndex)方法。user()方法用于为登录成功的用户提供存款、取款、查看余额和退出等操作的选择和执行。
*/
//管理员密码验证,验证通过则执行
private static void rootPass(){
System.out.println("请输入ROOT管理员密码:");
String passworld= sc.next();
if(passworld.equals("123456")){
root();
}
else{
System.out.println("请输入正确的管理员密码");
}
}
//管理员界面
private static void root(){
System.out.println("欢迎来到管理员界面,请选择你要进行的操作:");
System.out.println("1.添加账户\t\t2.查看信息\t\t3.修改信息\t\t4.删除用户\t\t5.安全返回");
int n = sc.nextInt();
if(n==1){
addUser();
} else if (n==2) {
select();
} else if (n==3) {
updateMethod();
}else if(n==4){
deleteUser();
}
else if(n==5){
mainInterFace();
}
}
//添加用户
private static void addUser(){
System.out.println("请输入用户名:");
String name = sc.next();
System.out.println("请输入用户登录密码:");
String passworld = sc.next();
System.out.println("请输入银行卡号");
String s= sc.next();
System.out.println("请输入存款金额:");
int num = sc.nextInt();
names[index]=name;
passWorld[index]=passworld;
id[index]=s;
accounts[index]=num;
System.out.println("Add Successful!");
index++;
root();
}
//查看用户信息
private static void select(){
System.out.println("USER\t\tPASSWORLD\t\tID\t\tACCOUNT");
for (int i = 0; i < index; i++) {
System.out.println(names[i]+"\t\t\t"+passWorld[i]+"\t\t\t\t"+id[i]+"\t\t"+accounts[i]);
}
root();
}
//修改用户信息
private static void updateMethod(){
System.out.println("请输入你要修改账户的用户名:");
int updateIndex = getNameIndex(sc.next());
if(updateIndex==-1){
System.out.println("系统中不存在该用户,请重新输入");
root();
}else{
System.out.println("请输入要修改的选项:");
System.out.println("1.修改用户名\t\t2.修改卡号\t\t3.修改密码");
int n = sc.nextInt();
if(n==1){
System.out.println("请输入新的用户名:");
String newName = sc.next();
names[updateIndex]=newName;
System.out.println("Update Name Successful!");
} else if (n==2) {
System.out.println("请输入新的卡号");
String newId = sc.next();
id[updateIndex] = newId;
System.out.println("Update Id Successful!");
}
else if (n==3) {
System.out.println("请输入新的密码");
String newPassworld = sc.next();
passWorld[updateIndex] = newPassworld;
System.out.println("Update PassWorld Successful!");
}
else{
System.out.println("你输入的信息有误");
}
root();
}
}
//通过用户名称得到索引
private static int getNameIndex(String s){
for (int i = 0; i < index; i++) {
if(id[i].equals(s)){
return i;
}
}
return -1;
}
//删除用户
private static void deleteUser(){
System.out.println("请输入你要删除的用户姓名:");
int delIndex = getNameIndex(sc.next());
if(delIndex==-1){
System.out.println("系统中不存在该用户,请重新输入");
root();
} else{
System.out.println("请输入该用户的密码:");
String s = sc.next();
if(s.equals(passWorld[delIndex])){
for (int i = delIndex; i <index ; i++) {
names[i]=names[i+1];
id[i]=id[i+1];
passWorld[i]=passWorld[i+1];
accounts[i]=accounts[i+1];
}
index--;
System.out.println("Delete Successful!");
root();
}
else {
System.out.println("用户密码输入有误!");
root();
}
}
}
//验证用户名和密码,返回用户的索引
private static int userPass(){
System.out.println("请输入你的用户名");
String name = sc.next();
int userIndex = getNameIndex(name);
if (userIndex==-1){
System.out.println("系统中不存在该用户!");
}
else{
System.out.println("请输入密码:");
String s = sc.next();
if(s.equals(passWorld[userIndex])){
System.out.println("登录成功");
}
else{
System.out.println("密码错误!");
userIndex=-1;
}
}
return userIndex;
}
//根据索引来循环进行用户操作
private static void user(int userIndex){
System.out.println("欢迎来到用户界面");
while(true){
System.out.println("请选择:\t\t1.存款\t\t2.取款\t\t3.查看余额\t\t4.退出");
int n= sc.nextInt();
if(n==1){
System.out.println("请输入存款金额:");
int money1 = sc.nextInt();
accounts[userIndex]+=money1;
System.out.println("存款成功");
}else if (n==2) {
System.out.println("请输入取款金额:");
int money2 = sc.nextInt();
accounts[userIndex]-=money2;
System.out.println("取款成功!");
}else if (n==3) {
System.out.println("你当前的账户余额为:");
System.out.println(accounts[userIndex]);
} else if (n==4) {
break;
}
}
}
}
JAVA项目之ATM取款机
于 2024-08-06 20:03:50 首次发布