Thursday, December 22, 2016

Project: Banking System

Tags

Description: The C++ programs on BANKING SYSTEM has account class with data members like account number, name, deposit, withdraw amount and type of account. Customer data is stored in a binary file. A customer can deposit and withdraw amount in his account. User can create, modify and delete account.

Code:

#include<iostream>
#include<fstream>
#include<stdlib.h>
using namespace std;
class Account
{
char name[30];
int deposit;
char type[10];
public:
long long account_no;
void getdata()
{
cout<<"Enter Name =";
cin.ignore();
cin.getline(name,30);
cout<<"Enter Type of Account =";
cin>>type;
cout<<"Enter Initial Deposit =";
cin>>deposit;
cout<<"Enter Account Number =";
cin>>account_no;
}
void putdata()
{   cout<<"\n*********************";
cout<<"\nName="<<name;
cout<<"\nAccount Number="<<account_no;
cout<<"\nBalance= "<<deposit;
cout<<"\nType= "<<type<<"\n";
}
void depposit()
{
int x;
cout<<"Enter Amount To Deposit =";
cin>>x;
deposit=deposit+x;
cout<<"\nAmount Deposited\nNew Balance is "<<deposit;
}
void withdraw()
{
int x;
cout<<"Enter Amount To Withdraw ";
cin>>x;
if(x<deposit)
{
deposit=deposit-x;
cout<<"\nNew Balance "<<deposit;
   }
   else
   {
    cout<<"\nNot Enough Balance";
}
   }
void modify()
{
cout<<"\nEnter Name =";
cin.ignore();
cin.getline(name,30);
cout<<"Enter Type of Account=";
cin>>type;
}
};
main()
{
    Account a;
    int password;
cout<<"\n****Welcome To Abc Bank****\n";
int x;
cout<<"\nEnter Password: ";
cin>>password;
if(password==1507623)
{   system("cls");
cout<<"\nChoose From Menu Below\n";
while(1)
{
cout<<"\n\nPress\n1. To Create An Account\n2. To Modify An Account\n3. To Display An Account\n4. To Delete An Account\n5. To Display All Accounts\n6. To Deposit Amount\n7. To Withdraw Amount\n8. To Exit\n";
cin>>x;
system("cls");
switch(x)
{
case 1:
{
ofstream fout("Banking.bin",ios::app | ios::binary);
cout<<"Enter Details\n";
a.getdata();
fout.write((char *)&a,sizeof(a));
fout.close();
break;
}
case 2:
   {
cout<<"Enter Account Number ";
   long long y;char ch;
   int flag=0;
   cin>>y;
   fstream file("Banking.bin",ios::in | ios::binary | ios::out);
while(file&&flag==0)
{  
file.read((char *)&a,sizeof(Account));
if(a.account_no==y)
{
cout<<"Enter New Details\n";
a.modify();
                     file.seekp(-(sizeof(Account)), ios::cur);
file.write((char *) &a,sizeof(Account));
flag=1;
}
}
if(flag==0)
{
cout<<"Invalid Account Number";
}
file.close();
   break;
}
                    case 3:

{
cout<<"\nEnter Account Nunber ";
long long y;
cin>>y;
ifstream fin("Banking.bin",ios::binary);
int flag=0;

while(fin&&flag==0)
{   fin.read((char *)&a,sizeof(Account));
if(a.account_no==y)
{
cout<<"\nDetails Are\n";
a.putdata();
flag=1;
}
}
if(flag==0)
{
cout<<"Invalid Account Number";
}
fin.close();
break;
}
   case 4:
               {
            cout<<"\nEnter Account Nunber ";
long long y;
cin>>y;
fstream fin("Banking.bin",ios::binary |ios::in);
fstream file("Bank2.bin",ios::binary | ios::out);
fin.seekg(0,ios::beg);
while(fin.read((char *)&a,sizeof(Account)))
{
if(a.account_no!=y)
{ file.write((char *)&a,sizeof(Account));}
}
fin.close();
file.close();
remove("Banking.bin");
rename("Bank2.bin","Banking.bin");
cout<<"\nRecord Deleted\n";
break;
               }

case 5:
{
ifstream fin("Banking.bin",ios::binary);
while(fin.read((char *)&a,sizeof(Account)))
{
a.putdata();
   }
   fin.close();
     break;
   }
case 6:
{
cout<<"\nEnter Account Nunber ";
long long y;
cin>>y;
fstream fin("Banking.bin",ios::binary | ios::in | ios::out);
int flag=0;
while(fin&&flag==0)
{   fin.read((char *)&a,sizeof(Account));
if(a.account_no==y)
{
  a.depposit();
                    fin.seekp(-(sizeof(Account)),ios::cur);
fin.write((char *)&a,sizeof(Account));
  flag=1;
}
   }
if(flag==0)
{
cout<<"Invalid Account Number";
}
          fin.close();
  break;
           }
case 7:
{
cout<<"\nEnter Account Nunber ";
long long y;
cin>>y;
fstream fin("Banking.bin",ios::binary | ios::in | ios::out);
int flag=0;
while(fin&&flag==0)
{   fin.read((char *)&a,sizeof(Account));
if(a.account_no==y)
{
 a.withdraw();
    fin.seekp(-(sizeof(Account)),ios::cur);
fin.write((char *)&a,sizeof(Account));
  flag=1;
}
   }
if(flag==0)
{
cout<<"Invalid Account Number";
}
     fin.close();
 break;
           }
                case 8:
    exit(1);
   default: cout<<"\a\nInvalid Choice \t Try Again";
    }
    }
}
else
{
cout<<"\a\nInvalid Password";
}
}

Output: