Write a program to enter the name and salary for a number of employees, store them all in a file, and finally search and display the salary...............
Sep 22, 2018Q. Write a program to enter the name and salary for a number of employees, store them all in a file, and finally search and display the salary of the particular employee whose name is entered for searching.
Program:
#include<iostream>
// for file operations
#include<fstream>
#include<cstring>
using namespace std;
class Employee{
private:
char name[30];
float salary;
public:
void read_data(){
cout<<"Enter Name:"<<endl;
cin>>name;
cout<<"Enter Salary:"<<endl;
cin>>salary;
}
void write_to_file(){
Employee emp;
ofstream file("employee_record.txt",ios::app);
emp.read_data();
file.write(reinterpret_cast<char *>(&emp), sizeof(emp));
}
void read_from_file(){
Employee emp;
ifstream file("employee_record.txt");
while(!file.eof()){
if (file.read(reinterpret_cast<char*>(&emp), sizeof(emp))){
emp.show_data();
}
}
}
void show_data(){
cout<<"Name : "<<name<<endl;
cout<<"Salary : "<<salary<<endl;
}
void search_record(){
Employee emp;
char search_key[30];
cout<<"Enter the name to search :"<<endl;
cin>>search_key;
ifstream file("employee_record.txt");
for (int i = 0; !file.eof(); i++)
{
file.seekg(i * sizeof(emp));
file.read(reinterpret_cast<char *>(&emp), sizeof(emp));
if (strcmp(emp.name, search_key) == 0 )
{
cout<<"#### Your search information ####"<<endl;
emp.show_data();
break;
}
}
}
};
int main(){
int record_number;
cout<<"Enter Record Number :"<<endl;
cin>>record_number;
Employee emp;
for (int i = 0; i < record_number; i++)
{
emp.write_to_file();
}
emp.search_record();
return 0;
}
Sample Run:
Enter Record Number : 6 Enter Name: ram Enter Salary: 53535 Enter Name: sita Enter Salary: 60000 Enter Name: binita Enter Salary: 30000 Enter Name: ramchandra Enter Salary: 700000 Enter Name: rita Enter Salary: 353535 Enter Name: harke Enter Salary: 5353 Enter the name to search : ramchandra #### Your search information #### Name : ramchandra Salary : 700000
Note: In above program the name of the employe takes only string that has no spaces between.