整理员工管理系统.docx

上传人:b****4 文档编号:3778525 上传时间:2022-11-25 格式:DOCX 页数:29 大小:21.61KB
下载 相关 举报
整理员工管理系统.docx_第1页
第1页 / 共29页
整理员工管理系统.docx_第2页
第2页 / 共29页
整理员工管理系统.docx_第3页
第3页 / 共29页
整理员工管理系统.docx_第4页
第4页 / 共29页
整理员工管理系统.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

整理员工管理系统.docx

《整理员工管理系统.docx》由会员分享,可在线阅读,更多相关《整理员工管理系统.docx(29页珍藏版)》请在冰豆网上搜索。

整理员工管理系统.docx

整理员工管理系统

#include

#include"stdlib.h"

#include"string.h"

intshouldsave=0;

chardir[15];

/*-------------------------定义结构体-------------------------*/

structmember//定义结构体

{

charscard[20];//工资卡号

charidcard[20];//身份证

charname[20];//名字

charwage[3];//工作年龄

charsex[2];//性别

charsection[50];//部门

chartechnical_title[50];//技术职称

charttnum[50];//技术职称编号

charhnumber[20];//家庭电话

charpnumber[20];//手机号码

floatbasepay;//基本工资

floatpostpay;//职务工资

floatallowance;//补助

intage;//年龄

};

/*-------------------------定义单链表-------------------------*/

structLNode//定义单链表

{

structmemberdata;

structLNode*next;

};

/*---------------------------分割线---------------------------*/

voidDividing_line()//分割线

{

printf("===============================================================================\n");

}

/*-----------------------输入错误时输出-----------------------*/

voidWrong()//如果错误

{

intsel;

printf("\t\t\t输入错误!

按下任意键回到主菜单!

");

scanf("%d",&sel);

return;

}

/*----------------------------菜单----------------------------*/

voidmenu()//菜单

{

printf("\t\t\t\t员工工资管理系统\n\t\t\t\t电子1班\n\t\t\t\t蔡李志\n");

printf("********************************************************************************");

printf("\t1获取说明信息\t\t\t\t\t2输入员工资料\n");

printf("\t3删除员工资料\t\t\t\t\t4查询员工资料\n");

printf("\t5修改员工资料\t\t\t\t\t6显示员工资料\n");

printf("\t7统计员工业绩\t\t\t\t\t8排序员工实发工资\n");

printf("\t9保存员工资料\t\t\t\t\t10逻辑删除员工资料\n");

printf("\t0退出系统\n");

printf("********************************************************************************\n");

}

/*--------------------------系统说明--------------------------*/

intexplanation()//系统说明

{

intsel;

printf("基本功能:

\n录入、修改、插入、删除、查询。

\n");

printf("统计功能:

\n

(1)统计年龄20岁以下青年员工的总数;年龄在20岁以上,45岁以下的员工数;年龄55岁以上退休员工数。

\n

(2)统计各种技术职称的员工的基本工资总额、职务工资总额、各种补助总额、应发工资总额。

进而统计全公司职工的工资总额。

\n(3)统计各种技术职称员工的员工数,并计算各种技术职称员工的平均工资。

\n(4)统计该公司每月税金总额、全年税金总额。

\n(5)按照应发工资对全公司员工进行排序。

\n(6)职工工资信息其它方面的统计。

\n");

printf("\t\t\t\t按下任意键回到主菜单!

");

scanf("%d",&sel);

return0;

}

/*-------------------------寻找函数-------------------------*/

voidLocate(int*i,structLNode*c,intsel)//寻找函数

{

charsel_o[20];

inti1=1;

*i=1;

if(sel==1)

{

printf("请输入您需要删除员工的名字:

");

scanf("%s",&sel_o);

if(strcmp(c->data.name,sel_o)==0)

{

*i=1;

printf("员工资料已成功删除!

\n");

}

if(strcmp(c->data.name,sel_o)!

=0)

{

if(c->next==NULL)

{

*i=0;

printf("输入错误!

无法找到该员工资料!

\n");

return;

}

c=c->next;

i1++;

*i=i1;

printf("员工资料已成功删除!

!

\n");

}

}

if(sel==2)

{

printf("请输入您需要删除员工的身份证:

");

scanf("%s",&sel_o);

if(strcmp(c->data.idcard,sel_o)==0)

{

*i=1;

printf("员工资料已成功删除!

\n");

}

if(strcmp(c->data.idcard,sel_o)!

=0)

{

if(c->next==NULL)

{

*i=0;

printf("输入错误!

无法找到该员工资料!

\n");

return;

}

c=c->next;

i1++;

*i=i1;

printf("员工资料已成功删除!

!

\n");

}

}

if(sel==3)

{

printf("请输入您需要删除员工的工资卡号:

");

scanf("%s",&sel_o);

if(strcmp(c->data.scard,sel_o)==0)

{

*i=1;

printf("员工资料已成功删除!

\n");

}

if(strcmp(c->data.scard,sel_o)!

=0)

{

if(c->next==NULL)

{

*i=0;

printf("输入错误!

无法找到该员工资料!

\n");

return;

}

c=c->next;

i1++;

*i=i1;

printf("员工资料已成功删除!

!

\n");

}

}

}

/*--------------------------添加函数--------------------------*/

voidAdd(structLNode**p)//添加函数

{

intsel;

charidcard[20];

structLNode*s,*q,*b;

s=(structLNode*)malloc(sizeof(structLNode));

q=*p;

b=*p;

printf("输入数字0可以返回上一级菜单!

\n");

printf("请输入员工身份证编号:

");

fflush(stdin);

gets(idcard);

if(strcmp(idcard,"0")==0)return;

while(b)

{

if(strcmp(b->data.idcard,idcard)==0)

{

Dividing_line();

printf("您刚刚输入的员工身份证已存在,请按下任意键返回主菜单!

\n");

scanf("%d",&sel);

return;

}

b=b->next;

}

strcpy(s->data.idcard,idcard);

printf("请输入员工姓名:

");

scanf("%s",s->data.name);

getchar();

printf("请输入员工工作部门:

");

scanf("%s",s->data.section);

getchar();

printf("请输入员工技术职称:

");

scanf("%s",s->data.technical_title);

getchar();

printf("请输入员工性别(m/w):

");

scanf("%s",s->data.sex);

getchar();

printf("请输入员工年龄:

");

scanf("%d",&s->data.age);

getchar();

printf("请输入员工工作年龄:

");

scanf("%s",s->data.wage);

getchar();

printf("请输入员工家庭电话:

");

scanf("%s",s->data.hnumber);

getchar();

printf("请输入员工手机号码:

");

scanf("%s",s->data.pnumber);

getchar();

printf("请输入员工工资卡号:

");

scanf("%s",s->data.scard);

getchar();

printf("请输入员工技术职称编号:

");

scanf("%s",s->data.ttnum);

getchar();

printf("请输入员工基础工资:

");

scanf("%f",&s->data.basepay);

getchar();

printf("请输入员工职务工资:

");

scanf("%f",&s->data.postpay);

getchar();

printf("请输入员工补助:

");

scanf("%f",&s->data.allowance);

getchar();

if(q==NULL)

{

s->next=NULL;

*p=s;

}

else

{

while(q!

=NULL&&q->next!

=NULL)

{

q=q->next;

}

s->next=q->next;

q->next=s;

}

shouldsave=1;

printf("\t\t\t写入成功!

按下任意键回到主菜单!

");

scanf("%d",&sel);

return;

}

/*--------------------------添加函数--------------------------*/

voidDel(structLNode**p)//添加函数

{

structLNode*q=*p,*t;

intsel,i=0;

if(q==NULL)

{

printf("\n=====>提示:

没有资料可以删除!

\n");

return;

}

printf("1========>根据姓名删除员工数据\n");

printf("2========>根据身份证号删除员工数据\n");

printf("3========>根据工资卡卡号删除员工数据\n\n");

printf("请输入您的选择:

");

scanf("%d",&sel);

if(sel!

=1&&sel!

=2&&sel!

=3)

{

printf("\t\t\t输入错误!

按下任意键返回主菜单!

");

scanf("%d",&sel);

return;

}

if(sel==1||sel==2||sel==3)

{

Locate(&i,q,sel);

}

if(i==0)

{

printf("按下任意键回到主菜单!

");

scanf("%d",&sel);

return;

}

if(i==1)

{

t=q;

*p=q->next;

}

if(i!

=0&&i!

=1)

{

for(i--;i>1;i--)

{

q=q->next;

}

t=q->next;

q->next=t->next;

}

if(t!

=NULL)

{

free(t);

}

shouldsave=1;

printf("\t\t\t成功删除!

按下任意键回到主菜单!

");

scanf("%d",&sel);

return;

}

/*--------------------------添加函数--------------------------*/

voidDisplay(structLNode**p)//添加函数

{

structLNode*q;

q=*p;

intsel;

if(q==NULL)/**//*链表为空时*/

{

printf("\n======================>暂时没有员工数据!

按任意键返回主菜单\n");

scanf("%d",&sel);

return;

}

elseif(q->next==NULL)/**//*链表只有一个结点时*/

{

Dividing_line();

printf("员工姓名:

%s\t\t员工身份证:

%s\t\t员工工资卡号:

%s\n",q->data.name,q->data.idcard,q->data.scard);

printf("员工性别:

%s\t\t员工年龄:

%d\t\t员工工作年龄:

%s\n",q->data.sex,q->data.age,q->data.wage);

printf("员工部门:

%s\t\t员工技术职称:

%s\t\t员工技术职称编号:

%s\n",q->data.section,q->data.technical_title,q->data.ttnum);

printf("员工基本工资:

%f\t员工职务工资:

%f\t员工补助:

%f\n",q->data.basepay,q->data.postpay,q->data.allowance);

printf("员工家庭电话:

%s\t\t员工手机号码:

%s\n",q->data.hnumber,q->data.pnumber);

Dividing_line();

printf("\t\t\t\t按下任意键返回主菜单!

");

scanf("%d",&sel);

return;

}

else/**//*链表存在一个以上的结点时*/

{

while(q->next!

=NULL)/**//*显示前面的结点*/

{

Dividing_line();

printf("员工姓名:

%s\t\t员工身份证:

%s\t\t员工工资卡号:

%s\n",q->data.name,q->data.idcard,q->data.scard);

printf("员工性别:

%s\t\t员工年龄:

%d\t\t员工工作年龄:

%s\n",q->data.sex,q->data.age,q->data.wage);

printf("员工部门:

%s\t\t员工技术职称:

%s\t\t员工技术职称编号:

%s\n",q->data.section,q->data.technical_title,q->data.ttnum);

printf("员工基本工资:

%f\t员工职务工资:

%f\t员工补助:

%f\n",q->data.basepay,q->data.postpay,q->data.allowance);

printf("员工家庭电话:

%s\t\t员工手机号码:

%s\n",q->data.hnumber,q->data.pnumber);

q=q->next;

}

Dividing_line();

printf("员工姓名:

%s\t\t员工身份证:

%s\t\t员工工资卡号:

%s\n",q->data.name,q->data.idcard,q->data.scard);

printf("员工性别:

%s\t\t员工年龄:

%d\t\t员工工作年龄:

%s\n",q->data.sex,q->data.age,q->data.wage);

printf("员工部门:

%s\t\t员工技术职称:

%s\t\t员工技术职称编号:

%s\n",q->data.section,q->data.technical_title,q->data.ttnum);

printf("员工基本工资:

%f\t员工职务工资:

%f\t员工补助:

%f\n",q->data.basepay,q->data.postpay,q->data.allowance);

printf("员工家庭电话:

%s\t\t员工手机号码:

%s\n",q->data.hnumber,q->data.pnumber);/**//*显示最后一个结点*/

Dividing_line();

printf("\t\t\t\t按下任意键返回主菜单!

");

scanf("%d",&sel);

return;

}

}

/*--------------------------寻找函数--------------------------*/

voidSearch(structLNode**p)//寻找函数

{

structLNode*q,*b;

intsel;

charsel_o[20];

q=*p;

b=*p;

if(q==NULL)/**//*链表为空时*/

{

printf("\n===============================>暂时没有员工数据!

\n");

return;

}

printf("1========>根据姓名查询员工数据\n");

printf("2========>根据身份证号查询员工数据\n");

printf("3========>根据工资卡卡号查询员工数据\n");

scanf("%d",&sel);

if(sel==1)

{

printf("请输入您要查找员工的姓名:

");

scanf("%s",sel_o);

if(strcmp(q->data.name,sel_o)!

=0&&q->next!

=NULL)

{

q=q->next;

}

if(strcmp(q->data.name,sel_o)==0)

{

Dividing_line();

printf("员工姓名:

%s\t\t员工身份证:

%s\t\t员工工资卡号:

%s\n",q->data.name,q->data.idcard,q->data.scard);

printf("员工性别:

%s\t\t员工年龄:

%d\t\t员工工作年龄:

%s\n",q->data.sex,q->data.age,q->data.wage);

printf("员工部门:

%s\t\t员工技术职称:

%s\t\t员工技术职称编号:

%s\n",q->data.section,q->data.technical_title,q->data.ttnum);

printf("员工基本工资:

%f\t员工职务工资:

%f\t员工补助:

%f\n",q->data.basepay,q->data.postpay,q->data.allowance);

printf("员工家庭电话:

%s\t\t员工手机号码:

%s\n",q->data.hnumber,q->data.pnumber);

printf("\t\t\t\t按下任意键回到主菜单!

");

scanf("%d",&sel);

return;

}

printf("无法找到此员工的信息!

按下任意键返回主菜单!

");

scanf("%d",&sel);

return;

}

if(sel==2)

{

printf("请输入您要查找员工的身份证号:

");

scanf("%s",sel_o);

if(strcmp(q->data.idcard,sel_o)!

=0&&q->next!

=NULL)

{

q=q->next;

}

if(strcmp(q->data.idcard,sel_o)==0)

{

Dividing_line();

printf("员工姓名:

%s\t\t员工身份证:

%s\t\t员工工资卡号:

%s\n",q->data.name,q->data.idcard,q->data.scard);

printf("员工性别:

%s\t\t员工年龄:

%d\t\t员工工作年龄:

%s\n",q->data.sex,q->data.age,q->data.wage);

printf("员工部门:

%s\t\t员工技术职称:

%s\t\t员工技术职称编号:

%s\n",q->data.section,q->data.technical_title,q->data.ttnum);

printf("员工基本工资:

%f\t员工职务工资:

%f\t员工补助:

%f\n",q->data.basepay,q->data.postpay,q->data.allowance);

printf("员工家庭电话:

%s\t\t员工手机号码:

%s\n",q->data.hnumber,q->data.pnumber);

printf("\t\t\t\t按下任意键回到主菜单!

");

scanf("%d",&sel);

return;

}

printf("无法找到此员工的信息!

按下任意键返回主

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1