manager.cpp
来自「1、 模拟一间公司(有普通工人、经理、销售员、计时工人和计件工人)的雇员月工资单」· C++ 代码 · 共 115 行
CPP
115 行
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
#include <graphics.h>
#include <string.h>
#include "manager.h"
int Manager::amount=0;
long int Manager::totalM=0;
Manager *Manager::first=0;
Manager *Manager::end=0;
Manager::Manager(const char *pFirst,const char *pLast,float tWages,float tSubsidy)
:Employee(pFirst,pLast)
{
wages=tWages;
subsidy=tSubsidy;
amount++;
if(first==0)
first=this;
else
end->next=this;
end=this;
end->next=0;
earnings();
}
Manager::~Manager()
{
amount--;
totalM-=salary;
Employee::totalM-=salary;
if(first==this)
first=this->next;
else
for(Manager *p=first;p;p=p->next)
if(p->next==this) p->next=this->next;
}
void Manager::earnings()
{
salary=wages+subsidy;
totalM+=salary;
Employee::totalM+=salary;
}
void Manager::setWages(int tWages)
{
totalM-=salary;
Employee::totalM-=salary;
wages=tWages;
earnings();
}
void Manager::setSubsidy(int tSubsidy)
{
totalM-=salary;
Employee::totalM-=salary;
subsidy=tSubsidy;
earnings();
}
Manager *Manager::getFirst() const {return first;}
Employee *Manager::getNext() const{ return next;}
int Manager::getAmount() const{ return amount;}
long int Manager::getTotalM() const { return totalM;}
int Manager::getSalary() const { return salary;}
void Manager::delAll()
{
Manager *p;
for(p=p->first;p;p=p->next) delete p;
}
void Manager::printList(int x,int y,int lines)
{
int i=1;
lines=lines/2;
Manager *p;
for (p=p->first;p;p=p->next)
{
cout<<*p;
if(i%lines==0)
{
cout<<endl<<"Press space to continue"<<endl;
while(getch()!=32);
gotoxy(x,y);
setfillstyle(BLACK,COPY_PUT);
bar(0,30,470,458);
}
i++;
}
cout<<endl<<"Press space to continue"<<endl;
while(getch()!=32);
}
void Manager::saveList(ofstream &fout)
{
Manager *p;
fout<<"Manager: "<<p->amount<<endl;
for (p=p->first;p;p=p->next)
fout<<p->firstName<<" "<<p->lastName<<" "<<p->wages<<" "<<p->subsidy<<endl;
}
void Manager::display(ostream &out) const
{
Employee::display(out);
out<<" Manager"<<endl;
out<<"BaseWages: "<<wages<<" Subsidy: "<<subsidy<<" Salary:"<<setw(6)<<salary<<endl;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?