模拟银行操作

设计实现一个银行新用户现金业务办理程序,使其模拟新用户到银行办理现金存取业务时的场景。要求如下:

(1)有对于用户到来的欢迎动作、用户离开的提醒动作

(2)有用户的开户、存款和取款动作,在完成开户存款和取款操作后,要提示用户的帐户余额。

提示:

(1)声明Bank类,在Bank类中声明成员变量用于描述用户姓名,用户密码等相关信息,创建构造方法用于开户,创建静态方法用于打印欢迎语句,创建成员方法用于存款,取款等操作。

(2)在主类中创建对象,调用方法进行存取款等操作。

程序运行效果如下图所示,注意:姓名换成自己的真实姓名,功能实现不拘泥于下图,可以自由发挥,但是必须有开户,存款,取款操作。

public class Bank {
    private String username;
    private String password;
    private double balance;

    public Bank(String username, String password, double initailbalance) {
        this.username = username;
        this.password = password;
        this.balance = initailbalance;
        welcome();
    }

    //静态方法打印欢迎语句
    public  static void welcome() {
        System.out.println("欢迎来到招商银行-------------------------------------");
    }

    //存款
    public void deposit(double amount) {
        if(amount > 0){
            balance+=amount;
            System.out.println(username+"您好,您的账户 已存入"+amount +"元,当前余额 " + balance+" 元");
        } else {
            System.out.println("存款金额必须大于0!");
        }
    }

    //取款
    public void withdrawal(double amount) {
        if(amount>0&&amount<=balance) {
            balance-=amount;
            System.out.println(username+"您好,您的账户 已取出"+amount+" 元,当前余额 " + balance +" 元");
        } else if(amount>balance){
            System.out.println("对不起,账户余额不足!");
        } else {
            System.out.println("取款金额必须大于0!");
        }
    }

    //开户成功提示
    public void welcome1() {
        System.out.println(username+" 开户成功,账户余额 ");
    }

    //密码错误
    public void mistake() {
        System.out.println("您输入的密码错误!");
    }
    //退出提示
    public void leave() {
        System.out.println("请携带还好随身财物,欢迎下次光临招商银行------------------------------------");
    }
}

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // 打印欢迎语句
        Bank.welcome();

        //开户
        System.out.print("请输入您的姓名:");
        String username = scanner.nextLine();
        System.out.print("请输入您的密码:");
        String password = scanner.nextLine();
        System.out.print("请输入初始存款金额:");
        double initialBalance;
        while (!scanner.hasNextDouble()) {
            System.out.println("请输入有效的初始存款金额!");
            scanner.next();
        }
        initialBalance = scanner.nextDouble();
        scanner.nextLine();


        Bank userBank = new Bank(username, password, initialBalance);
        userBank.welcome1();

        // 用户选择
        int choice;
        do {
            System.out.println("\n请选择操作:");
            System.out.println("1. 存款");
            System.out.println("2. 取款");
            System.out.println("3. 退出");
            choice = scanner.nextInt();

            switch (choice) {
                case 1:
                    System.out.print("请输入存款金额:");
                    double depositAmount = scanner.nextDouble();
                    userBank.deposit(depositAmount);
                    break;
                case 2:
                    System.out.print("请输入取款金额:");
                    double withdrawAmount = scanner.nextDouble();
                    userBank.withdrawal(withdrawAmount);
                    break;
                case 3:
                    userBank.leave();
                    break;
                default:
                    System.out.println("无效选择,请重新选择!");
            }
        } while (choice != 3);



        scanner.close();
    }
}
相关推荐
芒果披萨6 分钟前
El表达式和JSTL
java·el
q567315236 分钟前
在 Bash 中获取 Python 模块变量列
开发语言·python·bash
许野平31 分钟前
Rust: 利用 chrono 库实现日期和字符串互相转换
开发语言·后端·rust·字符串·转换·日期·chrono
也无晴也无风雨35 分钟前
在JS中, 0 == [0] 吗
开发语言·javascript
狂奔solar43 分钟前
yelp数据集上识别潜在的热门商家
开发语言·python
duration~1 小时前
Maven随笔
java·maven
zmgst1 小时前
canal1.1.7使用canal-adapter进行mysql同步数据
java·数据库·mysql
跃ZHD1 小时前
前后端分离,Jackson,Long精度丢失
java
blammmp1 小时前
Java:数据结构-枚举
java·开发语言·数据结构
何曾参静谧2 小时前
「C/C++」C/C++ 指针篇 之 指针运算
c语言·开发语言·c++