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.