割り当てられた無料取引数を超える銀行口座の取引ごとに手数料を差し引かなければならない宿題の問題があります。私の問題は、トランザクションが割り当てられた金額を超えた場合にのみ料金を適用するのでMath.max
はdeductMonthlyCharge
なく、プログラムがすべてのトランザクションに対して料金を請求しているということです。これを修正する方法がわかりません。また、毎月の取引回数をリセットすることになっています。これを行う方法がわかりません。誰かが私を正しい方向に向けることができれば、それは大歓迎です。
これが私の BankAccount コードです。
public class BankAccount
{
private double balance;
private double fee;
private double freeTransactions;
private double transactionCount;
public BankAccount()
{
balance = 0;
fee = 5;
freeTransactions = 5;
transactionCount = 0;
}
public BankAccount(double initialBalance)
{
balance = initialBalance;
transactionCount = 0;
}
public void deposit(double amount)
{
double newBalance = balance + amount;
balance = newBalance;
transactionCount++;
}
public void withdraw(double amount)
{
double newBalance = balance - amount;
balance = newBalance;
transactionCount++;
}
public double getBalance()
{
return balance;
}
public void setTransFee(double amount)
{
balance = amount+(balance-fee);
balance = balance;
}
public void setNumFreeTrans(double amount)
{
amount = freeTransactions;
}
public double deductMonthlyCharge()
{
double transCount = Math.max(transactionCount, freeTransactions);
double fee = 2.00 * (transCount - freeTransactions);
return fee;
}
}
これが私の BankAccountTester コードです。
public class BankAccountTester
{
private BankAccount rockdown;
public static void main(String[] args) {
BankAccount rockdown = new BankAccount(1000.0);
rockdown.deposit(1000);
rockdown.withdraw(500);
rockdown.withdraw(400);
rockdown.deposit(200);
System.out.println(rockdown.getBalance()- rockdown.deductMonthlyCharge());
rockdown.deposit(1000);
rockdown.withdraw(500);
rockdown.withdraw(400);
rockdown.deposit(200);
rockdown.deposit(500);
System.out.println(rockdown.getBalance()- rockdown.deductMonthlyCharge());
rockdown.deposit(1000);
rockdown.withdraw(500);
rockdown.withdraw(400);
rockdown.deposit(200);
rockdown.deposit(500);
rockdown.withdraw(1000);
System.out.println(rockdown.getBalance()- rockdown.deductMonthlyCharge());
}
}