#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define MaxSize 20
typedef struct guest_info
{
char name[20];
int sum;
char time[10];
int number;
struct guest_info *next;
}Guest ,*Pointer;
void Insert(Pointer *Head);
void Search(Pointer Head);
void Update(Pointer Head);
void Delete(Pointer *Head);
void Show(Pointer Head);
int main()
{
Pointer Head=NULL;
int i;
do
{
printf(\"\\n\");
printf(\"1---插入\\n\");
printf(\"2---查询\\n\");
printf(\"3---修改\\n\");
printf(\"4---删除\\n\");
printf(\"5---显示\\n\");
printf(\"6---退出\\n\");
scanf(\"%d\",&i);
switch(i)
{
case 1:Insert(&Head);break;
case 2:Search(Head);break;
case 3:Update(Head);break;
case 4:Delete(&Head);break;
case 5:Show(Head);break;
case 6:break;
default:printf(\"重新输入\");break;
}
}while(i!=6);
return 0;
}
void Insert(Pointer *Head)
{
int in_number;
Pointer p,q,r;
printf(\"请输入编号:\");
scanf(\"%d\",&in_number);
p=q=*Head;
while(p!=NULL)
{
if(p->number==in_number)
{
printf(\"已经有相同编号\");
return;
}
else
{
q=p;p=p->next;
}
}
r=(Pointer)malloc(sizeof(Guest ));
r->next=NULL;
if(r==NULL)
{
printf(\"error\");
return;
}
if(q==NULL)
*Head=r;
else
{
q->next=r;
}
r->number=in_number;
printf(\"姓名 人数 用餐时间\\n\");
scanf(\"%s%d%s\",r->name,&r->sum,r->time);
}
void Search(Pointer Head)
{
int flag=1,number;
Pointer p;
printf(\"请输入编号:\");
scanf(\"%d\",&number);
p=Head;
while(p!=NULL&&flag)
{
if(p->number==number)
{
printf(\"姓名:%s \\n人数:%d \\n用餐时间:%s\\n\",p->name,p->sum,p->time);
flag=0;
}
else
p=p->next;
}
if(flag)
printf(\"no data\");
}
void Update(Pointer Head)
{
int flag=1,number;
Pointer p;
printf(\"请输入编号:\");
scanf(\"%d\",&number);
p=Head;
while(p!=NULL&&flag)
{
if(p->number==number)
{
printf(\"人数 用餐时间\\n\");
scanf(\"%d%s\",&p->sum,p->time);
flag=0;
}
else
p=p->next;
}
if(flag)
printf(\"no data\");
}
void Delete(Pointer *Head)
{
int flag=1,number;
Pointer p,q;
printf(\"请输入编号:\");
scanf(\"%d\",&number);
p=q=*Head;
while(p!=NULL&&flag)
{
if(p->number==number)
{
if(p==*Head)
{
*Head=p->next;
free(p);
}
else
{
q->next=p->next;
free(p);
}
flag=0;
}
else
{
q=p;
p=p->next;
}
}
if(flag)
printf(\"no data\");
}
void Show(Pointer Head)
{
Pointer p;
p=Head;
while(p!=NULL)
{
printf(\"编号:%d 姓名:%s 人数:%d 用餐时间:%s\\n\",p->number,p->name,p->sum,p->time);
p=p->next;
}
}