Employee Management Database System

#include<fstream.h>
#include<dos.h>
#include<conio.h>
#include<stdlib.h>
#include<stdio.h>
#include<string.h>

#include<iomanip.h>
#include<graphics.h>

     class group
     {
     private:
        struct person
        {
         char flag;
         char empcode[5];
         char name[40];
         int age;
         float sal;
         int day;
         int month;
         int year;
         }p;
         fstream file;
         public:
    group();

    void addrec();
    void listrec();
    void modirec();
    void delrec();
    void recallrec();
    void packrec();
    void exit();
    };


    void main()

    {
     char choice,v;
     group g;
     do
     {
     clrscr();
     struct dosdate_t d;
    _dos_getdate(&d);
         //     p.day=d.day;
        //     p.month=d.month;
        //     p.year=d.year;
        //     _dos_getdate(&d);
     gotoxy(12,5);
     textcolor(6);
        cprintf("Todays date:");
        printf("%d",d.day);
        cout<<"/";
        printf("%d",d.month);
        cout<<"/";
        cout<<d.year;
        gotoxy(12,9);
     cout<<"Srknec.corporation pvt.ltd";
     gotoxy(12,12);
     cout<<"1.Add record";
     gotoxy(12,15);
     cout<<"2.List Record";
     gotoxy(12,17);
     cout<<"3.Modify record";
     gotoxy(12,19);
     cout<<"4.Delete record";
     gotoxy(12,21);
     cout<<"5.Recall record";
     gotoxy(12,23);
     cout<<"6.Pack record";
     gotoxy(12,25);
     cout<<"0.Exit";
     gotoxy(12,28);
     cout<<"Your choice"<<"  ";
     cin>>choice;
        clrscr();

     switch(choice)
     {
     case '1':
     g.addrec();
     break;
     case'2':
     g.listrec();
     break;

     case'3':
     g.modirec();
     break;

     case'4':
     g.delrec();
     break;

     case'5':
     g.recallrec();
     break;

     case'6':
     g.packrec();
     break;

     case'0':
     g.exit();
     exit(1);

     }
         }
         while(choice!=0);
     }


     void group::group()
     {
        file.open("Emp.dat",ios::binary|ios::in|ios::out);
        p.flag=' ';
        if(!file)
        {
        cout<<endl<<"Unable to open file";
        exit();
        }

     }
        void group::addrec()
     {
        char ch;
        file.seekp(0L,ios::end);
    struct dosdate_t d;
     _dos_getdate(&d);
        p.day=d.day;
        p.month=d.month;
        p.year=d.year;

        cout<<"Make shure that no employee has the same code"<<endl;
        do
        {
     cout<<endl<<"Enter employee  code, name, age & salary
:"<<endl<<endl;
     cout<<"OR"<<endl<<endl;
     cout<<"To return to the Main menu press'm' key else press'a':";
     cin>>ch;
     if(ch=='m'||ch=='M')
     {
         main();
        }
     cin>>p.empcode>>p.name>>p.age>>p.sal;
     p.flag=' ';
     file.write((char*)&p,sizeof(p));
     cout<<"Add another record ?(y/n) :";
     cin>>ch;
     }
     while(ch=='y'||ch=='Y');
         }
         void group::listrec()
     {
        int j=0,a;
        file.seekg(0L,ios::beg);

    cout<<"List of records present are as under>>>"<<endl<<endl;
    cout<<"             "<<"|CODE|"<<"           "<<"|NAME|"<<"
"<<"|AGE|"<<" "<<"|SALARY|"<<" "<<"|DATED|"<<endl;
         //Donot touch Above Line Any Way it is set to give Some Nice Look
        while(file.read((char*)&p,sizeof(p)))
     {
        if(p.flag!='*')

cout<<endl<<"Record#"<<"
"<<j++<<setw(6)<<p.empcode<<setw(20)<<p.name<<setw(4)<<p.age<<setw(9)<<p.sal<<"
 "<<p.day<<"/"<<p.month<<"/"<<p.year<<endl;
}
file.clear();

if(j==0)
{
 gotoxy(10,10);
 cout<<"No record exit";
 gotoxy(10,11);
 cout<<"Press any key...";
 getch();
}
else
{
 cout<<endl<<"Press any key...";
 getch();
}
}
void group::modirec()
{
char code[5];
int count=0;
long int pos;
cout<<"Enter employee code whose record is to be modified :";
cin>>code;
file.seekg(0L,ios::beg);
while(file.read((char*)&p,sizeof(p)))
{
 if(strcmp(p.empcode,code)==0)
 {
 cout<<endl<<"Enter new record "<<endl;
 cout<<endl<<"Enter employee name,age & salary :"<<endl;
 cin>>p.name>>p.age>>p.sal;
 struct dosdate_t d;
 _dos_getdate(&d);
 p.day=d.day;
 p.month=d.month;
 p.year=d.year;
 p.flag=' ';
 pos=count*sizeof(p);
 file.seekp(pos,ios::beg);
 file.write((char*)&p,sizeof(p));
 return;
}
 count++;
}
cout<<endl<<"No employee in file with code= "<<code;
getch();
file.clear();
}
void group::delrec()
    {
    char code[5];
    long int pos;
    int count=0;
    cout<<"Enter employee code to be deleted :";
    cin>>code;
    file.seekg(0L,ios::beg);
    while(file.read((char*)&p,sizeof(p)))
    {
     if (strcmp(p.empcode,code)==0)
     {
     p.flag='*';
     pos=count*sizeof(p);
     file.seekp(pos,ios::beg);
     file.write((char*)&p,sizeof(p));
     return;
     }
     count++;
     }
     cout<<endl<<"No employee in file with code="<<code;
     cout<<endl<<"Press any key...";
     getch();
     file.clear();
     }
    void group::recallrec()
     {
         char code[5];
         long int pos;
         int count=0;

         cout<<"Enter employee code to be recalled :";
         cin>>code;

         file.seekg(0L,ios::beg);

         while(file.read((char*)&p,sizeof(p)))
         {
        if(strcmp(p.empcode,code)==0)
        {
        p.flag=' ';
        pos=count*sizeof(p);
        file.seekp(pos,ios::beg);
        file.write((char*)&p,sizeof(p));
        return;
        }

        count++;
    }
    cout<<endl<<"No employee in the file with code="<<code;
    cout<<endl<<"Press any key...";
    getch();
    file.clear();
         }
         void group::packrec()
        {
         ofstream outfile;
    outfile.open("TEMP",ios::out);
    file.seekg(0,ios::beg);
    while(file.read((char*)&p,sizeof(p)))
    {
     if(p.flag!='*')
     outfile.write((char*)&p,sizeof(p));
     }
     outfile.close();
     file.close();
     remove("Emp.DAT");
     rename("TEMP","EMP.DAT");
   
file.open("EMP.DAT",ios::binary|ios::in|ios::out|ios::nocreate);
 gotoxy(10,10);
 cout<<"Marked records to be deleted are all removed";
 gotoxy(10,11);
 cout<<"press any key....";
 getch();
 }
 void group::exit()
 {
 file.close();
}

No comments:

Post a Comment

 
;