#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;
}GuestLink,*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(GuestLink));
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;
}
}
酒店管理系统 c语言链表
最新推荐文章于 2023-12-04 19:55:33 发布