JAVA项目--银行管理系统

这篇具有很好参考价值的文章主要介绍了JAVA项目--银行管理系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、项目描述

银行管理系统:实现登录、注册,登录后的用户可以进行存款、取款、转账、查询余额操作

2、分析

创建银行类Bank:用于存储银行卡信息,并创建银行系统的主窗体
创建银行卡类BankCard:初始化银行卡信息
创建用户操作类User:进行存款、取款、转账、查询余额操作
创建测试类Main

3、代码
银行类Bank

import java.util.HashMap;
import java.util.Scanner;

//银行
public class Bank {
    //使用哈希列表存储银行的银行卡号信息
    public static HashMap<Integer, BankCard> bankCards = new HashMap<>();

    //注册账户方法
    public void register(int cardNo, int password) {
        //判断该卡号是否存在
        if (bankCards.containsKey(cardNo)) {
            System.out.println("该账户已经存在,麻烦重新选择业务");
            return;
        }
        BankCard bankCard = new BankCard(cardNo,password);
        bankCards.put(cardNo, bankCard);
        System.out.println("注册成功!");
    }

    //登录
    public BankCard login(int cardNo, int password) {
        if (bankCards.size() == 0) {
            System.out.println("当前不存在任何银行卡信息,建议及时注册!");
            return null;
        }
        //判断该账户是否存在
        if (bankCards.containsKey(cardNo)){
            if (bankCards.get(cardNo).getPassword() == password) {
                //如果密码正确,则登录成功
                return bankCards.get(cardNo);
            } else {
                System.out.println("登录失败,该密码错误!");
                //否则就返回null
                return null;
            }
        }else {
            System.out.println("登录失败,该账户不存在!");
        }
        return null;
    }

    //进入银行界面
    public void manager(User user) {
        //输入密码次数不能超过5次,如果输入错误次数超过5次,则退出系统
        int number = 5;
        while (number > 0) {
            System.out.println("***欢迎来到本银行,请选择您的业务:***");
            System.out.println("1.登录账户");
            System.out.println("2.注册账户");
            System.out.println("3.退出");
            System.out.println("请输入您的选择:");
            Scanner scanner = new Scanner(System.in);
            int key = scanner.nextInt();
            int cardNo;
            int password;
            switch (key) {
                case 1:
                    System.out.println("请输入您的银行卡账号:");
                    cardNo = scanner.nextInt();
                    System.out.println("请输入您的银行卡密码:");
                    password = scanner.nextInt();
                    BankCard card = login(cardNo, password);
                    if (card != null) {
                        System.out.printf("***卡号:%d登陆成功***", cardNo);
                        while (true) {
                            System.out.println("");
                            System.out.println("***请输入您需要的业务***");
                            System.out.println("1.存钱");
                            System.out.println("2.取钱");
                            System.out.println("3.转账");
                            System.out.println("4.查询余额");
                            System.out.println("5.退卡");
                            int num = scanner.nextInt();
                            if (num == 5) break;
                            operate(user, num, card);
                        }
                    } else {
                        number--;
                        System.out.println("登陆失败!您还有"+number+"次机会");
                    }
                    break;
                case 2:
                    System.out.println("请输入您的银行卡账号:");
                    cardNo = scanner.nextInt();
                    System.out.println("请输入您的银行卡密码:");
                    password = scanner.nextInt();
                    register(cardNo, password);
                    break;
                case 3:
                    System.out.println("尊敬的用户,您已成功退出银行系统!欢迎下次光临~");
                    return;
                default:
                    System.out.println("请重新输入正确选项!");
            }

        }
    }

    private void operate(User user, int num, BankCard card) {
        switch (num) {
            case 1:
                user.deposit(card);
                break;
            case 2:
                user.withdraw(card);
                break;
            case 3:
                user.transfer(card);
                break;
            case 4:
                user.select(card);
                break;
            default:
                break;
        }
    }

}


银行卡类BankCard


//银行卡
public class BankCard {
    private int cardNo;//卡号
    private int password;//密码
    private double money;//余额

    //初始化
    public BankCard(int cardNo, int password) {
        this.cardNo = cardNo;
        this.password = password;
        //默认该账户初始值为100
        this.money = 100;
    }


    public void setPassword(int password) {
        this.password = password;
    }

    public void setMoney(double money) {

        this.money = money;
    }

    public int getPassword() {
        return password;
    }

    public double getMoney() {
        return money;
    }

    public int getCardNo() {
        return cardNo;
    }

    public void setCardNo(int cardNo) {
        this.cardNo = cardNo;
    }
}

用户操作类User

import java.text.DecimalFormat;
import java.util.Map;
import java.util.Scanner;

//操作
public class User {
    Scanner scanner = new Scanner(System.in);

    //存款
    public void deposit(BankCard bankCard) {
        System.out.println("请输入您的存入金额:");
        double money = scanner.nextDouble();
        if (money > 0) {
            bankCard.setMoney(bankCard.getMoney() + money);
            System.out.println("存款成功,本次存款金额为:"+money);
            select(bankCard);
        } else {
            System.out.println("请输入正确金额");
        }
    }

    //取钱
    public void withdraw(BankCard bankCard) {
        System.out.println("请输入您要取出的金额:");
        double money = scanner.nextDouble();
        //取款金额大于0.且大于余额
        if (money > 0 && money <= bankCard.getMoney()) {
            //修改账户金额
            bankCard.setMoney(bankCard.getMoney() - money);
            System.out.println("取款成功,本次取款金额为:"+money);
            select(bankCard);
        } else if (money > bankCard.getMoney()) {
            System.out.println("很抱歉,您的余额不足!");
        } else {
            System.out.println("请输入正确取款金额!");
        }
    }

    //查询余额
    public void select(BankCard card) {
        DecimalFormat df = new DecimalFormat("#.00");
        System.out.println("您的余额为: " + df.format(card.getMoney()));
    }

    //转账
    public void transfer(BankCard bankCard) {
        //限制输出账号的次数为3次
        int number = 3;
        while (number > 0) {
            System.out.println("请输入对方的卡号:");
            int destID = scanner.nextInt();//目的账号
            Map<Integer, BankCard> bankCards = Bank.bankCards;
            if (bankCards.containsKey(destID)) {
                //查找目的账户存在,再进行转账操作
                BankCard transferAccounts = bankCards.get(destID);
                System.out.println("请输入您要转账的金额:");
                double money = scanner.nextDouble();
                if (money <= bankCard.getMoney()) {
                    //修改账户余额
                    bankCard.setMoney(bankCard.getMoney() - money);
                    //修改对方账户余额
                    transferAccounts.setMoney(transferAccounts.getMoney() + money);
                    System.out.println("转账成功,本次转账金额为:"+money);
                    select(bankCard);
                    return;
                } else {
                    System.out.println("很抱歉,您的余额不足!");
                }
            }
            System.out.println("您还有" + (number - 1) + "次机会,请重新输入转账账户");
            number--;
        }
    }


}

测试类Main

public class Main {
    public static void main(String[] args) {
        Bank bank = new Bank();
        User user = new User();
        //打开银行的系统界面
        bank.manager(user);
    }
}

4、效果
JAVA项目--银行管理系统
JAVA项目--银行管理系统
JAVA项目--银行管理系统
JAVA项目--银行管理系统文章来源地址https://www.toymoban.com/news/detail-510743.html

到了这里,关于JAVA项目--银行管理系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java 版本企业招标投标管理系统源码+功能描述+tbms+及时准确+全程电子化

    功能描述 1、门户管理:所有用户可在门户页面查看所有的公告信息及相关的通知信息。主要板块包含:招标公告、非招标公告、系统通知、政策法规。 2、立项管理:企业用户可对需要采购的项目进行立项申请,并提交审批,查看所有的立项信息。主要功能包含:招标立项申

    2024年02月09日
    浏览(40)
  • Java版本企业电子招投标采购系统源码——功能模块&功能描述+数字化采购管理 采购招投标

      功能模块: 待办消息,招标公告,中标公告,信息发布  描述: 全过程数字化采购管理,打造从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通供应商门户具备内外协同的能力,为外部供应商集中推送展示与其相关的所有采购业务信息(历史合作

    2024年02月15日
    浏览(45)
  • 【python】练习:银行管理系统

    银行管理系统是一个集开户、查询、取款、存款、转账、锁定、解锁、存盘和退出等一系列的功能的管理系统。

    2024年02月04日
    浏览(38)
  • Python - 银行账户管理系统

    题目 设计并实现一个简单的银行账户管理系统,具有以下功能: 记录用户的账户信息,包括账户名,账户号码和余额 允许用户进行存款和取款操作 允许用户查询账户余额 请设计响应的类和方法,并编写代码实现该银行账户管理系统。 思路 首先设计一个账户类:Account,类

    2024年02月03日
    浏览(43)
  • java版工程项目管理系统源码+系统管理+系统设置+项目管理+合同管理+二次开发

      工程项目各模块及其功能点清单 一、系统管理     1、数据字典:实现对数据字典标签的增删改查操作     2、编码管理:实现对系统编码的增删改查操作     3、用户管理:管理和查看用户角色     4、菜单管理:实现对系统菜单的增删改查操作     5、角色管理:管理和

    2024年02月11日
    浏览(46)
  • 银行管理系统,JavaGUI + MySQL + JDBC

    主界面 登录 登录后要验证信息 验证成功进入用户界面 存款界面 存款成功刷新界面 注册界面 必须输入所有信息,并且勾选复选框才能注册 注册成功 取款 余额变更 转账 转账成功,余额变更 查看流水 注销账户 密码采用MD5加密 1.准备两个jar包 commons-codec和mysql-connector-java c

    2024年02月09日
    浏览(39)
  • java版工程项目管理系统源码+系统管理+系统设置+项目管理+合同管理+二次开发em

    ​   鸿鹄工程项目管理系统 Spring Cloud+Spring Boot+Mybatis+Vue+ElementUI+前后端分离构建工程项目管理系统 1. 项目背景 一、随着公司的快速发展,企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性,公司对内部工程管理的提升提出了

    2024年02月13日
    浏览(53)
  • nodejs+vue+ElementUi银行贷款业务管理系统

    银行贷款管理系统的主要实现功能包括:管理员:首页、个人中心、用户管理、银行管理、贷款信息管理、贷款申请管理、金额发布管理、还款信息管理、通知信息管理,用户:首页、个人中心、贷款信息管理、贷款申请管理、金额发布管理、还款信息管理、通知信息管理,

    2024年02月02日
    浏览(44)
  • Java企业工程项目管理系统+spring cloud 系统管理+java 系统设置+二次开发

        工程项目各模块及其功能点清单 一、系统管理     1、数据字典:实现对数据字典标签的增删改查操作     2、编码管理:实现对系统编码的增删改查操作     3、用户管理:管理和查看用户角色     4、菜单管理:实现对系统菜单的增删改查操作     5、角色管理:管理

    2024年02月03日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包