版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 体育场馆运营管理要求-征求意见稿
- 2.3 用计算器求锐角的三角函数值 同步练习
- 专项22-实际问题与二次函数-重难点题型
- 幼儿园班级健康教育工作计划
- 技能教研组工作总结
- 幼儿园转岗培训总结
- 22.1 一元二次方程 同步练习
- 四川省成都市外国语学校2024-2025学年高三上学期期中考试语文试题(含答案)
- 山东省德州禹城市2024-2025学年六年级上学期期中考试科学试题
- 秀山自治县科技创新发展类项目申报书模板
- 钢结构厂房施工方案(屋面板及墙板)
- 项目结项总结报告
- 学校钢结构风雨操场施工方案
- 牙体缺损—烤瓷熔附金属全冠修复临床路径
- 标准流程——产品防混货风险评价控制预防措施
- 暖通工程师面试试题(含答案)
- JGJ_T231-2021建筑施工承插型盘扣式钢管脚手架安全技术标准(高清-最新版)
- 试桩施工方案 (完整版)
- ESTIC-AU40使用说明书(中文100版)(共138页)
- 河北省2012土建定额说明及计算规则(含定额总说明)解读
- 中工商计算公式汇总.doc
评论
0/150
提交评论