一个简单的银行bank系统(运用了对象数组和链式编程)

题目

在这里插入图片描述
在这里插入图片描述

Account.java 账户类

public class Account {
     //属性 余额
    private double balance;//默认为0
    //构造器
    public Account(double init_balance){
        this.balance = init_balance;
    }
    //显示余额
    public double getBalance(){
        return balance;
    }
    //存钱操作
    public void deposit(double amt){
        if(amt > 0){
            balance += amt;
            System.out.println("存钱成功");
        }
    }
    //取钱操作
    public void withdraw(double amt){
        if(balance >= amt){
            balance -= amt;
            System.out.println("取钱成功");
        }else{
            System.out.println("余额不足");
        }
    }
}


Bank.java 银行

public class Bank {

    private Customer[] customers;// 存放多个客户的数组
    private int numberOfCustomers;// 记录客户的个数
    //构造器 给数组定义10个长度
    public Bank() {
        customers = new Customer[10];
    }
    // 添加客户
    public void addCustomer(String f, String l) {
        Customer cust = new Customer(f, l);
        // customers[numberOfCustomers] = cust;
        // numberOfCustomers++;
        // 或
        //customers[numberOfCustomers++]是空指针,现在被赋予了cust的地址值,,不是空指针了。
        customers[numberOfCustomers++] = cust;
    }
    // 获取客户的个数
    public int getNumOfCustomers() {
        return numberOfCustomers;
    }
    // 获取指定位置上的客户
    public Customer getCustomer(int index) {
        // return customers[index];//可能报异常: 数组越界 空指针啥的
        if (index >= 0 && index < numberOfCustomers) {
            return customers[index];
        }
        //否则返回空
        return null;
    }
}

Customer.java 客户类

public class Customer {

    private String firstName;
    private String lastName;
    private Account account;
    //构造器
    public Customer(String f, String l) {
        this.firstName = f;
        this.lastName = l;
    }
    //返回余额
    public Account getAccount() {
        return account;
    }
    //设置余额
    public void setAccount(Account account) {
        this.account = account;
    }
    //返回firstName
    public String getFirstName() {
        return firstName;
    }
    //返回lastName
    public String getLastName() {
        return lastName;
    }

}

BankTest.java 银行测试类

public class BankTest {
    public static void main(String[] args) {

        Bank bank = new Bank();

        bank.addCustomer("Jane", "Smith");
        //连续操作
        bank.getCustomer(0).setAccount(new Account(2000));

        bank.getCustomer(0).getAccount().withdraw(500);

        double balance = bank.getCustomer(0).getAccount().getBalance();
        System.out.println("客户:" + bank.getCustomer(0).getFirstName() + "的账户余额为:" + balance);

        System.out.println("***********************");
        bank.addCustomer("万里", "杨");

        System.out.println("银行客户的个数为:" + bank.getNumOfCustomers());


    }
}


结果

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
功能需求详细说明: 0、 显示所有账户 a) 查询出所有账户信息(账户名、账户ID、账户密码、账户余额); 1、 添加账户 a) 添加时先判断输入的账户Id在当前系统中存在不存在,不能重复,如果重复,提示退出程序; b) 添加账户分为两种情况: i. accounts数组未满,只需遍历当前的系统中账户信息,找到为null的位置将新的账户信息添加进去; ii. accounts满了,进行扩容操作,每次扩容10个,提示(在数组扩容之后要将原系统中的账户信息移到对应的新对象数组中); 2、 存钱 a) 判断存入的账户存在还是不存在,如果不存在给出相应提示; b) 如果存在,在存入金额的时候,判断金额是否合法(不能小于等于0),如果合法提示输入密码,再次确认密码,如果密码输入错误,给出相关提示,如果正确,进行存钱; 3、 取钱 a) 判断取钱的账户存在还是不存在,如果不存在给出相应提示; b) 取钱判断输入的金额是否合法,如果合法提示输入密码,如果密码输入错误,给出相关提示; c) 取款金额要小于等于现有存款金额,不能超出现有余额,若超出,则取款失败,给出相关提示; 4、 转账 a) 要判断本人账户存在还是不存在,然后判断对账户存在还是不存在,如果其中之一不存在,给出错误提示; b) 进行转账前,要判断本人账户余额是否满足转账金额,如果不足,提示账户余额不足,输出现有余额; c) 在转账金额满足的情况下需要确认密码才能进行转账,转账成功之后,给出相关提示; 5、 修改密码 a) 首先提示输入账户ID,如果不存在给出相关错误提示; b) 输入原密码,再次确认密码,在原密码和确认密码输入正确的情况下可进入修改密码界面,如果不正确那么提示密码输入错误,如果输入的新密码和旧密码一样,提示新密码和原密码不能一样; c) 在新密码和确认新密码输入不正确的情况下,提示输入错误之后再次提示用户进行输入,在此处可以做一个循环提示,当新密码和确认新密码都输入正确满足条件时则提示修改密码成功;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值