2017-02-06 3 views
-1

HW 지정을 위해 BankAccount 클래스와 Bank 클래스를 만들었습니다. 월별 요금을 추가하는 방법을 만드는 데 문제가있는 경우를 제외하고는 대부분 완료되었습니다. 나는 많은 비슷한 예제를 발견했지만 내가 가지고있는 것과는 아무런 관련이없는 것을 수색했다. 나는에 붙어java bankaccount 프로그램에 문제가있는 경우

public class BankTest 
{ 
    /* 
    * test - set up a bank and add accounts 
    */ 
    public static void main(String[] args) 
    { 
    // Code to test Bank and BankAccount classes 
    int errors = 0; 
    double fee = -2.95; 

    System.out.println("\nCreate bank1"); 
    Bank bank1 = new Bank(); 
    System.out.println("\nOne account"); 
    BankAccount b1 = new BankAccount("Peter Chang", 3021); 
    b1.adjust(1000.0); 
    bank1.addAccount(b1); 
    bank1.printAccounts(); 
    System.out.println("\nTwo accounts"); 
    BankAccount b2 = new BankAccount("Roddy Piper", 3049); 
    b2.adjust(2000.0); 
    bank1.addAccount(b2); 
    bank1.printAccounts(); 
    System.out.println("\nThree accounts"); 
    BankAccount b3 = new BankAccount("Leeroy Jenkins", 4028); 
    b3.adjust(3000.0); 
    bank1.addAccount(b3); 
    bank1.printAccounts(); 
    System.out.println("\nMonthly Fee"); 
    bank1.monthlyFee(fee); 
    bank1.printAccounts(); 
    System.out.println("\nErrors:"); 

    if (bank1.getAccount(0).getBalance() != 997.05) 
    { 
     errors += 1; 
     System.out.println("Balance for account at index 0 does not match $997.05"); 
    } 
    if (bank1.getAccount(1).getBalance() != 1997.05) 
    { 
     errors += 1; 
     System.out.println("Balance for account at index 1 does not match $1997.05"); 
    } 
    if (bank1.getAccount(2).getBalance() != 2997.05) 
    { 
     errors += 1; 
     System.out.println("Balance for account at index 2 does not match $2997.05"); 
    } 
    if (errors == 0) 
     System.out.println("No errors found!!!"); 
    } 
} 

:

import java.util.Arrays; 

public class Bank { 

    BankAccount[] bAcct; 

    public Bank() { 
     //Constructor - will create an array that can hold up to 10 BankAccount objects. 
     bAcct = new BankAccount[10]; 
    } 

    public void addAccount(BankAccount a) { 
     //This method will take a BankAccount object as a param and place it in the next avail entry in array. 
     for(int i = 0; i < bAcct.length; i++) { 
      if (bAcct[i] == null){ 
       bAcct[i] = a; 
       break; 
      } 
     } 
    } 

    public BankAccount getAccount(int index) { 
     //will return a BankAccount object given an integer index value as a param 
     return bAcct[index]; 
    } 

    public void printAccounts() { 
     //will display all of the BankAccount objects 
     for (int i = 0; i < bAcct.length; i++) { 
     if(bAcct[i] != null) { 
      System.out.println(bAcct[i]); 
      } 
     } 
    } 

    public double monthlyFee(double f) { 
     //will take a double value as a param and apply that value to every BankAccount object 
     for (int i = 0; i < bAcct.length; i++){ 
      if(bAcct[i] !=null) { 


      } 
     } 

    } 
} 

및 테스트 클래스 :

여기
public class BankAccount { 

    String owner; 
    int accountNumber; 
    double balance; 

    public BankAccount (String name, int acct){ 
     owner = name; 
     accountNumber = acct; 
    } 

    public String toString() { 
     String str = owner + " owns the account " + accountNumber + " with the balance of " + String.format("$%,.2f", balance); 
     return str; 
    } 

    public double adjust(double amt) { 
     balance = balance + amt; 
     return balance; 
    } 

    public double getBalance() { 
     return balance; 
    } 
} 

는 Bank.java 클래스입니다 : 여기

는 BankAccount가 클래스입니다 banks.java 클래스의 monthlyFee 메소드. 어떤 도움을 주셔서 감사합니다! 미리 감사드립니다. 그런

+0

월별 요금으로 적용하려는 정확한 작업은 무엇입니까? 그냥 빼기? – jlumietu

답변

2

뭔가 :

public void monthlyFee(double f) { 
     //will take a double value as a param and apply that value to every BankAccount object 
     for (int i = 0; i < bAcct.length; i++){ 
      if(bAcct[i] !=null) { 
       bAcct[i].adjust(f); 
      } 
     } 
    } 

제거됨 월 요금 메소드로부터의 반환 당신이 그것을 사용하지 않는 한 그것은 당신이 그것을 반환하기 위해 무엇을 기대 명확하지 않았다한다.

만약 내가 너라면 Array 대신 ListArrayList을 사용하면 불필요한 번거 로움을 줄일 수 있습니다.

+0

oh shoot, 그건 내 문제 였어, 나는 그것에 대해 생각하지 않은 방법에서 계속 진행되고 있었던 것에 너무 집중했다! 나는 그것이 아무것도 돌려주지 않을 것을 기대하지 않았다, 나의 부분에 관한 단지 멍청한 감독. 감사! – PFKrang

2

루프의 각 계정에 대해 수수료 금액을 사용하여 간단하게 adjust 방법을 사용할 수 있습니다.