#include#include #include #include #include #include #define manager_name "04201143" #define manager_name2 "1668082833" void search(); typedef struct node { char name[20]; char bre[20]; int money; int dz; int jj; struct node *next; }Node,*Linklist; typedef struct hotel { //char ch; char num[20]; char dj[50]; //判断房间状态(空房,脏房还是客房) int price; struct hotel *next; }HOTEL,*LL; typedef struct people { //char ch; char num[20]; char roomname[40]; char name[40]; char sex[20]; int day; char ID[20]; struct people *next; }PEOPLE,*PP; typedef struct data { char name[40]; char sex[50]; char ID[50]; int day; char num[10]; float yajin[50]; struct data *next; }datatype,*LINK; void gettime ()//获取当前时间函数 { time_t t; struct tm * lt; time (&t);//获取当前时间 lt = localtime (&t);//转为时间结构。 printf ( "%d/%d/%d %d:%d:%dn",lt->tm_year+1900, lt->tm_mon, lt->tm_mday, lt->tm_hour, lt->tm_min, lt->tm_sec);//输出结果 } void correct(char num[15]); void correct2(char num[15]); void correct3(char num[15]); void correct4(char num[15]); void correct5(char num[15]); void correct6(char num[15]); void search1(); void search2(); void search3(); void search4(); void search5(); void search6(); typedef struct bill//账单函数 { char name[40]; char roomname[40]; int price; char num[20]; int price2; int amount; } BILL; void save(Linklist head)//选择所需住的房间 { Node *r; FILE *fp; fp=fopen("d:\code\data.txt","wt"); for(r=head;r!=NULL;r=r->next) { fprintf(fp,"%s %s %d %d %dn",r->name,r->bre,r->money,r->dz,r->jj); } printf("保存成功!n");//文件保存界面 fclose(fp); } void save1(LL he)//选择房间号 1 { HOTEL *rp; FILE *ftp; ftp=fopen("d:\code\data1.txt","wt"); for(rp=he;rp!=NULL;rp=rp->next) { fprintf(ftp,"%s %sn",rp->num,rp->dj); } printf("保存成功!n");//文件保存界面 fclose(ftp); } void save2(LL he)//选择房间号 2 { HOTEL *rp; FILE *f2p; f2p=fopen("d:\code\data2.txt","wt"); for(rp=he;rp!=NULL;rp=rp->next) { fprintf(f2p,"%s %sn",rp->num,rp->dj); } printf("保存成功!n");//文件保存界面 fclose(f2p); } Linklist input()//房间类型,价格建立 { Node *r,*s,*head; char m; int i; head=(Node *)malloc(sizeof(Node)); head->next=NULL; r=head; do { s=(Node *)malloc(sizeof(Node)); printf("请输入房间类型名:n"); scanf("%s",s->name); printf("请输入有无早餐:n"); scanf("%s",s->bre); printf("请输入门市价:n"); scanf("%d",&s->money); printf("请输入周五打折价:n"); scanf("%d",&s->dz); printf("请输入员工奖金:n"); scanf("%d",&s->jj); r->next=s; r=s; printf("请选择是否继续输入,Y:继续,N:退出n"); m=getche(); printf("n"); }while(m=='y'||m=='Y'); r->next=NULL; save(head); return head;//链表的创建与保存 } LL in()//房间号,房间状态信息建立 { HOTEL *rp,*se,*he; char mp; he=(HOTEL *)malloc(sizeof(HOTEL)); he->next=NULL; rp=he;//使rp代替he移动 do { se=(HOTEL *)malloc(sizeof(HOTEL)); printf("请输入房间号:n"); scanf("%s",se->num); printf("请输入房间状态:n"); scanf("%s",se->dj); rp->next=se; rp=se; printf("请选择是否继续输入,Y:继续,N:退出n"); mp=getche(); printf("n"); }while(mp=='y'||mp=='Y'); rp->next=NULL; save1(he); return he;//链表的创建与保存 } LL in2()//房间号,房间状态信息建立 2 { HOTEL *rp,*se,*he; char mp; he=(HOTEL *)malloc(sizeof(HOTEL)); he->next=NULL; rp=he; do { se=(HOTEL *)malloc(sizeof(HOTEL)); printf("请输入房间号:n"); scanf("%s",se->num); printf("请输入房间状态:n"); scanf("%s",se->dj); rp->next=se; rp=se; printf("请选择是否继续输入,Y:继续,N:退出n"); mp=getche(); printf("n"); }while(mp=='y'||mp=='Y'); rp->next=NULL; save2(he); return he;//链表的创建与保存 } //账号密码登录 int islogin() { int times = 0; //密码输入次数 char username[10]; int o; char userword[10]; char mima1[10]; char mima2[10]; char mima[10]="201143"; loop: o=0; printf("欢迎使用酒店管理系统(限员工使用)n"); printf("请输入您的账号密码:n账号:"); fflush(stdin);//清除缓存区 gets(username); printf("密码:"); while(mima1[o]=getch()) { if(mima1[o]=='r')break; { mima2[o]=mima1[o]; putchar('*'); } o++; } while (!(strcmp(username, manager_name) == 0 && strcmp(mima2, mima) == 0)) { times++; //密码输入错误 times++ if (times > 3) { printf("nnnntttt账号或密码输入错误累计达到%d次,系统将于3秒后关闭", times); void clock_delay(); system("cls"); char shutdown[] = { "系统将于%d秒后关闭..." }; for (int i = 0; i < 3; i++) { printf(shutdown, 3 - i); void clock_delay(); system("cls"); } exit(0); } printf("nnnntttt账号或密码输入错误,你还有%d次登录机会,按任意键重新登录...", 4 - times); getch(); system("cls"); goto loop; } printf("n登陆成功!"); Sleep(1000); system("cls"); return 1; } int islogin2() { int times = 0; //密码输入次数 char username[20]; int o; char userword[20]; char mima1[20]; char mima2[20]; char mima[20]="123456789"; loop: o=0; printf("欢迎使用酒店管理系统(限管理员使用)n"); printf("请输入您的账号密码:n账号:"); fflush(stdin);//清除缓存区 gets(username); printf("密码:"); while(mima1[o]=getch()) { if(mima1[o]=='r')break; { mima2[o]=mima1[o]; putchar('*'); } o++; } while (!(strcmp(username, manager_name2) == 0 && strcmp(mima2, mima) == 0)) { times++; //密码输入错误 times++ if (times > 3) { printf("nnnntttt账号或密码输入错误累计达到%d次,系统将于3秒后关闭", times); void clock_delay(); system("cls"); char shutdown[] = { "系统将于%d秒后关闭..." }; for (int i = 0; i < 3; i++) { printf(shutdown, 3 - i); void clock_delay(); system("cls"); } exit(0); } printf("nnnntttt账号或密码输入错误,你还有%d次登录机会,按任意键重新登录...", 4 - times); getch(); system("cls"); goto loop; } printf("n登陆成功!"); Sleep(1000); system("cls"); return 1; } Linklist read()//读取房间信息 { Node *r,*s; Linklist h; FILE *fp; fp=fopen("d:\code\data.txt","rt"); h=(Node *)malloc(sizeof(Node)); h->next=NULL; r=h; while(!feof(fp)) { s=(Node *)malloc(sizeof(Node)); fscanf(fp,"%s %s %d %d %d",r->name,r->bre,&r->money,&r->dz,&r->jj); r->next=s; r=s; } r->next=NULL; fclose(fp); return h; } LL rea()//读取房间号和状态信息 { HOTEL *rp,*se; LL he; FILE *ftp; ftp=fopen("d:\code\data1.txt","rt"); he=(HOTEL *)malloc(sizeof(HOTEL)); he->next=NULL; rp=he; while(!feof(ftp)) { se=(HOTEL *)malloc(sizeof(HOTEL)); fscanf(ftp,"%s %s",rp->num,rp->dj); rp->next=se; rp=se; } rp->next=NULL; fclose(ftp); return he; } LL rea2()//读取房间号和状态信息 2 { HOTEL *rp,*se; LL he; FILE *f2p; f2p=fopen("d:\code\data2.txt","rt"); he=(HOTEL *)malloc(sizeof(HOTEL)); he->next=NULL; rp=he; while(!feof(f2p)) { se=(HOTEL *)malloc(sizeof(HOTEL)); fscanf(f2p,"%s %s",rp->num,rp->dj); rp->next=se; rp=se; } rp->next=NULL; fclose(f2p); return he; } void output(Linklist head)//打印房间类型信息 { Node *s; printf("房间类型t早餐t门市价t周五t奖金n"); for(s=head;s->next!=NULL;s=s->next) { printf("%st%st %dt%dt%dn",s->name,s->bre,s->money,s->dz,s->jj); } } void out(LL he)//打印房间信息 { HOTEL *se; printf("n客房号t房间状态n"); for(se=he;se->next!=NULL;se=se->next) { printf("%st%sn",se->num,se->dj); } } void out2(LL he)//打印房间信息 2 { HOTEL *se; printf("n客房号t房间状态n"); for(se=he;se->next!=NULL;se=se->next) { printf("%st%sn",se->num,se->dj); } } void save3(LL he)//选择房间号 3 { HOTEL *rp; FILE *f3p; f3p=fopen("d:\code\data3.txt","wt"); for(rp=he;rp!=NULL;rp=rp->next) { fprintf(f3p,"%s %sn",rp->num,rp->dj); } printf("保存成功!n");//文件保存界面 fclose(f3p); } LL in3()//房间号,房间状态信息建立 3 { HOTEL *rp,*se,*he; char mp; int ip; he=(HOTEL *)malloc(sizeof(HOTEL)); he->next=NULL; rp=he; do { se=(HOTEL *)malloc(sizeof(HOTEL)); printf("请输入房间号:n"); scanf("%s",se->num); printf("请输入房间状态:n"); scanf("%s",se->dj); rp->next=se; rp=se; printf("请选择是否继续输入,Y:继续,N:退出n"); mp=getche(); printf("n"); }while(mp=='y'||mp=='Y'); rp->next=NULL; save3(he); return he;//链表的创建与保存 } LL rea3()//读取房间号和状态信息 3 { HOTEL *rp,*se; LL he; FILE *f3p; f3p=fopen("d:\code\data3.txt","rt"); he=(HOTEL *)malloc(sizeof(HOTEL)); he->next=NULL; rp=he; while(!feof(f3p)) { se=(HOTEL *)malloc(sizeof(HOTEL)); fscanf(f3p,"%s %s",rp->num,rp->dj); rp->next=se; rp=se; } rp->next=NULL; fclose(f3p); return he; } void out3(LL he)//打印房间信息 3 { HOTEL *se; printf("n客房号t房间状态n"); for(se=he;se->next!=NULL;se=se->next) { printf("%st%sn",se->num,se->dj); } } void save4(LL he)//选择房间号 4 { HOTEL *rp; FILE *f4p; f4p=fopen("d:\code\data4.txt","wt"); for(rp=he;rp!=NULL;rp=rp->next) { fprintf(f4p,"%s %sn",rp->num,rp->dj); } printf("保存成功!n");//文件保存界面 fclose(f4p); } LL in4()//房间号,房间状态信息建立 4 { HOTEL *rp,*se,*he; char mp; int ip; he=(HOTEL *)malloc(sizeof(HOTEL)); he->next=NULL; rp=he; do { se=(HOTEL *)malloc(sizeof(HOTEL)); printf("请输入房间号:n"); scanf("%s",se->num); printf("请输入房间状态:n"); scanf("%s",se->dj); rp->next=se; rp=se; printf("请选择是否继续输入,Y:继续,N:退出n"); mp=getche(); printf("n"); }while(mp=='y'||mp=='Y'); rp->next=NULL; save4(he); return he;//链表的创建与保存 } LL rea4()//读取房间号和状态信息 4 { HOTEL *rp,*se; LL he; FILE *f4p; f4p=fopen("d:\code\data4.txt","rt"); he=(HOTEL *)malloc(sizeof(HOTEL)); he->next=NULL; rp=he; while(!feof(f4p)) { se=(HOTEL *)malloc(sizeof(HOTEL)); fscanf(f4p,"%s %s",rp->num,rp->dj); rp->next=se; rp=se; } rp->next=NULL; fclose(f4p); return he; } void out4(LL he)//打印房间信息 4 { HOTEL *se; printf("n客房号t房间状态n"); for(se=he;se->next!=NULL;se=se->next) { printf("%st%sn",se->num,se->dj); } } void save5(LL he)//选择房间号 5 { HOTEL *rp; FILE *f5p; f5p=fopen("d:\code\data5.txt","wt"); for(rp=he;rp!=NULL;rp=rp->next) { fprintf(f5p,"%s %sn",rp->num,rp->dj); } printf("保存成功!n");//文件保存界面 fclose(f5p); } LL in5()//房间号,房间状态信息建立 5 { HOTEL *rp,*se,*he; char mp; int ip; he=(HOTEL *)malloc(sizeof(HOTEL)); he->next=NULL; rp=he; do { se=(HOTEL *)malloc(sizeof(HOTEL)); printf("请输入房间号:n"); scanf("%s",se->num); printf("请输入房间状态:n"); scanf("%s",se->dj); rp->next=se; rp=se; printf("请选择是否继续输入,Y:继续,N:退出n"); mp=getche(); printf("n"); }while(mp=='y'||mp=='Y'); rp->next=NULL; save5(he); return he;//链表的创建与保存 } LL rea5()//读取房间号和状态信息 5 { HOTEL *rp,*se; LL he; FILE *f5p; f5p=fopen("d:\code\data5.txt","rt"); he=(HOTEL *)malloc(sizeof(HOTEL)); he->next=NULL; rp=he; while(!feof(f5p)) { se=(HOTEL *)malloc(sizeof(HOTEL)); fscanf(f5p,"%s %s",rp->num,rp->dj); rp->next=se; rp=se; } rp->next=NULL; fclose(f5p); return he; } void out5(LL he)//打印房间信息 5 { HOTEL *se; printf("n客房号t房间状态n"); for(se=he;se->next!=NULL;se=se->next) { printf("%st%sn",se->num,se->dj); } } void save6(HOTEL* he)//选择房间号 6 { HOTEL *rp; FILE *f6p; f6p=fopen("d:\code\data6.txt","wt"); for(rp=he;rp!=NULL;rp=rp->next) { fprintf(f6p,"%s %sn",rp->num,rp->dj); } printf("保存成功!n");//文件保存界面 fclose(f6p); } LL in6()//房间号,房间状态信息建立 6 { HOTEL *rp,*se,*he; char mp; int ip; he=(HOTEL *)malloc(sizeof(HOTEL)); he->next=NULL; rp=he; do { se=(HOTEL *)malloc(sizeof(HOTEL)); printf("请输入房间号:n"); scanf("%s",se->num); printf("请输入房间状态:n"); scanf("%s",se->dj); rp->next=se; rp=se; printf("请选择是否继续输入,Y:继续,N:退出n"); mp=getche(); printf("n"); }while(mp=='y'||mp=='Y'); rp->next=NULL; save6(he); return he;//链表的创建与保存 } LL rea6()//读取房间号和状态信息 6 { HOTEL *rp,*se; LL he; FILE *f6p; f6p=fopen("d:\code\data6.txt","rt"); he=(HOTEL *)malloc(sizeof(HOTEL)); he->next=NULL; rp=he; while(!feof(f6p)) { se=(HOTEL *)malloc(sizeof(HOTEL)); fscanf(f6p,"%s %sn",rp->num,rp->dj); rp->next=se; rp=se; } rp->next=NULL; fclose(f6p); return he; } void out6(LL he)//打印房间信息 6 { HOTEL *se; printf("n客房号t房间状态n"); for(se=he;se->next!=NULL;se=se->next) { printf("%st%sn",se->num,se->dj); } } PP rea8()//读取客户信息 { PEOPLE *rp,*se; PP he; FILE *f8p; f8p=fopen("d:\code\people.txt","rt"); he=(PEOPLE *)malloc(sizeof(PEOPLE)); he->next=NULL; rp=he; while(!feof(f8p)) { se=(PEOPLE *)malloc(sizeof(PEOPLE)); fscanf(f8p,"%s %s %s %s %s %d",rp->num,rp->roomname,rp->name,rp->sex,rp->ID,&rp->day); rp->next=se; rp=se; } rp->next=NULL; fclose(f8p); return he; } void out8(PP he)//打印客户信息 8 { people *se; printf("n客房号t房间类型t客户姓名t客户性别tIDt入住天数n"); for(se=he;se->next!=NULL;se=se->next) { printf("%-16st%-16st%-16st%-16st%-16st%-dn",se->num,se->roomname,se->name,se->sex,se->ID,se->day); } } void add()//增加客户入住信息 { char itime[100]; char num[15]; int gh[10],p,n,u,sum,x,l; datatype k[100]; PEOPLE v; HOTEL r[100]; BILL b[100]; Linklist h; system("cls"); printf("酒店入住客户信息建立n"); printf("请输入预定房间的个数n"); scanf("%d",&p); FILE *fp; for(n=0;n printf("请输入入住客户的姓名n"); scanf("%s",k[n].name); printf("请输入入住客户的身份证号n"); scanf("%s",k[n].ID); printf("请输入入住客户的性别n"); scanf("%s",k[n].sex); printf("请输入需要入住的天数n"); scanf("%d",&k[n].day); printf("请您选择要入住的房间n"); h=read(); output(h); printf("标单(1) 标双(2) 大床(3) 总统(4) 行政(5) 商务(6)n"); printf("请选择:"); scanf("%d",&gh[n]); switch(gh[n]) { case 1: { strcpy(b[n].roomname,"标准单人"); printf("是否可以打折?(是:1 否:2)n"); scanf("%d",&u); if(u==2) { b[n].price=100; } else if(u==1) { b[n].price=70; } LL he; he=rea(); out(he); sum=sum+7; printf("请选择你要入住的房间号:"); scanf("%s",b[n].num); strcpy(num,b[n].num); correct(num); break; } case 2: { strcpy(b[n].roomname,"标准双人"); printf("是否可以打折?(是:1 否:2)n"); scanf("%d",&u); if(u==2) { b[n].price=120; } else if(u==1) { b[n].price=100; } sum=sum+10; LL he; he=rea2(); out2(he); printf("请选择你要入住的房间号:n"); scanf("%s",b[n].num); strcpy(num,b[n].num); correct2(num); break; } case 3: { strcpy(b[n].roomname,"豪华大床"); printf("是否可以打折?(是:1 否:2)n"); scanf("%d",&u); if(u==2) { b[n].price=200; } else if(u==1) { b[n].price=150; } sum=sum+15; LL he; //he=in3(); he=rea3(); out3(he); printf("请选择你要入住的房间号:n"); scanf("%s",b[n].num); strcpy(num,b[n].num); correct3(num); break; } case 4: { strcpy(b[n].roomname,"总统套房"); printf("是否可以打折?(是:1 否:2)n"); scanf("%d",&u); if(u==2) { b[n].price=500; } else if(u==1) { b[n].price=400; } sum=sum+40; LL he; he=rea4(); out4(he); printf("请选择你要入住的房间号:n"); scanf("%s",b[n].num); strcpy(num,b[n].num); correct4(num); break; } case 5: { strcpy(b[n].roomname,"行政套间"); printf("是否可以打折?(是:1 否:2)n"); scanf("%d",&u); if(u==2) { b[n].price=250; } else if(u==1) { b[n].price=200; } sum=sum+20; LL he; //he=in5(); he=rea5(); out5(he); printf("请选择你要入住的房间号:n"); scanf("%s",b[n].num); strcpy(num,b[n].num); correct5(num); break; } case 6: { strcpy(b[n].roomname,"商务套间"); printf("是否可以打折?(是:1 否:2)n"); scanf("%d",&u); if(u==2) { b[n].price=200; } else if(u==1) { b[n].price=180; } sum=sum+18; LL he; //he=in6(); he=rea6(); out6(he); printf("请选择你要入住的房间号:n"); scanf("%s",b[n].num); strcpy(num,b[n].num); correct6(num); break; } } strcpy(b[n].name,k[n].name); printf("是否再添加一次性物品(每套7元)(是:1,否:2)n"); scanf("%d",&l); if(l==1) { printf("请输入你所需的个数:"); scanf("%d",&x); } if(l==2) x=0; b[n].price2=7*x; b[n].amount=b[n].price*k[n].day+b[n].price2+10; printf("您的账单如下:n"); printf("姓名:%sn",b[n].name); printf("%s:%d元n",b[n].roomname,b[n].price); printf("一次性物品(%d件):%d元n",x,b[n].price2); printf("服务费:10元n"); printf("合计:%dn",b[n].amount); gettime(); strcpy(v.roomname,b[n].roomname); strcpy(v.num,b[n].num); strcpy(v.name,k[n].name); strcpy(v.ID,k[n].ID); strcpy(v.sex,k[n].sex); v.day=k[n].day; FILE *frp; frp=fopen("d:\code\people.txt","at"); fprintf(frp,"%st%st%st%st%st%dn",v.num,v.roomname,v.name,v.sex,v.ID,v.day); fclose(frp); } } void delfilm(PP head,PP s); PP find(PP head); void save9(PP he)//保存客户信息 { PEOPLE *rp; FILE *f9p; f9p=fopen("d:\code\people.txt","wt"); for(rp=he;rp!=NULL;rp=rp->next) { fprintf(f9p,"%st%st%st%st%st%dn",rp->num,rp->roomname,rp->name,rp->sex,rp->ID,rp->day); } printf("保存成功!n");//文件保存界面 fclose(f9p); } //菜单显示 void menu() { printf("********************************************************n"); printf("*** 酒店管理系统 ***n"); printf("*********************************************************n"); printf("*********************系统功能菜单*************************n"); printf(" ---------------------- ---------------------- n"); printf(" ********************************************* n"); printf(" * 1.增加入住信息(打印票根) * n"); printf(" ********************************************* n"); printf(" * 2.查询入住信息 * n"); printf(" ********************************************* n"); printf(" * 3.退房服务 * n"); printf(" ********************************************* n"); printf(" * 4.删除入住信息 * n"); printf(" ********************************************* n"); printf(" * 5.退出系统 * n"); printf(" ********************************************* n"); printf(" --------------------- ----------------------- n"); printf("请选择:"); } void menu2() { printf("********************************************************n"); printf("*** 酒店管理系统 ***n"); printf("*********************************************************n"); printf("*********************系统功能菜单*************************n"); printf(" ---------------------- ---------------------- n"); printf(" ********************************************* n"); printf(" * 1.重新建立房间类型 * n"); printf(" ********************************************* n"); printf(" * 2.重新建立房间号和房间状态 * n"); printf(" ********************************************* n"); printf(" * 3.对房间类型排序 * n"); printf(" ********************************************* n"); printf(" * 4.对同一状态的房间进行统计 * n"); printf(" ********************************************* n"); printf(" * 5.退出系统 * n"); printf(" ********************************************* n"); printf(" --------------------- ----------------------- n"); printf("请选择:"); } void pai() { Node *p1=NULL,*p2=NULL,*pend=NULL; Linklist head; head=read(); p1=head; p2=head; int n; int temp1; int temp2; int temp3; char name[20]; char bre[20]; char type[20]; printf("1.房价由低到高排序n"); printf("2.按房间类型名排序n") ; scanf("%d",&n); if(n==1) { while(p1 != pend) //外循环 { //pfirst != pend 很有意思 while(p1->next != pend)//内循环 { if(p1->money> p1->next->money) { temp1=p1->money; p1->money=p1->next->money; p1->next->money=temp1; temp2=p1->jj; p1->jj=p1->next->jj; p1->next->jj=temp2; temp3=p1->dz; p1->dz=p1->next->dz; p1->next->dz=temp3; strcpy(name,p1->name); strcpy(p1->name,p1->next->name); strcpy(p1->next->name,name); strcpy(bre,p1->bre); strcpy(p1->bre,p1->next->bre); strcpy(p1->next->bre,bre); } p1=p1->next; } pend=p1;//减少最后的已排好的循环 p1=head; } printf("排序成功!n"); save(head); } if(n==2) { while(p1 != pend) //外循环 { //pfirst != pend 很有意思 while(p1->next != pend)//内循环 { if(strcmp(p1->name,p1->next->name)>0) { temp1=p1->money; p1->money=p1->next->money; p1->next->money=temp1; temp2=p1->jj; p1->jj=p1->next->jj; p1->next->jj=temp2; temp3=p1->dz; p1->dz=p1->next->dz; p1->next->dz=temp3; strcpy(name,p1->name); strcpy(p1->name,p1->next->name); strcpy(p1->next->name,name); strcpy(bre,p1->bre); strcpy(p1->bre,p1->next->bre); strcpy(p1->next->bre,bre); } p1=p1->next; } pend=p1;//减少最后的已排好的循环 p1=head; } printf("排序成功!n"); save(head); } } void choose()//进行选择 { char num[10]; int c,d,e; PP p,r; scanf("%d",&c); switch(c) { case 1:add();printf("n请按任意键返回菜单栏!");getch();menu();choose(); case 2:search();printf("n请按任意键返回菜单栏!");getch();menu();choose(); case 3: printf("请输入要退的房间的类型:n"); printf("标单(1) 标双(2) 大床(3) 总统(4) 行政(5) 商务(6)n"); printf("请选择:"); scanf("%d",&d); switch(d) { case 1:correct(num); printf("是否已通知清洁该房间:1.是t2.否n"); scanf("%d",&e); if(e==1) { correct(num); } else if(e==2) { printf("请通知清洁工清洁!"); } break; case 2:correct2(num); printf("是否已通知清洁该房间:1.是t2.否n"); scanf("%d",&e); if(e==1) { correct2(num); } else if(e==2) { printf("请通知清洁工清洁!"); } break; case 3:correct3(num); printf("是否已通知清洁该房间:1.是t2.否n"); scanf("%d",&e); if(e==1) { correct3(num); } else if(e==2) { printf("请通知清洁工清洁!"); } break; case 4:correct4(num); printf("是否已通知清洁该房间:1.是t2.否n"); scanf("%d",&e); if(e==1) { correct4(num); } else if(e==2) { printf("请通知清洁工清洁!"); } break; case 5:correct5(num); printf("是否已通知清洁该房间:1.是t2.否n"); scanf("%d",&e); if(e==1) { correct5(num); } else if(e==2) { printf("请通知清洁工清洁!"); } break; case 6:correct6(num); printf("是否已通知清洁该房间:1.是t2.否n"); scanf("%d",&e); if(e==1) { correct6(num); } else if(e==2) { printf("请通知清洁工清洁!"); } break; } break; case 4:p=rea8();r=find(p);delfilm(p,r);printf("n请按任意键返回菜单栏!");getch();menu();choose(); case 5:exit(0); } } void choose2() { int y,z,u; Linklist head; scanf("%d",&y); switch(y) { case 1:input();head=read();output(head);printf("n请按任意键返回菜单栏!");getch();menu2();choose2(); case 2: printf("请输入要退的房间的类型:n"); printf("标单(1) 标双(2) 大床(3) 总统(4) 行政(5) 商务(6)n"); printf("请选择:"); scanf("%d",&z); switch(z) { case 1:in();break; case 2:in2();break; case 3:in3();break; case 4:in4();break; case 5:in5();break; case 6:in6();break; } printf("n请按任意键返回菜单栏!");getch();menu2();choose2(); case 3: pai();printf("n请按任意键返回菜单栏!");getch();menu2();choose2(); case 4: printf("请选择你需要统计的房间类型:n"); printf("标单(1) 标双(2) 大床(3) 总统(4) 行政(5) 商务(6)n"); printf("请选择:"); scanf("%d",&u); switch(u) { case 1:search1();break; case 2:search2();break; case 3:search3();break; case 4:search4();break; case 5:search5();break; case 6:search6();break; } case 5: exit(0); } } int main(void) { int c; printf("请选择身份登录:n"); printf("1.员工身份t2.管理员身份n"); scanf("%d",&c); if(c==1) { islogin(); menu(); choose(); } if(c==2) { islogin2(); menu2(); choose2(); } } void search() { //搜索客户信息 int n; PP head; PEOPLE *r; head=rea8(); char name[20]; char num[20]; printf("1.姓名查询n"); printf("2.房号查询n"); printf("3.退出查询n"); printf("请选择方式查询:n"); scanf("%d",&n); switch(n){ case 1: printf("请输入客户姓名:n"); scanf("%s",name); for(r=head;r->next!=NULL;r=r->next) { if(strcmp(name,r->name)==0) { printf("房号t房间类型t客户姓名t客户性别tIDt入住天数n"); printf("%st%st%-8st%-8st%-4st%dn",r->num,r->roomname,r->name,r->sex,r->ID,r->day); } } if(strcmp(name,r->name)!=0&r->next->next==NULL) { printf("未找到信息n"); search(); } break; case 2:printf("请输入房间号:n"); scanf("%s",num); for(r=head;r->next!=NULL;r=r->next) { if(strcmp(num,r->num)==0) { printf("房号t房间类型t客户姓名t客户性别tIDt入住天数n"); printf("%st%st%-8st%-8st%-4st%dn",r->num,r->roomname,r->name,r->sex,r->ID,r->day); } } if(strcmp(num,r->num)!=0&&r->next->next==NULL) { printf("未找到信息n"); search(); } system("cls");menu();choose();break; case 3:Sleep(1000);system("cls");menu();choose();break; default :system("cls");search();break; } } void correct(char num[15]) //修改房间状态 { LL h; char d[100]; HOTEL *r; int price; h=rea();//读取房间号和房间状态 printf("请输入你要修改状态的房号:n"); scanf("%s",num); for(r=h;r->next!=NULL;r=r->next)//找出需要修改的房间号 { if(strcmp(num,r->num)==0) { printf("请输入修改后的房间状态:n"); scanf("%s",d); strcpy(r->dj,d); printf("修改完成n"); save1(h);//将修改完成的数据保存到文件中 break; } if(strcmp(num,r->num)!=0&&r->next->next==NULL) printf("未找到信息n"); } } void correct2(char num[15]) //修改房间状态 2 { LL h; char d[100]; HOTEL *r; int price; h=rea2(); printf("请输入你要修改状态的房号:n"); scanf("%s",num); for(r=h;r->next!=NULL;r=r->next) { if(strcmp(num,r->num)==0) { printf("请输入修改后的房间状态:n"); scanf("%s",d); strcpy(r->dj,d); printf("修改完成n"); save2(h); break; } if(strcmp(num,r->num)!=0&&r->next->next==NULL) printf("未找到信息n"); } } void correct3(char num[15]) //修改房间状态 3 { LL h; char d[100]; HOTEL *r; int price; h=rea3(); printf("请输入你要修改状态的房号:n"); scanf("%s",num); for(r=h;r->next!=NULL;r=r->next) { if(strcmp(num,r->num)==0) { printf("请输入修改后的房间状态:n"); scanf("%s",d); strcpy(r->dj,d); printf("修改完成n"); save3(h); break; } if(strcmp(num,r->num)!=0&&r->next->next==NULL) printf("未找到信息n"); } } void correct4(char num[15]) //修改房间状态 4 { LL h; char d[100]; HOTEL *r; int price; h=rea4(); printf("请输入你要修改状态的房号:n"); scanf("%s",num); for(r=h;r->next!=NULL;r=r->next) { if(strcmp(num,r->num)==0) { printf("请输入修改后的房间状态:n"); scanf("%s",d); strcpy(r->dj,d); printf("修改完成n"); save4(h); break; } if(strcmp(num,r->num)!=0&&r->next->next==NULL) printf("未找到信息n"); } } void correct5(char num[15]) //修改房间状态 5 { LL h; char d[100]; HOTEL *r; int price; h=rea5(); printf("请输入你要修改状态的房号:n"); scanf("%s",num); for(r=h;r->next!=NULL;r=r->next) { if(strcmp(num,r->num)==0) { printf("请输入修改后的房间状态:n"); scanf("%s",d); strcpy(r->dj,d); printf("修改完成n"); save5(h); break; } if(strcmp(num,r->num)!=0&&r->next->next==NULL) printf("未找到信息n"); } } void correct6(char num[15]) //修改房间状态 6 { LL h; char d[100]; HOTEL *r; int price; h=rea6(); printf("请输入你要修改状态的房号:n"); scanf("%s",num); for(r=h;r->next!=NULL;r=r->next) { if(strcmp(num,r->num)==0) { printf("请输入修改后的房间状态:n"); scanf("%s",d); strcpy(r->dj,d); printf("修改完成n"); save6(h); break; } if(strcmp(num,r->num)!=0&&r->next->next==NULL) printf("未找到信息n"); } } PP find(PP head){ //查找需要删除信息的节点 char name[20]; PP r; printf("请输入需要删除的客户姓名:n"); scanf("%s",name); r=head; while(r&&strcmp(r->name,name)){ r=r->next; } return r; } void search1() { //统计不同状态的房间 int n; LL head; HOTEL *r; head=rea(); char dj[20]; char num[20]; printf("请选择你要查询的房间状态:n"); scanf("%s",dj); for(r=head;r->next!=NULL;r=r->next) { if(strcmp(dj,r->dj)==0) { printf("房号t房间状态n"); printf("%st%sn",r->num,r->dj); } if(strcmp(dj,r->dj)!=0&&r->next->next==NULL) { printf("未找到信息n"); search1(); } } } void search2() { //统计不同状态的房间 int n; LL head; HOTEL *r; head=rea2(); char dj[20]; char num[20]; printf("请选择你要查询的房间状态:n"); scanf("%s",dj); for(r=head;r->next!=NULL;r=r->next) { if(strcmp(dj,r->dj)==0) { printf("房号t房间状态n"); printf("%st%sn",r->num,r->dj); } if(strcmp(dj,r->dj)!=0&&r->next->next==NULL) { printf("未找到信息n"); search2(); } } } void search3() { //统计不同状态的房间 int n; LL head; HOTEL *r; head=rea3(); char dj[20]; char num[20]; printf("请选择你要查询的房间状态:n"); scanf("%s",dj); for(r=head;r->next!=NULL;r=r->next) { if(strcmp(dj,r->dj)==0) { printf("房号t房间状态n"); printf("%st%sn",r->num,r->dj); } if(strcmp(dj,r->dj)!=0&&r->next->next==NULL) { printf("未找到信息n"); search3(); } } } void search4() { //统计不同状态的房间 int n; LL head; HOTEL *r; head=rea4(); char dj[20]; char num[20]; printf("请选择你要查询的房间状态:n"); scanf("%s",dj); for(r=head;r->next!=NULL;r=r->next) { if(strcmp(dj,r->dj)==0) { printf("房号t房间状态n"); printf("%st%sn",r->num,r->dj); } if(strcmp(dj,r->dj)!=0&&r->next->next==NULL) { printf("未找到信息n"); search4(); } } } void search5() { //统计不同状态的房间 int n; LL head; HOTEL *r; head=rea5(); char dj[20]; char num[20]; printf("请选择你要查询的房间状态:n"); scanf("%s",dj); for(r=head;r->next!=NULL;r=r->next) { if(strcmp(dj,r->dj)==0) { printf("房号t房间状态n"); printf("%st%sn",r->num,r->dj); } if(strcmp(dj,r->dj)!=0&&r->next->next==NULL) { printf("未找到信息n"); search5(); } } } void search6() { //统计不同状态的房间 int n; LL head; HOTEL *r; head=rea(); char dj[20]; char num[20]; printf("请选择你要查询的房间状态:n"); scanf("%s",dj); for(r=head;r->next!=NULL;r=r->next) { if(strcmp(dj,r->dj)==0) { printf("房号t房间状态n"); printf("%st%sn",r->num,r->dj); } if(strcmp(dj,r->dj)!=0&&r->next->next==NULL) { printf("未找到信息n"); search6(); } } } void delfilm(PP head,PP s){//删除链表信息 if(!s){ printf("没有客户信息!请重新输入!n"); PP find(); } else{ PP q; q=head; while(q->next!=s){ q=q->next; } q->next=s->next; free(s); printf("删除完成!n"); save9(head); } }
看到此篇博文的小伙伴们如发现有什么问题,欢迎在下方留言指正,博主一定虚心接受并改正!如果对你有所帮助,可以给博主留个赞!



