职工信息管理系统c语言版.docx

上传人:b****8 文档编号:30169996 上传时间:2023-08-05 格式:DOCX 页数:17 大小:16.83KB
下载 相关 举报
职工信息管理系统c语言版.docx_第1页
第1页 / 共17页
职工信息管理系统c语言版.docx_第2页
第2页 / 共17页
职工信息管理系统c语言版.docx_第3页
第3页 / 共17页
职工信息管理系统c语言版.docx_第4页
第4页 / 共17页
职工信息管理系统c语言版.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

职工信息管理系统c语言版.docx

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

职工信息管理系统c语言版.docx

职工信息管理系统c语言版

#include

#include

#include

#include

#defineLENsizeof(structemployee)

typedefstructemployee

{

charname[20];

longnum;

charsex[5];

intage;

charaddr[30];

intwage;

charhealth[20];

charedu[20];

structemployee*next;

}EMP;

voidinput();//输入职工信息

EMP*open();//将文件中的职工信息载入链表

voidnumfind(EMP*);//查找职工信息,按职工号查找

voidnamefind(EMP*);//查找职工信息,按职工姓名查找

voidmodify(EMP*);//修改职工信息

voiddelet(EMP*);//删除职工信息

voidnumsort(EMP*);//按工号给职工信息排序

voidwagesort(EMP*);//按工资给职工信息排序

voidprint(EMP*);//输出职工信息

voidrenew(EMP*);//更新文件信息

intn;//职工的个数

voidmain()

{

EMP*fhead;

intchoice,flag=1;

chars;

while(flag)

{

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

printf("欢迎使用职工信息管理系统!

");

printf("\n");

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

printf(">>>主窗口菜单<<<\n\n");

printf("1.录入职工信息\n\n");

printf("2.查找职工信息\n\n");

printf("3.修改职工信息\n\n");

printf("4.删除职工信息\n\n");

printf("5.排序职工信息\n\n");

printf("6.打印职工信息\n\n");

printf("0.退出\n");

printf("\n请选择:

");

scanf("%d",&choice);

getchar();

switch(choice)

{

case0:

exit(0);

case1:

input();break;

case2:

system("cls");

printf("\na.按工号查找\n\n");

printf("b.按姓名查找\n");

printf("\n请选择:

");

scanf("%c",&s);

getchar();

fhead=open();

if(s=='a')

numfind(fhead);

elseif(s=='b')

namefind(fhead);

else

printf("\n输入错误!

\n");

break;

case3:

fhead=open();modify(fhead);break;

case4:

fhead=open();delet(fhead);break;

case5:

system("cls");

printf("\na.按工号排序\n\n");

printf("b.按工资排序\n");

printf("\n请选择:

");

scanf("%c",&s);

getchar();

fhead=open();

if(s=='a')

numsort(fhead);

elseif(s=='b')

wagesort(fhead);

else

printf("\n输入错误!

\n");

break;

case6:

fhead=open();print(fhead);break;

default:

printf("\n输入错误!

\n");

}

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

");

getchar();

system("cls");

}

}

voidinput()//录入信息

{

intflag=1;

chars;

FILE*fp;

EMP*p,*p1,*p2,*head;

head=p1=p2=(EMP*)malloc(LEN);

while(flag==1)

{

system("cls");

printf("\n姓名:

");

scanf("%s",p1->name);

printf("\n工号:

");

scanf("%ld",&p1->num);

getchar();

printf("\n性别:

");

scanf("%s",p1->sex);

printf("\n年龄:

");

scanf("%d",&p1->age);

printf("\n地址:

");

scanf("%s",p1->addr);

printf("\n月薪:

");

scanf("%d",&p1->wage);

printf("\n健康状况:

");

scanf("%s",p1->health);

printf("\n教育程度:

");

scanf("%s",p1->edu);

getchar();

printf("\n是否继续录入?

(y/n):

");

scanf("%c",&s);

getchar();

if(s=='y')

{

p2=p1;

p1=(EMP*)malloc(LEN);

p2->next=p1;

}

else

flag=0;

}

p1->next=NULL;

p=head;

if((fp=fopen("employee.txt","ab"))==NULL)

if((fp=fopen("employee.txt","wb"))==NULL)

{

printf("无法打开文件!

\n");

exit(0);

}

while(p!

=NULL)

{

if(fwrite(p,LEN,1,fp)!

=1)

printf("无法保存!

\n");

p=p->next;

}

fclose(fp);

printf("\n录入成功!

\n");

}

EMP*open(void)

{

n=0;

EMP*fhead,*p1,*p2;

FILE*fp;

fhead=NULL;

p1=p2=(EMP*)malloc(LEN);

if((fp=fopen("employee.txt","rb"))!

=NULL)

{

fread(p1,LEN,1,fp);

while(!

feof(fp))

{

n=n+1;

if(n==1)

fhead=p1;

else

p2->next=p1;

p2=p1;

p1=(EMP*)malloc(LEN);

fread(p1,LEN,1,fp);

}

p2->next=NULL;

}

else

fp=fopen("employee.txt","wb");

fclose(fp);

return(fhead);

}

voidnamefind(EMP*head)

{

inta=0;

charfindname[20];

EMP*p;

p=head;

printf("\n请输入姓名:

");

gets(findname);

while(p!

=NULL)

{

if(strcmp(findname,p->name)==0)

{

a=a+1;

if(a==1)

printf("\n姓名工号性别年龄地址月薪健康状况教育程度\n\n");

printf("%-8s%-8ld%-8s%-8d%-14s%-9d%-12s%-8s\n",p->name,p->num,p->sex,p->age,p->addr,p->wage,p->health,p->edu);

}

p=p->next;

}

if(a==0)

printf("\n没有姓名为%s的职工\n",findname);

}

voidnumfind(EMP*head)

{

intfindnum,a=0;

EMP*p;

p=head;

printf("\n请输入职工号:

");

scanf("%ld",&findnum);

getchar();

while(p!

=NULL)

{

if(findnum==p->num)

{

a=a+1;

printf("\n姓名工号性别年龄地址月薪健康状况教育程度\n\n");

printf("%-8s%-8ld%-8s%-8d%-14s%-9d%-12s%-8s\n",p->name,p->num,p->sex,p->age,p->addr,p->wage,p->health,p->edu);

}

p=p->next;

}

if(a==0)

printf("\n没有工号为%ld的职工\n",findnum);

}

voidmodify(EMP*head)

{

EMP*p;

inta=0;

charfindname[20];

p=head;

system("cls");

printf("\n请输入姓名:

");

gets(findname);

while(p!

=NULL)

{

if(strcmp(findname,p->name)==0)

{

a=a+1;

printf("\n姓名工号性别年龄地址月薪健康状况教育程度\n\n");

printf("%-8s%-8ld%-8s%-8d%-14s%-9d%-12s%-8s\n",p->name,p->num,p->sex,p->age,p->addr,p->wage,p->health,p->edu);

printf("\n请修改!

\n");

printf("\n姓名:

");

scanf("%s",p->name);

printf("\n工号:

");

scanf("%ld",&p->num);

getchar();

printf("\n性别:

");

scanf("%s",p->sex);

printf("\n年龄:

");

scanf("%d",&p->age);

printf("\n地址:

");

scanf("%s",p->addr);

printf("\n月薪:

");

scanf("%d",&p->wage);

printf("\n健康状况:

");

scanf("%s",p->health);

printf("\n教育程度:

");

scanf("%s",p->edu);

getchar();

printf("\n修改成功!

\n");

}

p=p->next;

}

if(a==0)

printf("\n没有姓名为%s的职工\n",findname);

else

renew(head);

}

voiddelet(EMP*head)

{

inta=0;

charc,findname[20];

EMP*p1,*p2;

p1=p2=head;

system("cls");

printf("\n请输入姓名:

");

scanf("%s",findname);

getchar();//清空缓冲区

while(p1!

=NULL)

{

if(strcmp(findname,p1->name)==0)

{

a=a+1;

printf("\n姓名工号性别年龄地址月薪健康状况教育程度\n\n");

printf("%-8s%-8ld%-8s%-8d%-14s%-9d%-12s%-8s\n",p1->name,p1->num,p1->sex,p1->age,p1->addr,p1->wage,p1->health,p1->edu);

printf("\n确定删除该职工信息?

(y/n):

");

c=getchar();

getchar();//清空缓冲区

if(c=='y')

{

if(p1==head)

p1=p2=head=p1->next;

else

{

p2->next=p1->next;

free(p1);

p1=p2;

}

printf("\n删除成功!

\n");

}

}

p2=p1;

if(p1!

=NULL)

p1=p1->next;

else;

}

if(a==0)

printf("\n没有姓名为%s的职工\n",findname);

else

renew(head);

}

voidrenew(EMP*head)

{

FILE*fp;

structemployee*p;

p=head;

if((fp=fopen("employee.txt","wb"))==NULL)

{

printf("无法打开文件!

\n");

exit(0);

}

while(p!

=NULL)

{

if(fwrite(p,LEN,1,fp)!

=1)

printf("无法保存!

\n");

p=p->next;

}

fclose(fp);

}

voidprint(EMP*head)

{

EMP*p;

p=head;

system("cls");

if(p==NULL)

printf("\n无任何信息!

\n");

else

{

printf("\n姓名工号性别年龄地址月薪健康状况教育程度\n\n");

while(p!

=NULL)

{

printf("%-8s%-8ld%-8s%-8d%-14s%-9d%-12s%-8s\n\n",p->name,p->num,p->sex,p->age,p->addr,p->wage,p->health,p->edu);

p=p->next;

}

}

}

voidnumsort(EMP*head)//按工号排序

{

inti;

EMP*p1,*p2,*p3,*end=NULL;

p1=p2=p3=head;

if(head!

=NULL&&head->next!

=NULL)

for(i=1;i

{

p1=p1->next;

while(p1!

=end)

if(p1->numnum)

{

p2->next=p1->next;

p1->next=p2;

if(p2==p3)

head=p1;

else

p3->next=p1;

p3=p1;

p1=p2->next;

}

else

{

p3=p2;

p2=p1;

p1=p1->next;

}

end=p2;

p1=p2=p3=head;

}

renew(head);

}

voidwagesort(EMP*head)//按工资排序

{

inti;

EMP*p1,*p2,*p3,*end=NULL;

p1=p2=p3=head;

if(head!

=NULL&&head->next!

=NULL)

for(i=1;i

{

p1=p1->next;

while(p1!

=end)

if(p1->wagewage)

{

p2->next=p1->next;

p1->next=p2;

if(p2==p3)

head=p1;

else

p3->next=p1;

p3=p1;

p1=p2->next;

}

else

{

p3=p2;

p2=p1;

p1=p1->next;

}

end=p2;

p1=p2=p3=head;

}

renew(head);

}

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

当前位置:首页 > 表格模板 > 合同协议

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

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