#include "consts.h"
typedef struct node
{
char num[110];
char name[10];
char xueli[10];
char hunyin[10];
char zhicheng[10];
struct node *next;
}LinkList;
void CreatLinkList(LinkList *head,int *n) /* 建立链表 */
{
char num[110];
char XM[10],XL[10],HY[10],ZC[10];
int i=1;
LinkList *p=head;
LinkList *s;
printf("请输入员工的员工号,输入0结束输入:\n");
scanf("%s",&num);
while(1)
{
if(strcmp(num,"0")==0)
break;
s=(LinkList *)malloc(sizeof(LinkList));
strcpy(s->num,num);
printf("请输入员工的姓名:\n");
scanf("%s",&XM);
strcpy(s->name,XM);
printf("请输入员工的学历(小学/初中/高中/大学/本科/专科/研究生):\n");
scanf("%s",&XL);
strcpy(s->xueli,XL);
printf("请输入员工是否结婚(是/否):\n");
scanf("%s",&HY);
strcpy(s->hunyin,HY);
printf("请输入员工的职称(实习生/正式员工/经理/总经理):\n");
scanf("%s",&ZC);
strcpy(s->zhicheng,ZC);
p->next=s;
p=s;
s->next=NULL;
*n=*n+1;
printf("请输入员工的员工号,输入0结束输入:\n");
scanf("%s",&num);
}
}
void InsertStu(LinkList *head,char num[],int *n) /* 插入员工 */
{
LinkList *p;
LinkList *s;
char XM[10],XL[10],HY[10],ZC[10];
int flag=0;
printf("请输入员工的姓名:\n");
scanf("%s",&XM);
printf("请输入员工的学历(小学/初中/高中/大学/本科/专科/研究生):\n");
scanf("%s",&XL);
printf("请输入员工是否结婚(是/否):\n");
scanf("%s",&HY);
printf("请输入员工的职称(实习生/正式员工/经理/总经理):\n");
scanf("%s",&ZC);
p=head;
while(p->next!=NULL)
{
if(strcmp(p->next->num,num)==0)
{
flag=1;
break;
}
p=p->next;
}
if(flag==1)
{
strcpy(p->next->name,XM);
strcpy(p->next->xueli,XL);
strcpy(p->next->hunyin,HY);
strcpy(p->next->zhicheng,ZC);
}
else
{
s=(LinkList*)malloc(sizeof(LinkList));
strcpy(s->num,num);
strcpy(s->name,XM);
strcpy(s->xueli,XL);
strcpy(s->hunyin,HY);
strcpy(s->zhicheng,ZC);
p->next=s;
p=s;
s->next=NULL;
*n=*n+1;
printf("插入成功!\n");
}
}
int DeleStu(LinkList *head , char num[],int *n) /* 删除员工 */
{
LinkList *p=head;
LinkList *s;
if(p->next==NULL)
{
printf("员工表中没有任何的员工记录\n");
return ERROR;
}
else
{
while(p!=NULL)
{
s=p->next;
if(s!=NULL)
{
if(strcmp(s->num,num)==0)
{
p->next=s->next;
*n=*n-1;
printf("删除成功!\n");
break;
}
}
p=p->next;
}
return ERROR;
}
}
int chaxun(LinkList *head , char num[]) /* 查询员工个人信息 */
{
LinkList *h=head;
char a[101];
int flag=0;
printf("请输入要查询员工的员工号:\n");
scanf("%s",&a);
while(h !=NULL)
{
if(strcmp(h->num,a)==0)
{
flag=1;
printf("*****************************************\n");
printf("员工号 姓名 学历 婚姻 职称\n");
printf("%s\t%s\t%s\t%s\t%s\n",h->num,h->name,h->xueli,h->hunyin,h->zhicheng);
printf("*****************************************\n");
}
h = h->next;
}
if(flag==0)
printf("没有该员工信息!\n");
}
int xiugai(LinkList *head , char num[]) /* 修改员工个人信息 */
{
LinkList *h=head;
char a[101];
int flag=0;
printf("请输入要修改员工的员工号:\n");
scanf("%s",&a);
while(h !=NULL)
{
if(strcmp(h->num,a)==0)
{
char XM[10],XL[10],HY[10],ZC[10];
flag=1;
printf("请输入新的员工的姓名:\n");
scanf("%s",&XM);
printf("请输入新的员工的学历(小学/初中/高中/大学/本科/专科/研究生):\n");
scanf("%s",&XL);
printf("请输入新的员工是否结婚(是/否):\n");
scanf("%s",&HY);
printf("请输入新的员工的职称(实习生/正式员工/经理/总经理):\n");
scanf("%s",&ZC);
strcpy(h->name,XM);
strcpy(h->xueli,XL);
strcpy(h->hunyin,HY);
strcpy(h->zhicheng,ZC);
printf("修改成功!\n");
}
h = h->next;
}
if(flag==0)
printf("没有该员工信息!\n");
}
int tongji(LinkList *head , char num[]) /* 统计员工个人信息 */
{
LinkList *h=head;
char XM[10],XL[10],HY[10],ZC[10];
int b=0;
int flag=0;
printf("可以统计的项目(1.婚姻状况/2.学历/3.工作岗位):\n");
printf("请输入1-3:\n");
scanf("%d",&b);
if(b==1)
{
printf("请输入要查询的是否结婚(是/否):\n");
scanf("%s",&HY);
printf("*****************************************\n");
printf("员工号 姓名 学历 婚姻 职称\n");
while(h !=NULL)
{
if(strcmp(h->hunyin,HY)==0)
{
flag=1;
printf("%s\t%s\t%s\t%s\t%s\n",h->num,h->name,h->xueli,h->hunyin,h->zhicheng);
}
h = h->next;
}
printf("*****************************************\n");
if(flag==0)
printf("没有该项员工信息!\n");
}
else if(b==2)
{
printf("请输入要查询的是什么学历的员工(小学/初中/高中/大学/本科/专科/研究生):\n");
scanf("%s",&XL);
printf("*****************************************\n");
printf("员工号 姓名 学历 婚姻 职称\n");
while(h !=NULL)
{
if(strcmp(h->xueli,XL)==0)
{
flag=1;
printf("%s\t%s\t%s\t%s\t%s\n",h->num,h->name,h->xueli,h->hunyin,h->zhicheng);
}
h = h->next;
}
printf("*****************************************\n");
if(flag==0)
printf("没有该项员工信息!\n");
}
else if(b==3)
{
printf("请输入要查询的是职位的员工(实习生/正式员工/经理/总经理):\n");
scanf("%s",&ZC);
printf("*****************************************\n");
printf("员工号 姓名 学历 婚姻 职称\n");
while(h !=NULL)
{
if(strcmp(h->zhicheng,ZC)==0)
{
flag=1;
printf("%s\t%s\t%s\t%s\t%s\n",h->num,h->name,h->xueli,h->hunyin,h->zhicheng);
}
h = h->next;
}
printf("*****************************************\n");
if(flag==0)
printf("没有该项员工信息!\n");
}
}
void DisplayStu(LinkList * head) /* 浏览员工链表 */
{
LinkList *h=head->next;
printf("*****************************************\n");
printf("员工号 姓名 学历 婚姻 职称\n");
while(h!=NULL)
{
printf("%s\t%s\t%s\t%s\t%s\n",h->num,h->name,h->xueli,h->hunyin,h->zhicheng);
h=h->next;
}
printf("*****************************************\n");
}
//main程序
int main(int argc,char* argv[])
{
LinkList *head;
char num[110];
int flag=0;
int n=0;
int i=0;
int m=0;
head=(LinkList *)malloc(sizeof(LinkList));
head->next=NULL;
while(m==0){
printf("\t\t\t*****员工信息表*****\n");
printf("\t\t\t****1,创建员工表****\n");
printf("\t\t\t***2,添加员工信息***\n");
printf("\t\t\t***3,转出员工信息***\n");
printf("\t\t\t***4,查询员工信息***\n");
printf("\t\t\t***5,修改员工信息***\n");
printf("\t\t\t***6,统计员工信息***\n");
printf("\t\t\t*7,显示全部在职员工*\n");
printf("请输入要执行操作的数字1-7:\n");
scanf("%d",&i);
switch(i){
case 1:{
CreatLinkList(head,&n);
printf("员工总数为 %d\n",n);
if(head->next!=NULL)
printf("\n");
};break;
case 2:{
printf("请输入要插入的员工的员工号,以0结束\n");
scanf("%s",&num);
while(1)
{
if(strcmp(num,"0")==0) break;
InsertStu(head,num,&n);
printf("员工总数为 %d,以0结束\n",n);
scanf("%s",&num);
}
};break;
case 3:{
printf("请输入要删除的员工的员工号,以0结束\n");
scanf("%s",&num);
while(1)
{
if(strcmp(num,"0")==0) break;
flag=DeleStu(head,num,&n);
printf("员工总数为 %d,以0结束\n",n);
scanf("%s",&num);
}
};break;
case 4:{
chaxun(head,num);}; break;
case 5:{
xiugai(head,num);}; break;
case 6:{
tongji(head,num);}; break;
case 7:{
printf("员工总数为 %d\n",n);
DisplayStu(head);
};break;
default:{
printf(
西门有子名门庆
- 粉丝: 1
- 资源: 1
最新资源
- 一个简单的库存管理系统,使用PHP、JavaScript、Bootstrap和CSS开发
- Python(Tkinter+matplotlib)实现光斑处理系统源代码
- HC32F4A0-v2.2.0-LittleVgl-8.3-1111.zip, 基于HC32F4A0的LVGL8.3工程
- 220913201郭博宇数据结构3.docx
- 小米R3G路由器breed专属
- MATLAB实现QRLSTM长短期记忆神经网络分位数回归时间序列区间预测(含完整的程序和代码详解)
- AN-HC32F4A0系列的外部存储器控制器EXMC -Rev1.1
- MATLAB实现QRBiGRU双向门控循环单元分位数回归时间序列区间预测(含完整的程序和代码详解)
- Firefox.apk
- 使用 PyTorch 实现 AlexNet 进行 MNIST 图像分类
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈