iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java如何实现银行账户管理子系统
  • 472
分享到

Java如何实现银行账户管理子系统

2023-06-30 17:06:28 472人浏览 安东尼
摘要

本文小编为大家详细介绍“Java如何实现银行账户管理子系统”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java如何实现银行账户管理子系统”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。所用到的知识点:面向对象基

本文小编为大家详细介绍“Java如何实现银行账户管理子系统”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java如何实现银行账户管理子系统”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

所用到的知识点:面向对象基础语法,封装,方法覆盖(重写)、继承、多态

话不多说,直接上代码

Account.java

package com.task1;import java.util.Scanner;public class Account {    //规定账户类型:    //0 – 储蓄账户  1 – 信用账户 2 – 可贷款储蓄账户 3– 可贷款信用账户    private Long id ;//账户号码    private String passWord;//账户密码    private String name;//真实姓名    private String personId;//身份证号码    private String email;//客户的电子邮箱    private double balance;//账户余额    private int type;//账户类型        //无参的构造方法    public Account(){            }        //有参的构造方法    public Account(long id, String password, String name, String personId, String email, double balance, int type) {            super();            this.id = id;            this.password = password;            this.name = name;            this.personId = personId;            this.email = email;            this.balance = balance;            this.type = type;        }        //get、set方法    public Long getId() {        return id;    }    public void setId(long id) {        this.id = id;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getPersonId() {        return personId;    }    public void setPersonId(String personId) {        this.personId = personId;    }    public String getEmail() {        return email;    }    public void setEmail(String email) {        this.email = email;    }    public double getBalance() {        return balance;    }    public void setBalance(double balance) {        this.balance = balance;    }    public int getType() {        return type;    }    public void setType(int type) {        this.type = type;    }    //存款    public Account deposit(double money ) {        this.balance+= money;   //余额增加        return this;    }        //取款    public Account withdraw(double money) {        if(balance - money >= 0) { //判断余额是否足够            balance -= money;  //余额减少//            System.out.println("存款成功");        }        else {            System.out.println("您的余额不足!");        }        return this;    }    //重写toString方法    @Override    public String toString() {        return "Account [id=" + id + ", password=" + password + ", name=" + name + ", personId=" + personId + ", email="                + email + ", balance=" + balance + ", type=" + type + "]";    }       }

SavingAccount.java

package com.task1;public class SavingAccount extends Account {    public SavingAccount() {        super();        // TODO Auto-generated constructor stub    }    public SavingAccount(long id, String password, String name, String personId, String email, double balance,            int type) {        super(id, password, name, personId, email, balance, type);        // TODO Auto-generated constructor stub    }    @Override    public String toString() {        return "SavingAccount [getId()=" + getId() + ", getPassword()=" + getPassword() + ", getName()=" + getName()                + ", getPersonId()=" + getPersonId() + ", getEmail()=" + getEmail() + ", getBalance()=" + getBalance()                + ", getType()=" + getType() + "]";    }}

CreditAccpunt.java

package com.task1;public class CreditAccount extends Account{    private double ceiling;    public CreditAccount() {        super();    }    public CreditAccount(long id, String password, String name, String personId, String email, double balance,            int type,double ceiling) {        super(id, password, name, personId, email, balance, type);        this.ceiling = ceiling;    }    public double getCeiling() {        return ceiling;    }    public void setCeiling(double ceiling) {        this.ceiling = ceiling;    }    @Override    public String toString() {        return "CreditAccount [getCeiling()=" + getCeiling() + ", getId()=" + getId() + ", getPassword()="                + getPassword() + ", getName()=" + getName() + ", getPersonId()=" + getPersonId() + ", getEmail()="                + getEmail() + ", getBalance()=" + getBalance() + ", getType()=" + getType() + "]";    }    @Override    public Account withdraw(double money) {        if(getBalance() >= money) {            setBalance(getBalance() - money);        }else if(getBalance() + getCeiling() >= money) {            setCeiling(getCeiling()-(money-getBalance()));            setBalance(0);        }else {            System.out.println("对不起,您的余额不足");        }        return this;    }      }

Bank.java

package com.task1;import java.util.Scanner;public class Bank {    int index = 0; //当前用户数量    Account [] accounts = new Account [100];//数据库    Account account = null;        //用户开户    public Account reGISter(Long id, String password, String repassword, String name, String personId, String email, int type) {        if(password.equals(repassword)) {  // 判断两次输入密码是否一致            switch (type) {          //根据用户类型创建不同账户            case 0:                 account = new SavingAccount(id, repassword, name, personId, email, 0, type);   //创建储蓄账户                                break;            case 1:                account = new CreditAccount(id, repassword, name, personId, email, 0, type,1000);   //创建信用账户            }            accounts[index++] = account;    //账户信息存到数据库,用户数量+1        }//        else {//            System.out.println("两次输入的密码不一致");//        }        return account;    }        //用户登录    public Account login(Long id, String password) {        int find = searchIdPassword(index, id, password); //当前用户数组下标        if(find >= 0) {                        //判断账户密码是否正确//            System.out.println("登录成功");            return accounts[find];         //返回当前对象        }//        else {//            System.out.println("用户名密码错误");//        }                return null;   //如果账户密码错误返回空    }        //用户存款    public Account deposit(Long id, double money) {        int find = searchId(index, id);当前用户数组下标        if(find >= 0) {                            //判断账户是否存在            accounts[find].deposit(money);      //调用Account类的存款方法//            System.out.println("存款成功");            return accounts[find];             //返回当前对象//            accounts[find].setBalance(accounts[find].getBalance()+money);        }//        else {//            System.out.println("用户不存在");//        }                return null;   //如果账户不存在返回空    }        //用户取款    public Account withdraw(Long id, String password, double money) {        int find = searchIdPassword(index, id, password);//当前用户数组下标        if(find >= 0) {         //判断账户密码是否正确                        accounts[find].withdraw(money);     //调用当前对象的取款方法    //            System.out.println("取款成功");            return accounts[find];    //返回当前对象        }        return null;    }    //设置透支额度    public Account updateCeiling(Long id, String password, double money) {        int find = searchIdPassword(index, id, password);//获取当前用户数组下标        if((find >= 0) && (accounts[find].getType()) == 1){  //判断账户号码和密码是否正确,账户类型是否为信用账户            ((CreditAccount)accounts[find]).setCeiling(((CreditAccount)accounts[find]).getCeiling() + money); //调用set方法设置透支额度            return accounts[find];        }        return null;    }            //  转账功能    //  参数:from转出账户,passwordFrom 转出账号的密码,to转入账户,money转账的金额    public boolean transfer(Long from, String passwordFrom, Long to, double money) {        int find = searchIdPassword(index, from, passwordFrom); //转账账户数组下标        int find2 = searchId(index, to);              //收款账户数组下标        if(find >= 0 && find2 >= 0 && accounts[find].getBalance() >= money) {  //判断转账账户密码、收款账户是否匹配,判断转账用户余额是否足够                accounts[find].withdraw(money);//转账用户转账操作==取款                accounts[find2].deposit(money);//收款用户 == 存款                return true;        }         return false;    }        //统计银行所有账户余额总数    public double balanceSum() {        double sum = 0;     //初始化所有账户余额        for(int i = 0; i < index; i++) {  //遍历数组            sum += accounts[i].getBalance();//求和(账户余额)        }        return sum;    }        //统计所有信用账户透支额度总数    public double ceilingSum() {        double sum = 0;  //初始化所有透支额度和        for(int i = 0; i < index; i++) {  //遍历            if(accounts[i].getType() == 1) {  //判断账户类型是否为信用账户                sum += ((CreditAccount)accounts[i]).getCeiling(); //求和            }        }        return sum;    }    //搜索Id与密码返回数组下标位置    public int searchIdPassword(int index, Long id, String password) {        for(int i = 0; i < index; i++) {            if(id.equals(accounts[i].getId()) && password.equals(accounts[i].getPassword())){  //比较账户和密码是否匹配                return i ;   //匹配则返回账户数组下标            }                    }        return -1;     //不匹配则返回-1    }    //搜索Id    public int searchId(int index, Long id) {        for(int i = 0; i < index; i++) {            if(id.equals(accounts[i].getId())){   //比较账户是否匹配                return i ;                        //匹配则返回账户数组下标            }                    }        return -1;    //不匹配则返回-1    }}

TestAccount.java

package com.task1;public class TestAccount {    public static void main(String[] args) {        Account a =new Account(123456L, "123456","张三", "421356", "tt@tt.com", 100.0, 0);        System.out.println(a);            }}

TestBank.java

package com.task1;import java.util.Scanner;public class TestBank {    public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        Bank bank = new Bank();        String action =null;        do {            System.out.println("菜单:");            System.out.println("---[1.开户]---");            System.out.println("---[2.登录]---");            System.out.println("---[3.存款]---");            System.out.println("---[4.取款]---");            System.out.println("---[5.设置透支额度]---");            System.out.println("---[6.转账]---");            System.out.println("请选择服务");            int choice =sc.nextInt();                        switch(choice) {                            case 1:            //开户                    System.out.println("请输入账户号码:");                    Long id = sc.nextLong();                    System.out.println("请输入账户密码:");                    String password = sc.next();                    System.out.println("请确认账户密码:");                    String repassword = sc.next();                    System.out.println("请输入真实姓名:");                    String name = sc.next();                    System.out.println("请输入身份证号:");                    String personId = sc.next();                    System.out.println("请输入电子邮箱:");                    String email = sc.next();                    System.out.println("请输入账户类型:0 – 储蓄账户  1 – 信用账户 2 – 可贷款储蓄账户 3– 可贷款信用账户");                    int type = sc.nextInt();                                        Account a1 = bank.register(id, password, repassword, name, personId, email, type);                    if(a1 != null) {                        System.out.println(a1);                        System.out.println("开户成功");                    }else {                        System.out.println("两次输入密码不一致");                    }                                        break;                case 2:            //登录                    System.out.println("请输入账户号码:");                    id = sc.nextLong();                    System.out.println("请输入账户密码:");                    password = sc.next();                    Account a2 = bank.login(id, password);                    if(a2 != null) {                        System.out.println(a2);                        System.out.println("登录成功");                    }else {                        System.out.println("账户号码密码错误");                    }                                        break;                                    case 3:            //存款                                        System.out.println("请输入账户号码:");                    id = sc.nextLong();                    System.out.println("请输入存款金额:");                    double money = sc.nextDouble();                    Account a3 = bank.deposit(id, money);                    if(a3 != null) {                        System.out.println(a3);                            System.out.println("存款成功");                    }else {                        System.out.println("账户不存在");                    }                    break;                                    case 4:            //取款                    System.out.println("请输入账户号码:");                    id = sc.nextLong();                    System.out.println("请输入账户密码:");                    password = sc.next();                    System.out.println("请输入取款金额:");                    money = sc.nextDouble();                    Account a4 = bank.withdraw(id, password, money);                    if(a4 != null ) {                        System.out.println(a4);                        System.out.println("取款成功");                    }else {                        System.out.println("账户号码密码错误");                    }                                        break;                                    case 5://设置透支额度                    System.out.println("请输入账户号码:");                    id = sc.nextLong();                    System.out.println("请输入账户密码:");                    password = sc.next();                    System.out.println("请输入透支金额:");                    money = sc.nextDouble();                    Account a5 = bank.updateCeiling(id, password, money);                    if(a5 != null ) {                        System.out.println(a5);                        System.out.println("设置透支额度成功");                    }else {                        System.out.println("账户号码密码错误或账户类型错误");                    }                                        break;                                    case 6://  转账功能                    System.out.println("请输入转账账户号码:");                    Long from = sc.nextLong();                    System.out.println("请输入转账账户密码:");                    String passwordFrom = sc.next();                    System.out.println("请输入收款账户号码:");                    Long to = sc.nextLong();                    System.out.println("请输入转账金额:");                    money = sc.nextDouble();                    boolean flag = bank.transfer(from, passwordFrom, to, money);                    if(flag) {                        System.out.println("转账成功");                    }else {                        System.out.println("转账失败");                    }                                        break;                default:                    System.out.println("服务选择错误");            }            System.out.println("是否继续(y/n)?");            action = sc.next();                }while("y".equals(action));                double balanceSum = bank.balanceSum();        double ceilingSum = bank.ceilingSum();        System.out.println("银行所有账户余额总数:"+balanceSum);        System.out.println("所有信用账户透支额度总数"+ceilingSum);    }}

读到这里,这篇“Java如何实现银行账户管理子系统”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

--结束END--

本文标题: Java如何实现银行账户管理子系统

本文链接: https://www.lsjlt.com/news/330311.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java如何实现银行账户管理子系统
    本文小编为大家详细介绍“Java如何实现银行账户管理子系统”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java如何实现银行账户管理子系统”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。所用到的知识点:面向对象基...
    99+
    2023-06-30
  • Java实现银行账户管理子系统
    本文实例为大家分享了Java实现银行账户管理子系统的具体代码,供大家参考,具体内容如下 所用到的知识点:面向对象基础语法,封装,方法覆盖(重写)、继承、多态 话不多说,直接上代码 A...
    99+
    2024-04-02
  • java实现银行ATM管理系统
    本文实例为大家分享了java实现银行ATM管理系统的具体代码,供大家参考,具体内容如下 功能 账户类、首页设计 分析 ① 每个用户一个账户对象,需要设计账户类,账户类至少包含(卡号、...
    99+
    2024-04-02
  • 银行信贷管理系统的客户关系管理子模块
    一、概要 作为《银行信贷管理系统》项目开发组的程序员,按要求完成: 数据库的创建; 数据表的创建; 数据的操作。 二、实施步骤和内容 《银行信贷管理系统》的E-R图如图2.7 所示,逻辑数据模型、物理...
    99+
    2023-10-02
    数据库 sql mysql
  • 如何基于python实现银行管理系统
    这篇文章将为大家详细讲解有关如何基于python实现银行管理系统,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、网络爬...
    99+
    2023-06-14
  • Java如何实现ATM银行管理系统控制台版本
    这篇文章主要讲解了“Java如何实现ATM银行管理系统控制台版本”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java如何实现ATM银行管理系统控制台版本”吧!创建抽象类Card类abstr...
    99+
    2023-07-02
  • 基于python实现银行管理系统
    目录一、python银行管理系统二、分析部分三、代码部分一、python银行管理系统 二、分析部分 三、代码部分 import random class bankU...
    99+
    2024-04-02
  • java如何实现客户管理系统
    这篇文章主要介绍了java如何实现客户管理系统的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇java如何实现客户管理系统文章都会有所收获,下面我们一起来看看吧。代码:先写个客户类package jja...
    99+
    2023-06-30
  • Java实现ATM银行管理系统(控制台版本)
    目录前言介绍创建抽象类Card类创建普通银行类继承Card创建普通信用卡继承Card创建普通医保卡继承CardATM主要方法业务类逻辑实现main方法测试启动类控制台打印前言介绍 最...
    99+
    2024-04-02
  • java如何实现简单银行ATM系统
    这篇文章主要介绍了java如何实现简单银行ATM系统的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇java如何实现简单银行ATM系统文章都会有所收获,下面我们一起来看看吧。#ATM系统##功能模拟银行ATM机系...
    99+
    2023-06-30
  • 如何进行CentOS操作系统账户管理
    本篇文章给大家分享的是有关如何进行CentOS操作系统账户管理,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。账户管理相关配置文件如下:账户信息文件是/etc/passwd、账户...
    99+
    2023-06-10
  • Java实现用户管理系统
    基于Java的简单的用户管理系统,供大家参考,具体内容如下 此系统功能和方法都比较简单 本次系统通过控制台输入商品的基本信息,加入管理员的登录与对是否为管理员进行操作 对于功能的实现...
    99+
    2024-04-02
  • java实现客户管理系统
    本文实例为大家分享了java实现客户管理系统的具体代码,供大家参考,具体内容如下 代码: 先写个客户类 package jjave_16; public class Custom...
    99+
    2024-04-02
  • Java实现简单的银行管理系统的示例代码
    目录项目描述分析示例代码项目描述 银行管理系统目前支持,存款,取款,查询功能 分析 bank类:用来存放系统所支持的功能—存款,取款,查询 deal_service:用来...
    99+
    2024-04-02
  • Java简单实现银行ATM系统
    本文实例为大家分享了Java实现银行ATM系统的具体代码,供大家参考,具体内容如下 实现步骤: 定义账户类,用于后期创建账户对象封装用户的账户信息。 账户类中的信息至少需要包含(卡号...
    99+
    2024-04-02
  • Java实现基础银行ATM系统
    目录一、前言二、使用步骤三、运行效果图:本文实例为大家分享了Java实现银行ATM系统的具体代码,供大家参考,具体内容如下 一、前言 银行ATM系列简单操作 二、使用步骤 1.创建...
    99+
    2024-04-02
  • Java实战之超市收银管理系统的实现
    目录一、项目简述二、项目运行三、效果图四、核心代码品类信息控制层用户信息控制层商品信息控制层一、项目简述 本系统主要实现的功能有:收银、报表、用户管理、商品管理、销售管理、进货退货管...
    99+
    2024-04-02
  • java实现简单银行ATM系统
    本文实例为大家分享了java实现简单银行ATM系统的具体代码,供大家参考,具体内容如下 #ATM系统 ##功能 模拟银行ATM机系统,具有注册、登录功能用户登录后可实现以下功能:1)...
    99+
    2024-04-02
  • C语言实现银行管理系统(文件操作)
    本文实例为大家分享了C语言实现银行管理系统的具体代码,供大家参考,具体内容如下 银行管理系统主要有五个模块组成: 1、查询账户信息2、存钱3、取款4、转账5、退出系统 测试文件:(首...
    99+
    2024-04-02
  • MySQL如何实现用户账户管理
    这篇文章主要为大家展示了“MySQL如何实现用户账户管理”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL如何实现用户账户管理”这篇文章吧。 MySQL...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作