Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Following the instructions in the problem statement, design and implement a Java

ID: 3766559 • Letter: F

Question

Following the instructions in the problem statement, design and implement a Java program for programming exercise 9.7, page 361 (call it Account).

(The Account class) Design a class named Account that contains:
A private int data field named id for the account (default 0).
A private double data field named balance for the account (default 0).
A private double data field named annualInterestRate that stores the current
interest rate (default 0). Assume all accounts have the same interest rate.
A private Date data field named dateCreated that stores the date when the
account was created.
A no-arg constructor that creates a default account.
A constructor that creates an account with the specified id and initial balance.
The accessor and mutator methods for id, balance, and annualInterestRate.
The accessor method for dateCreated.
A method named getMonthlyInterestRate() that returns the monthly
interest rate.
A method named getMonthlyInterest() that returns the monthly interest.
A method named withdraw that withdraws a specified amount from the
account.
A method named deposit that deposits a specified amount to the account.
Draw the UML diagram for the class and then implement the class. (Hint: The
method getMonthlyInterest() is to return monthly interest, not the interest rate.
Monthly interest is balance * monthlyInterestRate. monthlyInterestRate
is annualInterestRate / 12. Note that annualInterestRate is a percentage,
e.g., like 4.5%. You need to divide it by 100.)
Write a test program that creates an Account object with an account ID of 1122,
a balance of $20,000, and an annual interest rate of 4.5%. Use the withdraw
method to withdraw $2,500, use the deposit method to deposit $3,000, and print
the balance, the monthly interest, and the date when this account was created.

Next, develop a test program in a separate file (call it TestAccount) to create account object with ID 1122 as stated in the problem statement. Test the program and make sure it works properly.

Now, add method toString()to class Account to allow the user to printout a meaningful description of an Account object using all of it instance valuables. For example, the following statement

System.out.print(myObject);

on object myObject would display the account information.

Account ID: 34598755

Account Balance: $2754.45

Interest Rate: 2.75%

Date Opened: Sun Nov 2 14:18:16 EDT 2014

Here is an example of toString()method:

//-----------------------------------------------------------------------------

// Returns a string representation of student object using name and studentID.

//-----------------------------------------------------------------------------

public String toString(){

// name and studentID are instance variables in class Student

return ("The student name is " + name + ", and the ID is " + studentID); }

Now, modify the test program to create 2 more account objects (say myAccout and yourAccount) with different initial balance values. Test all class methods on these 2 objects in logical order and display meaningful information after each method call. Document your code, and organize and space the outputs properly. Use escape characters and formatting objects when applicable.

Explanation / Answer

import java.util.Date;

public class AccountProblem

{

            public static void main(String[] args)

{

//create an instance object of class Stock

                        Account myAccount = new Account(1122, 20000.00, 0.045);

                        myAccount.withdraw(2500.00);

                        myAccount.deposit(3000.00);

//display balance, monthly interest and date of account

                        System.out.println("Balance: " + myAccount.balance);

                        System.out.println("Monthly Interest: " + myAccount.getMonthlyInterestRate());

                        //System.out.println("Account created on: " + myAccount.dateCreated);

                        java.util.Date dateCreated = new java.util.Date();

                        System.out.println("Account created on: " + dateCreated.toString());

            }

}

class Account

{

//define var1, var2

            int id;

            double balance;

            double annualInterestRate;

            Date dateCreated;

//no arg constructer

            Account()

{

                        id = 0;

                        balance = 0.0;

                        annualInterestRate = 0.0;

            }

//constructor with specific id and initial balance

            Account(int newId, double newBalance)

{

                        id = newId;

                        balance = newBalance;

            }

            Account(int newId, double newBalance, double newAnnualInterestRate) {

                        id = newId;

                        balance = newBalance;

                        annualInterestRate = newAnnualInterestRate;

            }

//accessor/mutator methods for id, balance, and annualInterestRate

            public int getId()

{

                        return id;

            }

            public double getBalance()

{

                        return balance;

            }

            public double getAnnualInterestRate()

{

                        return annualInterestRate;

            }

            public void setId(int newId)

{

                        id = newId;

            }

            public void setBalance(double newBalance)

{

                        balance = newBalance;

            }

            public void setAnnualInterestRate(double newAnnualInterestRate)

{

                        annualInterestRate = newAnnualInterestRate;

            }

//accessor method for dateCreated

            public void setDateCreated(Date newDateCreated)

{

                        dateCreated = newDateCreated;

            }

//define method getMonthlyInterestRate

            double getMonthlyInterestRate()

{

                        return annualInterestRate/12;

            }

//define method withdraw

            double withdraw(double amount)

{

                        return balance -= amount;

            }         

//define method deposit

            double deposit(double amount)

{

                        return balance += amount;

            }

}