Friday, 22 December 2017

C++ Program for Bank Management System


#include<iostream>

#include<fstream>

#include<stdlib.h>

using namespace std;

class account_query

{

    private:

        char account_number[20];

        char firstName[10];

        char lastName[10];

        float total_Balance;

    public:

        void read_data();

        void show_data();

        void write_rec();

        void read_rec();

        void search_rec();

        void edit_rec();

        void delete_rec();

};

void account_query::read_data()

{

    cout<<"\nEnter Account Number: ";

    cin>>account_number;

    cout<<"Enter First Name: ";

    cin>>firstName;

    cout<<"Enter Last Name: ";

    cin>>lastName;

    cout<<"Enter Balance: ";

    cin>>total_Balance;

    cout<<endl;

}

void account_query::show_data()

{

    cout<<"Account Number: "<<account_number<<endl;

    cout<<"First Name: "<<firstName<<endl;

    cout<<"Last Name: "<<lastName<<endl;

    cout<<"Current Balance: Rs.  "<<total_Balance<<endl;

    cout<<"-------------------------------"<<endl;

}

void account_query::write_rec()

{

    ofstream outfile;

    outfile.open("record.txt", ios::binary|ios::app);

    read_data();

    outfile.write(reinterpret_cast<char *>(this), sizeof(*this));

    outfile.close();

}

void account_query::read_rec()

{

    ifstream infile;

    infile.open("record.txt", ios::binary);

    if(!infile)

    {

        cout<<"Error in Opening! File Not Found!!"<<endl;

    }

    cout<<"\n****Data from file****"<<endl;

    while(!infile.eof())

    {

        if(infile.read(reinterpret_cast<char*>(this), sizeof(*this))>0)

        {

            show_data();

        }

    }

    infile.close();

}

void account_query::search_rec()

{

    int n;

    ifstream infile;

    infile.open("record.txt", ios::binary);

    if(!infile)

    {

        cout<<"\nError in opening! File Not Found!!"<<endl;

        return;

    }

    infile.seekg(0,ios::end);

    int count = infile.tellg()/sizeof(*this);

    cout<<"\n There are "<<count<<" record in the file";

       if(count > 0)

       {

              cout<<"\n Enter Record Number to Search: ";

              cin>>n;

              if(n > count)

              {

                     cout<<"\n Invalid Record No. \n";

              }

              else

              {

                     infile.seekg((n-1)*sizeof(*this));

                     infile.read(reinterpret_cast<char*>(this), sizeof(*this));

                     show_data();

              }

       }

}

void account_query::edit_rec()

{

    int n;

    fstream iofile;

    iofile.open("record.txt", ios::in|ios::binary);

    if(!iofile)

    {

        cout<<"\nError in opening! File Not Found!!"<<endl;

        return;

    }

    iofile.seekg(0, ios::end);

    int count = iofile.tellg()/sizeof(*this);

    cout<<"\n There are "<<count<<" record in the file";

       if(count > 0)

       {

              cout<<"\n Enter Record Number to edit: ";

              cin>>n;

              if(n > count)

              {

                     cout<<"\n Invalid Record No. \n";

              }

              else

              {

                     iofile.seekg((n-1)*sizeof(*this));

                     iofile.read(reinterpret_cast<char*>(this), sizeof(*this));

                     cout<<"Record "<<n<<" has following data"<<endl;

                     show_data();

                     iofile.close();

                     iofile.open("record.txt", ios::out|ios::in|ios::binary);

                     iofile.seekp((n-1)*sizeof(*this));

                     cout<<"\nEnter data to Modify "<<endl;

                     read_data();

                     iofile.write(reinterpret_cast<char*>(this), sizeof(*this));

              }

       }

}

void account_query::delete_rec()

{

    int n;

    ifstream infile;

    infile.open("record.txt", ios::binary);

    if(!infile)

    {

        cout<<"\nError in opening! File Not Found!!"<<endl;

        return;

    }

    infile.seekg(0,ios::end);

    int count = infile.tellg()/sizeof(*this);

    cout<<"\n There are "<<count<<" record in the file";

       if(count > 0)

       {

              cout<<"\n Enter Record Number to Delete: ";

              cin>>n;

              if(n > count)

              {

                     cout<<"\n Invalid Record No. \n";

              }

              else

              {

                     fstream tmpfile;

                     tmpfile.open("tmpfile.txt", ios::out|ios::binary);

                     infile.seekg(0);

                     for(int i=0; i<count; i++)

                     {

                           infile.read(reinterpret_cast<char*>(this),sizeof(*this));

                           if(i==(n-1))

                                  continue;

                           tmpfile.write(reinterpret_cast<char*>(this), sizeof(*this));

                     }

                     infile.close();

                     tmpfile.close();

                     remove("record.txt");

                     rename("tmpfile.txt", "record.txt");

              }

       }

}

int main()

{

    account_query A;

    int choice;

    cout<<"***Acount Information System***"<<endl;

    while(true)

    {

        cout<<"\nSelect one option below ";

        cout<<"\n\t1-->Add record to file";

        cout<<"\n\t2-->Show record from file";

        cout<<"\n\t3-->Search Record from file";

        cout<<"\n\t4-->Update Record";

        cout<<"\n\t5-->Delete Record";

        cout<<"\n\t6-->Quit";

        cout<<"\nEnter your choice: ";

        cin>>choice;

        switch(choice)

        {

            case 1:

                A.write_rec();

                break;

            case 2:

                A.read_rec();

                break;

            case 3:

                A.search_rec();

                break;

            case 4:

                A.edit_rec();

                break;

            case 5:

                A.delete_rec();

                break;

            case 6:

                exit(0);

                break;

            default:

                cout<<"\nEnter corret choice \n";

                //exit(0);

        }

    }

    system("pause");

    return 0;

}


0 comments:

Post a Comment

Tech UOG