0% found this document useful (0 votes)
26 views

File Handling Program

The document describes an employee management program that uses file handling in C++. The program allows the user to add, display, search for, update salaries, and insert employee records from a binary file. Functions are defined to perform each operation and interact with the file.

Uploaded by

opninja173
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views

File Handling Program

The document describes an employee management program that uses file handling in C++. The program allows the user to add, display, search for, update salaries, and insert employee records from a binary file. Functions are defined to perform each operation and interact with the file.

Uploaded by

opninja173
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 9

//Employee management File Handling Program

#include<iostream>

#include<fstream>

#include<stdio.h>

using namespace std;

//Employee class Declaration

class Employee

private:

int code;

char name[20];

float salary;

public:

void read();

void display();

//will return employee code

int getEmpCode()

return code;

//will return employee salary

int getSalary()

return salary;

//will update employee salary


void updateSalary(float s)

salary=s;

};

//Read employee record

void Employee::read()

cout<<"Enter employee code: ";

cin>>code;

cout<<"Enter name: ";

cin.ignore(1);//The cin.ignore() function is used which is used to ignore or clear

//one or more characters from the input buffer.

cin.getline(name,20);

cout<<"Enter salary: ";

cin>>salary;

//Display employee record

void Employee::display()

cout<<code<<" "<<name<<"\t"<<salary<<endl;

//global declaration

fstream file;

//Will delete file when program is being executed

//because we are create file in append mode

void deleteExistingFile()

{
remove("EMPLOYEE.DAT");

//function to append record into file

void appendToFille()

Employee x;

//Read employee record from user

x.read();

file.open("EMPLOYEE.DAT",ios::binary|ios::app);

if(!file)

cout<<"ERROR IN CREATING FILE\n";

return;

//write into file

file.write((char*)&x,sizeof(x));

file.close();

cout<<"Record added sucessfully.\n";

void displayAll()

Employee x;

file.open("EMPLOYEE.DAT",ios::binary|ios::in);

if(!file)

cout<<"ERROR IN OPENING FILE \n";


return;

while(file)

if(file.read((char*)&x,sizeof(x)))

if(x.getSalary()>=10000 && x.getSalary()<=20000)

x.display();

file.close();

void searchForRecord()

//read employee id

Employee x;

int c;

int isFound=0;

cout<<"Enter employee code: ";

cin>>c;

file.open("EMPLOYEE.DAT",ios::binary|ios::in);

if(!file)

cout<<"ERROR IN OPENING FILE \n";

return;

while(file)

if(file.read((char*)&x,sizeof(x)))

{
if(x.getEmpCode()==c)

cout<<"RECORD FOUND\n";

x.display();

isFound=1;

break;

if(isFound==0)

cout<<"Record not found!!!\n";

file.close();

//Function to increase salary

void increaseSalary()

//read employee id

Employee x;

int c;

int isFound=0;

float sal;

cout<<"enter employee code \n";

cin>>c;

file.open("EMPLOYEE.DAT",ios::binary|ios::in);

if(!file)

{
cout<<"ERROR IN OPENING FILE \n";

return;

while(file)

if(file.read((char*)&x,sizeof(x)))

if(x.getEmpCode()==c)

cout<<"Salary hike? ";

cin>>sal;

x.updateSalary(x.getSalary()+sal);

isFound=1;

break;

if(isFound==0)

cout<<"Record not found!!!\n";

file.close();

cout<<"Salary updated successfully."<<endl;

//Insert record by assuming that records are in

//ascending order

void insertRecord()

//read employee record


Employee x;

Employee newEmp;

//Read record to insert

newEmp.read();

fstream fin;

//read file in input mode

file.open("EMPLOYEE.DAT",ios::binary|ios::in);

//open file in write mode

fin.open("TEMP.DAT",ios::binary|ios::out);

if(!file)

cout<<"Error in opening EMPLOYEE.DAT file!!!\n";

return;

if(!fin)

cout<<"Error in opening TEMP.DAT file!!!\n";

return;

while(file)

if(file.read((char*)&x,sizeof(x)))

if(x.getEmpCode()>newEmp.getEmpCode())

fin.write((char*)&newEmp, sizeof(newEmp));
}

//no need to use else

fin.write((char*)&x, sizeof(x));

fin.close();

file.close();

rename("TEMP.DAT","EMPLOYEE.DAT");

remove("TEMP.DAT");

cout<<"Record inserted successfully."<<endl;

int main()

char ch;

//if required then only remove the file

deleteExistingFile();

do

int n;

cout<<"ENTER CHOICE\n"<<"1.ADD AN EMPLOYEE\n"<<"2.DISPLAY\n"<<"3.SEARCH\


n"<<"4.INCREASE SALARY\n"<<"5.INSERT RECORD\n";

cout<<"Make a choice: ";

cin>>n;

switch(n)
{

case 1:

appendToFille();

break;

case 2 :

displayAll();

break;

case 3:

searchForRecord();

break;

case 4:

increaseSalary();

break;

case 5:

insertRecord();

break;

default :

cout<<"Invalid Choice\n";

cout<<"Do you want to continue ? : ";

cin>>ch;

}while(ch=='Y'||ch=='y');

return 0;

You might also like