1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
| #define _CRT_SECURE_NO_WARNINGS #pragma once #include<iostream> #include<string> #include<fstream> #include<iomanip> #include <windows.h> #include<stdlib.h> using namespace std;
class Employee_base { public: Employee_base(); Employee_base(int i, string n, string g, string d, string l, double s,string t) :id(i), name(n), gender(g), department(d), level(l), Salary(s),type(t) {}; virtual double calculateSalary() const = 0; int getId(); string getname(); string getgender(); string getdepartment(); string getlevel(); double getsalary(); string gettype(); protected: int id; string name; string gender; string department; string level; double Salary; string type; }; class Manager:virtual public Employee_base { public: Manager(); Manager(int i, string n, string g, string d, string l, double s,double m,string t) :Employee_base(i,n,g,d,l,s,t),MonthSalary(m){} double calculateSalary() const; void addmanager(); protected: double MonthSalary; }; class Salesperson :virtual public Employee_base { public: Salesperson(); Salesperson(int i, string n, string g, string d, string l, double s,double sa,double c,string t) :Employee_base(i, n, g, d, l, s,t) ,SalesAmount(sa),commision(c){} double calculateSalary()const; void addsalesperson(); protected: double SalesAmount; double commision; }; class SalesManager :virtual public Employee_base { public: SalesManager(); SalesManager(int i, string n, string g, string d, string l, double s,double m,double sa,double c,string t) :Employee_base(i, n, g, d, l, s,t),MonthSalary(m),SalesAmount(sa),commision(c) {} double calculateSalary()const; void addsalesmanager(); protected: double MonthSalary; double SalesAmount; double commision; }; class Technician :virtual public Employee_base { public: Technician(); Technician(int i, string n, string g, string d, string l, double s,double t,double h,string ty) :Employee_base(i, n, g, d, l, s,ty),time(t),hourlyWage(h){} double calculateSalary()const; void addtechnician(); protected: double time; double hourlyWage; }; class Employees:virtual public Manager, virtual public Salesperson, virtual public SalesManager, virtual public Technician { public: void add_employee(); double calculateSalary()const; void showEmployees(); void modifyname(); void modifygender(); void modifydepartment(); void modifylevel(); void modifysalary(); void saveid(int Id); void savename(string Name); void savegender(string gender); void savedepartment(string department); void savelevel(string level); void savesalary(double salary); }; typedef struct Node { Manager m; Salesperson s; SalesManager sm; Technician t; Employees e; Node* next; }Node,*Linklist;
int Ide(int Id); int listlength(); void clear_buffer(); void init_list(); void menu(); void add_employee(); void query_employee(); void display_all(); void modify_employee(); void delete_employee(); void static_employee(); void save(); void load();
|