EXPERIMENT 3 PROGRAM 2
🧩 Syntax:
#include <iostream>
#include <string>
using namespace std;
class Account {
protected:
string name;
string acc_no;
double balance;
public:
Account(string name, string acc_no, double balance = 0)
: name(name), acc_no(acc_no), balance(balance) {}
virtual void deposit(double amount) {
balance += amount;
cout << "Deposit successful. Updated balance: " << balance << endl;
}
virtual void display_balance() {
cout << "Account Balance: " << balance << endl;
}
virtual void withdrawal(double amount) {
if (amount <= balance) {
balance -= amount;
cout << "Withdrawal successful. Updated balance: " << balance << endl;
} else {
cout << "Insufficient balance" << endl;
}
}
};
class SavingsAccount : public Account {
public:
SavingsAccount(string name, string acc_no, double balance = 0)
: Account(name, acc_no, balance) {}
void compute_interest(double interest_rate) {
double interest = balance * interest_rate;
deposit(interest);
cout << "Interest deposited. Updated balance: " << balance << endl;
}
};
class CurrentAccount : public SavingsAccount {
private:
double min_balance;
double service_charge;
public:
CurrentAccount(string name, string acc_no, double balance = 0, double min_balance = 1000,
double service_charge = 50)
: SavingsAccount(name, acc_no, balance), min_balance(min_balance),
service_charge(service_charge) {}
void check_minimum_balance() {
if (balance < min_balance) {
balance -= service_charge;
cout << "Minimum balance not maintained. Service charge imposed. Updated balance: " <<
balance << endl;
} else {
cout << "Minimum balance maintained." << endl;
}
}
void withdrawal(double amount) override {
Account::withdrawal(amount);
check_minimum_balance();
}
};
int main() {
string name, acc_no;
double balance, amount, interest_rate;
int choice;
cout << "Choose account type:\n";
cout << "1. Savings Account\n";
cout << "2. Current Account\n";
cout << "Enter your choice (1 or 2): ";
cin >> choice;
cin.ignore(); // Ignore newline character from the previous input
cout << "Enter name: ";
getline(cin, name);
cout << "Enter account number: ";
getline(cin, acc_no);
cout << "Enter initial balance: ";
cin >> balance;
if (choice == 1) {
SavingsAccount savings_account(name, acc_no, balance);
cout << "Enter interest rate (in decimal): ";
cin >> interest_rate;
cout << "Enter amount to deposit: ";
cin >> amount;
savings_account.deposit(amount);
savings_account.compute_interest(interest_rate);
savings_account.display_balance();
cout << "Enter amount to withdraw: ";
cin >> amount;
savings_account.withdrawal(amount);
savings_account.display_balance();
} else if (choice == 2) {
CurrentAccount current_account(name, acc_no, balance);
cout << "Enter amount to deposit: ";
cin >> amount;
current_account.deposit(amount);
cout << "Enter amount to withdraw: ";
cin >> amount;
current_account.withdrawal(amount);
current_account.display_balance();
} else {
cout << "Invalid choice." << endl;
}
return 0;
}