Advertisement
Eternoseeker

File handling oop

Dec 15th, 2022 (edited)
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.02 KB | Source Code | 0 0
  1. #include<iostream>
  2. #include<fstream>
  3.  
  4. using namespace std;
  5.  
  6. class emp{
  7. string empid;
  8. string name;
  9.  
  10. public:
  11. emp(){
  12.     empid = '0';
  13.     name = "abc";
  14. }
  15.  
  16. void accept(){
  17.     cout<< "Enter employee details" << endl;
  18.     cout << "Enter employee id: " << endl;
  19.     cin >> empid;
  20.     cout << "Enter employee name: " << endl;
  21.     cin >> name;
  22. }
  23.  
  24. void display(){
  25.     cout << "Employee ID: " << empid << endl;
  26.     cout << "Employee name: " << name << endl;
  27. }
  28.  
  29. string retid(){
  30.     return empid;
  31. }
  32.  
  33. string retname(){
  34.     return name;
  35. }
  36.  
  37. /*void search(int id){
  38.         if(id == empid){
  39.             display();
  40.         }
  41.         else{
  42.             cout<<"Data not found"<<endl;
  43.         }
  44. }*/
  45.  
  46. };
  47.  
  48. int main(){
  49.     emp e1[4], e2[4], e3[3], e4[4];
  50.     fstream file, file2;
  51.     string deleteid;
  52.     string updateid;
  53.     string searchid;
  54.     int ch = 10;
  55.     int flag = 0;
  56.     while(ch != 0){
  57.         cout << "Enter your choices: " << endl;
  58.         cout << "1: Write in file" << endl;
  59.         cout << "2: Read from file" << endl;
  60.         cout << "3: Search in file" << endl;
  61.         cout << "4: Delete data in file" << endl;
  62.         cout << "5: Update data in file"<<endl;
  63.         cout << "0: Exit" << endl;
  64.         cin >> ch;
  65.         switch(ch){
  66.             case 1:
  67.             file.open("/home/pccoe/Desktop/empdata.txt");
  68.             for(int i = 0; i < 4; i++){
  69.                 e1[i].accept();
  70.                 file.write((char*)&e1[i], sizeof(e1[i]));
  71.             }
  72.             file.close();
  73.             break;
  74.             case 2:
  75.             file.open("/home/pccoe/Desktop/empdata.txt");
  76.             for(int i = 0; i < 4; i++){
  77.                 file.read((char*)&e2[i], sizeof(e2[i]));
  78.                 e2[i].display();
  79.             }
  80.             file.close();
  81.             break;
  82.             case 3:
  83.             cout << "Enter the id to search: " << endl;
  84.             cin >> searchid;
  85.             file.open("/home/pccoe/Desktop/empdata.txt");
  86.             for(int i = 0; i < 4; i++){
  87.                 file.read((char*)&e2[i], sizeof(e2[i]));
  88.                 if(e2[i].retid() == searchid){
  89.                     cout << "Data found" << endl;
  90.                     cout << e2[i].retname() << endl;
  91.                     flag = 1;
  92.                 }
  93.             }
  94.             if(flag == 0){
  95.                 cout << "data not found" << endl;
  96.             }
  97.             file.close();
  98.             break;
  99.             case 4:
  100.             cout << "Enter the id to delete: " << endl;
  101.             cin >> deleteid;
  102.             file2.open("/home/pccoe/Desktop/empdatanew.txt");
  103.             for(int i = 0; i < 4; i++){
  104.                     if(e1[i].retid() != deleteid){
  105.                        file2.write((char*)&e1[i], sizeof(e1[i]));
  106.                     }
  107.             }
  108.             file2.close();
  109.             file2.open("/home/pccoe/Desktop/empdatanew.txt");
  110.             for(int i=0;i<3;i++){
  111.                 file2.read((char*)&e3[i],sizeof(e3[i]));
  112.                 cout<<e3[i].retname()<<endl;
  113.             }
  114.             file2.close();
  115.             //remove("/home/pccoe/Desktop/emp.txt");
  116.             //rename("/home/pccoe/Desktop/empdatanew.txt", "/home/pccoe/Desktop/empdata.txt");
  117.             break;
  118.             case 5:
  119.                 int pos;
  120.             cout << "Enter the id to update: " << endl;
  121.             cin >> updateid;
  122.             file.open("/home/pccoe/Desktop/empdata.txt");
  123.             for(int i = 0; i < 4; i++)
  124.             {
  125.                  pos=file.tellg();
  126.  
  127.                 file.read((char*)&e2[i], sizeof(e2[i]));
  128.                      if(e2[i].retid() == updateid)
  129.                      {
  130.                         e2[i].accept();
  131.                         flag=1;
  132.  
  133.                      }
  134.                      file.close();
  135.             }
  136.             cout<<pos;
  137.             if(flag == 1){
  138.                  file.open("/home/pccoe/Desktop/empdata.txt");
  139.                             for(int i = 0;i < 4; i++){
  140.                                 file.seekp(pos);
  141.                                 file.write((char*)&e2[i],sizeof(e2[i]));
  142.  
  143.                             }
  144.                             file.close();
  145.             }
  146.             break;
  147.         }
  148.     }
  149.     return 0;
  150. }
  151.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement