#include<stdio.h>
#include<stdlib.h>
typedef struct xitong
{
char ID[12];
char name[7];
char sex[3];
int age;
char profess[11];
char telephone[12];
struct xitong *next;
} xi;
void input(xi *head) /*录入人员信息*/
{
xi *pnew,*px;
int i=1;
pnew=head;
px=head;
int n;
printf(" 请输入录入人数: ");
scanf("%d",&n);
while(i<=n)
{
pnew=(xi *)malloc(sizeof(xi));
printf("\n *************** 人员信息录入 ******************\n");
printf("\n 请输入第%d个人员的信息:\n",i);
printf("\n 姓名:");
scanf("%s",&pnew->name);
printf(" 学号:");
scanf("%s",&pnew->ID);
printf(" 性别:");
scanf("%s",&pnew->sex);
printf(" 年龄:");
scanf("%d",&pnew->age);
printf(" 专业:");
scanf("%s",&pnew->profess);
printf(" 电话:");
scanf("%s",&pnew->telephone);
px->next=pnew;
px=pnew;
i++;
}
px->next=NULL;
printf("\n 输入已完成,请键入1返回菜单: ");
scanf("%d",&i);
printf("\n\n\n\n\n\n");
if(i==1)
return;
}
void output(xi *head) /*输出人员信息*/
{
int i;
xi *p=head;
printf("\n *************** 人员信息输出 ******************\n");
while(p!=NULL&&p->next!=NULL)
{
p=p->next;
printf("\n 姓名:%s",p->name);
printf("\n 学号:%s",p->ID);
printf("\n 性别:%s",p->sex);
printf("\n 年龄:%d",p->age);
printf("\n 专业:%s",p->profess);
printf("\n 电话:%s",p->telephone);
printf("\n\n\n");
}
printf("\n\n 输出已完成,请键入1返回菜单: ");
scanf("%d",&i);
printf("\n\n\n\n\n\n");
if(i==1)
return;
}
void search(xi *head) /*查找人员信息*/
{
int i;
char ID[11];
xi *p=head->next;
printf("\n *************** 人员信息查找 ******************\n");
printf(" 请输入人员的学号: ");
scanf("%s",&ID);
while(p->next!=NULL&&p->ID!=ID)
{
p=p->next;
}
printf("\n 姓名:%s",p->name);
printf("\n 学号:%s",p->ID);
printf("\n 性别:%s",p->sex);
printf("\n 年龄:%d",p->age);
printf("\n 专业:%s",p->profess);
printf("\n 电话:%s",p->telephone);
printf("\n\n 查找已完成,请键入1返回菜单: ");
scanf("%d",&i);
printf("\n\n\n\n\n\n");
if(i==1)
return;
}
void change(xi *head) /*修改人员信息*/
{
int i;
xi *p=head->next;
printf("\n *************** 人员信息修改 ******************\n");
printf(" 请输入要修改人员的名字: ");
char name[10];
scanf("%s",&name);
while(p->next!=NULL&&p->name!=name)
{
p=p->next;
}
printf("\n 姓名:");
scanf("%s",&p->name);
printf("\n 学号:");
scanf("%s",&p->ID);
printf("\n 性别:");
scanf("%s",&p->sex);
printf("\n 年龄:");
scanf("%d",&p->age);
printf("\n 专业:");
scanf("%s",&p->profess);
printf("\n 电话:");
scanf("%s",&p->telephone);
printf("\n 输出已完成,请键入1返回菜单: ");
scanf("%d",&i);
printf("\n\n\n\n\n\n");
if(i==1)
return;
}
void add(xi *head) /*添加人员信息*/
{
int i;
xi *pnew;
pnew=(xi *)malloc(sizeof(xi));
printf("\n *************** 人员信息添加 ******************\n");
printf(" 请输入人员的信息:\n");
printf("\n 姓名:");
scanf("%s",&pnew->name);
printf("\n 学号:");
scanf("%s",&pnew->ID);
printf("\n 性别:");
scanf("%s",&pnew->sex);
printf("\n 年龄:");
scanf("%d",&pnew->age);
printf("\n 专业:");
scanf("%s",&pnew->profess);
printf("\n 电话:");
scanf("%s",&pnew->telephone);
pnew->next=head->next;
head->next=pnew;
printf("\n 输出已完成,请键入1返回菜单: ");
scanf("%d",&i);
printf("\n\n\n\n\n\n");
if(i==1)
return;
}
void delete()
{
struct student *p,*q;
char *sp;
sp=(char *)malloc(10*sizeof(char));
printf("所删学生的姓名:");
scanf("%s",sp);
fflush(stdin);
if(first==NULL)
{
printf("当前成管为空\n");
return ;
}
if(first!=NULL&&strcmp(first->name,sp)==0)
{
q=first;
first=first->next;
free(q);
return ;
}
for(p=first,q=p->next; q!=NULL; p=q,q=q->next)
{
if(strcmp(q->name,sp)==0)
{
p->next=q->next;
free(q);
}
}
printf("\n 删除成功 \t");
free(sp);
}
int ui() /*UI界面*/
{
int i;
printf("\n * * * * * * *实验室人员管理系统* * * * * * **\n");
printf(" * *\n");
printf(" * 1.录入人员信息 *\n");
printf(" * 2.输出人员信息 *\n");
printf(" * 3.查找人员信息 *\n");
printf(" * 4.修改人员信息 *\n");
printf(" * 5.添加人员信息 *\n");
printf(" * 6.删除人员信息 *\n");
printf(" * 7.:( 退出系统 *\n");
printf(" * *\n");
printf(" * * * * * * * * * * * * * * * * * * * * * * *\n");
printf("\n 请选择(1-7): ");
scanf("%d",&i);
if(i>=0&&i<=7)
return i;
else
return 8;
}
int main()
{
int i;
xi *head,*pnew,*px;
head=(xi *)malloc(sizeof(xi));
while(1)
{
switch(i=ui())
{
case 1:
printf("\n\n");
input(head);
break ;
case 2:
printf("\n\n");
output(head);
break ;
case 3:
printf("\n\n");
search(head);
break ;
case 4:
printf("\n\n");
change(head);
break ;
case 5:
printf("\n\n");
add(head);
break ;
case 6:
printf("\n\n");
delet(head);
break ;
case 7:
printf(" \n\n :) 感谢使用实验室人员管理系统\n\n\n\n");
return 0;
}
}
}
Ivoth