Need help setting initial balances in Bank Account program.

[code]//Demonstrates the BankAccount and derived classes

import java.text.*; // to use Decimal Format

public class AccountDriver
{
public static void main(String[] args)
{
double put_in = 500;
double take_out = 1000;

DecimalFormat myFormat;
String money;
String money_in;
String money_out;
boolean completed;

// to get 2 decimals every time
myFormat = new DecimalFormat("#.00");

//to test the Checking Account class
CheckingAccount myCheckingAccount =
new CheckingAccount ("Benjamin Franklin", 1000);
System.out.println ("Account Number "
+ myCheckingAccount.getAccountNumber() +
" belonging to " + myCheckingAccount.getOwner());
money = myFormat.format(myCheckingAccount.getBalance());
System.out.println ("Initial balance = $" + money);
myCheckingAccount.deposit (put_in);
money_in = myFormat.format(put_in);
money = myFormat.format(myCheckingAccount.getBalance());
System.out.println ("After deposit of $" + money_in
+ ", balance = $" + money);
completed = myCheckingAccount.withdraw(take_out);
money_out = myFormat.format(take_out);
money = myFormat.format(myCheckingAccount.getBalance());
if (completed)
{
System.out.println ("After withdrawal of $" + money_out
+ ", balance = $" + money);
}
else
{
System.out.println ("Insuffient funds to withdraw $"
+ money_out + ", balance = $" + money);
}
System.out.println();

//to test the savings account class
SavingsAccount yourAccount =
new SavingsAccount ("William Shakespeare", 400);
System.out.println ("Account Number "
+ yourAccount.getAccountNumber() +
" belonging to " + yourAccount.getOwner());
money = myFormat.format(yourAccount.getBalance());
System.out.println ("Initial balance = $" + money);
yourAccount.deposit (put_in);
money_in = myFormat.format(put_in);
money = myFormat.format(yourAccount.getBalance());
System.out.println ("After deposit of $" + money_in
+ ", balance = $" + money);
completed = yourAccount.withdraw(take_out);
money_out = myFormat.format(take_out);
money = myFormat.format(yourAccount.getBalance());
if (completed)
{
System.out.println ("After withdrawal of $" + money_out
+ ", balance = $" + money);
}
else
{
System.out.println ("Insuffient funds to withdraw $"
+ money_out + ", balance = $" + money);
}
yourAccount.postInterest();
money = myFormat.format(yourAccount.getBalance());
System.out.println ("After monthly interest has been posted,"
+ "balance = $" + money);
System.out.println();


// to test the copy constructor of the savings account class
SavingsAccount secondAccount =
new SavingsAccount (yourAccount,5);
System.out.println ("Account Number "
+ secondAccount.getAccountNumber()+
" belonging to " + secondAccount.getOwner());
money = myFormat.format(secondAccount.getBalance());
System.out.println ("Initial balance = $" + money);
secondAccount.deposit (put_in);
money_in = myFormat.format(put_in);
money = myFormat.format(secondAccount.getBalance());
System.out.println ("After deposit of $" + money_in
+ ", balance = $" + money);
secondAccount.withdraw(take_out);
money_out = myFormat.format(take_out);
money = myFormat.format(secondAccount.getBalance());
if (completed)
{
System.out.println ("After withdrawal of $" + money_out
+ ", balance = $" + money);
}
else
{
System.out.println ("Insuffient funds to withdraw $"
+ money_out + ", balance = $" + money);
}
System.out.println();

//to test to make sure new accounts are numbered correctly
CheckingAccount yourCheckingAccount =
new CheckingAccount ("Issac Newton", 5000);
System.out.println ("Account Number "
+ yourCheckingAccount.getAccountNumber()
+ " belonging to "
+ yourCheckingAccount.getOwner());

}
}
[/code]

[code]public abstract class BankAccount
{
// class variable so that each account has a unique number
protected static int numberOfAccounts = 100001;

// current balance in the account
private double balance;
// name on the account
private String owner;
// number bank uses to identify account
private String accountNumber;

//default constructor
public BankAccount()
{
balance = 0;
accountNumber = numberOfAccounts + "";
numberOfAccounts++;
}

//standard constructor
public BankAccount(String name, double amount)
{
owner = name;
balance = amount;
accountNumber = numberOfAccounts + "";
numberOfAccounts++;
}

//copy constructor
public BankAccount(BankAccount oldAccount, double amount)
{
owner = oldAccount.owner;
balance = amount;
accountNumber = oldAccount.accountNumber;
}

//allows you to add money to the account
public void deposit(double amount)
{
balance = balance + amount;
}

//allows you to remove money from the account if
//enough money is available
//returns true if the transaction was completed
//returns false if the there was not enough money
public boolean withdraw(double amount)
{
boolean completed = true;

if (amount <= balance)
{
balance = balance - amount;
}
else
{
completed = false;
}
return completed;
}

//accessor method to balance
public double getBalance()
{
return balance;
}

//accessor method to owner
public String getOwner()
{
return owner;
}

//accessor method to account number
public String getAccountNumber()
{
return accountNumber;
}

//mutator method to change the balance
public void setBalance(double newBalance)
{
balance = newBalance;
}

//mutator method to change the account number
public void setAccountNumber(String newAccountNumber)
{
accountNumber = newAccountNumber;
}
}[/code]

[code]public class SavingsAccount extends BankAccount
{



public SavingsAccount(String string, double rate)
{
interestRate = .025;
}
public SavingsAccount(SavingsAccount yourAccount, int rate) {

}
public void addInterest()
{
double interest = getBalance() * interestRate / 12;
deposit(interest);
}
private double interestRate;


public void postInterest() {
double balance = getBalance();
balance += (balance * interestRate);
deposit(balance);

}

}

[/code]

[code]public class CheckingAccount extends BankAccount {

private int transactionCount;

private static final int FREE_TRANSACTIONS = 0;
private static final double TRANSACTION_FEE = 0.15;

public CheckingAccount(String string, double initialBalance)
{
// Construct superclass
super(string, initialBalance);

// Initialize transaction count
transactionCount = 0;
}
public void deposit(double amount)
{
transactionCount++;
// Now add amount to balance
super.deposit(amount);
}

public boolean withdraw(double amount)
{
transactionCount++;
return super.withdraw(amount);
}
public void deductFees()
{

}


}
[/code]
[b]
Expected output:[/b]
Account Number 100001-10 belonging to Benjamin Franklin
Initial balance = $1000.00
After deposit of $500.00, balance = $1500.00
After withdrawal of $1000.00, balance = $499.85

Account Number 100002-0 belonging to William Shakespeare
Initial balance = $400.00
After deposit of $500.00, balance = $900.00
Insuffient funds to withdraw $1000.00, balance = $900.00
After monthly interest has been posted,balance = $901.88

Account Number 100002-1 belonging to William Shakespeare
Initial balance = $5.00
After deposit of $500.00, balance = $505.00
Insuffient funds to withdraw $1000.00, balance = $505.00

Account Number 100003-10 belonging to Issac Newton


[b]Output I am getting:[/b]
Account Number 100001 belonging to Benjamin Franklin
Initial balance = $1000.00
After deposit of $500.00, balance = $1500.00
After withdrawal of $1000.00, balance = $500.00

Account Number 100002 belonging to null
Initial balance = $.00
After deposit of $500.00, balance = $500.00
Insuffient funds to withdraw $1000.00, balance = $500.00
After monthly interest has been posted,balance = $1012.50

Account Number 100003 belonging to null
Initial balance = $.00
After deposit of $500.00, balance = $500.00
Insuffient funds to withdraw $1000.00, balance = $500.00

Account Number 100004 belonging to Issac Newton

Comments

  • SavingAcccount need to be change like this.

    public class SavingsAccount extends BankAccount
    {



    public SavingsAccount(String string, double rate)
    {

    super(string,rate);
    }
    public SavingsAccount(SavingsAccount yourAccount, int rate) {
    super(yourAccount,rate);
    }
    public void addInterest()
    {
    double interest = getBalance() * interestRate / 12;
    deposit(interest);
    }
    private double interestRate;


    public void postInterest() {
    double balance = getBalance();
    balance += (balance * interestRate);
    deposit(balance);

    }

    }
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

In this Discussion