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, 2018

Q. 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.

Related


Tools/Apps





© Nepal Exchange Rates