C语言旅馆信息管理系统.doc
《C语言旅馆信息管理系统.doc》由会员分享,可在线阅读,更多相关《C语言旅馆信息管理系统.doc(26页珍藏版)》请在咨信网上搜索。
C语言旅馆信息管理系统 26 2020年4月19日 文档仅供参考 /* * *题目:旅店信息管理系统 * *小组成员:闫若琳 戴雨晨 马渊沐 张子飞 李闯 王浩 崔以博 孙浩浩 李春普 温健成 */ #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> #define MIN 1 #define MAX 30 #define LEN sizeof(struct Hotel) //用LEN代替结构体的"长度" void regeist(); void out_information(); void search_number(); void show_all(); void search_name(); void change(); void fire(); struct Hotel *load(); FILE *fp; struct Hotel { int room_number; char name [20]; char sex[10]; char ID [20]; float paid[10]; int inyear ; int inmonth ; int inday ; struct Hotel *next ; }; struct Hotel *load() //定义load函数读取当前的信息,并存到内存链表中 { struct Hotel *head,*pb, *s ; pb=(struct Hotel *)malloc(LEN); //开辟新的节点 s =(struct Hotel *)malloc(LEN); if((pb==NULL)||(s==NULL)) { printf ("动态内存分配失败!\n"); getch(); exit(0); } if((fp=fopen("resturant.txt","rb"))==NULL) { printf ("无法打开文件!\n"); getch(); exit(0); } head = pb; while (fread (s,LEN,1,fp)) //读取当前的信息,并存到链表中 { pb->next = s; pb = s; s = (struct Hotel *)malloc(LEN); } pb->next =NULL; return head ; //返回链表的头指针 } int main () //崔以博、孙浩浩 { char choice ; do {printf ("\n\n--------------------------欢迎使用旅店信息管理系统---------------------------\n\n"); printf ("1.查看旅店信息\n2.查看某一房间信息\n3.查看旅客信息\n"); printf ("4.查找某一旅客信息\n5.旅客入住\n6.旅客换房\n7.旅客退房\n8.退出\n"); printf ("\n-----------------------------------------------------------------------------\n"); choice=getch(); switch (choice) { case '1':out_information();break; case '2':search_number();break; case '3':show_all();break; case '4':search_name();break; case '5':regeist();break; case '6':change();break; case '7':fire();break; case '8':exit(0);break; default :printf ("Error !");break ; } printf ("\n\n请按任意键继续 !\n"); getch(); system("cls"); }while(1); return 0 ; } void out_information() //张子飞:定义out_information函数,完成查看旅店信息功能 { FILE *fp; char ch ; if ((fp=fopen("information.txt","r"))==NULL) { printf ("无法打开文件!\n"); getch(); exit(0); } ch=fgetc(fp); system("cls"); printf("\n\n\t\t\t旅店信息介绍: (若没有信息请返回创立)"); printf ("\n-------------------------------------------------------------------------------\n\n\t"); while (ch!=EOF) { putchar(ch); ch=fgetc(fp); } fclose(fp); } void search_number () //李春普、温健成:定义search_number函数,用来完成查看某一房间的信息 { char ch[2] ; int room_number ; struct Hotel *head, *pa ; head=load(); printf ("\n请输入需要查看的房间序号:(%d~%d):",MIN,MAX); scanf ("%d",&room_number); pa= head->next; if (room_number<MIN||room_number>MAX) { printf ("\a\nError!"); return ; } do { if (pa) { if(room_number==pa->room_number) //如果找到相应信息,则输出 { printf ("\n"); printf ("roomnumber:\t%d",pa->room_number); printf ("\n"); printf ("name:\t\t%s",pa->name); printf ("\n"); printf ("sex:\t\t%s",pa->sex); printf ("\n"); printf ("ID:\t\t%s",pa->ID); printf ("\n"); printf ("paid:\t\t%s",pa->paid); printf ("\n"); printf ("%d %d %d",pa->inyear,pa->inmonth,pa->inday); printf ("\n"); printf ("\n请选择是否继续查看信息(y/n):\n"); scanf ("%s",ch); if((strcmp(ch,"Y")!=0)&&(strcmp(ch,"y")!=0)) { return; } else { printf ("\n请输入需要查看的房间序号:(%d~%d):",MIN,MAX); scanf ("%d",&room_number); pa= head->next; if (room_number<MIN||room_number>MAX) { printf (" 无此房间!"); return; } continue ; } } pa = pa->next; } else { printf ("\n该房间还没有旅客入住"); return; } }while(1); } void show_all() //戴雨晨:定义是show_all函数,用来显示所有旅客信息 { struct Hotel *head, *pa ; head=load(); pa= head->next; printf ("\n所有入住旅客的信息如下:\n"); while (pa) //显示所有的旅客信息 { printf ("\n"); printf ("roomnumber:\t%d",pa->room_number); printf ("\n"); printf ("name:\t\t%s",pa->name); printf ("\n"); printf ("sex:\t\t%s",pa->sex); printf ("\n"); printf ("ID:\t\t%s",pa->ID); printf ("\n"); printf ("paid:\t\t%s",pa->paid); printf ("\n"); printf ("date:\t\t%d %d %d",pa->inyear,pa->inmonth,pa->inday); printf ("\n"); pa = pa->next; } } void search_name () //马渊沐:定义search_name函数,用来完成查看某一旅客的信息 { char ch[2] ; char inname[20] ; //用数组inname[20]来储存需要查询的旅客name struct Hotel *head, *pa ; head=load(); printf ("\n请输入需要查看的旅客姓名:"); scanf ("%s",inname); pa= head->next; do { if (pa) { if(strcmp(inname,pa->name)==0) { printf ("\n"); printf ("roomnumber:\t%d",pa->room_number); printf ("\n"); printf ("name:\t\t%s",pa->name); printf ("\n"); printf ("sex:\t\t%s",pa->sex); printf ("\n"); printf ("ID:\t\t%s",pa->ID); printf ("\n"); printf ("paid:\t\t%s",pa->paid); printf ("\n"); printf ("date:\t\t%d %d %d",pa->inyear,pa->inmonth,pa->inday); printf ("\n"); printf ("\n请选择是否继续查看信息(y/n):\n"); scanf ("%s",ch); if((strcmp(ch,"Y")!=0)&&(strcmp(ch,"y")!=0)) { return; } else { printf ("\n请输入需要查看的旅客姓名:"); scanf ("%s",inname); pa= head->next; continue ; } } pa = pa->next; } else { printf ("\n没有查到该旅客的信息"); return ; } }while(1); } void regeist() //闫若琳:定义regeist函数实现入住功能 { char ch[2] ; int number ; struct Hotel *head,*p1,*p2,*pa; head=load(); pa= head->next; printf ("\n已入住房间:\n"); while (pa) { printf ("\n"); printf ("roomnumber:\t%d",pa->room_number); pa = pa->next; } fclose(fp); if((fp=fopen("resturant.txt","a+"))==NULL) { printf ("无法打开文件!\n"); getch(); exit(0); } head=NULL; p1=(struct Hotel *)malloc(LEN); p2=(struct Hotel *)malloc(LEN); if ((p1==NULL)||(p2==NULL)) { printf ("动态内存分配失败!\n"); getch(); exit(0); } printf ("\n请登记入住信息!\n"); printf ("请选择房间号(%d~%d):",MIN,MAX); scanf ("%d",&number); if (number<MIN||number>MAX) { printf ("无此房间!"); return; } p1->room_number=number ; //在该房间没有旅客时,登记入住 printf ("name:\t"); scanf ("%s",&p1->name); printf ("sex:\t"); scanf ("%s",&p1->sex); printf ("ID:\t"); scanf ("%s",&p1->ID); printf ("paid:\t"); scanf ("%s",&p1->paid); printf ("date(年月日空格隔开):"); scanf ("%d %d %d",&p1->inyear,&p1->inmonth,&p1->inday); p1->next=NULL ; if(head==NULL) //将输入的信息保存到链表 { head=p1; p2=p1 ; } else { p2->next=p1; p2=p1 ; } fwrite(p2,LEN,1,fp); fclose (fp); //将链表信息保存到磁盘文件 printf ("\n请选择是否继续登记信息 (y/n):"); //判断是否继续登记旅客信息 scanf ("%s",ch); if((strcmp(ch,"y")!=0)) { printf ("\n登记旅客入住信息成功!"); return(0); } else regeist(); return ; //登记完成后返回头链表指针 } void change() //李创:定义change函数实现换房功能 { int room_number ; int newroom_number ; struct Hotel *head, *pa,*L ; head=load(); printf ("\n请输入需要换房的房间序号:(%d~%d):",MIN,MAX); scanf ("%d",&room_number); if (room_number<MIN||room_number>MAX) { printf ("无此房间!"); getch(); return; } pa= head->next; do { if (pa) { if(room_number==pa->room_number) { printf ("\n"); printf ("roomnumber:\t%d",pa->room_number); printf ("\n"); printf ("name:\t\t%s",pa->name); printf ("\n"); printf ("sex:\t\t%s",pa->sex); printf ("\n"); printf ("ID:\t\t%s",pa->ID); printf ("\n"); printf ("paid:\t\t%s",pa->paid); printf ("\n"); printf ("date:\t\t%d %d %d",pa->inyear,pa->inmonth,pa->inday); printf ("\n"); printf ("\n请输入需要换到的房间序号:(%d~%d):",MIN,MAX); scanf ("%d",&newroom_number); if (newroom_number<MIN||newroom_number>MAX) { printf ("无此房间!"); getch(); return; } pa->room_number=newroom_number ; break ; } pa = pa->next; } else { printf ("\n该房间还没有旅客入住!\n"); getch(); return; } }while(1); fclose(fp); if((fp=fopen("resturant.txt","wb"))==NULL) { printf ("无法打开文件!\n"); getch(); exit(0); } L=head->next; while(L) { fwrite(L,LEN,1,fp); L=L->next ; } fclose(fp); printf ("\n换房成功!"); return; } void fire() //王浩:定义fire函数实现退房功能 { char inname[20] ; //用数组inname[20]来储存需要退房旅客name struct Hotel *head, *qian,*pa,*L ; head=load(); qian=(struct Hotel *)malloc(LEN); //开辟新的节点 if (qian==NULL) { printf ("动态内存分配失败!\n"); //如果动态内存分配失败,返回失败信息 getch(); exit(0); } printf ("\n请输入需要退房的旅客姓名:"); scanf ("%s",inname); pa=head->next ; do { if (pa) { if(strcmp(inname,pa->name)==0) { printf ("\n"); printf ("roomnumber:\t%d",pa->room_number); printf ("\n"); printf ("name:\t\t%s",pa->name); printf ("\n"); printf ("sex:\t\t%s",pa->sex); printf ("\n"); printf ("ID:\t\t%s",pa->ID); printf ("\n"); printf ("paid:\t\t%s",pa->paid); printf ("\n"); printf ("date:\t\t%d %d %d",pa->inyear,pa->inmonth,pa->inday); printf ("\n"); qian=head ; while(qian->next != pa) //找到需要查找节点的前一个节点 qian=qian->next ; if (pa->next==NULL) qian->next=NULL ; else qian->next=pa->next ; break ; } pa = pa->next; } else { printf ("\n没有查找到该旅客的信息!\n"); getch(); exit(0); } }while(1); L=head->next ; if((fp=fopen("resturant.txt","wb"))==NULL) { printf ("无法打开文件!\n"); getch(); exit(0); } while(L) { fwrite(L,LEN,1,fp); L=L->next ; } fclose(fp); printf ("\n退房成功!"); }- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 旅馆 信息管理 系统
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文