大酒店房间登记与计费标准管理专业系统设计程序设计项目说明指导书.doc
《大酒店房间登记与计费标准管理专业系统设计程序设计项目说明指导书.doc》由会员分享,可在线阅读,更多相关《大酒店房间登记与计费标准管理专业系统设计程序设计项目说明指导书.doc(27页珍藏版)》请在咨信网上搜索。
《程序设计》 课程设计阐明书 课程名称 《程序设计》 设计题目 酒店房间登记与计费管理系统设计 专业班级 学生姓名 指引教师 起止日期6月8日至6月14日 福建林业职业技术学院自动化工程系 目录 摘 要 ……2 1 软件需求分析阐明书 3 1.1登记入住系统 3 1.2客房状态查询 3 1.3住户信息查询 3 1.4结账退房系统 3 2 系统分析与设计 4 2.1软件界面设计 4 2.2软件数据(构造)设计 8 2.3软件算法设计 9 2.3.1软件模块图 9 2.3.2程序流程图 9 3 软件实现 12 3.1使用构造数组及函数定义 12 3.2登记入住模块 12 3.3查询房间模块 15 3.4查询房客模块 16 4 软件测试 21 5软件使用阐明书 22 1 软件需求分析阐明书 1.1登记入住系统 登记并记录顾客姓名 登记并记录顾客证件类型及号码 显示既有空置房间 选取所需要房间并更改房间状态信息 计算并记录住房费及押金 由于本软件针对操作员设计,因此界面应尽量简朴明了。住房及顾客信息由于涉及各种类型数据,因而应用构造数组解决。用文献记录有关数据。 1.2客房状态查询 分别显示已入住客房与空置客房 读取住房信息文献内容并判断分类,借此可以清晰明了显示客房状态。 1.3住户信息查询 查询顾客所租房房号 查询顾客住房费用 顾客可以通过输入自己姓名来查询个人住房信息。 1.4结账退房系统 退房 更新所退房间状态 删除退房顾客记录 显示账单 顾客可以输入姓名来完毕退房操作,房间状态将更改为未入住。系统将删除该顾客信息记录并读取生成账单。 2 系统分析与设计 2.1软件界面设计 运营程序后进入主界面,可以进行登记入住、查询房间、查询顾客、退出程序等几项操作: 图2.1.1 选取“1.登记入住”进入登记入住界面: 图2.1.2 输入有关信息,之后选取计费类型: 图2.1.3 选取“1.按天入住”按天数计费,会显示当前空置房间。输入所选房间已进行下一步操作: 图2.1.4 如选取“2.按小时入住”则按小时计费,操作同理。 图2.1.5 之后会进入下一界面并提示登记成功。 图2.1.6 如在主界面选取“2.查询房间入住状况”则会进入查询房间状况界面,程序将分别依次显示已入住房间和空置房间。 图2.1.7 如在主界面选取“3.查询当前费用”则会进入顾客查询界面,输入顾客姓名即可进行查询 图2.1.8 程序会显示该客人有关信息 图2.1.9 如在主界面选取“4.结账退房”则会进入顾客退房界面,输入顾客姓名即可进行退房操作 图2.1.10 输入成功后会显示退房成功。 图2.1.11 在主界面选取“5.退出程序”会进入退出界面。 图2.1.12 2.2软件数据(构造)设计 本软件运用了C语言文献读取与写入功能,各文献作用如下: count.txt:用于存储房客数量,内部存储一种int*数据。 room.txt:用于存储房间信息,内部依次存储: 房间状态char*(1位) 房间号char*(4位) 房间类型char*(1位) 房间描述char*(6位) 房间日租金int* 房间月租金int*。 customer.txt:用于存储房客信息,内部依次存储: 姓名char* 证件类型char* 证件号码int* 房间号char*(4位) 房租int* 押金int* 2.3软件算法设计 2.3.1软件模块图 酒店房间管理系统 登记入住模块 客房查询模块 顾客查询模块 结账退房模块 2.3.2程序流程图 记录入文献 是 读取房间信息 输入房号 息信人个 客人 记录 文献 录 记 显示 文献 判断房号与读入数据与否相符 判断房间与否为空 修改房间不为空 客房查询模块: 顾客查询模块: 否 是 文献 判断房间与否为空 1显示 2显示 读取房间信息 是 输入姓名 顾客数据 操作 显示 文献 判断姓名与否相似 结账退房模块: 更改相应房间状态 输入姓名 读取信息 是 删除相应信息 客人 顾客信息文献 房间信息文献 判断姓名与否一致 输出并显示账单 3 软件实现 3.1使用构造数组及函数定义 构造体定义: typedef struct room //客房信息 { char FID[5];//房间号 char type[2];//客房类型 char describe[7];//该客房类型描述 int cost_d;//日收费 int cost_h;//时收费 char statu[2];//入住状况 }room; typedef struct customer //入住记录 { char FID[5];//房间号 char name[20];//名字 char type[14];//证件类型 int ID;//证件号 int pay;//房费 int cp;//押金 }customer; 函数定义: void rent(room *p);//登记入住模块 void search_room(room *p);//客房查询模块 void search_customer(room *p,int l);//费用查询模块 void pay(room *p,int l);//结账模块 3.2登记入住模块 源文献: void rent(room *p) { int i,count,n,m=2; struct room rm[max]={0};//定义构造数组 struct customer cs; char search[2]={'Y'},stu[2]={'N'},dill[5]={0}; FILE *fpin,*fpout; fpout=fopen("customer.txt","a"); assert(fpout != NULL); printf("请输入姓名:"); scanf("%s",&cs.name); fprintf(fpout,"%s ",cs.name); printf("请填入证件类型:"); scanf("%s",&cs.type); fprintf(fpout,"%s ",cs.type); printf("请输入证件号码:"); scanf("%d",&cs.ID); fprintf(fpout,"%d ",cs.ID); printf("请选取入住方式:\n1.按天入住\n2.按小时入住\n"); scanf("%d",&count); fpin = fopen("room.txt","r+"); assert(fpin != NULL); printf("如下是既有空房\n"); for(i=0;i<max;i++) //对构造数组赋值,录入房间信息 { fscanf(fpin,"%s ",rm[i].statu); fscanf(fpin,"%s ",rm[i].FID); fscanf(fpin,"%s ",rm[i].type); fscanf(fpin,"%s ",rm[i].describe); fscanf(fpin,"%d ",&rm[i].cost_d); fscanf(fpin,"%d ",&rm[i].cost_h); } fclose(fpin); for(i=0;i<max;i++) { if(strcmp(search,rm[i].statu)==0) { printf("%s号%s型%s日收费:%d时收费:%d\n",rm[i].FID,rm[i].type,rm[i].describe,rm[i].cost_d,rm[i].cost_h); } } printf("请输入要入住房屋"); scanf("%s",&dill); for(i=0;i<max;i++) { if(strcmp(dill,rm[i].FID)==0)//所选房间号与房间数据对比 { strcpy(rm[i].statu,stu); //更改数组中房间状态 fprintf(fpout,"%s ",rm[i].FID); if(count==1) { printf("请选取天数:"); scanf("%d",&n); fprintf(fpout,"%d ",rm[i].cost_d*n); fprintf(fpout,"%d ",rm[i].cost_d*n*m); system("cls"); printf("\004已成功登记房间!\n"); printf("\004您房号为:%s\n",rm[i].FID); printf("\004请支付%d元房费以及押金%d元。\n",rm[i].cost_d*n,rm[i].cost_d*n*m); } else { printf("请选取小时数:"); scanf("%d",&n); fprintf(fpout,"%d ",rm[i].cost_h*n); fprintf(fpout,"%d ",rm[i].cost_h*n*m); system("cls"); printf("\004已成功登记房间!\n"); printf("\004您房号为:%s\n",rm[i].FID); printf("\004请支付%d元房费以及押金%d元。 \n",rm[i].cost_h*n,rm[i].cost_h*n*m); } } } fpin=fopen("room.txt","w"); for(i=0;i<max;i++) //将更改录入文献 { fprintf(fpin,"%s ",rm[i].statu); fprintf(fpin,"%s ",rm[i].FID); fprintf(fpin,"%s ",rm[i].type); fprintf(fpin,"%s ",rm[i].describe); fprintf(fpin,"%d ",rm[i].cost_d); fprintf(fpin,"%d\n",rm[i].cost_h); } fclose(fpout); fclose(fpin); } 3.3查询房间模块 void search_room(room *p) { int i,h,k; struct room rm[max]={0}; char search[2]={'Y'}; FILE *fpin; fpin = fopen("room.txt","r"); assert(fpin != NULL); for(i=0;i<max;i++) //对构造数组赋值,即录入房间信息 { fscanf(fpin,"%s ",rm[i].statu); fscanf(fpin,"%s ",rm[i].FID); fscanf(fpin,"%s ",rm[i].type); fscanf(fpin,"%s ",&rm[i].describe); fscanf(fpin,"%d ",&rm[i].cost_d); fscanf(fpin,"%d ",&rm[i].cost_h); } printf("当前空置房间有:\n");//查询空客房 for(h=0;h<max;h++) //显示成果 { if(strcmp(search,rm[h].statu)==0) printf("%s 号%s 型房间\n",rm[h].FID,rm[h].type); } printf("有顾客入住房间:\n");//查询满客房 for(k=0;k<max;k++) //显示成果 { if(strcmp(search,rm[k].statu)!=0) printf("%s 号%s 型房间\n",rm[k].FID,rm[k].type); } fclose(fpin); } 3.4查询房客模块 void search_customer(room *p,int l)// 参数l值 即为主函数所读取客人数量 { char name[20]; int a; int i; struct customer cs[20]={0}; FILE *fpin,*fp1; printf("请输入要查询顾客姓名:"); scanf("%s",&name); fpin=fopen("customer.txt","r"); assert(fpin != NULL); fp1=fopen("count.txt","r"); assert(fp1 != NULL); for(i=0;i<l;i++) //读取顾客数据 { fscanf(fpin,"%s ",&cs[i].name); fscanf(fpin,"%s ",&cs[i].type); fscanf(fpin,"%d ",&cs[i].ID); fscanf(fpin,"%s ",&cs[i].FID); fscanf(fpin,"%d",&cs[i].pay); fscanf(fpin,"%d",&cs[i].cp); } for(a=0;a<l;a++) { if(strcmp(name,cs[a].name)==0) //比较与所输入字符串与与否一致 { printf("%s ",cs[a].name); printf("%s ",cs[a].type); printf("%d ",cs[a].ID); printf("%s ",cs[a].FID); printf("%d ",cs[a].pay); printf("%d\n",cs[a].cp); } } fclose(fpin); fclose(fp1); } 3.5结账退房模块 void pay(room *p,int l) { int i,j; char name[20]; char FID[5]; char stu[2]={'Y'}; struct room rm[max]={0}; struct customer cs[20]={0}; FILE *fp1,*fp2; printf("请输入客人姓名:"); scanf("%s",&name); fp1=fopen("room.txt","r"); assert(fp1); fp2=fopen("customer.txt","r"); assert(fp2); for(i=0;i<max;i++)//对构造数组赋值 { fscanf(fp1,"%s ",&rm[i].statu); fscanf(fp1,"%s ",&rm[i].FID); fscanf(fp1,"%s ",&rm[i].type); fscanf(fp1,"%s ",&rm[i].describe); fscanf(fp1,"%d ",&rm[i].cost_d); fscanf(fp1,"%d ",&rm[i].cost_h); } fclose(fp1); for(j=0;j<l;j++) { fscanf(fp2,"%s ",&cs[j].name); fscanf(fp2,"%s ",&cs[j].type); fscanf(fp2,"%d ",&cs[j].ID); fscanf(fp2,"%s ",&cs[j].FID); fscanf(fp2,"%d",&cs[j].pay); fscanf(fp2,"%d",&cs[j].cp); } fclose(fp2); for(j=0;j<l;j++) { if(strcmp(name,cs[j].name) == 0) { strcpy(FID,cs[j].FID); for(;j<l-1;j++) { cs[j] = cs[j+1]; //为数组重新赋值以完毕删除操作 } } } fp2=fopen("customer.txt","w"); assert(fp2); for(j=0;j<l-1;j++) { printf("%s ",cs[j].name); printf("%s ",cs[j].type); printf("%d ",cs[j].ID); printf("%s ",cs[j].FID); printf("%d ",cs[j].pay); printf("%d\n",cs[j].cp); } for(j=0;j<l-1;j++) { fprintf(fp2,"%s ",cs[j].name); fprintf(fp2,"%s ",cs[j].type); fprintf(fp2,"%d ",cs[j].ID); fprintf(fp2,"%s ",cs[j].FID); fprintf(fp2,"%d ",cs[j].pay); fprintf(fp2,"%d\n",cs[j].cp); } fclose(fp2); for(i=0;i<max;i++) { if(strcmp(FID,rm[i].FID) == 0) { strcpy(rm[i].statu,stu); } } fp1=fopen("room.txt","w"); //打开并清空文献 assert(fp1); for(i=0;i<max;i++) //重新录入所有信息来完毕更改 { fprintf(fp1,"%s ",rm[i].statu); fprintf(fp1,"%s ",rm[i].FID); fprintf(fp1,"%s ",rm[i].type); fprintf(fp1,"%s ",rm[i].describe); fprintf(fp1,"%d ",rm[i].cost_d); fprintf(fp1,"%d\n",rm[i].cost_h); } fclose(fp1); } 4 软件测试 1、void rent(room *p)//登记入住函数 用例:input: room a[20] output: 请输入姓名 input: DANNY output: 请输入证件类型 input: id output: 请输入证件号码 input: 10086 output: 请选取入住方式:1.按天入住 2.按小时入住 input: 2 output: 如下是既有空房: A101号A型SINGLE日租金150时租金20 请输入要入住房屋 input: A101 output: 请选取小时数 input: 5 output: 已成功登记房间 您房号为:A101 请支付100元房租及押金200元 2、void search_room(room *p)//住房查询函数 用例:input: room a[20] output: 当前空置房间有: A102号B型SINGLE日租金150时租金20 A105号C型SINGLE日租金300时租金40 有顾客入住房间: B104号C型SINGLE日租金300时租金40 3、void search_customer(room *p,int l)//房客查询函数 用例:input: room a[20] j=3 output: 请输入要查询顾客姓名: input: DANNY output: DANNY id 10086 A101 100 200 4、void pay(room *p,int l)//结账退房函数 用例:input: room a[20] j=3 output: 请输入姓名 input: DANNY output: 已成功退房 5软件使用阐明书 本程序是专门为酒店设计管理系统,以便操作员操作。 通过主界面,咱们可以进行登记、查询房间、查询费用、退房及退出等操作。 通过登记界面,可以实现顾客登记及住房登记、调节等功能。 通过费用查询界面,可以通过姓名查找顾客入住信息。 通过房间查询界面,可以查找房间使用状况。 通过退房界面,仅通过输入姓名就可以完毕退房。 道谢 本次程序设计题目做很是辛苦。由于本人基本很差,因此耗费了大量时间,但最后总算成功完毕。这与教师耐心指引是分不开,同步我也在教师身上学到不少东西。因而特在此对我任课教师表达感谢!同步也要感谢所有协助过我同窗。- 配套讲稿:
如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。
关于本文