还剩10页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
源代码#includeiostream.h#includefstream.h#includectype.h#includestring.hdoubleCwage;doubleSwage;doubleMwage;intID;classDdegree{protected:intNum;charName
[20];charSex
[10];intBorntime;intAge;intdegree;doubleSalary;Ddegree*next;public:DdegreecharIDchar*Enamechar*EsexintEborntimeintEdegree{this-Num=ID;strcpythis-NameEname;strcpythis-SexEsex;this-Borntime=Eborntime;this-degree=Edegree;}voidGetage{Age=2009-Borntime;}virtualvoidCalcwage=0;virtualvoidOutput=0;friendclassCompany;};classXxs:publicDdegree{private:doubleWorkload;public:XxscharIDchar*Enamechar*EsexintEborntimeintEdegreedoubleEworkload:DdegreeIDEnameEsexEborntimeEdegree{this-Workload=Eworkload;}doubleGetWorkload{returnWorkload;}voidSetWorkloaddoubleAmount{this-Workload=Amount;}voidCalcwage{Salary=Cwage+Workload*20;}voidOutput{Getage;Calcwage;coutNum\tName\tSex\tBorntime年\tAge岁\t小学生\tSalaryendl;}};classCzs:publicDdegree{private:doubleWorkload;public:CzscharIDchar*Enamechar*EsexintEborntimeintEdegreedoubleEworkload:DdegreeIDEnameEsexEborntimeEdegree{this-Workload=Eworkload;}doubleGetWorkload{returnWorkload;}voidSetWorkloaddoubleAmount{this-Workload=Amount;}voidCalcwage{Salary=Swage+Workload*20+1000;}voidOutput{Getage;Calcwage;coutNum\tName\tSex\tBorntime年\tAge岁\t初中生\tSalaryendl;}};classGzs:publicDdegree{private:doubleWorkload;public:GzscharIDchar*Enamechar*EsexintEborntimeintEdegreedoubleEworkload:DdegreeIDEnameEsexEborntimeEdegree{this-Workload=Eworkload;}doubleGetWorkload{returnWorkload;}voidSetWorkloaddoubles{Workload=s;}voidCalcwage{Salary=Mwage+Workload*20+1000;}voidOutput{Getage;Calcwage;coutNum\tName\tSex\tBorntime年\tAge岁\t高中生\tSalaryendl;}};classDxs:publicDdegree{public:DxscharIDchar*Enamechar*EsexintEborntimeintEdegree:DdegreeIDEnameEsexEborntimeEdegree{}voidCalcwage{Salary=Mwage+2000;}voidOutput{Getage;Calcwage;coutNum\tName\tSex\tBorntime年\tAge岁\t大学生\tSalaryendl;}};classCompany{private:Ddegree*Worker;public:Company{Worker=0;}~Company{Ddegree*p;p=Worker;whilep{p=p-next;deleteWorker;Worker=p;}Worker=0;}charName
[20];voidAdd;voidModify;voidDelete;voidQuery;voidSet;voidSave;};voidCompany::Add{Ddegree*p;charName
[20];charSex
[10];intBorntime;intdegree;doubleWorkload;cout\n**新增职工**\n;cout输入编号:;cinID;cout输入姓名:;cinName;cout输入性别:;cinSex;cout输入出生年份:;cinBorntime;cout输入学位1:小学生2:初中生3:高中生4:大学生:;cindegree;whiledegree!=1degree!=2degree!=3degree!=4{cout输入有误,请重新输入:endl;cout**1:小学生2:初中生3:高中生4:大学生**;cindegree;}ifdegree!=4{cout上个月完成工作量:;cinWorkload;}switchdegree{case1:p=newXxsIDNameSexBorntimedegreeWorkload;break;case2:p=newCzsIDNameSexBorntimedegreeWorkload;break;case3:p=newGzsIDNameSexBorntimedegreeWorkload;break;case4:p=newDxsIDNameSexBorntimedegree;break;}p-next=0;ifWorker{Ddegree*p2;p2=Worker;whilep2-next{p2=p2-next;}p2-next=p;}else{Worker=p;}cout新增职工成功!endl;}voidCompany::Modify{intNum;intdegree=NULL;doubleWorkload;cout\n**修改职工信息**\n;coutID:;cinNum;Ddegree*p1*p2;p1=Worker;whilep1{ifp1-Num==Numbreak;else{p2=p1;p1=p1-next;}}ifp1!=NULL{p1-Output;cout输入姓名:;cinp1-Name;cout输入性别:;cinp1-Sex;cout输入出生时间:;cinp1-Borntime;ifdegree==1{cout上个月完成工作量:;cinWorkload;Xxs*p1-SetWorkloadWorkload;}elseifdegree==2{cout上个月完成工作量:;cinWorkload;Czs*p1-SetWorkloadWorkload;}elseifdegree==3{cout上个月完成工作量:;cinWorkload;Gzs*p1-SetWorkloadWorkload;}cout修改职工信息成功!\n;}elsecout错误未找到该职工信息!\n;}voidCompany::Delete{intNum;cout\n**删除职工**\n;coutID:;cinNum;Ddegree*p1*p2;p1=Worker;whilep1{ifp1-Num==Numbreak;else{p2=p1;p1=p1-next;}}ifp1!=NULL{ifp1==Worker{Worker=p1-next;deletep1;}else{p2-next=p1-next;deletep1;}cout找到并删除\n;}elsecout错误未找到该职工信息!\n;}voidCompany::Query{intcheckcount0;cout\n**查询职工信息**\n;cout编号\t姓名\t性别\t出生时间年龄\t学位\t工资元/月endl;Ddegree*p=Worker;whilep{p-Output;p=p-next;}cout请输入你要查询职工的编号:;cincheck;Ddegree*p4=Worker;whilep4{ifp4-Num==check{ifp4-degree==1{Xxs*p4-Output;count++;break;}elseifp4-degree==2{Czs*p4-Output;count++;break;}elseifp4-degree==3{Gzs*p4-Output;count++;break;}elseifp4-degree==4{Dxs*p4-Output;count++;break;}}else{p4=p4-next;}}ifcount==0cout错误未找到该职工信息!endl;}voidCompany::Set{cout\n**设置基础数据**\n;cout小学生基本工资Cwage元:;cinCwage;cout初中生基本工资Mwage元:;cinMwage;cout高中生基本工资Swage元:;cinSwage;cout基础数据已设置!endl;}voidCompany::Save{fstreamfDdegreefBase;charc;cout\n保存职工和基础数据是否继续[Y/N]:;cinc;iftoupperc!=Yreturn;elsefDdegree.openDdegree.txtios::out;fDdegree编号\t姓名\t性别\t出生时间\t年龄\t学位\tendl;Ddegree*p=Worker;whilep{fDdegreep-Num\tp-Name\tp-Sex\tp-Borntime\t\tp-Age\tp-degree\t;ifp-degree==1fDdegreeXxs*p-GetWorkload\t;elseifp-degree==2fDdegreeCzs*p-GetWorkload\t;elseifp-degree==3fDdegreeGzs*p-GetWorkload\t;fDdegreeendl;p=p-next;}fDdegree.close;fBase.openbase.txtios::out;fBase小学生基本工资\tCwageendl;fBase初中生基本工资\tSwageendl;fBase高中生基本工资\tMwageendl;fBaseID\tIDendl;fDdegree.close;cout\n保存职工和基础数据已经完成...\n;}voidmain{inta;Companyc;do{cout\n***职工信息管理系统**\n;cout1:增加职工信息*\n;cout2:修改人员信息*\n;cout3:删除职工信息*\n;cout4:查询职工信息*\n;cout5:基础数据设置*\n;cout6:数据存入磁盘*\n;cout7:退出管理系统*\n;cout***wyp12制作******\n;cout请选择操作1-7:;cina;switcha{case1:c.Add;break;case2:c.Modify;break;case3:c.Delete;break;case4:c.Query;break;case5:c.Set;break;case6:c.Save;break;}}whilea!=7;}
六、参考文献
[1]吕凤翥.c++语言程序设计第二版北京电子工业出版社2007
[2]谢昕、刘觉夫、王更生c++程序设计北京邮电大学出版社2009
[3]伍俊良.VisualC++课程设计与系统开发案例北京清华大学出版社2002。