《2022年职工信息管理系统源代码 .pdf》由会员分享,可在线阅读,更多相关《2022年职工信息管理系统源代码 .pdf(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第 1 页 共 12 页源代码#include #include #include #include double Cwage; double Swage; double Mwage; int ID; class Ddegree protected: int Num; char Name20; char Sex10; int Borntime; int Age; int degree; double Salary; Ddegree *next; public: Ddegree(char ID,char *Ename,char *Esex,int Eborntime,int Edegree) t
2、his-Num=ID; strcpy(this-Name,Ename); strcpy(this-Sex,Esex); this-Borntime=Eborntime; this-degree=Edegree; void Getage() Age=2009-Borntime; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 12 页 - - - - - - - - - 第 2 页 共 12 页virtual void Calcwage()=0; virtual void
3、Output()=0; friend class Company; ; class Xxs:public Ddegree private: double Workload; public: Xxs(char ID,char *Ename,char *Esex,int Eborntime,int Edegree,double Eworkload):Ddegree(ID,Ename,Esex,Eborntime,Edegree) this-Workload=Eworkload; double GetWorkload() return Workload; void SetWorkload(doubl
4、e Amount) this-Workload=Amount; void Calcwage() Salary=Cwage+Workload*20; void Output() Getage(); Calcwage(); coutNumtNametSextBorntime年 tAge岁t 小学生 tSalaryWorkload=Eworkload; double GetWorkload() return Workload; void SetWorkload(double Amount) this-Workload=Amount; void Calcwage() Salary=Swage+Work
5、load*20+1000; void Output() Getage(); Calcwage(); coutNumtNametSextBorntime年 tAge岁t 初中生 tSalaryWorkload=Eworkload; double GetWorkload() return Workload; void SetWorkload(double s) Workload=s; void Calcwage() Salary=Mwage+Workload*20+1000; void Output() Getage(); Calcwage(); coutNumtNametSextBorntime
6、年 tAge岁t 高中生 tSalaryendl; ; class Dxs:public Ddegree public: Dxs(char ID,char *Ename,char *Esex,int Eborntime,int Edegree):Ddegree(ID,Ename,Esex,Eborntime,Edegree) void Calcwage() Salary=Mwage+2000; void Output() Getage(); Calcwage(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 -
7、 - - - - - - 第 4 页,共 12 页 - - - - - - - - - 第 5 页 共 12 页coutNumtNametSextBorntime年 tAge岁t 大学生 tSalarynext; delete Worker; Worker=p; Worker=0; char Name20; void Add(); void Modify(); void Delete(); void Query(); void Set(); void Save(); ; void Company:Add() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - -
8、- - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 12 页 - - - - - - - - - 第 6 页 共 12 页Ddegree *p; char Name20; char Sex10; int Borntime; int degree; double Workload; coutn* 新增职工*n; coutID; coutName; coutSex; coutBorntime; coutdegree; while(degree !=1°ree !=2°ree !=3°ree !=4) cout 输入有误,请重新输入:endl; c
9、outdegree; if(degree!=4) coutWorkload; switch(degree) case 1:p=new Xxs(ID,Name,Sex,Borntime,degree,Workload); break; case 2:p=new Czs(ID,Name,Sex,Borntime,degree,Workload); break; case 3:p=new Gzs(ID,Name,Sex,Borntime,degree,Workload); break; case 4:p=new Dxs(ID,Name,Sex,Borntime,degree); break; p-n
10、ext=0; if(Worker) Ddegree *p2; p2=Worker; while(p2-next) p2=p2-next; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 12 页 - - - - - - - - - 第 7 页 共 12 页p2-next=p; else Worker=p; cout新增职工成功!endl; void Company:Modify() int Num; int degree=NULL; double Workload; co
11、utn* 修改职工信息*n; coutNum; Ddegree *p1,*p2; p1=Worker; while(p1) if(p1-Num=Num) break; else p2=p1; p1=p1-next; if(p1!=NULL) p1-Output(); coutp1-Name; coutp1-Sex; coutp1-Borntime; if(degree=1) coutWorkload; (Xxs *)p1)-SetWorkload(Workload); else if(degree=2) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - -
12、- - - - - - 名师精心整理 - - - - - - - 第 7 页,共 12 页 - - - - - - - - - 第 8 页 共 12 页 coutWorkload; (Czs *)p1)-SetWorkload(Workload); else if(degree=3) coutWorkload; (Gzs *)p1)-SetWorkload(Workload); cout 修改职工信息成功!n; else cout 错误:未找到该职工信息!n; void Company:Delete() int Num; coutn* 删除职工*n; coutNum; Ddegree *p1,
13、*p2; p1=Worker; while(p1) if(p1-Num=Num) break; else p2=p1; p1=p1-next; if(p1!=NULL) if(p1=Worker) Worker=p1-next; delete p1; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 12 页 - - - - - - - - - 第 9 页 共 12 页else p2-next=p1-next; delete p1; cout 找到并删除 n; else c
14、out 错误:未找到该职工信息!n; void Company:Query() int check,count(0); coutn* 查询职工信息*n; cout编号 t 姓名 t 性别 t 出生时间 年龄 t 学位 t工资 (元/月)Output(); p=p-next; coutcheck; Ddegree *p4=Worker; while(p4) if(p4-Num=check) if(p4-degree=1) (Xxs *)p4)-Output(); count+; break; else if(p4-degree=2) (Czs *)p4)-Output(); 名师资料总结 - -
15、 -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 12 页 - - - - - - - - - 第 10 页 共 12 页count+; break; else if(p4-degree=3) (Gzs *)p4)-Output(); count+; break; else if(p4-degree=4) (Dxs *)p4)-Output(); count+; break; else p4=p4-next; if(count=0) cout 错误:未找到该职工信息!endl; void Co
16、mpany:Set() coutn* 设置基础数据*n; cout小学生基本工资(CwageCwage; cout初中生基本工资(MwageMwage; cout高中生基本工资(SwageSwage; cout基础数据已设置!endl; void Company:Save() fstream fDdegree,fBase; char c; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 12 页 - - - - - - - - - 第 11 页 共 12 页coutc;
17、 if(toupper(c)!=Y) return; else fDdegree.open(Ddegree.txt,ios:out); fDdegree 编号 t 姓名 t 性别 t出生时间 t 年龄t 学位 tendl; Ddegree *p=Worker; while(p) fDdegreeNumtNametSextBorntimettAgetdegreedegree=1) fDdegreeGetWorkload()degree=2) fDdegreeGetWorkload()degree=3) fDdegreeGetWorkload()t; fDdegreenext; fDdegree.
18、close(); fBase.open(base.txt,ios:out); fBase小学生基本工资tCwageendl; fBase初中生基本工资tSwageendl; fBase高中生基本工资tMwageendl; fBaseIDtIDendl; fDdegree.close(); coutn 保存职工和基础数据已经完成.n; void main() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 12 页 - - - - - - - - - 第 12 页 共 1
19、2 页int a; Company c; do coutn* * * 职工信息管理系统* * n; cout 1:增加职工信息*n; cout 2:修改人员信息*n; cout 3:删除职工信息*n; cout 4:查询职工信息*n; cout 5:基础数据设置*n; cout 6:数据存入磁盘*n; cout 7:退出管理系统*n; cout* * * wyp12制作 * * * * * *n; couta; switch(a) case 1: c.Add(); break; case 2: c.Modify(); break; case 3: c.Delete(); break; case 4: c.Query(); break; case 5: c.Set(); break; case 6: c.Save(); break; while(a!=7); 六、参考文献1 吕凤翥 . 北京:电子工业出版社2007 2 谢昕、刘觉夫、王更生。 北京:邮电大学出版社2009 3 伍俊良 . 北京:清华大学出版社2002 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 12 页 - - - - - - - - -
限制150内