JAVA项目之ATM取款机

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;
            }
        }
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值