網站聲明

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

2015-06-09

TQC+ Java6 基本認識 604-3

604-3.
設計說明:

1. 該銀行為服務客戶增設網路銀行帳戶,網路銀行帳戶含有某客戶之所有帳戶的資料。
2. 請為Peter開立一網路銀行帳戶,並撰寫能夠計算Peter所有存款帳戶(不含基金)的總餘額的方法。

參考程式碼:
  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. }
  42. class FundAccount{
  43.  String name,type;
  44.  double unit = 0.0;
  45.  FreeAccount freeAccount;
  46.  SpecialAccount specialAccount;
  47.  FundAccount(String n,String t,FreeAccount f,SpecialAccount s){
  48.   name=n;
  49.   type=t;
  50.   freeAccount=f;
  51.   specialAccount=s;
  52.  }
  53.  public void buy(int i,int j){
  54.   if (specialAccount.isEmpt()){
  55.    freeAccount.withdraw(i);
  56.   }
  57.   else{
  58.    freeAccount.withdraw((int)(i*1.02));
  59.   }
  60.   unit+=1.0*i/j;
  61.  }
  62.  public int balance(int j){
  63.   return (int)(unit*j);
  64.  }
  65.  double getUnit() {
  66.   return unit;
  67.  }
  68.  public void sell(double i,int j){
  69.   freeAccount.deposit((int)(i*j*0.98));
  70.   unit -= i;
  71.  }
  72. }
  73. class InternetAccount{
  74.  DepositAccount depositAccount;
  75.  FreeAccount freeAccount;
  76.  SpecialAccount specialAccount;
  77.  FundAccount fundAccount;
  78.  InternetAccount(){
  79.  
  80.  }
  81.  public void setDeposit(DepositAccount deposit){
  82.   depositAccount=deposit;
  83.  }
  84.  public void setFree(FreeAccount setFree){
  85.   freeAccount=setFree;
  86.  }
  87.  public void setSpecial(SpecialAccount setSpecial){
  88.   specialAccount=setSpecial;
  89.  }
  90.  public void setFund(FundAccount setFund){
  91.   fundAccount=setFund;
  92.  }
  93.  public int getTotalBalance(){
  94.   return depositAccount.balance()+freeAccount.balance()+specialAccount.balance();
  95.  }
  96. }
  97. public class JPA604_3{
  98.  public static void main(String args[]){
  99.   DepositAccount deposit = new DepositAccount("peter"2);
  100.   deposit.deposit(5000);
  101.   FreeAccount free = new FreeAccount("peter");
  102.   free.deposit(20000);
  103.   SpecialAccount special = new SpecialAccount("peter");
  104.   special.deposit(10000);
  105.   deposit.addInterest();
  106.   free.addInterest();
  107.   special.addInterest();
  108.   FundAccount fund = new FundAccount("peter""A", free, special);
  109.   fund.buy(15000500);
  110.   special.withdraw(5000);
  111.   fund.buy(2000300);
  112.   fund.sell(fund.getUnit()400);    
  113.   InternetAccount internet = new InternetAccount();
  114.   internet.setDeposit(deposit);
  115.   internet.setFree(free);
  116.   internet.setSpecial(special);
  117.   internet.setFund(fund);
  118.   System.out.println("存款總額:" + internet.getTotalBalance());
  119.  }
  120. }

TQC+ Java 試題總整理

聲明:

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

沒有留言:

張貼留言

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