#include<STDIO.H>
#include<WINDOWS.H>
#include<STDLIB.H>
#include<STRING.H>
typedef struct St{
int bianhao;
char name[20];
char sex[20];
char xueli[20];
char bumen[10];
char st[10];
struct St *next;
}St,*List;
void Read(List &T);
void Save(List T);
void Welcome();
void Addstudent(List &T);
void Deletestudent(List &T);
void Fixstudent(List &T);
void Searchstudent(List T);
void Viewstudent(List T);
void paixu(List &T);
void CSh(List &T)//初始化头结点
{
T=(St*)malloc(sizeof(St));
T->next=NULL;
}
void main()
{
List T;
CSh(T);
Read(T);
int choice=1;
while (choice!=0)
{
Welcome();
scanf("%d",&choice);
system("cls");
switch (choice)
{
case 1:Addstudent(T);
break;
case 2:Deletestudent(T);
break;
case 3:Fixstudent(T);
break;
case 4:Searchstudent(T);
break;
case 5:Viewstudent(T);
break;
case 6:Save(T);
break;
case 7:paixu(T);
break;
case 0:
printf("退出成功\n");
return;
}
}
}
void Welcome()//页面信息
{
printf("\t\t\t\t*******************************************\n");
printf("\t\t\t\t*******************************************\n");
printf("\t\t\t\t**************员工管理系统*****************\n");
printf("\t\t\t\t********** 作者:强子 ****************\n");
printf("\t\t\t\t************1.添加员工信息*****************\n");
printf("\t\t\t\t************2.删除员工信息*****************\n");
printf("\t\t\t\t************3.修改员工信息*****************\n");
printf("\t\t\t\t************4.查询员工信息*****************\n");
printf("\t\t\t\t************5.打印员工信息*****************\n");
printf("\t\t\t\t************6.保存员工信息*****************\n");
printf("\t\t\t\t************7.排序----成绩*****************\n");
printf("\t\t\t\t************0.退出----系统*****************\n");
printf("\t\t\t\t*******************************************\n");
printf("请输入选项(数字):\n");
}
void Addstudent(List &T)//添加操作
{
int x=1;
printf("添加员工信息\n");
while (x)
{
St *p;
p=(St*)malloc(sizeof(St));
printf("请输入员工编号:");
scanf("%d",&p->bianhao);
printf("请输入员工姓名:");
scanf("%s",&p->name);
printf("请输入员工性别:");
scanf("%s",&p->sex);
printf("请输入员工学历:");
scanf("%s",&p->xueli);
printf("请输入员工所属部门:");
scanf("%s",&p->bumen);
printf("请输入员工健康情况:");
scanf("%s",&p->st);
p->next=NULL;
p->next=T->next;
T->next=p;
printf("是否继续添加\n");
printf("1.继续 0.退出\n");
scanf("%d",&x);
}
printf("添加成功\n");
}
void Deletestudent(List &T)//删除
{
int u=0;
int x;
St *p=T;
printf("请输入选项\n");
printf("1.按编号删除 2.按姓名删除\n");
scanf("%d",&x);
switch (x)
{
case 1:
int q;
printf("请输入你要删除的编号\n");
scanf("%d",&q);
while (p->next!=NULL)
{
if (p->next->bianhao==q)
{
u=1;
St *m;
m=p->next;
p->next=m->next;
free(m);
break;
}
p=p->next;
}
break;
case 2:
char h[20];
printf("请输入你要删除的员工姓名\n");
scanf("%s",&h);
while (p->next!=NULL)
{
if (!strcmp(h,p->next->name))
{
u=1;
St *m;
m=p->next;
p->next=m->next;
free(m);
break;
}
p=p->next;
}
break;
}
if (u==1)
{
printf("删除成功\n");
}else if(u==0){
printf("未查询到,删除失败\n");
}
}
void Fixstudent(List &T)//修改
{
int m=0;
char x[20];
St *w;
w=T;
printf("请输入要查找的员工姓名\n");
scanf("%s",&x);
system("cls");
while(w->next!=NULL)
{
if(!strcmp(x,w->next->name))
{
m=1;
int p=0;
printf("请输入你要修改的选项\n");
printf("1.修改编号 2.修改部门 3.修改健康情况\n");
scanf("%d",&p);
switch(p)
{
case 1:
printf("%d\n",w->next->bianhao);
printf("请输入编号\n");
scanf("%d",&w->next->bianhao);
break;
case 2:
printf("%s\n",w->next->bumen);
printf("请输入新部门\n");
scanf("%s",&w->next->bumen);
break;
case 3:
printf("%d\n",w->next->st);
printf("请输入新的健康情况\n");
scanf("%d",&w->next->st);
break;
}
}
w=w->next;
}
if(m==0)
{
printf("该员工不存在\n");
}else if (m==1)
{
printf("修改成功!\n");
}
}
void Searchstudent(List T)//查询
{
int a,b=1;
printf("请输入选项:\n");
while(b)
{
printf("1.按编号查询 2.按姓名查询\n");
scanf("%d",&a);
system("cls");
if(a==1)
{
int x,m=0;
printf("请输入要查找的员工编号\n");
scanf("%d",&x);
system("cls");
while(T->next!=NULL)
{
if(T->next->bianhao==x)
{
m=1;
printf("%d %s %s %s %s %s\n",T->next->bianhao,T->next->name,T->next->sex,T->next->xueli,T->next->bumen,T->next->st);
}
T=T->next;
}
if(m==0)
{
printf("该编号不存在\n");
}
}
else if(a==2)
{
char x[20];
int m=0;
printf("请输入要查找的员工姓名\n");
scanf("%s",&x);
system("cls");
while(T->next!=NULL)
{
if(!strcmp(x,T->next->name))
{
m=1;
printf("%d %s %s %s %s %s\n\n",T->next->bianhao,T->next->name,T->next->sex,T->next->xueli,T->next->bumen,T->next->st);
}
T=T->next;
}
if(m==0)
{
printf("该员工不存在\n");
}
}
printf("是否继续查找\n");
printf("1.继续 0.退出\n");
scanf("%d",&b);
system("cls");
}
}
void Viewstudent(List T)//访问
{
printf(" 编号 | 姓名 | 性别 | 学历 | 部门 | 健康情况\n");
while(T->next!=NULL)
{
printf("------------------------------\n");
printf("|%d |%s |%s | %s | %s | %s |\n",T->next->bianhao,T->next->name,T->next->sex,T->next->xueli,T->next->bumen,T->next->st);
T=T->next;
}
printf("\n");
system("pause");
system("cls");
}
void Read(List &T)
{
FILE *fp;
fp=fopen("D://yuangong.txt","r");
St p;
St *q;
St *m=T;
if (fp==NULL)
{
printf("打开失败\n");
}else{
while(fscanf(fp,"%d%s%s%s%s%s",&p.bianhao,&p.name,&p.sex,&p.xueli,&p.bumen,&p.st)!=EOF)
{
q=(St*)malloc(sizeof(St));
*q=p;
m->next=q;
m=q;
m->next=NULL;
}
}
printf("\n\n");
}
void Save(List T)//保存
{
FILE *fp;
fp=fopen("D://yuangong.txt","w");
if(fp==NULL)
{
printf("保存失败!\n");
}else{
while(T->next!=NULL)
{
fprintf(fp,"%d %s %s %s %s %s\n",T->next->bianhao,T->next->name,T->next->sex,T->next->xueli,T->next->bumen,T->next->st);
T=T->next;
}
printf("保存成功!\n");
}
}
void paixu(List &T)//排序
{
St *p,*q,*m;
p=T;
q=T->next->next;
p->next->next=NULL;
while (q!=NULL)
{
m=q;
q=q->next;
m->next=NULL;
while (p!=NULL)
{
if (p->next==NULL)
{
p->next=m;
break;
}
if (p->next->bianhao>=m->bianhao)
{
m->next=p->next;
p->next=m;
break;
}
p=p->next;
}
p=T;
}
printf("排序成功\n");
system("pause");
system("cls");
}
超简单的c语言课程设计《员工管理系统》
于 2022-11-04 18:21:22 首次发布