饭店管理系统,用C来编写,链表存储

  • n5_482147
    了解作者
  • 393.5KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-04-08 07:28
    上传日期
有房间的预定,推定,修改等操作,用链表进行存储
客房管理.rar
  • shiyan
  • Debug
  • vc60.pdb
    52KB
  • vc60.idb
    41KB
  • kd.pch
    222.7KB
  • kd.ilk
    198KB
  • kd.exe
    172.1KB
  • shiyan.ilk
    229.6KB
  • shiyan.pch
    222.5KB
  • shiyan.pdb
    497KB
  • shiyan.exe
    196.1KB
  • kd.pdb
    481KB
  • kd.obj
    21.2KB
  • kd.dsp
    3.3KB
  • shiyan.dsp
    4.2KB
  • kd.opt
    47.5KB
  • shiyan.opt
    47.5KB
  • shiyan.plg
    885B
  • kd.ncb
    33KB
  • shiyan.ncb
    41KB
  • kd.plg
    1.1KB
  • kd.dsw
    529B
  • shiyan.dsw
    518B
  • kd.cpp
    7.3KB
内容介绍
#include "stdio.h" #include "stdlib.h" #include "string.h" #include "conio.h" int count=0; typedef struct { //顾客 char Name[20]; char ID[20]; int CustomerNum; }Customer_Info,*PCustomer_Info; typedef struct node{ //定义房间 int RoomNum; Customer_Info customer; struct node *next; }Room_Info,*PRoom_Info; /********************************************************************************************/ PRoom_Info init_Room_Info()//初始化 { //初始化链表 PRoom_Info l; l=(PRoom_Info)malloc(sizeof(Room_Info)); if(l==NULL) { exit(0); } l->next=NULL; return l; } /********************************************************************************************/ PRoom_Info location_room(PRoom_Info H)//定位下客户的储存地址 { PRoom_Info p; p=H; while(p->next!=NULL) p=p->next; return p; } /********************************************************************************************/ int search_room(PRoom_Info H,int i)//查找房间号为i的房间是否被预定 { PRoom_Info s,p; s=H; if(i>=1001&&i<=1024) { if(s->next==NULL) return 0; else { p=s->next; while(p->RoomNum!=i&&p->next!=NULL) p=p->next; if (p->RoomNum==i) return 1; else return 0; } } else return 1; } /********************************************************************************************/ void Input_Customer(PRoom_Info HH)//输入客户信息 { char name[22],id[18]; //数字待修订 int rn,n; PRoom_Info q,p; p=(PRoom_Info)malloc(sizeof(Room_Info));//申请内存,设计一个节点 q=location_room(HH); printf("\n请输入您的姓名:"); scanf("%s",name); strcpy(p->customer.Name,name); printf("\n请输入您要选择预定的房间号码(1001~1024):");//输入房间号 scanf("%d",&rn); while(search_room(HH,rn)==1) { printf("\n此房间已经被预定,或者您的输入有误,请重新输入:"); scanf("%d",&rn); } p->RoomNum=rn; printf("\n请输入您的身份证号码(18位):"); //输入身份证号码 while(1) { scanf("%s",id); if (strlen(id)==18)//数字待修订 break; else printf("\n输入有误,请重新输入\n"); } strcpy(p->customer.ID,id); printf("\n请输入您的入住人数(1~3):");//输入入住人数 scanf("%d",&n); while(n>3) { printf("\n此房间最大容量为3人,请重新安排您的入住方式\n"); printf("\n请输入您的入住人数:"); scanf("%d",&n); } p->customer.CustomerNum=n; p->next=NULL; q->next=p; count++; } /********************************************************************************************/ void Show_AllCustomer(PRoom_Info e)//显示所有的房客信息 { PRoom_Info t; t=e; t=t->next; if(t==NULL) { printf("\n无客户入住\n"); return; } else { printf(" 姓名 房间号 身份证号 入住人数 \n\n "); while(t!=NULL) //for(int i=0;i<count;i++) { printf("%s",t->customer.Name);printf(" "); printf("%d",t->RoomNum);printf(" "); printf("%s",t->customer.ID);printf(" "); printf("%d",t->customer.CustomerNum); printf("\n\n"); t=t->next; } } } /********************************************************************************************/ int chackout_Room(PRoom_Info e,int i)//退房 { PRoom_Info t,p,q; t=e; if(t->next==NULL) { printf("\n无客房被预定,何谈退房。请选其他选项\n"); return 0; } else q=e; p=e->next; while(p->RoomNum!=i&&p->next!=NULL) { p=p->next; q=q->next; } if(p->RoomNum==i) { q->next=p->next; free(p); printf("\n已经成功为退房\n"); return 1; } else printf("\n此房间尚且空缺\n"); return 0; } /********************************************************************************************/ int Change_Room(PRoom_Info e,int n,int m)//换房 { PRoom_Info t,p; t=e; if(t->next==NULL) { printf("\n无客房被预定,何谈退房。请选其他选项\n"); return 0; } else p=e->next; while(p->RoomNum!=n&&p->next!=NULL) p=p->next; p->RoomNum=m; printf("\n已经成功为您调换房间\n"); return 1; } /********************************************************************************************/ int show_room(PRoom_Info H,int i)//输出房间号为i的客房信息 { PRoom_Info s; s=H; if(s->next==NULL) { printf("\n无客房被预定,何谈输出。请选其他选项\n"); return 0; } else if(i>=1001&&i<=1024) { s=s->next; while(s->RoomNum!=i&&s->next!=NULL) s=s->next; if (s->RoomNum==i) { printf(" 姓名 房间号 身份证号 入住人数 \n\n "); printf("%s",s->customer.Name);printf(" "); printf("%d",s->RoomNum);printf(" "); printf("%s",s->customer.ID);printf(" "); printf("%d",s->customer.CustomerNum); return 1; } else return 0; } else return 0; } /********************************************************************************************/ void jiemian(); int main() { PRoom_Info R; R=init_Room_Info();//申请内存,设计一个节点 int i=1; while(i==1) { system("cls"); jiemian(); int choice; scanf("%d",&choice); switch(choice) { case 0: i=0; break; case 1: { system("cls"); if(count>24) printf("对不起,客房已满!"); else Input_Customer(R); printf("\n\n"); printf("\n宾馆现在已经登记房间数:%d\n",count); printf("\n\n"); printf("\n1:继续\n0:退出\n"); int a; scanf("%d",&a); i=a; break; } case 2: { int ch,k; printf("\n输入您要退的房间号:"); scanf("%d",&ch); k=chackout_Room(R,ch); if(k==1) printf("\n退房成功\n"); else printf("\n不能完成退房,请重新确认退房信息\n"); printf("\n\n \n "); printf("\n1:继续\n0:退出\n"); int b; scanf("%d",&b); i=b; system("cls"); break; } case 3: { int n1,n2; printf("输入将被替换的房间号和替换的房间号:\n"); scanf("%d%d",&n1,&n2); Change_Room(R,n1,n2); printf("\n\n \n "); printf("\n1:继续\n0:退出\n"); int c; scanf("%d",&c); i=c; system("cls"); break; } case 4: { int nn,h; printf("请输入您要查询的房间号:"); scanf("%d",&nn); h=show_room(R,nn); if(h==0) printf("查询失败"); printf("\n\n \n "); printf("\n1:继续\n0:退出\n"); int d; scanf("%d",&d); i=d; system("cls"); break; } case 5: { Show_AllCustomer(R); printf("\n\n \n "); printf("\n1:继续\n0:退出\n"); int e; scanf("%d",&e); i=e; system("cls"); break; } } } return 0; } /********************************************************************************************/ void jiemian() { printf("\n\n \n "); printf("\n\n \n "); printf(" ------------*****************------------ \n "); printf(" | 0:退出 | \n "); printf(" | 1:订房 | \n "); printf(" | 2:退房 | \n "); printf(" | 3:换房 | \n "); printf(" | 4:查询 | \n "); printf(" | 5:统计 | \n "); printf(" ------------*****************------------ \n "); }
评论
    相关推荐