展开全部

public class Account {

protected String accId;

protected String name;

protected double money;

public Account (String accId,String name){

this(accId,name,0);

}

public Account (String accId,String name,double money){

this.accId = accId;

this.name = name;

this.money = money;

}

public void saveMoney(double money){

if(money <= 0){

System.out.println("存款金额必e68a84e8a2ad3231313335323631343130323136353331333361303566须大于0");

}

this.money += money;

System.out.println("存款成功");

}

public double getMoney(double money){

if(money <= 0){

System.out.println("取款金额必须大于0");

return 0;

}

if(this.money <= money){

System.out.println("余额不足,无法取款");

return 0;

}

this.money -= money;

System.out.println("取款成功");

return money;

}

public double getBalance(){

return this.money;

}

protected double getOverdraft(){

return 0;

}

// 实现了equals方法,list比较时才能正确

@Override

public boolean equals(Object obj) {

if(obj == null){

return false;

}

if(this == obj){

return true;

}

if(obj instanceof Account){

return this.accId.equals(((Account)obj).accId);

}

return false;

}

@Override

public String toString() {

return "账户=" + accId + ",名字=" + name + ",余额=" + money;

}

}

public class Bank {

// Account实现了equals方法,list查找时才能正确

private List usersAccounts;

public Bank() {

usersAccounts = new ArrayList();

}

public void addAccount(Account account) {

if (usersAccounts.contains(account)) {

System.out.println("添加失败,不能添加同样的账户");

return;

}

usersAccounts.add(account);

}

public boolean delAccount(Account account) {

return usersAccounts.remove(account);

}

public boolean delAccount(String accId) {

return delAccount(new Account(accId, null));

}

public boolean existAccount(Account account) {

return usersAccounts.contains(account);

}

public boolean existAccount(String accId) {

return existAccount(new Account(accId, null));

}

public Account getAccount(String accId){

return usersAccounts.get(usersAccounts.indexOf(new Account(accId, null)));

}

public double getAllMoney() {

// 不考虑是否溢出,只是把所有用户余额相加

double result = 0;

for (Account account : usersAccounts) {

result += account.getBalance();

}

return result;

}

public double getAllOverdraft() {

// 不考虑是否溢出

double result = 0;

for (Account account : usersAccounts) {

result += account.getOverdraft();

}

return result;

}

public int getAccountNum() {

return usersAccounts.size();

}

public int getCreditAccountNum() {

int num = 0;

for (Account account : usersAccounts) {

// instanceof 性能没有简单的方法快。

if (account instanceof CreditAccount) {

num++;

}

}

return num;

}

public int getSavingAccountNum() {

int num = 0;

for (Account account : usersAccounts) {

if (account instanceof SavingAccount) {

num++;

}

}

return num;

}

public List getAllAccount() {

return usersAccounts;

}

}

public class CreditAccount extends Account{

private double overdraft;

public CreditAccount(String accId,String name){

super(accId, name);

this.overdraft = 1000;

}

public CreditAccount(String accId,String name,double money){

this(accId, name,money,1000);

}

public CreditAccount(String accId,String name,double money,double overdraft){

super(accId, name,money);

this.overdraft = overdraft;

}

@Override

public double getMoney(double money) {

if(money <= 0){

System.out.println("取款金额必须大于0");

return 0;

}

if(this.money + overdraft <= money){

System.out.println("余额不足,无法取款");

return 0;

}

this.money -= money;

System.out.println("取款成功");

return money;

}

@Override

public double getOverdraft(){

return overdraft;

}

@Override

public String toString() {

return "账户=" + accId + ",名字=" + name + ",余额=" + money + ",透支=" + overdraft;

}

}

public class SavingAccount extends Account {

public SavingAccount(String accId, String name) {

super(accId, name);

}

public SavingAccount(String accId, String name, double money) {

super(accId, name, money);

}

@Override

public double getMoney(double money) {

return super.getMoney(money);

}

@Override

public double getOverdraft() {

return super.getOverdraft();

}

}

public class Test {

private static Bank bank = new Bank();

public static void main(String[] args) {

Test.genAccount();

// 开户

Account a1 = new CreditAccount("1", "1", 200, 2000);

Account a2 = new SavingAccount("2", "2", 300);

Account a3 = new SavingAccount("3", "3", 400);

Account a4 = new CreditAccount("4", "4", 500, 2000);

Account a5 = new CreditAccount("4", "5", 600, 2000); // 帐号4重

bank.addAccount(a1);

bank.addAccount(a2);

bank.addAccount(a3);

bank.addAccount(a4);

bank.addAccount(a5);

showNowAccount();

// 销户

bank.delAccount("1");

bank.delAccount("2");

showNowAccount();

// 存款

if(bank.existAccount("3")){

Account acc = bank.getAccount("3");

acc.saveMoney(100);

}

showNowAccount();

// 取款

if(bank.existAccount("3")){

Account acc = bank.getAccount("3");

System.out.println("余额=" + acc.getBalance());

acc.getMoney(100);

System.out.println("余额=" + acc.getBalance());

acc.getMoney(1000);

System.out.println("余额=" + acc.getBalance());

}

if(bank.existAccount("4")){

Account acc = bank.getAccount("4");

System.out.println("余额=" + acc.getBalance());

acc.getMoney(100);

System.out.println("余额=" + acc.getBalance());

acc.getMoney(1000);

System.out.println("余额=" + acc.getBalance());

acc.getMoney(10000);

System.out.println("余额=" + acc.getBalance());

}

System.out.println(bank.getAccountNum());

System.out.println(bank.getAllMoney());

System.out.println(bank.getAllOverdraft());

System.out.println(bank.getCreditAccountNum());

System.out.println(bank.getSavingAccountNum());

}

public static void genAccount(){

String s = "1000 0000 0000 000";

Account a = null;

for(int i = 1; i < 11; i ++){

if((i & 2) == 0){

a = new CreditAccount(s + String.valueOf(i), "账户" + String.valueOf(i));

} else {

a = new SavingAccount(s + String.valueOf(i), "账户" + String.valueOf(i));

}

bank.addAccount(a);

}

}

public static void showNowAccount(){

for(Account account : bank.getAllAccount()){

System.out.println(account);

}

}

}

// 面向对象,看多写多了就会了,简单的随便写的,有错误先不用太纠结。

追问

好像与题目要求不符啊

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

java模拟网银登录_用java编写模拟网上银行登录及存取款业务相关推荐

  1. 超简单版模拟实现银行中用户存取款业务

    //主要实现 public class Bank {static String bankName;//银行名称private String name;//储户名字private String pass ...

  2. java模拟银行存取_JAVA基础案例 模拟银行存取款业务

    模拟银行存取款业务 编写一个Java应用程序,模拟网上银行登录及存取款业务.登录时需判断银行卡号和银行卡密码,当输入的卡号和密码都正确时,登录成功,提示当前登录的账户名,并进入下一步选择操作类型.操作 ...

  3. java模仿银行账务业务_Java基础案例 - 模拟银行存取款业务

    博学谷--让IT教学更简单,让IT学习更有效 模拟银行存取款业务 编写一个Java应用程序,模拟网上银行登录及存取款业务.登录时需判断银行卡号和银行卡密码,当输入的卡号和密码都正确时,登录成功,提示当 ...

  4. java实验报告之模拟银行存取款业务

    一个不知名大学生,江湖人称菜狗 original author: jacky Li Email : 3435673055@qq.com Time of completion:2022.12.20 La ...

  5. 模拟银行存取款业务 java

    实训题5:模拟银行存取款业务 实训目的:本项目的主要功能是模拟银行的存取款业务,当用户登录时需判断银行卡号和银行卡密码,当输入的卡号和密码都正确时,登录成功,提示当前登录的账户名,并进入下一步选择操作 ...

  6. 基于Java语言实现模拟银行存取款业务系统

    资源下载地址:https://download.csdn.net/download/sheziqiong/85820969 1.项目简介 本项目的主要功能是模拟银行的存取款业务,当用户登录时需判断银行 ...

  7. java项目----教务管理系统_基于Java的教务管理系统

    java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...

  8. 模拟银行存款java,模拟银行存取款业务

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 public class Account { // 初始化存款 float count = 0f;// 当前账户余额 int money1;// 存款数, ...

  9. python代码设计测试用例_[CP_01] Python循环结构案例:模拟银行存取款业务,设计执行测试用例...

    目录结构 一.案例描述 二.需求分析 1. 业务流程图 2. 业务项&测试场景 三.代码实现 四.用例设计&执行(简化模式) 1. 登录业务 2. 存款业务 3. 取款业务 4. 退卡 ...

  10. 网银学习之道:浦发银行网上银行登录常识介绍

    浦发银行的网上银行登录还是蛮简单方便的,不像农行,笔者昨天想使用以下农业银行的网上银行转账功能,搞了半天都么搞定. 下面就为大家介绍以下浦发银行网上银行登陆的相关常识信息. 首次登录是指移动证书.浏览 ...

最新文章

  1. 11.23月福首页30%
  2. RandomizedLogisticRegression ImportError解决思路参考
  3. 有些车已经不能再买了!因为国五排放标准就要来了!
  4. mysql mmm安装管理详解
  5. linux 中文输入鼠标跳动,解决wps for linux 中文输入法光标不跟随的问题
  6. PSPnet预训练模型caffe model转pytorch
  7. VBS可扩展类库--语音库
  8. 20200404 时间飞逝 青春不在
  9. AttendanceRecord 考勤软件
  10. 2018ICPC焦作站赛后总结
  11. layer-list的作用和使用方法
  12. Java实现字符串反转的几种方法
  13. Dubbo源码分析(一):Dubbo源码的结构概述
  14. “测不准原理”在计算机领域的体现
  15. 【12月英语——快乐中学习】
  16. asp.net错误解决:Unable to Validate Data in ASP.NET website
  17. 2023年人工智能与机器学习国际会议(FAIML 2023) | ACM-ICPS独立出版
  18. 手动从注册表中删除服务项
  19. hpm128无法共享打印_m126及m128打印机共享问题
  20. java 的 exe脱壳_[已解决]求教如何使用java编写加壳程序对PE文件进行加壳

热门文章

  1. 2022-2028年中国煤及褐煤行业发展现状及未来前景分析报告
  2. 快速通过nginx配置域名访问
  3. 将文件名和文件修改时间批量输出至Excel中
  4. HA: InfinityStones靶机渗透测试
  5. Facebook 发布深度学习工具包 PyTorch Hub,让论文复现变得更容易
  6. LeetCode简单题之整理字符串
  7. LeetCode简单题之数字转换为十六进制数
  8. Yolov3Yolov4网络结构与源码分析
  9. 2021年大数据Kafka(三):❤️Kafka的集群搭建以及shell启动命令脚本编写❤️
  10. 【其他】将幕布文章OPML转换为Markdown的方法