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

Chapter 9 Exercise 7, Introduction to Java Programming , Tenth Edition Y. Daniel

ID: 3836849 • Letter: C

Question

Chapter 9 Exercise 7, Introduction to Java Programming, Tenth Edition Y. Daniel LiangY. Please include source code comments in your sorce code.

*9.7 (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 cur-
rent 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.

Explanation / Answer

Code:

import java.util.Date;

public class Account
{
int id;
double balance;
double annualInterestRate;
Date dateCreated;

public Account(){
id=0; balance=0.0; annualInterestRate=0.0;
dateCreated=new Date();
}
public Account(int idd, double bal){
id=idd;
balance=bal;
dateCreated=new Date();
}

//accessors
public int getId() { return id;}
public double getBalance(){ return balance;}
public double getAnnInterestRate(){return annualInterestRate;}
public Date getDateCreated(){ return dateCreated;}

//mutators
public void setId(int idd) {id=idd;}
public void setBalance(double bal){ balance=bal;}
public void setAnnInterestRate(double rate){ annualInterestRate=rate;}


public double getMonthlyInterestRate(){

double interest=balance* (annualInterestRate/100)/12;
return interest;
}

public void withDraw(int amt){
if(amt>balance)
{
   System.out.println("Withdraw amount should be less than balance");
   return;
}

balance = balance - amt;
System.out.println("Amount withdrawn: " + amt);
}

public void deposit(double amt){
   balance+=amt;
   System.out.println("Successfully deposited the amount:"+amt);
}

public void print(){

System.out.println("The balance is: "+ balance);
System.out.println("Monthly Interest is:" + getMonthlyInterestRate());
System.out.println("Date created:" + getDateCreated());
  
}

public static void main(String []args){

Account ac = new Account(1122, 20000);
ac.setAnnInterestRate(4.5);
ac.withDraw(2500);
ac.deposit(3000);
ac.print();
}
}

Output:

mount withdrawn: 2500                                                                                                                                   

Successfully deposited the amount:3000.0                                                                                                                 

The balance is: 20500.0                                                                                                                                  

Monthly Interest is:76.875                                                                                                                               

Date created:Thu Mar 09 22:27:25 UTC 2017