設計說明:
1. 銀行共設有四種帳戶,分別是「定期存款」帳戶、 「活期存款」帳戶、「優惠存款」帳戶及「基金存款」帳戶。 前三種帳戶都有開戶人、年利率及帳戶餘額的資料。
2. 每個帳戶都可以存款(deposit)、提款(withdraw)、 查詢餘額(balance)、加計利息(addInterest)。
3. 定期存款帳戶(DepositAccount)的年利率分1、2、3年期,各為3% 、4% 、5%。
4. 活期存款帳戶(FreeAccount)的年利率為2%。
5. 優惠存款帳戶(SpecialAccount)的利率與活期存款同為2%,但優惠存款帳戶餘額若保持在10000元以上則買賣基金可免手續費 (傳回布林值代表可/不可)。
6. 基金存款帳戶(FundAccount)的必要資料有:開戶人、基金名稱、單位數、一活期存款戶、一優惠存款戶。買入的手續費為買入金額的2%,賣出的手續費為賣出金額的2%。基金帳戶可以買、賣、查詢餘額,這幾個功能均需傳入基金目前的價格。買賣基金由活期存款戶轉帳。
7. 請先為peter開設一定期存款帳戶(2年期,存入5000元)、 活期存款帳戶(存入20000元)、優惠存款帳戶)存入10000元)。 並加總一年的利息後,再查詢各帳戶的餘額,依序列出「定期存款」、「活期存款」、「優惠存款」目前的餘額。
8. 接著再為peter新開設一基金存款帳戶,並買入A基金15000元,價格為每單位500元。於三天後該基金跌價為300元,請計算目前基金的餘額,及peter活期存款戶的餘額,請接續7.列出「基金現額」以及「活期餘額」 。
參考程式碼:
TQC+ Java 試題總整理
- class Account{
- String name;
- double APR;
- int Balance;
- Account(){Balance = 0;}
- public void deposit(int i){
- Balance+=i;
- }
- public void withdraw(int i){
- Balance-=i;
- }
- public int balance(){
- return Balance;
- }
- public void addInterest(){
- Balance+=Balance*APR;
- }
- }
- class DepositAccount extends Account{
- DepositAccount(String n,int i){
- name=n;
- if(i==1) APR=0.03;
- else if(i==2) APR=0.04;
- else if(i==3) APR=0.05;
- }
- }
- class FreeAccount extends Account{
- FreeAccount(String n){
- name=n;
- APR=0.02;
- }
- }
- class SpecialAccount extends Account{
- SpecialAccount(String n){
- name=n;
- APR=0.02;
- }
- boolean isEmpt()
- {return Balance>10000;}
- }
- class FundAccount{
- String name,type;
- double unit = 0.0;
- FreeAccount freeAccount;
- SpecialAccount specialAccount;
- FundAccount(String n,String t,FreeAccount f,SpecialAccount s){
- name=n;
- type=t;
- freeAccount=f;
- specialAccount=s;
- }
- public void buy(int i,int j){
- if (specialAccount.isEmpt()){
- freeAccount.withdraw(i);
- }
- else{
- freeAccount.withdraw((int)(i*1.02));
- }
- unit+=i/j;
- }
- public int balance(int j){
- return (int)unit*j;
- }
- }
- public class JPA604_1{
- public static void main(String args[]){
- DepositAccount deposit = new DepositAccount("peter", 2);
- deposit.deposit(5000);
- FreeAccount free = new FreeAccount("peter");
- free.deposit(20000);
- SpecialAccount special = new SpecialAccount("peter");
- special.deposit(10000);
- deposit.addInterest();
- free.addInterest();
- special.addInterest();
- System.out.println("定期存款:" + deposit.balance());
- System.out.println("活期存款:" + free.balance());
- System.out.println("優惠存款:" + special.balance());
- FundAccount fund = new FundAccount("peter", "A", free, special);
- fund.buy(15000, 500);
- System.out.println("基金現額:" + fund.balance(300));
- System.out.println("活期餘額:" + fund.freeAccount.balance());
- }
- }
TQC+ Java 試題總整理
聲明:
這裡的範例程式碼皆由本人親自編輯,歡迎轉載本教學,但請註明本網站,尊重一下作者的心血
沒有留言:
張貼留言
歡迎留言,較舊文章需要留言審核看不到自己的留言是正常的。
若長時間無回應請使用以下聯絡方式:
填寫表單:https://forms.gle/hxxX9n4tATcFnhnk8
寄信到:happyplayblogs@gmail.com