In: Computer Science
7.3 (The Account class) Design a class named Account
that contains:
■ A private int data field named id for the account.
■ A private float data field named balance for the account.
■ A private float data field named annualInterestRate that stores
the current
interest rate.
■ A constructor that creates an account with the specified id
(default 0), initial
balance (default 100), and annual interest rate (default 0).
■ The accessor and mutator methods for id, balance, and
annualInterestRate.
■ 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 the monthly interest
amount, not
the interest rate. Use this formula to calculate the monthly
interest: balance *
monthlyInterestRate. monthlyInterestRate is
annualInterestRate
/ 12. Note that annualInterestRate is a percent (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 id, balance, monthly interest rate, and monthly interest.
/*UML Diagram
Account
-accountId : int
-accountBalance : float
-annualInterestRate : float
+Account(int id , float balance, float interestRate)
+setId(int id) : void
+setBalance(float balance) : void
+setInterestRate(float interestRate) : void
+getId() : int
+getBalance() : float
+getInterestRate() : float
+getMonthlyInterestRate() : float
+getMonthlyInterest() : float
+withdraw(float amount) : bool
+deposit(float amount) : void
*/
//C++ program
#include<iostream>
using namespace std;
class Account{
private:
int accountId;
float accountBalance;
float annualInterestRate;
public:
Account(int id=0 , float
balance=100 ,float interestRate=0) {
accountId =
id;
accountBalance =
balance;
annualInterestRate = interestRate;
}
void setId(int id){
accountId =
id;
}
void setBalance(float
balance){
accountBalance =
balance;
}
void setInterestRate(float
interestRate){
annualInterestRate = interestRate;
}
int getId(){
return accountId
;
}
float getBalance(){
return
accountBalance;
}
float getInterestRate(){
return
annualInterestRate;
}
float
getMonthlyInterestRate(){
return
annualInterestRate/12;
}
float getMonthlyInterest(){
return
accountBalance*annualInterestRate/1200;
}
bool withdraw(float amount){
if(amount<0||amount>accountBalance){
cout<<"Invalid amount";
return false;
}
accountBalance-=amount;
}
void deposit(float amount){
accountBalance+=amount;
}
};
int main(){
Account account(1122,20000,4.5);
account.withdraw(2500);
account.deposit(3000);
cout<<"Account ID :
"<<account.getId()<<"\n";
cout<<"Account Balance :
$"<<account.getBalance()<<"\n";
cout<<"Monthly Interest Rate :
"<<account.getMonthlyInterestRate()<<"%\n";
cout<<"Monthly Interest :
$"<<account.getMonthlyInterest()<<"\n";
return 0;
}
//sample output