C# · 12月 20, 2021

酒店管理系统 c语言链表

@H_4040@#include<stdio.h>

@H4040@#include<string.h>

@H4040@#include<stdlib.h>

@H4040@#define MaxSize 20

@H404_0@typedef struct guestinfo

@H4040@{

@H4040@char name[20];

@H4040@int sum;

@H4040@char time[10];

@H4040@int number;

@H404_0@struct guestinfo *next;

@H4040@}GuestLink,*Pointer;

@H4040@void Insert(Pointer *Head);

@H4040@void Search(Pointer Head);

@H4040@void Update(Pointer Head);

@H4040@void Delete(Pointer *Head);

@H4040@void Show(Pointer Head);

@H4040@int main()

@H4040@{

@H4040@Pointer Head=NULL;

@H4040@int i;

@H4040@do

@H4040@{

@H4040@printf(“n”);

@H4040@printf(“1—插入n”);

@H404_0@printf(“2—查询n”);

@H_404_0@printf(“3—修改n”);

@H_404_0@printf(“4—删除n”);

@H_404_0@printf(“5—显示n”);

@H_404_0@printf(“6—退出n”);

@H_4040@scanf(“%d”,&i);

@H4040@switch(i)

@H4040@{

@H4040@case 1:Insert(&Head);break;

@H4040@case 2:Search(Head);break;

@H4040@case 3:Update(Head);break;

@H4040@case 4:Delete(&Head);break;

@H4040@case 5:Show(Head);break;

@H4040@case 6:break;

@H4040@default:printf(“重新输入”);break;

@H4040@}

@H4040@}while(i!=6);

@H4040@return 0;

@H4040@}

@H4040@void Insert(Pointer *Head)

@H4040@{

@H404_0@int innumber;

@H4040@Pointer p,q,r;

@H4040@printf(“请输入编号:”);

@H404_0@scanf(“%d”,&innumber);

@H4040@p=q=*Head;

@H4040@while(p!=NULL)

@H4040@{

@H404_0@if(p->number==innumber)

@H4040@{

@H4040@printf(“已经有相同编号”);

@H4040@return;

@H4040@}

@H4040@else

@H4040@{

@H4040@q=p;p=p->next;

@H4040@}

@H4040@}

@H4040@r=(Pointer)malloc(sizeof(GuestLink));

@H4040@r->next=NULL;

@H4040@if(r==NULL)

@H4040@{

@H4040@printf(“error”);

@H4040@return;

@H4040@}

@H4040@if(q==NULL)

@H4040@*Head=r;

@H4040@else

@H4040@{

@H4040@q->next=r;

@H4040@}

@H404_0@r->number=innumber;

@H4040@printf(“姓名 人数 用餐时间n”);

@H404_0@scanf(“%s%d%s”,r->name,&r->sum,r->time);

@H_4040@}

@H4040@void Search(Pointer Head)

@H4040@{

@H4040@int flag=1,number;

@H4040@Pointer p;

@H4040@printf(“请输入编号:”);

@H4040@scanf(“%d”,&number);

@H4040@p=Head;

@H4040@while(p!=NULL&&flag)

@H4040@{

@H4040@if(p->number==number)

@H4040@{

@H404_0@printf(“姓名:%s n人数:%d n用餐时间:%sn”,p->name,p->sum,p->time);

@H_4040@flag=0;

@H4040@}

@H4040@else

@H4040@p=p->next;

@H4040@}

@H4040@if(flag)

@H4040@printf(“no data”);

@H4040@}

@H4040@void Update(Pointer Head)

@H4040@{

@H4040@int flag=1,&number);

@H4040@p=Head;

@H4040@while(p!=NULL&&flag)

@H4040@{

@H4040@if(p->number==number)

@H4040@{

@H4040@printf(“人数 用餐时间n”);

@H404_0@scanf(“%d%s”,&p->sum,p->time);

@H_4040@flag=0;

@H4040@}

@H4040@else

@H4040@p=p->next;

@H4040@}

@H4040@if(flag)

@H4040@printf(“no data”);

@H4040@}

@H4040@void Delete(Pointer *Head)

@H4040@{

@H4040@int flag=1,number;

@H4040@Pointer p,q;

@H4040@printf(“请输入编号:”);

@H4040@scanf(“%d”,&number);

@H4040@p=q=*Head;

@H4040@while(p!=NULL&&flag)

@H4040@{

@H4040@if(p->number==number)

@H4040@{

@H4040@if(p==*Head)

@H4040@{

@H4040@*Head=p->next;

@H4040@free(p);

@H4040@}

@H4040@else

@H4040@{

@H4040@q->next=p->next;

@H4040@free(p);

@H4040@}

@H4040@flag=0;

@H4040@}

@H4040@else

@H4040@{

@H4040@q=p;

@H4040@p=p->next;

@H4040@}

@H4040@}

@H4040@if(flag)

@H4040@printf(“no data”);

@H4040@}

@H4040@void Show(Pointer Head)

@H4040@{

@H4040@Pointer p;

@H4040@p=Head;

@H4040@while(p!=NULL)

@H4040@{

@H404_0@printf(“编号:%d 姓名:%s 人数:%d 用餐时间:%sn”,p->number,p->time);

@H_4040@p=p->next;

@H4040@}

@H404_0@}