Untitled
unknown
plain_text
2 years ago
2.0 kB
18
Indexable
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
struct Employee
{
string name;
int empid;
string businessTitle;
string doj;
};
typedef void(*DisplayCallback)(vector<Employee>&);
typedef void(*SortCallback)(vector<Employee>&);
void display(vector<Employee>& v)
{
cout << "Displaying All employee details: " << endl;
for(const Employee& e : v)
{
cout << e.name << endl;
cout << e.empid << endl;
cout << e.businessTitle << endl;
cout << e.doj << endl;
cout << "\n";
}
cout << "\n";
}
void sortEmp(vector<Employee>& v)
{
std::sort(v.begin(), v.end(), [](const Employee& emp1, const Employee& emp2) {
return emp1.empid < emp2.empid;
});
}
void addEmployee(vector<Employee>& v, DisplayCallback callbackPrint)
{
Employee e;
cout << "Enter the name of the employee: ";
cin >> e.name;
cout << "Enter the employee ID: ";
cin >> e.empid;
cout << "Enter the business title of the employee: ";
cin >> e.businessTitle;
cout << "Enter the date of joining of the employee: ";
cin >> e.doj;
v.push_back(e);
fflush(stdin);
callbackPrint(v);
}
int main()
{
cout << "Enter 1 to add employee details: \n";
cout << "Enter 2 to sort employee details: \n";
cout << "Enter 3 to display: \n";
cout << "Enter 4 to exit: \n";
vector<Employee> v;
int n;
while(true)
{
cout << "Choose number: ";
cin >> n;
switch(n)
{
case 1:
addEmployee(v, display);
break;
case 2:
sortEmp(v);
break;
case 3:
display(v);
break;
case 4:
return 0;
default:
return 0;
}
}
}
Editor is loading...
Leave a Comment