欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    员工管理系统.doc

    • 资源ID:3736516       资源大小:96KB        全文页数:18页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    员工管理系统.doc

    #include <stdio.h>#include <string.h>#include <stdlib.h>#define ALLMAX 200 /总共统计的职工的人数typedef struct Nodelong int born_date,age,tele_num,job_num; char sex,nameALLMAX,degreeALLMAX,jobALLMAX,addressALLMAX;struct Node *next;SLNode;typedef structlong int born_date,age,tele_num,job_num;char nameALLMAX,sex,degreeALLMAX,jobALLMAX,addressALLMAX;DataType;void ListInitiate(SLNode *head)/链表初始化if(*head=(SLNode *)malloc(sizeof(SLNode)=NULL) exit(1);/动态分配存储空间(*head)->next=NULL;SLNode *ListInsert(SLNode *head,DataType x)/职工信息的插入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;/else if(strcmp(p->name,x.name)=0)break; /如果姓名相同则不插入信息else if(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;return head;void print(SLNode *head)/职工信息的显示for(SLNode *p=head->next;p;p=p->next)/输出所有职工的信息printf("%s %c %ld %ld %s %s %s %ld %ldn",p->name,p->sex,p->born_date,p->age,p->degree,p->job,p->address,p->tele_num,p->job_num);void printLink(SLNode *head)/职工信息的显示printf("职工名单:n姓名、性别、出生年月、年龄、学历、职务、住址、电话、工号n");print(head);void put(SLNode *head,FILE *fp)/职工信息的保存SLNode *p;if(fp=fopen("Employee.txt","a")=NULL)printf("无法打开'Employee.txt'!n");/exit(0);/return 0;for(p=head->next;p;p=p->next)fprintf(fp,"%s %c %ld %ld %s %s %s %ld %ldn",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);/return 0;void ListDelete(SLNode *head)/职工信息的删除SLNode *p,*s;char x20;int a,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.退出查询系统,回到主菜单tt 1.按姓名进行删除 t *nt* 2.按工号进行删除 tt *n"); printf("t*n");while(1)printf("请选择你要进行的操作:");scanf("%d",&a);if(a=0)break; else if(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"); else if(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");void ListModify(SLNode *head)/职工信息的修改DataType x;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");void Listfind(SLNode head)/职工信息的查找int i,j;SLNode *p;DataType x;if(head.next=NULL)/链表为空printf("名单中无职工信息,查询失败!n");return;/返回主菜单printf("n"); printf("tn");printf("t * 职工信息查询操作 * n");printf("t * n");printf("t n");printf("t 0.结束管理系统tttt1.姓名进行查询tnt 2.出生年月查询tttt3.职工学历查询tnt 4.职工年龄查询tttt5.职工职务查询tnt 6.职工住址查询tttt7.职工电话查询tnt 8.职工工号查询tttt tn"); printf("t n");printf("tn"); while(1)printf("请输入您要选择的操作:");scanf("%d",&i);if(i=0)/输入0,退出查询系统,回到主菜单break;else if(i=1)/输入1,对姓名进行查询p=head.next;printf("请输入姓名:");scanf("%s",x.name);j=0;for(p;p;p=p->next)if(strcmp(p->name,x.name)=0)/如果存在这个人,那么j自加+j;printf("n姓名、性别、出生年月、年龄、学历、职务、住址、电话、工号n");printf("%s %c %ld %ld %s %s %s %ld %ldn",p->name,p->sex,p->born_date,p->age,p->degree,p->job,p->address,p->tele_num,p->job_num);if(j=0)/表示没有找到输入的信息printf("职工名单中不存在此人!n");else printf("查询成功!继续操作!n");else if(i=2)/输入2,对出生年月进行查询p=head.next;printf("请输入出生年月:");scanf("%ld",&x.born_date);j=0;for(p;p;p=p->next)if(p->born_date=x.born_date)/输入的出生年月在链表中存在+j;/如果存在这个人,那么j自加printf("n姓名、性别、出生年月、工作年月、学历、职务、住址、电话、工号n");printf("%s %c %ld %ld %s %s %s %ld %ldn",p->name,p->sex,p->born_date,p->age,p->degree,p->job,p->address,p->tele_num,p->job_num);if(j=0)/表示没有找到输入的信息printf("职工名单中没有这个时间出生的!n");else printf("查询成功!请继续操作!n");else if(i=4)/输入4,对职工年龄进行查询p=head.next;printf("请输入职工年龄:");scanf("%ld",&x.age);j=0;for(p;p;p=p->next)if(p->age=x.age)+j;/如果存在这个人,那么j自加printf("n姓名、性别、出生年月、年龄、学历、职务、住址、电话、工号n");printf("%s %c %ld %ld %s %s %s %ld %ldn",p->name,p->sex,p->born_date,p->age,p->degree,p->job,p->address,p->tele_num,p->job_num);if(j=0)/表示没有找到输入的信息printf("职工名单中没有这个年龄的!n");else printf("查询成功!请继续操作!n");else if(i=3)/输入3,对学历进行查询p=head.next;printf("请输入学历:");scanf("%s",x.degree);j=0;for(p;p;p=p->next)if(strcmp(p->degree,x.degree)=0)+j;/如果存在这个人,那么j自加printf("n姓名、性别、出生年月、工作年月、学历、职务、住址、电话、工号n");printf("%s %c %ld %ld %s %s %s %ld %ldn",p->name,p->sex,p->born_date,p->age,p->degree,p->job,p->address,p->tele_num,p->job_num);if(j=0)/表示没有找到输入的信息printf("职工名单中没有这种学历的!n");else printf("查询成功!请继续操作!n");else if(i=5)/输入5,对职务进行查询p=head.next;printf("请输入职务:");scanf("%s",x.job);j=0;for(p;p;p=p->next)if(strcmp(p->job,x.job)=0)+j;/如果存在这个人,那么j自加printf("n姓名、性别、出生年月、年龄、学历、职务、住址、电话、工号n");printf("%s %c %ld %ld %s %s %s %ld %ldn",p->name,p->sex,p->born_date,p->age,p->degree,p->job,p->address,p->tele_num,p->job_num);if(j=0)/表示没有找到输入的信息printf("职工名单中没有这种职务的!n");else printf("查询成功!请继续操作!n");else if(i=6)/输入6,对住址进行查询p=head.next;printf("请输入住址:");scanf("%s",x.address);j=0;for(p;p;p=p->next)if(strcmp(p->address,x.address)=0)+j;/如果存在这个人,那么j自加printf("n姓名、性别、出生年月、年龄、学历、职务、住址、电话、工号n");printf("%s %c %ld %ld %s %s %s %ld %ldn",p->name,p->sex,p->born_date,p->age,p->degree,p->job,p->address,p->tele_num,p->job_num);if(j=0)/表示没有找到输入的信息printf("职工名单中没有住这的!n");else printf("查询成功!请继续操作!n");else if(i=7)/输入7,对电话号码进行查询p=head.next;printf("请输入电话:");scanf("%ld",&x.tele_num);j=0;for(p;p;p=p->next)if(p->tele_num=x.tele_num)+j;/如果存在这个人,那么j自加printf("n姓名、性别、出生年月、年龄、学历、职务、住址、电话、工号n");printf("%s %c %ld %ld %s %s %s %ld %ldn",p->name,p->sex,p->born_date,p->age,p->degree,p->job,p->address,p->tele_num,p->job_num);if(j=0)/表示没有找到输入的信息printf("职工名单中没人用这个号码!n");else printf("查询成功!请继续操作!n");else if(i=8)/输入8,对工号进行查询p=head.next;printf("请输入工号:");scanf("%ld",&x.job_num);j=0;for(p;p;p=p->next)if(p->job_num=x.job_num)+j;/如果存在这个人,那么j自加printf("n姓名、性别、出生年月、年龄、学历、职务、住址、电话、工号n");printf("%s %c %ld %ld %s %s %s %ld %ldn",p->name,p->sex,p->born_date,p->age,p->degree,p->job,p->address,p->tele_num,p->job_num);if(j=0)/表示没有找到输入的信息printf("职工名单中没有这个工号的!n");else printf("查询成功!请继续操作!n");else if(i!=0 && i!=1 && i!=2 && i!=3 && i!=4 && i!=5 && i!=6 && i!=7 && i!=8)/输入任意不是上述数字的,那么久显示输入错误printf("输入出错!请再次输入!n");printf("n");printf("t*n");printf("t* 职工信息查询操作 *n");printf("t* *n");printf("t* 0.退出查询系统,回到主菜单tt 1.对姓名进行查询t*nt* 2.对出生年月进行查询 tt 3.对学历进行查询t*nt* 4.对职工年龄进行查询 tt 5.对职务进行查询t*nt* 6.对住址进行查询 tt 7.对电话进行查询t*nt* 8.对职工工号进行查询 tt t*n"); printf("t*n"); void Listpaixu(SLNode *head)/职工信息的排序int i,n=0,m,flag=1;SLNode *p,*q,*s;if(head->next=NULL)/职工链表为空printf("名单中无职工信息,无法排序!nn");return;/printf("输入出错!请再次输入!nn");printf("tt.n");printf("tt. 职工信息排序操作 .n");printf("tt. .n"); printf("tt.t0.退出排序系统,回到主菜单 .ntt.t1.对性别进行排序 .ntt.t2.对出生年月进行排序 .ntt.t3.对职工年龄进行排序 .ntt.t4.对工号进行排序 .n");printf("tt.n");while(1)printf("请输入您要选择的操作:");scanf("%d",&i);if(i=0)/输入0,退出排序系统,回到主菜单break;else if(i=1)/输入1,对性别进行排序n=0,m,flag=1;for(p=head;NULL!=p;p=p->next)/统计职工人数n+; for(m=1;flag&&m<=n;m+) flag=0; for(q=head->next,p=head,s=p;q;s=p,p=q,q=q->next)if(p->sex>q->sex)/p为当前节点,p的性别>p的后继节点的性别if(head=p)/p为头结点 head->next=q->next; head=q; q->next=p;/交换节点信息q=head->next;p=head;elsep->next=q->next; q->next=p; s->next=q; p=q; q=p->next; flag=1; printf("排好序的信息如下:n");printLink(head);/输出所有节点的信息/return;else if(i=2)/输入2,对出生年月进行排序n=0,m,flag=1;for(p=head;NULL!=p;p=p->next)/统计职工人数n+; for(m=1;flag&&m<=n;n+)/循环 flag=0; for(q=head->next,p=head,s=p;q;s=p,p=q,q=q->next)if(p->born_date>q->born_date)/对出生年月进行排序if(head=p) head->next=q->next; head=q; q->next=p;q=head->next;p=head;elsep->next=q->next; q->next=p; s->next=q; p=q; q=p->next; flag=1;printf("排好序的信息如下:n");printLink(head);/return;else if(i=3)/输入3,按年龄排序n=0,m,flag=1;for(p=head;NULL!=p;p=p->next)n+; for(m=1;flag&&m<=n;n+) flag=0; for(q=head->next,p=head,s=p;q;s=p,p=q,q=q->next)if(p->age>q->age)if(head=p) head->next=q->next; head=q; q->next=p;q=head->next;p=head;elsep->next=q->next; q->next=p; s->next=q; p=q; q=p->next; flag=1;printf("排好序的信息如下:n");printLink(head);/return;else if(i=4)/按工号排序n=0,m,flag=1;for(p=head;NULL!=p;p=p->next)n+; for(m=1;flag&&m<=n;n+) flag=0; for(q=head->next,p=head,s=p;q;s=p,p=q,q=q->next)if(p->job_num>q->job_num)if(head=p) head->next=q->next; head=q; q->next=p;q=head->next;p=head;elsep->next=q->next; q->next=p; s->next=q; p=q; q=p->next; flag=1;printf("排好序的信息如下:n");printLink(head);/return;else if(i!=0&&i!=1&&i!=2&&i!=3&&i!=4)printf("输入出错!请再次输入!nn");printf("tt.n");printf("tt. 职工信息排序系统 .n");printf("tt. .n"); printf("tt.t0.退出排序系统,回到主菜单 .ntt.t1.对性别进行排序 .ntt.

    注意事项

    本文(员工管理系统.doc)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开