职工工资管理系统课程设计论文(编辑修改稿)内容摘要:

wage:。 cinp1paid[0]。 while((p1paid[0])0||(p1paid[0])100000) { ()。 (1024,39。 \n39。 )。 cout sorry for you to input error! Please reenter 0~100000 numerical:。 cinp1paid[0]。 } cout Overtime Wage:。 cinp1paid[1]。 while((p1paid[1])0||(p1paid[1])100000) { ()。 (1024,39。 \n39。 )。 cout sorry for you to input error! Please reenter 0~100000 numerical:。 cinp1paid[1]。 } cout Other Bonuses:。 cinp1paid[2]。 while((p1paid[2])0||(p1paid[2])100000) { ()。 (1024,39。 \n39。 )。 cout sorry for you to input error! Please reenter 0~100000 numerical:。 cinp1paid[2]。 } 新疆大学软件学院《面向对象程序设计》 课程设计报告 22 p1total=p1paid[0]+p1paid[1]+p1paid[2]。 //Calculate the total amount if(n==0) head=p1。 else p2next=p1。 p2=p1。 n++。 //The number of employees n value plus 1. cout\n Name:。 cinch。 //The stored input name into a character array Ch. } p2next=NULL。 return (head)。 } //The Establishment of The List Information 信息类中链表的总体信息函数,其内容详细具体而丰富。 这也是程序完成的一个关键环节。 void Information::output(worker *head) { system(cls)。 if(head==NULL) cout This Is An Empty Table, Please Enter The Information Workers!\n。 else { cout\n。 cout *Salary Information Table*\n。 cout\n。 新疆大学软件学院《面向对象程序设计》 课程设计报告 23 cout|Id |Name| |Sex| |Basic wage| |Overtime wage| |other bonuses| |Total|\n。 cout\n。 p1=head。 //The head pointer is assigned to p. do { coutp1id setw(8)p1name setw(12)p1sex setw(12)p1paid[0] setw(12)p1paid[1] setw(12)p1paid[2] setw(12)p1totalendl。 cout\n。 p1=p1next。 } while(p1!=NULL)。 } } 信息类中输出类的实现,通过指针链表将信息按一定规范性打印出来,此函数的实现使程序功能进一步完善。 int Information::count(struct worker *head) { if(head==NULL)return(0)。 else return(1+count(headnext))。 } //Number of staff and workers in the statistical function. 新疆大学软件学院《面向对象程序设计》 课程设计报告 24 职工人员的记录,用于记录公司内员工人数,以便于给工人分发工资。 worker *Information::insert( worker *head) { system(cls)。 cout\tPlease enter new information wages of staff and workers\nendl。 p1=(worker *)malloc(LEN)。 //使 p1指向插入的新结点 cout Id:。 cinp1id。 while((p1id)0||(p1id)100000) { ()。 (1024,39。 \n39。 )。 cout Sorry for you to input error! Please reenter 0~100000 numerical:。 cinp1id。 //将输入的编号存放到 p1所指结构体的数组 id中 } cout Name:。 cinp1name。 //将输入的姓名存放到结构体名为 p1 的数组 name 中 cout Sex:。 cinp1sex。 cout Basic wage:。 cinp1paid[0]。 while((p1paid[0])0||(p1paid[0])100000) { ()。 (1024,39。 \n39。 )。 cout Sorry for you to input error! Please reenter 0~100000 numerical:。 新疆大学软件学院《面向对象程序设计》 课程设计报告 25 cinp1paid[0]。 //将输入的基本工资存放到 p1所指结构体的数组 paid 中 } cout Overtime wage:。 cinp1paid[1]。 while((p1paid[1])0||(p1paid[1])100000) { ()。 (1024,39。 \n39。 )。 cout Sorry for you to input error! Please reenter 0~100000 numerical:。 cinp1paid[1]。 //将输入的加班工资存放到 p1 所指结构体的数组 paid 中 } cout other bonuses:。 cinp1paid[2]。 while((p1paid[2])0||(p1paid[2])100000) { ()。 (1024,39。 \n39。 )。 cout Sorry for you to input error! Please reenter 0~100000 numerical:。 cinp1paid[2]。 //将输入的其他奖金存放到 p1 所指结构体的数组 paid 中 } p1total=p1paid[0]+p1paid[1]+p1paid[2]。 //计算总工资 p2=head。 //将头指针赋给 p2 if(head==NULL) //若没调用次函数以前的头指针 head 为空 { head=p1。 p1next=NULL。 } //则将 p1赋给头指针 head并将 p1所指结构体成员指针 next赋空值 else 新疆大学软件学院《面向对象程序设计》 课程设计报告 26 { while(( p1id p2id ) amp。 amp。 (p2next !=NULL )) { p3=p2。 //p3 指向原 p2指向的结点 p2=p2next。 } //p2 后移一个结点 if(p1id=p2id) { if(head==p2) { p1next=head。 head=p1。 } //插入到第一个结点之前 else { p3next=p1。 p1next=p2。 } //插入到 p3 所指结点之后 } else { p2next=p1。 p1next=NULL。 } //插入到尾结点之后 } n++。 //将职工人数加 1 cout\tYou enter the employee information has been successfully insertedendl。 return (head)。 新疆大学软件学院《面向对象程序设计》 课程设计报告 27 } //Add the wage of staff function 信息类中添加工人工资的函数的实现,此函数的实现给工厂员工的流动提供了记录依据,员工流动给公司分发工资提供保障。 worker *Information::cancel(worker *head,long id) { system(cls)。 if(head==NULL) //若调用次函数以前的头指针 head 为空 { return(head)。 } else { p1=head。 //否则将头指针赋给 p1 while(id!=p1idamp。 amp。 p1next!=NULL) { p2=p1。 p1=p1next。 } //p2指向原 p1指向的结点 p1后移一个结点 if(id==p1id) //如果输入的职工编号是 p1所指的职工编号//结点找到后删除 { if(p1==head) head=p1next。 else p2next=p1next。 cout Delete the id ofidworker is\n。 n。 //将职工人数减 1 } return(head)。 //将头指针返回 } 新疆大学软件学院《面向对象程序设计》 课程设计报告 28 } 删除职工信息 ,类成员函数在此得以实现,员工离去后,为了便于管理,企业将离去员工信息删除以便判断是否招收新员工。 worker *Information::modify(worker *head,long id) { system(cls)。 cout\tSalaryinformationpleaseinputmustbemodified\nendl。 p1=(worker *)malloc(LEN)。 //使 p1指向输入的结点 p1=head。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。