C语言程序设计酒店管理系统实验报告.doc
《C语言程序设计酒店管理系统实验报告.doc》由会员分享,可在线阅读,更多相关《C语言程序设计酒店管理系统实验报告.doc(30页珍藏版)》请在咨信网上搜索。
- . 课程设计报告书 题 目:酒店管理系统设计报告 专 业: 电子信息工程〔移动互联网〕 班 级: 一班 姓 名: 韩国齐 学 号: 0 教 师: 朴海光 一:程序功能 酒店系统管理包括:主菜单、查看客房入住情况、登记入住、修改客房信息、修改客房信息及退房六个功能模块。每个功能用一个函数来实现,从而到达功能的模块化。 主菜单模块:主菜单模块包括1.查看客房入住情况、2.登记入住、3.客房信息修改、4. 退房及显示入住的总费用、5.返回主菜单、6.直接退出程序。 1〕查看客房入住情况功能模块:主要功能是查看房间的入住情况和继续查看已入住的房间的客户信息。 2〕登记入住功能模块:采用构造体数组来记录客户的信息,包括XX、性别、年龄、XX号、入住时间,入住单价及入住人数,登记完一个房间后可选择继续下一个房间的登记,也可以选择返回主菜单进展其他功能的操作。 3〕修改客房信息功能模块:包括修改客户信息模块和修改房间信息模块。 4〕修改客户信息模块:主要功能是可选择性的修改客户某个信息,也可以一次性全部修改。 5〕修改客房信息功能模块:用来对客户换房时对客户信息和房间号的修改。实现的功能是只要输入客户以前住的房间号和现在想住的房间号, 就将客户的信息全部移到现在想住的房间上,而以前的房间将被置为未使用。 6〕退房及显示总费用功能模块:当客户退房时,将客户使用的客房置为未使用,删除客户信息。并且显示客户从入住到退房时的总费用。 二:程序代码 #include<stdio.h> #include<string.h> #include<stdlib.h> #define M 80 int j,s; int hj[81]={0}; FILE *fp; //定义文件指针变量 struct date //定义构造体类型 { int month; int day; int year; }final; struct client {char name[20]; int sex; int age; char ID_card[20]; int count; struct date start; }; struct hotel { int price; int room_ID; struct client personal; }room[M]; void save(); //声明文件函数 void check_siru(); //声明查看客房入住情况函数 void registration_live(); //声明登记入住信息函数 void modify_infor(); //声明修改客房信息函数 void amend_one(); //声明修改个人信息函数 void amend_room(); //声明修改房间信息函数 void cost(); //声明退房及显示入住费用函数 void get_back(); //声明返回主菜单函数 void check_siru1(); //声明查看客房入住情况的调用函数 void registration_live1(); //声明登记入住信息的调用函数 void amend_one1(); //声明修改个人信息的调用函数 void amend_room1(); //声明修改房间信息的调用函数 void cost1(); //声明显示入住费用的调用函数 int main() //主函数 { int menu(); void print_message(); printf("\n\n\n\n\n"); print_message(); menu(); save(); return 0; } void print_message() { printf("\t\t\t 欢送入住黄金酒店\n\n\n"); } menu() //主菜单函数 { int n; printf("\n"); printf("\t\t\t 主菜单 \n\n"); printf("\t\t\t 按 1 查看客房入住情况\n"); printf("\t\t\t 按 2 登记入住信息\n"); printf("\t\t\t 按 3 修改客房信息\n"); printf("\t\t\t 按 4 退房、及显示入住费用\n"); printf("\t\t\t 按 5 返回主菜单\n"); printf("\t\t\t 按 6 退出程序\n"); printf("\n\t请输入要进展操作的选项〔1、2、3、4、5、6〕: "); scanf("%d",&n); while(n<1||n>6) { printf("\t\t\t 输入错误,请重新输入选项!"); scanf("%d",&n); } switch(n) { case 1:check_siru();break; case 2:registration_live();break; case 3:modify_infor();break; case 4:cost();break; case 5:get_back();break; case 6:exit(0); } return 0; } void check_siru() //查看房间使用情况函数 { int a,g,count=0; for(g=1;g<=80;g++) { if(hj[g]==0) ++count; else if(hj[g]==1) printf("\n\t\t\t正在使用的房间号:%d",g); } printf("\n\n\t\t\t未使用的房间数:%d",count); printf("\n\n\t\t\t按 1 返回主菜单,按 2 继续: "); scanf("%d",&a); switch(a) { case 1:menu();break; case 2: printf("\n\n"); printf("\n\t\t\t请输入要查询的房间号: "); scanf("%d",&s); if(hj[s]==1) { printf("\n\t\t\t XX:%s",room[s].personal.name); printf("\n\t\t\t性别〔其中:1表示男,2表示女!〕:%d",room[s].personal.sex); printf("\n\t\t\t 年龄:%d",room[s].personal.age); printf("\n\t\t\tXX号:%s",room[s].personal.ID_card); printf("\n\t\t\t入住年份:%d",room[s].personal.start.year); printf("\n\t\t\t 月:%d",room[s].personal.start.month); printf("\n\t\t\t 日:%d",room[s].personal.start.day); printf("\n\t\t\t 房间号:%d",room[s].room_ID); printf("\n\t\t\t客房单价:%d",room[s].price); printf("\n\t\t\t入住人数:%d",room[s].personal.count); printf("\n\n\t\t\t按 1 返回主菜单,按 2 继续\n"); scanf("%d",&a); switch(a) { case 1:menu();break; case 2:check_siru1();break; } } else printf("\n\t\t\t该房间未被使用!"); } save(); printf("\n\n\t\t\t按 1 返回主菜单,按 2 继续: "); scanf("%d",&a); switch(a) { case 1:menu();break; case 2:check_siru1();break; } } void registration_live() //登记入住函数 { int a; printf("\t\t请输入登记的相关信息:\n"); printf("\n\t\t\t房间号"); scanf("%d",&j); room[j].room_ID=j; printf("\n\t\t\t XX:"); scanf("%s",room[j].personal.name); printf("\n\t性别〔其中:1表示男,2表示女!〕:"); scanf("%d",&room[j].personal.sex); printf("\n\t\t\t 年龄:"); scanf("%d",&room[j].personal.age); printf("\n\t\t\tXX号:"); scanf("%s",room[j].personal.ID_card); printf("\n\t\t\t入住年份:"); scanf("%d",&room[j].personal.start.year); printf("\n\t\t\t 月份:"); scanf("%d",&room[j].personal.start.month); printf("\n\t\t\t 日期:"); scanf("%d",&room[j].personal.start.day); printf("\n\t\t\t客房单价:"); scanf("%d",&room[j].price); printf("\n\t\t 请输入入住人数: "); scanf("%d",&room[j].personal.count); hj[j]=1; save(); printf("\n\n\t\t按 1 返回主菜单,按 2 继续: "); scanf("%d",&a); switch(a) { case 1:menu();break; case 2:registration_live1();break; } } void modify_infor() //修改客房函数 { int r,m; printf("\t\t\t 菜单 \n\n\n"); printf("\t\t\t1:修改客户信息\n"); printf("\t\t\t2:修改房间信息\n"); printf("\t\t\t3:返回主菜单\n"); printf("\t\t\t4:退出程序\n"); printf("\n\n\t\t 请选择输入选项〔1、2、3、4〕: "); scanf("%d",&m); if(m<1||m>3) { r=1; } else r=0; switch(m) { case 1:amend_one1();break; case 2:amend_room1();break; case 3:menu(); case 4:exit(0); } save(); } void amend_one() //修改客人信息函数 { int i,q; char a[20]; printf("\n\n\t\t\t请输入现住的房间号: "); scanf("%d",&j); printf("\n\t\t\t请选择您要修改的个人选项\n"); printf("\t\t\t1:代表XX \n\t\t\t2:代表性别〔其中1表示男,2表示女〕 \n\t\t\t3:年龄 \n\t\t\t4:代表XX号 \n\t\t\t5:代表入住年份 \n\t\t\t6:代表入住月份 \n\t\t\t7:代表入住日期 \n\t\t\t8:入住人数\n"); printf("\t\t\t请选择输入选项〔1、2、3、4、5、6、7、8〕: "); scanf("%d",&q); switch(q) { int t,p; case 1:printf("\n\t\t\t请输入新名字: "); scanf("%s",a); strcpy(room[j].personal.name,a); printf("\n\n\t\t\t按 1 返回主菜单,按 2 继续: "); scanf("%d",&i); switch(i) { case 1:menu();break; case 2:amend_one1();break; } case 2:printf("\n\t\t请输入新性别〔其中:1表示男,2表示女〕: "); scanf("%d",&p);room[j].personal.sex=p; printf("\n\n\t\t\t按 1 返回主菜单,按 2 继续: "); scanf("%d",&i); switch(i) { case 1:menu();break; case 2:amend_one1();break; } case 3:printf("\n\t\t\t请输入年龄: "); scanf("%d",&p);room[j].personal.age=p; printf("\n\n\t\t\t按 1 返回主菜单,按 2 继续: "); scanf("%d",&i); switch(i) { case 1:menu();break; case 2:amend_one1();break; } case 4:printf("\n\t\t\t请输入新XX号: "); scanf("%s",room[j].personal.ID_card); printf("\n\n\t\t\t按 1 返回主菜单,按 2 继续: "); scanf("%d",&i); switch(i) { case 1:menu();break; case 2:amend_one1();break; } case 5:printf("\n\t\t\t请输入新年份: "); scanf("%d",&p);room[j].personal.start.year=p; printf("\n\n\t\t\t按 1 返回主菜单,按 2 继续: "); scanf("%d",&i); switch(i) { case 1:menu();break; case 2:amend_one1();break; } case 6:printf("\n\t\t\t请输入新月份: "); scanf("%d",&p);room[j].personal.start.month=p; printf("\n\n\t\t\t按 1 返回主菜单,按 2 继续: "); scanf("%d",&i); switch(i) { case 1:menu();break; case 2:amend_one1();break; } case 7:printf("\n\t\t\t请输入新日期: "); scanf("%d",&p);room[j].personal.start.day=p; printf("\n\n\t\t\t按 1 返回主菜单,按 2 继续: "); scanf("%d",&i); switch(i) { case 1:menu();break; case 2:amend_one1();break; } case 8:printf("\n\t\t\t请输入新入住人数: "); scanf("%d",&p);room[j].personal.count=p; printf("\n\n\t\t\t按 1 返回主菜单,按 2 继续: "); scanf("%d",&i); switch(i) { case 1:menu();break; case 2:amend_one1();break; } } menu(); } void amend_room() //修改房间信息函数 { int a,l,x; printf("\n\t\t\t\t请输入你要修改的 客房信息\n\n"); printf("\t\t\t\t1:房间号\n\n\t\t\t\t2:客房单价\n\n\t\t\t\t3:入住人数\n\n\t\t\t\t4:返回\n\n"); printf("\t\t\t请选择输入选项〔1、2、3、4〕: "); scanf("%d",&l); switch(l) { case 1:printf("\n\t\t\t请输入旧房号: "); scanf("%d",&j); printf("\t\t\t请输入新房号: "); scanf("%d",&s); strcpy(room[s].personal.name,room[j].personal.name); //room[j].personal.name={'\0'}; room[s].personal.sex=room[j].personal.sex; room[j].personal.sex=0; room[s].personal.age=room[j].personal.age; room[j].personal.age=0; strcpy(room[s].personal.ID_card,room[j].personal.ID_card); //room[j].personal.ID_card={'\0'}; room[s].personal.start.year=room[j].personal.start.year; room[j].personal.start.year=0; room[s].personal.start.month=room[j].personal.start.month; room[j].personal.start.month=0; room[s].personal.start.day=room[j].personal.start.day; room[j].personal.start.day=0; room[s].room_ID=s; room[s].price=room[j].price; room[s].personal.count=room[j].personal.count; hj[s]=1; hj[j]=0; printf("\n\n\t\t按 1 返回主菜单,按 2 继续: "); scanf("%d",&a); switch(a) { case 1:menu();break; case 2:amend_room1();break; } case 2:printf("\n\t\t\t 请输入房号: "); scanf("%d",&s); printf("\t\t\t请输入新单价: "); scanf("%d",&x);room[s].price=x; printf("\n\n\t\t按 1 返回主菜单,按 2 继续: "); scanf("%d",&a); switch(a) { case 1:menu();break; case 2:amend_room1();break; } case 3:printf("\n\t\t\t 请输入房号: "); scanf("%d",&s); printf("\t\t\t请输入新入住人数: "); scanf("%d",&x); room[s].personal.count=x; printf("\n\n\t\t按 1 返回主菜单,按 2 继续: "); scanf("%d",&a); switch(a) { case 1:menu();break; case 2:amend_room1();break; } case 4:break; } save(); menu(); } void cost() //退房、显示入住费用函数 { int a,i,sum; printf("\t\t\t请输入房间号: "); scanf("%d",&j); room[j].room_ID=j; printf("\n\t\t\t 入住年份:%d",room[j].personal.start.year); printf("\n\t\t\t 月:%d",room[j].personal.start.month); printf("\n\t\t\t 日:%d",room[j].personal.start.day); printf("\n\t\t\t 房间单价为: "); printf("%d",room[j].price); printf("\n\t\t\t请输入退房时间: "); printf("\n\t\t\t 请输入年份: "); scanf("%d",&final.year); printf("\n\t\t\t 请输入月份: "); scanf("%d",&final.month); printf("\n\t\t\t 请输入日期: "); scanf("%d",&final.day); printf("\n\t\t\t请输入入住天数: "); scanf("%d",&i); sum=room[j].price*i; printf("\n\t\t\t 总费用sum=%d\n",sum); hj[j]=0; save(); printf("\n\n\t\t按 1 返回主菜单,按 2 继续: "); scanf("%d",&a); switch(a) { case 1:menu();break; case 2:cost1();break; } } void get_back() //返回主菜单的调用函数 { menu(); } void check_siru1() //声明查看客房入住情况的调用函数 { check_siru(); } void registration_live1() //声明登记入住信息的调用函数 { registration_live(); } void amend_one1() //声明修改个人信息的调用函数 { amend_one(); } void amend_room1() //声明修改房间信息的调用函数 { amend_room(); } void cost1() //声明显示入住费用的调用函数 { cost(); } void save() { FILE *fp; int i; if((fp=fopen("客房管理.txt","w+"))==NULL) { printf("cannot open file\n"); exit(0); } for(i=0;i<M;i++) { if(fwrite((&room[i]), sizeof(room[M]),1,fp)!=1) printf("file write error\n"); fflush(fp); } fclose(fp); } 三:运行 〔主菜单功能〕 〔 登记客户入住信息〔可以按 2 继续登记下个房间客户的信息〕〕 〔查看登记过的客户信息〔刚刚登记的明的信息已存在〕〕 〔修改客户信息〔这页修改的是名字,把明改为三〕〕 〔这页查看修改的客户信息是否成功〔已成功的把明改为了三〕〕 〔这页继续修改客户信息〔这里修改的是性别,把刚刚的男〔1〕改为了女〔2〕〕〕 〔这里继续查看刚刚修改的性别是否成功〔这里已经把男〔1〕改成了女〔2〕〕〕依此类推下面的 年龄、XX号、入住年份、月份、日期、人数都依此方法修改。 〔修改房间信息〔这里把刚刚客户三入住的45号房间换成了30号房间〕〕 〔查看客户换的房间是否换成功〔这里已经成功的把45号房换成了30号〕〕 〔退房及显示入住总费用模块〔这里已经退掉了30号房间〕〕 〔查看退房是否成功〔这里已经成功的退出了30号房间,已经没有房间在使用了〕〕。 整个酒店管理系统的功能就如上图所示。 - . 可修编.- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 酒店 管理 系统 实验 报告
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文