员工管理系统.docx
- 文档编号:3034746
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:24
- 大小:20.58KB
员工管理系统.docx
《员工管理系统.docx》由会员分享,可在线阅读,更多相关《员工管理系统.docx(24页珍藏版)》请在冰豆网上搜索。
员工管理系统
#include
#include
#include
#defineALLMAX200//总共统计的职工的人数
typedefstructNode
{
longintborn_date,age,tele_num,job_num;
charsex,name[ALLMAX],degree[ALLMAX],job[ALLMAX],address[ALLMAX];
structNode*next;
}SLNode;
typedefstruct
{
longintborn_date,age,tele_num,job_num;
charname[ALLMAX],sex,degree[ALLMAX],job[ALLMAX],address[ALLMAX];
}DataType;
voidListInitiate(SLNode**head)//链表初始化
{
if((*head=(SLNode*)malloc(sizeof(SLNode)))==NULL)
exit
(1);//动态分配存储空间
(*head)->next=NULL;
}
SLNode*ListInsert(SLNode*head,DataTypex)//职工信息的插入
{
SLNode*p,*q,*s;
p=head->next;
if((q=(SLNode*)malloc(sizeof(SLNode)))==NULL)
exit
(1);//动态分配存储空间
q->born_date=x.born_date;
q->age=x.age;
q->tele_num=x.tele_num;
q->job_num=x.job_num;
strcpy(q->name,x.name);
q->sex=x.sex;
strcpy(q->degree,x.degree);
strcpy(q->job,x.job);
strcpy(q->address,x.address);
if(head->next==NULL)
{//如果只有链表的头结点,没有其他的结点,直接插入在头结点后面
head->next=q;
head->next->next=NULL;
}
else
{//链表非空
for(;p;p=p->next)
{
if(p->next!
=NULL)
{
if(strcmp(p->name,x.name)<0&&strcmp(p->next->name,x.name)>0)
{//位于两个结点之间
s=p->next;
p->next=q;
q->next=s;
break;
}
//elseif(strcmp(p->name,x.name)==0)break;//如果姓名相同则不插入信息
}
elseif(strcmp(p->name,x.name)<0&&p->next==NULL)
{//链表非空,并且在排序中是最后一个
p->next=q;
q->next=NULL;
break;
}
if(strcmp(p->name,x.name)>0)
{//位于链表头结点之后的位置
s=head->next;
head->next=q;
q->next=s;
break;
}
}
}
returnhead;
}
voidprint(SLNode*head)//职工信息的显示
{
for(SLNode*p=head->next;p;p=p->next)//输出所有职工的信息
printf("%s%c%ld%ld%s%s%s%ld%ld\n",p->name,p->sex,p->born_date,p->age,p->degree,p->job,p->address,p->tele_num,p->job_num);
}
voidprintLink(SLNode*head)//职工信息的显示
{
printf("职工名单:
\n姓名、性别、出生年月、年龄、学历、职务、住址、电话、工号\n");
print(head);
}
voidput(SLNode*head,FILE*fp)//职工信息的保存
{
SLNode*p;
if((fp=fopen("Employee.txt","a"))==NULL)
{
printf("无法打开'Employee.txt'!
\n");
//exit(0);
//return0;
}
for(p=head->next;p;p=p->next)
{
fprintf(fp,"%s%c%ld%ld%s%s%s%ld%ld\n",p->name,p->sex,p->born_date,p->age,p->degree,p->job,p->address,p->tele_num,p->job_num);
}
if(fclose(fp))
printf("无法关闭'Employee.txt'!
\n");
//exit(0);
//return0;
}
voidListDelete(SLNode*head)//职工信息的删除
{
SLNode*p,*s;
charx[20];
inta,job_num;
s=head;
p=head->next;
if(head->next==NULL)
{//链表为空,输出:
名单中无职工信息,无须删除!
printf("名单中无此职工信息,无须删除!
\n");
return;
}
printf("\n");
printf("\t******************************************************************\n");
printf("\t*职工信息删除操作*\n");
printf("\t**\n");
printf("\t*0.退出查询系统,回到主菜单\t\t1.按姓名进行删除\t*\n\t*2.按工号进行删除\t\t*\n");
printf("\t******************************************************************\n");
while
(1)
{
printf("请选择你要进行的操作:
");
scanf("%d",&a);
if(a==0)break;
elseif(a==1)
{
printf("请输入要删除职工的姓名:
\n");//输入要删除的人的姓名
scanf("%s",x);
for(p;p;p=p->next)
{//在链表中从头到尾查找输入的人的姓名
if(strcmp(p->name,x)==0)
{
//如果存在,则删除,否则输出:
名单中无职工信息,无须删除!
s->next=p->next;
free(p);
printf("删除成功!
请继续操作!
\n");
printLink(head);
break;
}
s=p;
}
if(p==NULL)
printf("名单中无此职工信息,无须删除!
\n");
}
elseif(a==2)
{
printf("请输入要删除职工的工号:
\n");//输入要删除的人的工号
scanf("%ld",&job_num);
for(p;p;p=p->next)
{
//在链表中从头到尾查找输入的人的工号
if(p->job_num==job_num)
{
//如果存在,则删除,否则输出:
名单中无职工信息,无须删除!
s->next=p->next;
free(p);
printf("删除成功!
请继续操作!
\n");
printLink(head);
}
s=p;
}
if(p==NULL)
printf("名单中无此职工信息,无须删除!
\n");
}
}
}
voidListModify(SLNode*head)//职工信息的修改
{
DataTypex;
SLNode*p;
p=head->next;
/*if(p==NULL)
{
printf("职工名单无职工信息,无须修改!
\n");
return;
}*/
printf("请输入要修改的职工姓名:
\n");
scanf("%s",x.name);
for(;p;p=p->next)
{
if(strcmp(x.name,p->name)==0)//查找到了该职工的信息
{
printf("依次写入该职工的新信息:
\n");
printf("请输入职工信息:
\n姓名、性别、出生年月、年龄、学历、职务、住址、电话、工号\n");
scanf("%s%c%ld%ld%s%s%s%ld%ld",p->name,&p->sex,&p->born_date,&p->age,p->degree,p->job,p->address,&p->tele_num,&p->job_num);
printf("修改成功!
请继续操作!
\n");
break;
}
}
if(p==NULL)
printf("此职工不存在,无法修改其信息!
\n");
}
voidListfind(SLNodehead)//职工信息的查找
{
inti,j;
SLNode*p;
DataTypex;
if(head.next==NULL)//链表为空
{
printf("名单中无职工信息,查询失败!
\n");
return;
}
//返回主菜单
printf("\n");
printf("\t★☆☆★☆☆★☆☆★★☆☆★☆☆★☆☆★★☆☆★☆☆★☆☆★☆☆★\n");
printf("\t☆*职工信息查询操作*☆\n");
printf("\t★**********★\n");
printf("\t☆☆\n");
printf("\t★0.结束管理系统\t\t\t\t1.姓名进行查询\t★\n\t☆2.出生年月查询\t\t\t\t3.职工学历查询\t☆\n\t★4.职工年龄查询\t\t\t\t5.职工职务查询\t☆\n\t★6.职工住址查询\t\t\t\t7.职工电话查询\t☆\n\t★8.职工工号查询\t\t\t\t\t★\n");
printf("\t☆☆\n");
printf("\t★☆☆★☆☆★☆☆★★☆☆★☆☆★☆☆★★☆☆★☆☆★☆☆★☆☆★\n");
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 员工 管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)