Java实现银行新用户现金业务办理

Java实现银行新用户现金业务办理

任务描述

编写一个银行新用户现金业务办理程序,使其模拟新用户到银行办理现金存取业务时的场景。

要求此场景中,要模拟出银行对用户到来的欢迎动作、对用户离开的提醒动作,以及用户的开户、存款和取款动作,在完成开户、存款和取款操作后,要提示用户的账户余额。例如,一个新用户来到招商银行,首先银行要表示欢迎,然后银行工作人员会为用户办理开户手续;开户后,用户先进行存款操作,之后又进行了取款操作,取款操作时需要用户输入正确的密码和取款金额需小于当前账户金额,如果条件不满足,系统产生异常。当业务办理完,用户离开银行,银行提醒用户携带好随身财物。至此银行新用户现金业务办理结束。

任务目标

(1)学会分析“银行新用户现金业务办理”程序任务实现的逻辑思路。
(2)能够独立完成“银行新用户现金业务办理”的建模。
(3)能够独立完成“银行新用户现金业务办理”程序的源代码编写、编译及运行。

代码文件

user.java

public class User {
    public User(String username, String password) {
        this.username = username;
        this.password = password;
    }

    public User(int amount, String username, String password) {
        this.amount = amount;
        this.username = username;
        this.password = password;
    }

    public User() {
    }

    public int getAmount() {
        return amount;
    }

    public void setAmount(int amount) {
        this.amount = amount;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    private int amount;
    private String username;
    private String password;
}

Bank.java

import java.util.Scanner;

public class Bank {
    static User[] accounts=new User[200];
    static int count=0;

    static void show(){
        System.out.println("欢迎来到招财银行");
        System.out.println("请输入你要进行的操作");
        System.out.println("1.开户");
        System.out.println("2.存钱");
        System.out.println("3.取钱");
        System.out.println("0.离开");
    }
    //开户
    static void addAccount()
    {

        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入用户名");
        String username=scanner.nextLine();
        System.out.println("请输入用户密码");
        String password=scanner.nextLine();
        User user=new User(username,password);
        accounts[count]=user;
        count++;

    }

    //存钱
    static void addMoney()
    {
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入用户名");
        String username=scanner.nextLine();

        for(int i=0;i<count;i++)
        {
            if(username.equals(accounts[i].getUsername()))
            {
                System.out.println("请输入你要存的钱数");
                int money=scanner.nextInt();
                accounts[i].setAmount(accounts[i].getAmount()+money);
                System.out.println("当前余额为:"+accounts[i].getAmount());
                return;
            }
        }
        System.out.println("不存在该用户!");
    }

    //取钱
    static void takeMoney()
    {
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入用户名");
        String username=scanner.nextLine();


        for(int i=0;i<count;i++)
        {
            if(username.equals(accounts[i].getUsername()))
            {
                System.out.println("请输入密码");
                String password=scanner.nextLine();
                if(password.equals(accounts[i].getPassword()))
                {
                    System.out.println("请输入你要取的钱数");
                    int money=scanner.nextInt();
                    if(accounts[i].getAmount()-money>0) {
                        accounts[i].setAmount(accounts[i].getAmount() - money);
                        System.out.println("当前余额为:"+accounts[i].getAmount());
                    }
                    else {
                        System.out.println("余额不足!");
                    }

                }
                else {
                    System.out.println("密码不正确");
                }
                return;
            }

        }
        System.out.println("不存在该用户");
    }

    public static void main(String[] args) {

        Scanner scanner=new Scanner(System.in);
        show();
        int choice=scanner.nextInt();
        while (choice!=0)
        {

            switch (choice){
                case(1):addAccount();break;
                case(2):addMoney();break;
                case(3):takeMoney();break;
            }
            show();
            choice=scanner.nextInt();
        }
        System.out.println("感谢您的使用,欢迎下次光临");
    }
}