From 7161436e6d90d04f9c83f4b5100dc0e2efc7f237 Mon Sep 17 00:00:00 2001 From: ANKIT VERMA <97208794+Ankitverma3507@users.noreply.github.com> Date: Fri, 14 Oct 2022 23:29:46 +0530 Subject: [PATCH] Banking system project for beginners This project include knowledge of OOPS and constructor and destructor --- Banking system project | 258 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 258 insertions(+) create mode 100644 Banking system project diff --git a/Banking system project b/Banking system project new file mode 100644 index 0000000..d871acd --- /dev/null +++ b/Banking system project @@ -0,0 +1,258 @@ +Banking System +#include +#include +#include +#include +#include +using namespace std; +#define MIN_BALANCE 500 +class InsufficientFunds{}; +class Account +{ +private: + long accountNumber; + string firstName; + string lastName; + float balance; + static long NextAccountNumber; +public: + Account(){} + Account(string fname,string lname,float balance); + long getAccNo(){return accountNumber;} + string getFirstName(){return firstName;} + string getLastName(){return lastName;} + float getBalance(){return balance;} + + void Deposit(float amount); + void Withdraw(float amount); + static void setLastAccountNumber(long accountNumber); + static long getLastAccountNumber(); + friend ofstream & operator<<(ofstream &ofs,Account &acc); + friend ifstream & operator>>(ifstream &ifs,Account &acc); + friend ostream & operator<<(ostream &os,Account &acc); +}; +long Account::NextAccountNumber=0; +class Bank +{ +private: + map accounts; +public: + Bank(); + Account OpenAccount(string fname,string lname,float balance); + Account BalanceEnquiry(long accountNumber); + Account Deposit(long accountNumber,float amount); + Account Withdraw(long accountNumber,float amount); + void CloseAccount(long accountNumber); + void ShowAllAccounts(); + ~Bank(); +}; +int main() +{ + Bank b; + Account acc; + + int choice; + string fname,lname; + long accountNumber; + float balance; + float amount; + cout<<"***Banking System***"<>choice; + switch(choice) + { + case 1: + cout<<"Enter First Name: "; +cin>>fname; +cout<<"Enter Last Name: "; +cin>>lname; +cout<<"Enter initil Balance: "; +cin>>balance; + acc=b.OpenAccount(fname,lname,balance); + cout<>accountNumber; + acc=b.BalanceEnquiry(accountNumber); + cout<>accountNumber; +cout<<"Enter Balance:"; +cin>>amount; + acc=b.Deposit(accountNumber, amount); + cout<>accountNumber; +cout<<"Enter Balance:"; +cin>>amount; + acc=b.Withdraw(accountNumber, amount); + cout<>accountNumber; + b.CloseAccount(accountNumber); + cout<balance=balance; +} +void Account::Deposit(float amount) +{ + balance+=amount; +} +void Account::Withdraw(float amount) +{ + if(balance-amount>(ifstream &ifs,Account &acc) +{ + ifs>>acc.accountNumber; + ifs>>acc.firstName; + ifs>>acc.lastName; + ifs>>acc.balance; + return ifs; + +} +ostream & operator<<(ostream &os,Account &acc) +{ + os<<"First Name:"<>account; + accounts.insert(pair(account.getAccNo(),account)); + } + Account::setLastAccountNumber(account.getAccNo()); + + infile.close(); + +} +Account Bank::OpenAccount(string fname,string lname,float balance) +{ + ofstream outfile; + Account account(fname,lname,balance); + accounts.insert(pair(account.getAccNo(),account)); + + outfile.open("Bank.data", ios::trunc); + + map::iterator itr; + for(itr=accounts.begin();itr!=accounts.end();itr++) + { + outfile<second; + } + outfile.close(); + return account; +} +Account Bank::BalanceEnquiry(long accountNumber) +{ + map::iterator itr=accounts.find(accountNumber); + return itr->second; +} +Account Bank::Deposit(long accountNumber,float amount) +{ + map::iterator itr=accounts.find(accountNumber); + itr->second.Deposit(amount); + return itr->second; +} +Account Bank::Withdraw(long accountNumber,float amount) +{ + map::iterator itr=accounts.find(accountNumber); + itr->second.Withdraw(amount); + return itr->second; +} +void Bank::CloseAccount(long accountNumber) +{ + map::iterator itr=accounts.find(accountNumber); + cout<<"Account Deleted"<second; + accounts.erase(accountNumber); +} +void Bank::ShowAllAccounts() +{ + map::iterator itr; + for(itr=accounts.begin();itr!=accounts.end();itr++) + { + cout<<"Account "<first<second<::iterator itr; + for(itr=accounts.begin();itr!=accounts.end();itr++) + { + outfile<second; + } + outfile.close(); +}