模拟银行操作

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

(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();
    }
}
相关推荐
前端拾光者4 分钟前
利用D3.js实现数据可视化的简单示例
开发语言·javascript·信息可视化
The_Ticker5 分钟前
CFD平台如何接入实时行情源
java·大数据·数据库·人工智能·算法·区块链·软件工程
程序猿阿伟6 分钟前
《C++ 实现区块链:区块时间戳的存储与验证机制解析》
开发语言·c++·区块链
傻啦嘿哟23 分钟前
如何使用 Python 开发一个简单的文本数据转换为 Excel 工具
开发语言·python·excel
大数据编程之光28 分钟前
Flink Standalone集群模式安装部署全攻略
java·大数据·开发语言·面试·flink
初九之潜龙勿用28 分钟前
C#校验画布签名图片是否为空白
开发语言·ui·c#·.net
爪哇学长41 分钟前
双指针算法详解:原理、应用场景及代码示例
java·数据结构·算法
Dola_Pan1 小时前
C语言:数组转换指针的时机
c语言·开发语言·算法
ExiFengs1 小时前
实际项目Java1.8流处理, Optional常见用法
java·开发语言·spring
paj1234567891 小时前
JDK1.8新增特性
java·开发语言