文档详情

C++工资管理系统程序.doc

发布:2017-12-18约7.13千字共8页下载文档
文本预览下载声明
#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职工编号 基
显示全部
相似文档