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<
fPerson<<((Sales*)p)->GetAmount()<<\ else if(p->Duty==4)
fPerson<<((Technician *)p)->GetT()<<\ fPerson<
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\
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C++毕业课程设计公司工资管理系统说明书(3)在线全文阅读。
相关推荐: