《2022年C++工资管理系统程序 .pdf》由会员分享,可在线阅读,更多相关《2022年C++工资管理系统程序 .pdf(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、#include #include using namespace std; struct Worker_pay int num; float pay5,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 pay5); void R
2、emoveItem(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 pay5) if(!head) head=new Worker_pay; for(int i=0;ipayi=payi; head-num=num; h
3、ead-next=NULL; return; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 8 页 - - - - - - - - - Worker_pay *t=head; while(t&t-num!=num) t=t-next; if(t) cout操作失败;职工编号为num 的信息已经存在!next ) p=p-next; Worker_pay *p1=new Worker_pay; p1-num=num; for(int i=0;ipayi=payi; p1-
4、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 的信息 !endlnext!=t)p=p-next; Worker_pay *p1=p-next; p-next=p1-next; delete p1; cout成功删除职工编号为num 的信息 !endlendl; return; void Wo
5、rker:Replace(int num) Worker_pay *p=Find(num); if(!p)return; cout请重新输入相应信息endl; cout职工编号基本工资(元)津贴 房租 交通费银行储蓄 p-nump-pay0p-pay1p-pay2p-pay3p-pay4; return; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 8 页 - - - - - - - - - void Worker:Print(Worker_pay *p) cout.
6、precision(8); coutnum pay0 pay1 pay2 pay3 pay4 basepay tax deduct Actualpayendl; return; void Worker:List() if(ListCount=0) cout当前列表为空,请先输入数据!endl; return; Worker_pay *p=head; cout共有信息 ListCount() 个endl; cout职工编号基本工资(元)津贴 房租 交通费银行银行储蓄应发数个人所得税应扣数实发数 next; coutendl; return; void Worker:Search (int num
7、) coutSearch.endl; Worker_pay *p=Find(num); if(p) cout职工编号基本工资(元)津贴 房租交通费 银行储蓄应发数个人所得税应扣数实发数 endl; Print(p); coutendl; Worker_pay *Worker:Find(int num) if (ListCount()=0) cout当前列表为空,请先输入数据!num=num) break; p=p-next; if(!p) cout错误:找不到该信息!n; return NULL; return p; void Worker:Actualpay () if (ListCount
8、()=0) cout当前列表为空,请先输入数据!pay0tax=0; else if(p-pay0tax=(p-pay0-800)*0.05; else if(p-pay0tax=60+(p-pay0-2000)*0.1; else p-tax=360+(p-pay0-5000)*0.2; p-basepay=p-pay0+p-pay1; p-deduct=p-tax+p-pay2+p-pay3; p-Actualpay=p-pay0+p-pay1-p-tax-p-pay2-p-pay3; p=p-next; return; Worker Worker; int Menu() cout|*欢迎
9、进入职工工资管理系统*|endl; int n=1,select=-1; cout| |endl; cout| n+. 输入职工工资信息|endl; cout| |endl; cout| n+. 删除指定职工的工资信息|endl; cout| |endl; cout| n+. 修改指定职工编号的工资信息|endl; cout| |endl; cout| n+. 查找指定职工编号的工资信息|endl; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 8 页 - - - -
10、- - - - - cout| |endl; cout| n+. 输出全体职工的工资信息|endl; cout| |endl; cout| 0.退出|endl; cout| |endl; cout|*|endl; cout请选择 (输入相应数字 ): select; return select; char Exit() char s; couts; return s; void Input(int *num,float pay5) cout请输入 t 职工编号基本工资(元)津贴 房租 交通费银行储蓄 *num; if(*num=-1) system(cls); return; cinpay0p
11、ay1pay2pay3pay4; return; void AddNew() int num=0; float pay5=0,0,0,0,0; coutendl 当输入的编号为 -1 是表示结束输入 endl; Input(&num,pay); while(num!=-1) Worker.AddItem(num,pay); Worker.Actualpay(); Input(&num,pay); return; void DoFind() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - -
12、第 5 页,共 8 页 - - - - - - - - - int num; coutendl 当输入的职工编号为-1 是表示结束输入 endl; do coutnum; if(num=-1) system(cls); continue; Worker.Search(num); while(num!=-1); return; void DoDelete() coutendl 当输入的职工编号为-1 是表示结束输入 endl; int num; do coutnum; if(num=-1) system(cls); continue; Worker.RemoveItem(num); while(
13、num!=-1); return; void DoMotify() coutendl 当输入的职工编号为-1 是表示结束输入 endl; int num; do coutnum; if(num=-1) system(cls); continue; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 8 页 - - - - - - - - - Worker.Replace(num); while(num!=-1); return; void List() Worker.List
14、(); int main() cout 欢迎进入职工工资管理系统endl; int select; char s; char key10,password10=41004; int k=1; coutendlendl; cout 请输入密码key; while(k=3) if(strcmp(password,key)=0) while(1) select=Menu(); switch(select) case 0: system(cls); s=Exit(); if(s=y|s=Y)cout 谢谢使用!endl; return 0; break; case 1: system(cls); Ad
15、dNew(); break; case 2: system(cls); DoDelete(); break; case 3: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 8 页 - - - - - - - - - system(cls); DoMotify(); break; case 4: system(cls); DoFind(); break; case 5: system(cls); List(); break; default: system(cls); cout无效输入! endl; else k+; system(cls); cout 输入密码错误!请再次输入:key; if(k2) if(strcmp(password,key)=0) continue; else system(cls); cout 输入密码错误三次,系统将自动退出!endl; exit(0); return 0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 8 页 - - - - - - - - -