模拟银行操作

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

(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();
    }
}
相关推荐
学Linux的语莫13 分钟前
机器学习数据处理
java·算法·机器学习
找不到、了13 分钟前
JVM的即时编译JIT的介绍
java·jvm
csbysj202032 分钟前
如何使用 XML Schema
开发语言
R6bandito_37 分钟前
STM32中printf的重定向详解
开发语言·经验分享·stm32·单片机·嵌入式硬件·mcu
earthzhang202144 分钟前
【1007】计算(a+b)×c的值
c语言·开发语言·数据结构·算法·青少年编程
西瓜er1 小时前
JAVA:Spring Boot 集成 FFmpeg 实现多媒体处理
java·spring boot·ffmpeg
你总是一副不开心的样子(´ . .̫ .1 小时前
一、十天速通Java面试(第三天)
java·面试·职场和发展·java面试
杨枝甘露小码1 小时前
Python学习之基础篇
开发语言·python
迎風吹頭髮1 小时前
UNIX下C语言编程与实践63-UNIX 并发 Socket 编程:非阻塞套接字与轮询模型
java·c语言·unix
我是华为OD~HR~栗栗呀1 小时前
23届考研-Java面经(华为OD)
java·c++·python·华为od·华为·面试