计算机专业 课程设计UML人事管理系统求代码
发布网友
发布时间:2022-05-01 05:40
我来回答
共2个回答
热心网友
时间:2022-06-25 03:27
#include"stdio.h"
#include"stdlib.h"
#include "string.h"
//定义节点类型
typedef struct node
{
char id[10];
char name[10];
char sex[10];
char part[10];
char xueli[10];
char wu[10];
char pro[10];
char school[10];
struct node *next;
}node,*linklist;
//头插法生成单链表
int creatlist(linklist &L)
{
linklist p;
p=(linklist)malloc(sizeof(node));
if(!p)
{
return (0);
}
else
{
printf("请输入员工编号\n");
scanf("%s",p->id);
printf("请输入员工姓名\n");
scanf("%s",p->name);
printf("请输入员工性别\n");
scanf("%s",p->sex);
printf("请输入员工所在部门\n");
scanf("%s",p->part);
printf("请输入员工学历\n");
scanf("%s",p->xueli);
printf("请输入员工职务\n");
scanf("%s",p->wu);
printf("请输入员工专业\n");
scanf("%s",p->pro);
printf("请输入员工毕业学校\n");
scanf("%s",p->school);
}
p->next=L->next;
L->next=p;
}
//初始化单链表
int initlist(linklist &L)
{
L=(linklist)malloc(sizeof(node));
if(!L)
return (0);
L->next=NULL;
return 1;
}
//显示所有员工信息
void display(linklist &L)
{
linklist p;
for(p=L->next;p;p=p->next)
{
printf("编号:%s",p->id);
printf(" 姓名:%s",p->name);
printf(" 性别:%s",p->sex);
printf(" 所在部门:%s",p->part);
printf(" 学历:%s",p->xueli);
printf(" 职务:%s",p->wu);
printf(" 专业:%s",p->pro);
printf(" 毕业学校:%s\n",p->school);
}
}
//按id 删除
int del(linklist &L,char id[10])
{
node *p;
node *r;
p=L->next;
r=L;
while(!(strcmp(p->id,id)==0)&&p)
{
r=p;
p=p->next;
}
if(!p)
printf("\n 删除位置不合理\n");
else
{
r->next=p->next;
free(p);
printf("删除成功\n");
}
return 1;
}
//查询id
int searchid(linklist &L,char id[10])
{
node *p;
p=L;
while(p)
{
if(strcmp(p->id,id)==0)
{
printf("编号:%s",p->id);
printf(" 姓名:%s",p->name);
printf(" 性别:%s",p->sex);
printf(" 所在部门:%s",p->part);
printf(" 学历:%s",p->xueli);
printf(" 职务:%s",p->wu);
printf(" 专业:%s",p->pro);
printf(" 毕业学校:%s\n",p->school);
}
p=p->next;
}
return 1;
}
//查询姓名
int searchname(linklist &L,char name[10])
{
node *p;
p=L;
while(p)
{
if(strcmp(p->name,name)==0)
{
printf("编号:%s",p->id);
printf(" 姓名:%s",p->name);
printf(" 性别:%s",p->sex);
printf(" 所在部门:%s",p->part);
printf(" 学历:%s",p->xueli);
printf(" 职务:%s",p->wu);
printf(" 专业:%s",p->pro);
printf(" 毕业学校:%s\n",p->school);
}
p=p->next;
}
return 1;
}
//修改
int xiugai(linklist &L,char id[10])
{
node *p;
p=L;
while(p)
{
if(strcmp(p->id,id)==0)
{
printf("请输入员工编号| 姓名 | 性别 | 所在部门 | 学历 |职务 | 专业 | 毕业学校 \n");
scanf("%s%s%s%s%s%s%s%s",p->id,p->name,p->sex,p->part,p->xueli,p->wu,p->pro,p->school);
}
p=p->next;
}
return 1;
}
//按员工号排序
void Sort(linklist &L)
{
linklist La;
linklist p,q,m;
La=(linklist)malloc(sizeof(node));
La->next =NULL;
while(L->next)
{
for(q=L->next ,p=L->next ;p->next ;p=p->next )
{
if((strcmp( p->next->id,q->id ))>0 )
{
m=p;
q=p->next ;
}
}
if(q==L->next)
{
L->next =L->next->next ;
}
else
{
m->next =q->next ;
}
q->next =La->next ;
La->next =q ;
}
L=La;
display(L);
}
//主函数
void main()
{
linklist L;
int a;
char m;
char name[10];
char id[10];
initlist(L);
int y;
int x=1;
printf("\t\t\t 欢迎使用--员工管理系统\n");
while(x)
{
printf("\n\n*********************\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("***************************\n");
printf("请选择要进行的操作代码:");
scanf("%d",&y);
switch(y)
{
case 1: creatlist(L);
do
{
printf("否继续输入?(y/n)");
getchar();
scanf("%c",&m);
if(m=='y')
{
creatlist(L);
}
}
while(m!='n');
break;
case 2: printf("请输入修改员工编号");
getchar();
scanf("%s",&id);
xiugai(L,id);
break;
case 3: printf("请输入删除员工编号");
getchar();
scanf("%s",&id);
del(L,id);
break;
case 4: printf("请输入查询方式(1 按编号查询,2 按姓名查找)");
scanf("%d",&a);
if(a==1)
{
printf("请输入查询员工编号\n");
scanf("%s",&id);
searchid(L,id);
}
if(a==2)
{
printf("请输入查询员工姓名\n");
scanf("%s",&name);
searchname(L,name);
}
break;
case 5:
Sort(L);
break;
case 6: printf("所有员工信息如下所示\n");
display(L);
break;
case 7: x=0;
break;
}
}
}
热心网友
时间:2022-06-25 03:27
和嘎哈肺结核