小型公司工资管理系统_第1页
小型公司工资管理系统_第2页
小型公司工资管理系统_第3页
小型公司工资管理系统_第4页
小型公司工资管理系统_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、/ 小型公司工资管理系统.cpp : 定义控制台应用程序的入口点 #include #include #include #include #include using namespace std ; int i=0; class Employee /基类,员工 public: Employee * next; char name50; int num; int age; char sex8; double salary; char post30; char * getName() return name; int getNum() return num; int getAge() return

2、 age; char * getSex() return sex; double getSalary() return salary; char * getPost() return post; virtual void get() /输入基本信息 cout name; cout sex; cout age; num=1000; num=num+i; i+; Employee() salary = 0.0; /初始化 virtual void show() /输出基本信息 cout t name t sex t age t num t salary t post endl; ; class T

3、ech :virtual public Employee/派生出技术员类 public: int hour; Tech * next; void get()/虚函数实现动态多态 Employee:get(); cout hour; double gethour() return hour; double calcuSalary() salary = 100 * hour; return salary; ; class Seller :virtual public Employee /派生出销售员类 public: Seller *next; double income; void get()

4、Employee:get(); cout income; double calcuSalary() salary = income * 0.04; return salary; double getIncome() return income; ; class Manager :virtual public Employee/派生出经理类 public: Manager * next; void calcuSalary() salary = 8000.00; ; class SellerList/销售员编号名单 public: int n; Seller * head, *p; SellerL

5、ist() n = 0; p = head = NULL; void inputFile(); void saveFile(); S; template /声明一个函数模板 void addMember(TT & t, Ti * ti) Ti * p = t.head; t.head = ti; if (p = NULL) t.head-next = NULL; t.head-next = p; t.n+; void SellerList:inputFile() /录入 Seller * t; char na50; ifstream cins(S.txt); /输入文件流类,存入s.txt w

6、hile (cins na) t = new Seller(); t-next = NULL; strcpy(t-name, na); cins (t-post) (t-sex) (t-num) (t-age) (t-salary) (t-income); addMember(S, t); void SellerList:saveFile() Seller * t; ofstream cout(S.txt);/输出文件流类,读出s.txt for (t = S.head; t != NULL; t = t-next) cout name) post) sex) num) age) salary

7、) income) next) salary += t-income * 0.005; return salary; class TechList public: int n; Tech * head, *p; TechList() n = 0; p = head = NULL; void inputFile(); void saveFile(); T;/定义对象 template void showMember(T & t, Ti * ti) if (t.n next) t.p-show(); void TechList:inputFile() char na50; Tech * t; if

8、stream cint(T.txt); while (cint na) t = new Tech(); t-next = NULL; strcpy(t-name, na); cint (t-post) (t-sex) (t-num) (t-age) (t-salary) (t-hour); addMember(T, t); void TechList:saveFile() Tech * t; ofstream cout(T.txt); for (t = T.head; t != NULL; t = t-next) cout name) post) sex) num) age) salary)

9、hour) na) t = new XManager(); t-next; strcpy(t-name, na); cinx (t-post) (t-sex) (t-num) (t-age) (t-salary); addMember(X, t); void XManagerList:saveFile() XManager * t; ofstream cout(X.txt); for (t = X.head; t != NULL; t = t-next) cout name) post) sex) num) age) salary) na) t = new Manager(); t-next

10、= NULL; strcpy(t-name, na); cinm (t-post) (t-sex) (t-num) (t-age) (t-salary); addMember(M, t); void ManagerList:saveFile() Manager * t; ofstream cout(M.txt); for (t = M.head; t != NULL; t = t-next) cout name) post) sex) num) age) salary) endl; void Exit() /退出函数 cout t 您已成功退出系统! endl; exit(0); int ma

11、inMenu()/主菜单 cout t_ endl; cout t 主菜单 endl; cout t_nn endl; cout t 1. 员工信息管理 endl; cout t 2. 月薪计算 endl ; cout t 3. 员工信息查找 endl; cout t 4. 显示所有人员信息 endl; cout t 0. 退出程序 endl; cout t_nn endl; cout ; return 0; void addDataMenu()/添加员工信息 int shuzi; Tech * ti; Seller *si; Manager * mi; XManager * xi; cout

12、 nnnnt* endl; cout t 添加员工信息 endl; cout t*n endl; cout t 1. 技术员 endl; cout t 2. 销售员 endl; cout t 3. 销售经理 endl; cout t 4. 总经理 endl; cout t 0. 返回 endl; cout t_nn endl; cout ; while (cin shuzi & (shuzi 4 | shuzi 0) cout post, 技术员); ti-get(); / ti - show() ; addMember(T , ti) ; break ; case 2: si = new S

13、eller(); strcpy(si-post, 销售员); si-get(); addMember(S, si); break; case 3: xi = new XManager(); strcpy(xi-post, 销售经理); xi-get(); addMember(X, xi); break; case 4: mi = new Manager(); strcpy(mi-post, 总经理); mi-get(); addMember(M, mi); break; default: break; template void renewMember(T & t, Ti * ti) int

14、no, shuzi; cout no; if (findMember(t, ti, no) = false) cout nt 该员工不存在,操作失败! endl; return; cout nnntn; cout t 1.姓名 t 2.年龄 t t endl; cout show(); cout ntn; cout shuzi; if (shuzi 5) cout nt 对不起,您的输入有误,操作失败 ! endl; return; char na50;/ 输入的姓名 int a; /输入的年龄 switch (shuzi) case 1: cout na; strcpy(t.p-name,

15、na); cout nt 修改成功 ! endl; break; case 2: cout a; t.p-age = a; cout nt 修改成功 ! endl; break; default: break; void renewData()/修改员工信息 int sel; Tech *t=NULL; Seller *s=NULL; XManager *x=NULL; Manager *m=NULL; cout nnntn; cout t 修改员工信息 endl; cout tn; cout t 1. 技术员 endl; cout t 2. 销售员 endl; cout t 3. 销售经理

16、endl; cout t 4. 总经理 endl; cout t 0. 返回 endl; cout tn; cout ; while (cin sel & (sel 4 | sel 0) cout nt 您的输入有误,请重新输入: ; switch (sel) case 0: return; case 1: renewMember(T, t); break; case 2: renewMember(S, s); break; case 3: renewMember(X, x); break; case 4: renewMember(M, m);break; default: break; te

17、mplate bool deleteMember(T & t, Ti * ti, int no) if (findMember(t, ti, no) = false) cout nt 该员工不存在,操作失败! num = no) delete(t.head); t.head = NULL; return true; Ti * pi; for (ti = t.head; ti-next != NULL & (ti-next-num) != no); ti = ti-next); pi = ti-next-next; delete(ti-next); ti-next = pi; return tr

18、ue; void deleteData() int shuzi; Tech * t=NULL; Seller * s=NULL; XManager * x=NULL; Manager * m=NULL; cout nnnt* endl; cout t_n endl; cout t 删除员工信息 endl; cout t*n endl; cout t 1. 技术员 endl; cout t 2. 销售员 endl; cout t 3. 销售经理 endl; cout t 4. 总经理 endl; cout t 0. 返回 endl; cout t_nn endl; cout ; while (c

19、in sel & (sel 4 | sel 0) cout nt 您的输入有误,请重新输入: ; cout endl; int no; switch (sel) case 0: return; case 1: cout ; cin no; if (deleteMember(T, t, no) cout nt 删除成功 ! endl; break; case 2: cout ; cin no; if (deleteMember(S, s, no)cout nt 删除成功 ! endl; break; case 3: cout ; cin no; if (deleteMember(X, x, no

20、) cout nt 删除成功 ! endl; break; case 4: cout ; cin no; if (deleteMember(M, m, no) cout nt 删除成功 ! endl; break; default: break; void dataManagement() int sel; while (1) cout nnnnt* endl; cout t 员工信息管理 endl; cout t*n endl; cout t 1. 添加信息 endl; cout t 2. 修改信息 endl; cout t 3. 删除信息 endl; cout t 0. 返回 endl;

21、cout t_nn endl; cout ; while (cin sel & (sel 3 | sel 0) cout nt 您的输入有误,请重新输 入: ; switch (sel) case 0: return; case 1: addDataMenu(); break; case 2: renewData(); break; case 3: deleteData(); break; default: break; template bool findMember(T & t, Ti * ti, int no) for (t.p = t.head; t.p != NULL & t.p-n

22、um != no; t.p = t.p-next); if (t.p != NULL) return true; else return false; void all_Init() T.head = NULL; S.head = NULL; M.head = NULL; X.head = NULL; T.inputFile(); S.inputFile(); M.inputFile(); X.inputFile(); void allSave() T.saveFile(); S.saveFile(); M.saveFile(); X.saveFile(); template void cop

23、yMember(T *t, S *s) strcpy(t-name, s-name); strcpy(t-sex, s-sex); t-age = s-age; t-num = s-num; template void caluSal(T & t, Ti * ti) for (t.p = t.head;t.p != NULL;t.p = t.p-next) t.p-calcuSalary(); void allDisplay(); void calculateSal() Tech * t=NULL; Seller * s=NULL; XManager * x=NULL; Manager * m

24、=NULL; caluSal(M, m); caluSal(X, x); caluSal(S, s); caluSal(T, t); cout nt 工资计算成功! endl; int sel; cout nt 是否查看? endl; cout t 1. 是 其他. 否n endl; cout ; cin sel; if (sel = 1) allDisplay(); void findMenu() int sel; Tech * t=NULL; Seller * s=NULL; XManager * x=NULL; Manager * m=NULL; cout nnnt* endl; cou

25、t t_n endl; cout t 员工信息查找 endl; cout t_nn endl; cout t 1. 技术员 endl; cout t 2. 销售员 endl; cout t 3. 销售经理 endl; cout t 4. 总经理 endl; cout t 0. 返回 endl; cout t_nn endl; cout ; while (cin sel & (sel 4 | sel 0) cout nt 您的输入有误,请重新输入: ; cout endl; int no; switch (sel) case 0: return; case 1: cout ; cin no; i

26、f (findMember(T, t, no) cout nnntn; cout t 姓名 t 性别 t 年龄 t 编号 t 工 资 t 职务 endl; cout show(); cout ntn; else cout nt 对不起,该员工不存在 ! endl; break; case 2: cout ; cin no; if (findMember(S, s, no) cout nnntn; cout t 姓名 t 性别 t 年龄 t 编号 t 工 资 t 职务 endl; cout show(); cout ntn; else cout nt 对不起,该员工不存在 ! endl; break; case 3: cout ; cin no; if (findMember(X, x, no) cout nnntn; cout t 姓名 t 性别 t 年龄 t 编号 t 工 资 t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论