模拟银行操作

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

(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();
    }
}
相关推荐
2501_933329553 小时前
媒介宣发技术实践:Infoseek舆情系统的AI中台架构与应用解析
开发语言·人工智能·架构·数据库开发
雨奔3 小时前
Kubernetes DNS 完全指南:服务发现核心机制与实践
java·kubernetes·服务发现
[J] 一坚4 小时前
嵌入式高手C
c语言·开发语言·stm32·单片机·mcu·51单片机·iot
odoo中国4 小时前
Odoo 19技术教程 : 如何在 Odoo 19 中创建 Many2one 组件
开发语言·odoo·odoo19·odoo技术·many2one
逻辑驱动的ken4 小时前
Java高频面试考点场景题14
java·开发语言·深度学习·面试·职场和发展·求职招聘·春招
阿冰冰呀4 小时前
互联网大厂Java求职面试实录:谢飞机的“水货”之路
java·mybatis·dubbo·springboot·线程池·多线程·hashmap
水无痕simon4 小时前
1.单机部署Nacos1.3.2
java
techdashen5 小时前
Cloudflare 如何把一个大型代理拆成三个小服务来提升可靠性
开发语言·rust
geovindu6 小时前
go: Chain of Responsibility Pattern
开发语言·设计模式·golang·责任链模式
十五年专注C++开发6 小时前
WaitingSpinnerWidget: 一个高度可配置的自定义Qt等待加载动画组件
开发语言·c++·qt·waitingspinner