C++毕业课程设计公司工资管理系统说明书(3)

2019-02-21 00:37

if(p->Duty==3)sum+=((Sales *)p)->GetAmount(); p=p->next; }

p=Worker;

double sum2=0; 工资总和 while(p) {

if(p->Duty==2)((SalesManager *)p)->SetAmount(sum); p->Output(); sum2+=p->Earning; p=p->next; }

cout<<\本月盈利:\ cout<<\按照20%利润计算)\\n\} 6.3 修改模块

修改函数如下:

void Company::Modify() {

int No,Duty; char Name[20]; double Amount,T;

cout<<\修改员工 **\\n\ cout<<\ 查找要修改的结点

Person *p1,*p2; p1=Worker; while(p1) {

if(p1->No==No) break; else {

p2=p1; p1=p1->next; } } 修改结点

if(p1!=NULL)若找到结点 {

p1->Output();

cout<<\调整岗位(1-经理2-销售经理3-销售员4-技术员):\ if(p1->Duty!=Duty) 若岗位发生变动 {

修改其它数据

cout<<\输入姓名:\ if(Duty==3) {

cout<<\本月销售额:\ }

else if(Duty==4) {

cout<<\本月工作小时数(0-168):\ cin>>T; }

创建新员工结点 Person *p3; switch(Duty) {

case 1:p3=new Manager(p1->No,Name,Duty); break; case 2:p3=new SalesManager(p1->No,Name,Duty); break; case 3:p3=new Sales(p1->No,Name,Duty,Amount); break; case 4:p3=new Technician(p1->No,Name,Duty,T); break; }

员工结点替换到链表

p3->next=p1->next;

if(p1==Worker) 若要替换的结点是第一个结点 Worker=p3;

else 若要删除的结点是后续结点 p2->next=p3; 删除原来的员工结点 delete p1; }

else 若岗位没有变动 {

cout<<\输入姓名:\ if(Duty==3) {

cout<<\本月销售额:\ cin>>Amount; ((Sales *)p1)->SetAmount(Amount);

}

else if(Duty==4) {

cout<<\本月工作小时数(0-168):\ cin>>T; ((Technician *)p1)->SetT(T);

} }

cout<<\修改成功!\\n\ }

else 未找到结点 cout<<\未找到!\\n\}

6.4 数据装盘模块

数据装盘函数如下: void Company::Save() {

ofstream fPerson,fBase;

char c;

cout<<\保存人员和基础数据,是否继续?[YN]:\ if(toupper(c)!='Y')return; 保存人员编号、姓名、岗位

fPerson.open(\ Person *p=Worker; while(p) {

fPerson<No<<\ if(p->Duty==3)

fPerson<<((Sales*)p)->GetAmount()<<\ else if(p->Duty==4)

fPerson<<((Technician *)p)->GetT()<<\ fPerson<next; }

fPerson.close(); 保存基础数据

fBase.open(\

fBase<<\经理固定月薪\\t\

fBase<<\销售经理固定月薪\\t\ fBase<<\销售经理提成%\\t\ fBase<<\销售人员提成%\\t\ fBase<<\技术人员小时工资\\t\ fBase<<\ fPerson.close();

cout<<\保存人员和基础数据已经完成...\\n\} 6.5 删除模块

删除函数如下:

void Company::Delete() 删除人员 {

int No;

cout<<\删除员工 **\\n\ cout<<\ 查找要删除的结点

Person *p1,*p2; p1=Worker; while(p1) {

if(p1->No==No) break; else { p2=p1; p1=p1->next; } } 删除结点

if(p1!=NULL)若找到结点,则删除 {

if(p1==Worker) 若要删除的结点是第一个结点 {

Worker=p1->next; delete p1; }

else 若要删除的结点是后续结点 {

p2->next=p1->next; delete p1; }

cout<<\找到并删除\\n\ }

else 未找到结点 cout<<\未找到!\\n\


C++毕业课程设计公司工资管理系统说明书(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:-信息提示

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: