文档库 最新最全的文档下载
当前位置:文档库 › 数据结构——员工管理系统

数据结构——员工管理系统

#include "stdio.h"
#include "string.h"
#include "stdlib.h"
typedef struct workers
{
char name[15]; //姓名
char department[18]; //单位
char gender[8]; //性别
unsigned int age; //年龄
unsigned long telephone; //电话
unsigned long wage; //工资
unsigned long num; //职工号
struct workers *next;
}* Bwork,Twork;
/*插入职工信息,通过链表实现 */
/*具体实现职工信息的插入*/
/*对职工信息的删除操作*/
/*修改操作*/
/*实现对员工信息的查找*/
/*排序*/
/* 输出员工信息 */
/* 显示职工工资情况 计算平均工资 */
void Create(Bwork h);
void Select(Bwork h);
void Delete(Bwork h);
void Rewrite(Bwork h);
void Show(Bwork h);
void Showw(Bwork h);
void Sort(Bwork h);
void main(){
int n;
Bwork h;
h=(Bwork)malloc(sizeof(Twork));
h->next = NULL;
while(1)
{
printf("#####################\n");
printf("1.输入员工信息\n");
printf("2.查询员工信息\n");
printf("3.删除员工信息\n");
printf("4.修改员工信息\n");
printf("5.显示所有员工信息\n");
printf("6.显示员工工资信息\n");
printf("7.按职工号输出\n");
printf("8.退出!\n");
printf("#####################\n");
printf("请选择:\n");
scanf("%d",&n);
switch(n)
{
case 1:
Create(h);break;
case 2:
Select(h);break;
case 3:
Delete(h);break;
case 4:
Rewrite(h);break;
case 5:
Show(h);break;
case 6:
Showw(h);break;
case 7:
Sort(h);break;
case 8:
exit(0);break;
default :
printf("请输入1~7的数!\n");
}
}
}

void Create(Bwork h)
{
Bwork a;
Bwork p = h;

a=(Bwork)malloc(sizeof(Twork));
printf("请输入姓名:\n");
scanf("%s",a->name);
printf("请输入单位:\n");
scanf("%s",a->department);
printf("请输入性别:\n");
scanf("%s",a->gender);
printf("请输入年龄:\n");
scanf("%d",&a->age);
printf("请输入电话:\n");
scanf("%ld",&a->telephone);
printf("请输入工资:\n");
scanf("%ld",&a->wage);
printf("请输入职工号:\n");
scanf("%ld",&a->num);


while(p->next!= NULL)
{
p=p->next;

}

puts("123");
p->next=a;
a->next=NULL;

printf("创建成功!\n");

}


void Select(Bwork h)
{
Bwork p;
unsigned long i;
printf("请输入职工号:\n");
scanf("%ld",&i);
p=h;
while(p->next != NULL)
{
p=p->next;
if(p->num==i)break;
}\
if((p->next==NULL && p->num != i)||(p == h))
printf("没有此职工!\n");
else
{
printf("姓名:%s\n",p->name);
printf("单位:%s\n",p->department);
printf("性别:%s\n",p->gender);
printf("年龄:%d\n",p->age);
printf("电话:%ld\n",p->telephone);
printf("工资:%ld\n",p->wage);
printf("职工号:%ld\n",p->num);
}

}
void Delete(Bwork h)
{
Bwork p,q;
unsigned long i;
printf("请输入职工号:\n");
s

canf("%ld",&i);
p=h;q=p;
while(p->next != NULL)
{
q=p;
p=p->next;
if(p->num==i)break;
}
if((p->next==NULL && p->num != i)||(p == h))
printf("没有此职工!\n");
else
{if(p->next==NULL)
{ p=q;p->next=NULL;}
else
{q->next=p->next;p=q;}
printf("删除成功!\n");
}

}
void Rewrite(Bwork h)
{
Bwork p;
unsigned long i;
printf("请输入职工号:\n");
scanf("%ld",&i);
p=h;
while(p->next != NULL)
{
p=p->next;
if(p->num==i)break;
}
if((p->next==NULL && p->num != i)||(p == h))
printf("没有此职工!\n");
else
{

printf("请输入姓名:\n");
scanf("%s",p->name);
printf("请输入单位:\n");
scanf("%s",p->department);
printf("请输入性别:\n");
scanf("%s",p->gender);
printf("请输入年龄:\n");
scanf("%d",&p->age);
printf("请输入电话:\n");
scanf("%ld",&p->telephone);
printf("请输入工资:\n");
scanf("%ld",&p->wage);
printf("请输入职工号:\n");
scanf("%ld",&p->num);
printf("修改成功!\n");
printf("姓名:%s\n",p->name);
printf("单位:%s\n",p->department);
printf("性别:%s\n",p->gender);
printf("年龄:%d\n",p->age);
printf("电话:%ld\n",p->telephone);
printf("工资:%ld\n",p->wage);
printf("职工号:%ld\n",p->num);

}


}


void Show(Bwork h)
{
Bwork p;

p=h;
while(p->next != NULL)
{
p=p->next;
printf("------------------\n");
printf("姓名:%s\n",p->name);
printf("单位:%s\n",p->department);
printf("性别:%s\n",p->gender);
printf("年龄:%d\n",p->age);
printf("电话:%ld\n",p->telephone);
printf("工资:%ld\n",p->wage);
printf("职工号:%ld\n",p->num);
printf("-------------------\n");
}

}
void Showw(Bwork h)
{
Bwork p;unsigned long a[10];int i=0,j; double s=0;

p=h;
while(p->next != NULL)
{
i++;p=p->next;a[i]=p->wage;
printf("职工号:%ld 工资:%ld\n",p->num,p->wage);

}
j=i;
for(;i>0;i--)
s=s+a[i];
s=s/j;
printf("平均工资为:%lf\n",s);
}

void Sort(Bwork h)
{
int s[21][2],a;Bwork p,bb[21];int i=0,j,k,e,b;
p=h;
while(p->next != NULL)
{
p=p->next;i++;
bb[i]=(Bwork)malloc(sizeof(Bwork));
bb[i]=p;
s[i][0]=p->num;
s[i][1]=i;

}

for(k=0;kfor(j=i;j>k;j--)
if(s[j][0]{a=s[j][0];b=s[j][1];s[j][0]=s[j-1][0];s[j][1]=s[j-1][1];s[j-1][0]=a;s[j-1][1]=b;}

for(k=1;k<=i;k++)
{
e=s[k][1];
printf("-----------------------\n");
printf("姓名:%s\n",bb[e]->name);
printf("单位:%s\n",bb[e]->department);
printf("性别:%s\n",bb[e]->gender);
printf("年龄:%d\n",bb[e]->age);
printf("电话:%ld\n",bb[e]->telephone);
printf("工资:%ld\n",bb[e]->wage);
printf("职工号:%ld\n",bb[e]->num);
printf("-----------------------\n");

}
}

相关文档
相关文档 最新文档