The program is given below:
#include <iostream>
#include <string>
#include<math>
using namespace std;
class Account {
protected:
string name;
int accountNumber;
double balance;
public:
Account(string name, int accountNumber, double balance) {
this->name = name;
this->accountNumber = accountNumber;
this->balance = balance;
}
virtual void calculateInterest() = 0; // pure virtual function
void display() {
cout << "Name: " << name << endl;
cout << "Account number: " << accountNumber << endl;
cout << "Balance: " << balance << endl;
}
};
class Savings_Account : public Account {
public:
Savings_Account(string name, int accountNumber, double balance,int t) : Account(name, accountNumber, balance) {
}
void calculateInterest() {
double interest = balance * pow((1+10/100),t);
balance += interest;
}
};
class Current_Account : public Account {
public:
Current_Account(string name, int accountNumber, double balance, int t) : Account(name, accountNumber, balance) {
}
void calculateInterest() {
double interest = balance * 0.05*t;
balance += interest;
}
};
int main() {
Account* accounts[2];
accounts[0] = new Savings_Account("John Smith", 1234, 1000,1);
accounts[1] = new Current_Account("Jane Doe", 5678, 2000,1);
for (int i = 0; i < 2; i++) {
accounts[i]->calculateInterest();
accounts[i]->display();
cout << endl;
}
for (int i = 0; i < 2; i++) {
delete accounts[i];
}
return 0;
}
Explanation:
The program defines a base class "Account" that stores the common data members and has a pure virtual function 'calculateInterest()' to calculate the interest for a particular account type.
Two derived classes, "Savings_Account" and "Current_Account", implement the 'calculateInterest()' function based on their specific interest rates.
The "main()" function creates an array of "Account" pointer that can hold objects of both derived classes. It then creates two objects of the derived classes and stores their pointers in the array.
A loop iterates over the array, calling the "calculateInterest()" and "display()" functions for each account, and printing the results.
Finally, the program deletes the dynamically allocated objects to free up memory.
No comments:
Post a Comment
If you have any doubts, please let me know