#include<bits/stdc++.h>
using namespace std;
class Account
{
protected:
int accno;
string holdername;
float balance;
public:
Account(int a, string n, int b)
{
accno=a;
holdername=n;
balance=b;
}
Account(const Account &a)
{
accno=a.accno;
holdername=a.holdername;
balance=a.balance;
}
~Account() {}
void deposit(float bucks)
{
balance+=bucks;
}
void withdraw(float bucks)
{
balance-=bucks;
}
void dispbalance()
{
cout<<"The balance is: "<<balance<<endl;
}
};
class Savings: public Account
{
private:
float intrate, minbalance;
public:
Savings(float r, int acc, string n, float blc): Account (acc, n, blc)
{
intrate=r;
minbalance=500;
}
Savings(const Savings &ob) : Account (ob)
{
intrate=ob.intrate;
minbalance=ob.minbalance;
cout<<"Copy const called!\n";
}
bool checkminbalance()
{
if(balance<minbalance)
{
return true;
}
else return false;
}
float showbalance()
{
return balance;
}
float showintrate()
{
return intrate;
}
string Name()
{
return holdername;
}
void calculatemonthlyinterest()
{
if(!checkminbalance())
{
cout<<"The monthly interest this month is: "<<balance*intrate<<endl;
balance+=(balance*intrate);
}
else
{
cout<<"Balance too low to add interest\n";
return;
}
}
};
void comparemoney(Savings s1, Savings s2)
{
if(s1.showbalance()>s2.showbalance())
{
if(s1.showintrate()>s2.showintrate())
{
cout<<s1.Name()<<" has a greater balance and interest rate than "<<s2.Name()<<endl;
}
else cout<<s1.Name()<<" has a greater balance but a lesser interest rate than "<<s2.Name()<<endl;
}
else
{
if(s2.showintrate()>s1.showintrate())
{
cout<<s2.Name()<<" has a greater balance and interest rate than "<<s1.Name()<<endl;
}
else cout<<s2.Name()<<" has a greater balance but a lesser interest rate than "<<s1.Name()<<endl;
}
}
int main()
{
cout<<"Person - 1:\n";
int acc;
cout<<"Account number: ";
cin>>acc;
string name;
cout<<"Holder name: ";
cin>>name;
float balance;
cout<<"Initial balance: ";
cin>>balance;
float intrate;
cout<<"Interest rate(in fractions e.g 0.65, 0.35, etc): ";
cin>>intrate;
Savings s1(intrate, acc, name, balance);
cout<<"The current balance is: "<<s1.showbalance()<<endl;
cout<<"Amount to deposit: ";
float bucks;
cin>>bucks;
s1.deposit(bucks);
cout<<"The current balance is: "<<s1.showbalance()<<endl;
cout<<"Amount to withdraw: ";
cin>>bucks;
s1.withdraw(bucks);
cout<<"The current balance is: "<<s1.showbalance()<<endl;
s1.calculatemonthlyinterest();
cout<<"The current balance is: "<<s1.showbalance()<<endl;
cout<<"Person - 2:\n";
//int acc;
cout<<"Account number: ";
cin>>acc;
//string name;
cout<<"Holder name: ";
cin>>name;
//float balance;
cout<<"Initial balance: ";
cin>>balance;
//float intrate;
cout<<"Interest rate(in fractions e.g 0.65, 0.35, etc): ";
cin>>intrate;
Savings s2(intrate, acc, name, balance);
cout<<"The current balance is: "<<s2.showbalance()<<endl;
cout<<"Amount to deposit: ";
//float bucks;
cin>>bucks;
s2.deposit(bucks);
cout<<"The current balance is: "<<s2.showbalance()<<endl;
cout<<"Amount to withdraw: ";
cin>>bucks;
s2.withdraw(bucks);
cout<<"The current balance is: "<<s2.showbalance()<<endl;
s2.calculatemonthlyinterest();
cout<<"The current balance is: "<<s2.showbalance()<<endl;
comparemoney(s1, s2);
}