網站聲明

本網站包含了各式各樣的資源,如果有侵占到您的著作權,請與本人通知,本人會立即改進。本站所有發表僅屬研究討論性質,如果有任何後果請自行負責。

2015-06-09

TQC+ Java6 基本認識 604-1

604-1.
設計說明:

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.列出「基金現額」以及「活期餘額」 。

參考程式碼:
  1. class Account{
  2.  String name;
  3.  double APR;
  4.  int Balance;
  5.  Account(){Balance = 0;}
  6.   public void deposit(int i){
  7.    Balance+=i;
  8.   }
  9.   public void withdraw(int i){
  10.    Balance-=i;
  11.   }
  12.   public int balance(){
  13.    return Balance;
  14.   }
  15.   public void addInterest(){
  16.    Balance+=Balance*APR;
  17.   }
  18.  }
  19. class DepositAccount extends Account{
  20.  DepositAccount(String n,int i){
  21.   name=n;
  22.   if(i==1) APR=0.03;
  23.   else if(i==2) APR=0.04;
  24.   else if(i==3) APR=0.05;
  25.  }
  26. }
  27. class FreeAccount extends Account{
  28.  FreeAccount(String n){
  29.   name=n;
  30.   APR=0.02;
  31.  }
  32. }
  33. class SpecialAccount extends Account{
  34.  SpecialAccount(String n){
  35.   name=n;
  36.   APR=0.02;
  37.  }
  38.  boolean isEmpt()
  39.   {return Balance>10000;}
  40. }
  41. class FundAccount{
  42.  String name,type;
  43.  double unit = 0.0;
  44.  FreeAccount freeAccount;
  45.  SpecialAccount specialAccount;
  46.  FundAccount(String n,String t,FreeAccount f,SpecialAccount s){
  47.   name=n;
  48.   type=t;
  49.   freeAccount=f;
  50.   specialAccount=s;
  51.  }
  52.  public void buy(int i,int j){
  53.   if (specialAccount.isEmpt()){
  54.    freeAccount.withdraw(i);
  55.   }
  56.   else{
  57.    freeAccount.withdraw((int)(i*1.02));
  58.   }
  59.   unit+=i/j;
  60.  }
  61.  public int balance(int j){
  62.   return (int)unit*j;
  63.  }
  64. }
  65. public class JPA604_1{
  66.  public static void main(String args[]){
  67.   DepositAccount deposit = new DepositAccount("peter"2);
  68.   deposit.deposit(5000);
  69.   FreeAccount free = new FreeAccount("peter");
  70.   free.deposit(20000);
  71.   SpecialAccount special = new SpecialAccount("peter");
  72.   special.deposit(10000);
  73.   deposit.addInterest();
  74.   free.addInterest();
  75.   special.addInterest();
  76.   System.out.println("定期存款:" + deposit.balance());
  77.   System.out.println("活期存款:" + free.balance());
  78.   System.out.println("優惠存款:" + special.balance());  
  79.   FundAccount fund = new FundAccount("peter""A", free, special);
  80.   fund.buy(15000500);
  81.   System.out.println("基金現額:" + fund.balance(300));
  82.   System.out.println("活期餘額:" + fund.freeAccount.balance());
  83.  }
  84. }

TQC+ Java 試題總整理

聲明:

這裡的範例程式碼皆由本人親自編輯,歡迎轉載本教學,但請註明本網站,尊重一下作者的心血

沒有留言:

張貼留言

歡迎留言,較舊文章需要留言審核看不到自己的留言是正常的。
若長時間無回應請使用以下聯絡方式:
填寫表單:https://forms.gle/hxxX9n4tATcFnhnk8
寄信到:happyplayblogs@gmail.com