C++工资管理系统程序.doc
文本预览下载声明
#includeiostream
#includestring
using namespace std;
struct Worker_pay
{
int num;
float pay[5],basepay,tax,deduct,Actualpay;
Worker_pay *next;
};
class Worker
{
private:
Worker_pay *head;
void Print(Worker_pay *);
Worker_pay *Find(int);
public:
Worker(){head=NULL;}
int ListCount();
void AddItem(int num,float pay[5]);
void RemoveItem(int);
void Replace(int);
void List();
void Search(int);
void Actualpay();
};
int Worker::ListCount ()
{
if(!head)return 0;
Worker_pay *p=head;
int n=0;
while(p){n++;p=p-next;}
return n;
}
void Worker::AddItem (int num,float pay[5])
{
if(!head)
{
head=new Worker_pay;
for(int i=0;i5;i++)
head-pay[i]=pay[i];
head-num=num;
head-next=NULL;
return;
}
Worker_pay *t=head;
while(tt-num!=num) t=t-next;
if(t)
{
cout操作失败;职工编号为num的信息已经存在!endl;
return;
}
Worker_pay *p=head;
while(p-next ) p=p-next;
Worker_pay *p1=new Worker_pay;
p1-num=num;
for(int i=0;i5;i++)
p1-pay[i]=pay[i];
p1-next=NULL;
p-next=p1;
return;
}
void Worker::RemoveItem(int num)
{
Worker_pay *t=Find(num);
if(!t) return;
Worker_pay *p=head;
if(head==t)
{
head=head-next;
delete p;
cout成功删除职工编号为num的信息!endlendl;
return;
}
while(p-next!=t)p=p-next;
Worker_pay *p1=p-next;
p-next=p1-next;
delete p1;
cout成功删除职工编号为num的信息!endlendl;
return;
}
void Worker::Replace(int num)
{
Worker_pay *p=Find(num);
if(!p)return;
cout请重新输入相应信息endl;
cout职工编号 基本工资(元) 津贴 房租 交通费 银行储蓄endl;
cinp-nump-pay[0]p-pay[1]p-pay[2]p-pay[3]p-pay[4];
return;
}
void Worker::Print(Worker_pay *p)
{
cout.precision(8);
coutp-num p-pay[0] p-pay[1] p-pay[2] p-pay[3] p-pay[4]
p-basepay p-tax p-deduct p-Actualpayendl;
return;
}
void Worker::List()
{
if(ListCount==0)
{
cout当前列表为空,请先输入数据!endl;
return;
}
Worker_pay *p=head;
cout共有信息ListCount()个endl;
cout职工编号 基
显示全部