银行账户管理2
PersonalBank
package bank2;public class PersonalBank {public static void main(String[] args) {//建立几个账户//SavingsAccount sa0 = new SavingsAccount(1, 21325302, 0.015);SavingsAccount sa1 = new SavingsAccount(1, 58320212, 0.015);//几笔账目//sa0.deposit(5, 5000);sa1.deposit(25, 3000);//sa0.deposit(45, 5500);sa1.withdraw(60, 4000);//开户后第90天到了银行的计息日,结算所有账户的年息//sa0.settle(90);sa1.settle(90);//输出各个账户信息//sa0.show();sa1.show();System.out.println("Total: " + SavingsAccount.getTotal());}
}
Saving account
package bank2;public class SavingsAccount {private int id; //账号private double balance; //余额private double rate; //存款的年利率private int lastDate; //上次变更余额的时期private double accumulation; //余额按日累加之和private static double total = 0; //所有账户的总金额//记录一笔帐,date为日期,amount为金额,desc为说明private void record(int date, double amount){accumulation = accumulate(date);lastDate = date;amount = Math.floor((amount * 100 + 0.5)) / 100; //保留小数点后两位balance += amount;total += amount;System.out.println(date + "\t#" + id + "\t" + amount + "\t" + balance);}//获得到指定日期为止的存款金额按日累积值private double accumulate(int date){return accumulation + balance * (date - lastDate);}//构造函数public SavingsAccount(int date, int id, double rate){this.lastDate = date;this.id = id;this.rate = rate;this.accumulation = 0;this.balance = 0;System.out.println(date + "\t#" + id + " is created");}public int getId() { return id; }public double getBalance() { return balance; }public double getRate() { return rate; }public static double getTotal() { return total; }//存入现金public void deposit(int date, double amount){record(date, amount);}//取出现金public void withdraw(int date, double amount){if (amount > getBalance())System.out.println("Error: not enough money");elserecord(date, -amount);}//结算利息,每年1月1日调用一次该函数public void settle(int date){double interest = accumulate(date) * rate / 365; //计算年息if (interest != 0)record(date, interest);accumulation = 0;}//显示账户信息public void show(){System.out.println("#" + id + "\tBalance: " + balance);}}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
