Java课程设计,模拟银行存取业务,按照这个流程图去做,其实最主要的是求画圈的部分怎么写和它的方法。

功能要求:编写一个Java应用程序,模拟网上银行登录及存取款业务。登录时需判断银行卡号和银行卡密码,当输入的卡号和密码都正确时,登录成功,提示当前登录的账户名,并进入下一步选择操作类型。操作类型包括四种(存款:1;取款:2 ;余额:3;退出:0),输入数字1、2时,将进行存取款操作,此时需要输入存取的金额,并进行正确的金额加减计算;输入数字3时,显示当前账户的余额;输入数字0时将退出整个系统。注:使用控制台操作,不使用用户界面。帮帮忙,各位。

请点击输入图片描述

package com.greatwall.business.controller;


import java.math.BigDecimal;

import java.util.Scanner;

import java.util.regex.Matcher;

import java.util.regex.Pattern;


/**

 * @author xysddjyt

 * @since 2020/6/16 15:06

 */

public class BankTest {


    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);

        // 余额(单位:分)

        Long BALANCE = 10000000L;


        // 卡号

        String card = "001";


        // 密码

        String password = "123456";


        String inputCard = new String();

        String inputPassword = new String();

        String quit = new String();

        while (true) {

            System.out.println("\n欢迎来到网上银行办理存取款业务!");

            System.out.println("请输入银行卡号和银行卡密码进行登录!");

            while (true) {

                System.out.print("请输入银行卡号(按q退出): ");

                inputCard = scan.nextLine();

                quit = inputCard;

                if (inputCard.equals("q")) {

                    break;

                }

                if (!inputCard.equals(card)) {

                    System.out.print("您输入银行卡号不正确,请重新输入 ");

                    continue;

                }

                break;

            }

            if (quit.equals("q")) {

                continue;

            }

            while (true) {

                System.out.print("请输入银行卡密码(按q退出): ");

                inputPassword = scan.nextLine();

                quit = inputPassword;

                if (inputPassword.equals("q")) {

                    break;

                }

                if (!inputPassword.equals(password)) {

                    System.out.print("您输入银行卡密码不正确,请重新输入 ");

                    continue;

                }

                break;

            }

            if (quit.equals("q")) {

                continue;

            }

            System.out.print("登录成功,当前登录的账户名:" + inputCard);

            String type = "4";

            while (!type.equals("0")) {

                System.out.print("\n您当前的余额为:" + money(BALANCE) + "元");

                System.out.print("\n请选择操作类型。(存款:1;取款:2 ;余额:3;退出:0)\n");

                type = scan.nextLine();

                switch (type) {

                    case "1": {

                        System.out.print("请输入您的存款金额(元):");

                        String chageNumber = scan.nextLine();

                        if (!isPositiveInteger(chageNumber)) {

                            System.out.print("请输入正确的存款金额!");

                            continue;

                        }

                        BALANCE = Long.valueOf(chageNumber) * 100 + BALANCE;

                        continue;

                    }

                    case "2": {

                        System.out.print("请输入您的取款金额(元):");

                        String chageNumber = scan.nextLine();

                        if (!isPositiveInteger(chageNumber)) {

                            System.out.print("请输入正确取款金额!");

                            continue;

                        }

                        BALANCE = BALANCE - Long.valueOf(chageNumber) * 100;

                        continue;

                    }

                    case "3": {

                        System.out.print("您当前的余额为:" + money(BALANCE) + "元\n");

                        continue;

                    }

                    default: {

                        continue;

                    }

                }

            }

        }

    }


    private static boolean isMatch(String regex, String orginal) {

        if (orginal == null || orginal.trim().equals("")) {

            return false;

        }

        Pattern pattern = Pattern.compile(regex);

        Matcher isNum = pattern.matcher(orginal);

        return isNum.matches();

    }

    // 判断数据是否为正整数

    public static boolean isPositiveInteger(String orginal) {

        return isMatch("^\\+{0,1}[1-9]\\d*", orginal);

    }

    // 分转元,转换为bigDecimal在toString

    public static String money(Long money) {

        return BigDecimal.valueOf(money).divide(new BigDecimal(100)).toString();

    }

}

追问

能不能顺道讲解一下代码的开头部分

追答

定义一个输入器Scanner,再初始化银行基础数据,例如:银行余额、卡号、密码。这个数据是写死的,所以每次启动都会恢复,如果把数据存放到数据库就可以实现数据远程保存。

追问

如果使每次运行之后数据都能保存下来。请问这个怎么写

追答

用数据库保存

温馨提示:答案为网友推荐,仅供参考
相似回答