版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、武汉科技大学 C语言程序设计 课程设计 题目酒店管理系统 班级信息与计算科学2班 姓名陈诚一 学号201407119043 成绩一 2015年6月23口一、总体设计 1、程序的总体设计 (1)程序总体设计思路: 酒店房间登记管理系统,实现的是房间登记与管理(包括登记入住、查询) 为了体现模块化设计, 把所有要实现的功能做成函数, 采用分步实施的方法逐步细化。具体分布实施有以下5步。 1,编写模块 2,定义实现个功能模块所要函数 3,编写各个函数 4,理清思路,逐步修改 5,调试整个程序。 核心部分是各个函数: 1、欢迎界面函数:通过sw让ch进入不同界面。 2、登记入住函数:使用户在入住前登记
2、个人信息,选择房间信息 3、查询入住情况函数:顾客可通过两种方式查找到自己的个人信息。 4、查询当前费用函数:顾客可随时查询所用费用 5、结账退房函数:所有信息清零。 2、数据结构 此系统,选择用结构体存放不同类型的数据,房间信息。在这过程中由于对指针的运用与操作还不熟练,不方便修改,所以没用指针。 (1)创建房间信息结构体 /*结构体hotel房间号、房间种类、客户姓名、身份证号、入住状态、实际收房费,押金等*/ structhotel ( intnum;/*房间号*/ intkind;/*房间种类1(表示单人间)2(表示双人间)*/ charname20;/*姓名*/ chaD19;/*身
3、份证号*/ intflag;/*flag0(表示有人入住)0(表示无人入住)*/ intdingjia;/*房间定价*/ intshiji;/*实际缴纳费用*/ roomM; 3、函数原型声明 voidwelcome();/主界面 intdengji();/登记入住函数 intnow_room();/查询当前房间入住情况 intnow_feiyong();/查询当前费用 inttuifang();/结账退房 intfind();/查询当前入住人数 intkfxinxi();/客户信息 结账付款/voidjiezhang(); intquit();/退出函数 intmima();/密码 void
4、save();/保存 详细设计二、1、主函数设计 主函数说明:为满足顾客登记入住,查询房间入住情况,查询当前费用,结账退房等功能的实现,设计此函数。开始进入欢迎界面让顾客选择,进入顾客所选界面。 始开择入选输序号能功所选进入函数束结 主函数流程图2、子函数流程图)登记入住函数说明:1(. 登记入住 已住满 房间已返回主函满?住 数 未住满输入相关信息 Y 输入有误? N 成功登记 结束 登记入住流程图 (2)查询房间入住情况:2种查询方式(1.按房号查询2.客,最终输出户信息查 查询房间入住情况 选择查询方式(i) 1.按房号查询结束 2,按客户信息查询否否否i=l? i=2? i=3? 是是
5、是返回主输入输入身函数间房份证号 号输出个人信息 结束 结账退房返回主函数全为空?输入房间号空房? 显示客户信息输入相关信息束结 结账退房流程图 三、测试 出现欢迎界面 测试1:选择选项1,入住登记 “1”按提示输入信息(如:1-单人间,1-房间号,陈诚, 522225199609230037200元,登记成功) 测试2:选择选项2,查询房间入住情况 “1”按房问号查询,1、房问号出现刚登记的个人信息 2、房问号该房为空房 “2”按客户信息查询,身份证现个人信 “3”退出,返回欢迎界面 测试3:选择选项3,查询客户当前费用 “1”号房间,当前费用100元
6、 测试4:选择选项4,结账退房 “2”号房间,空房,重输 “1”号房间,应支付100元,退房成功 四、小结 此程序满足课程设计要求,实现登记、查询、结账等操作,并对不同房间实施不同收费标准,计算总费用等功能。 程序优点:整个程序界面友好,与顾客有良好的界面交流。程序虽简单,但功能齐全。 程序缺点: (1)数据结构单一。主要是学习c语言时间短,知识程度不深,不够全面,知道的不多。 (2)不会调用系统时间。 在做课设的过程中,我对c语言有了更深入的了解。它很考察逻辑的严密性,思路条理要清晰是很重要的,它包含你编写程序的大致方向。严谨认真的态度也不可或缺。调试程序过程中也可以提升自己的理解已经加深自
7、身熟练度。遇到问题 要想方设法将它解决,看书找资料,请教同学,与同学讨论,从这些方面我又可以学会合作。 源码: /主函数 #defineM40 #include #include #include #includedingyi.h #includejiegouti.h #includeind.h #includekfxinxi.h #includezuizhongfeiyong.h #includequit.h #includezhujiemian.h #includedengji.h #includedangqianruzhu.h #includedangqianfeiyong.h #inc
8、ludeuifang.h #includemima.h #includesave.h #includeduru.h /*主函数*/ voidmain() inti,j; mima();/密码 duru();/读入数据/ welcome。;/载入主界面 scanf(%d,&i); switch(i) case1:j=dengji();break; case2:j=now_room();break; case3:j=now_feiyong();break; case4:j=tuifang();break; case5:exit(0); default:quit(); while(j!=0)
9、/操作结束可返回主界面/ welcome(); scanf(%d,&i); switch(i) case1:j=dengji();break; case2:j=now_room();break; case3:j=now_feiyong();break; case4:j=tuifang();break; case5:exit(0); default:quit(); /*登记入住*/ intdengji() ( inti,j,a,k,n; system(cls); 登记入住nn); 轴灌晴龙请选择房间类型:nn); printf(.单人问2.双人问nn); scanf(%d,&n)
10、; switch(n) ( 惯敬幺漫械碟?现在空闲的单人房间有:n); for(i=1,j=0;i=M;i=i+2) if(roomi-1.flag=0) ( printf(%dt,i);j+; if(j%5=0) ); /控制每行输出个数 轴踵晴龙安排客户想要的房间:); scanf(%d,&k); while(k%2=0) printf(!房号输入错误,请重新输入n); scanf(%d,&k); roomk-1.kind=1; roomk-1.num=k; 请输入客户的姓名:); scanf(%s,); 请输入客户的身份证号:); scanf(%s
11、,roomk-1.ID); while(strlen(roomk-1.ID)!=18) printf(!输入有误,请重新输入n); scanf(%s,roomk-1.ID); roomk-1.dingjia=100; n应当缴纳房费%d元,roomk-1.dingjia); n实际缴纳的金额为:); scanf(%d,&roomk-1.shiji); while(roomk-1.shijiroomk-1.dingjia)tnn!输入有误,请重新:俞入!nn); n实际缴纳的金额:); scanf(%d,&roomk-1.shiji); )n); 否2-是(1-是否确认入住 n
12、scanf(%d,&a); while(a!=1&a!=2) ntt!输入有误,请重新输入:); scanf(%d,&a); if(a=1) roomk-1.flag=1; 已成功登记!nn); save(); break; 惯敬漫械碟?现在空闲的双人房间有:nn); for(i=2,j=0;i=M;i=i+2) if(roomi-1.flag=0) printf(%dt,i);j+; if(j%5=0) n); /控制每行输出个数 轴踵晴龙安排客户想要的房间:); scanf(%d,&k); while(k%2!=0) printf(!房号输入错误,请重新输入
13、:n); scanf(%d,&k); roomk-1.kind=2; roomk-1.num=k; 请输入客户的姓名:); scanf(%s,); 请输入客户的身份证号:); scanf(%s,roomk-1.ID); while(strlen(roomk-1.ID)!=18) printf(!输入有误,请重新输入:n); scanf(%s,roomk-1.ID); roomk-1.dingjia=200; n应当缴纳房费%d元,roomk-1.dingjia); n实际缴纳的金额为:); scanf(%d,&roomk-1.shiji); while(
14、roomk-1.shijiroomk-1.dingjia) tnn!输入有误,请重新输入:nn); n实际缴纳金额为:); scanf(%d,&roomk-1.shiji); n是否确认入住(1-是2-否)n); scanf(%d,&a); while(a!=1&a!=2) ntt!输入有误,请重新输入:); scanf(%d,&a); if(a=1) roomk-1.flag=1; 已成功登记!nn); save(); break; default:quit(); quit(); return1; /读取函数/ voidduru() ( FILE*fp; in
15、ti; if(fp=fopen(kf_dat, b)=NULL) ( printf(cannotopenfilen); return; for(i=0;iM;i+) ( fread(&roomi,sizeof(structhotel),1,fp); fclose(fp); /*查询入住人数*/ intfind() ( intnumber=0; inti; for(i=0;iM;i+) if(roomi.flag!=0) number+; return(number); /*客户信息*/ intkfxinxi(intk) ( charzhonglei10; switch(roomk.ki
16、nd) ( 惯敬幺3浮柢湾?柳渴济檐尬单人间);break; 惯敬3浮柢湾?柳渴济檐尬双人间);break; ntt姓名:); n); t-身份证号:); n); t房间种类:); n); t房问号:); n); t实收房费:); printf(%d元,roomk.sMji); n); return(1); ) /密码/ intmima() system(color8f); charname10,mima20; 轴灌晴龙进入系统前请输入用户名和密码:n); scanf(%s%s,name,mima); while(strcmp(name,CC)!=0)|(strcmp(mima,_x0012_
17、00059)!=0)比较输入的和用户密码是否一致 轴灌晴龙输入错误,重新输入!n); scanf(%s%s,name,mima); ) system(cls); return(1); ) /*查询当前费用*/ intnow_feiyong() intmoney,n; inti,s; system(cls); 查询当前客户费用翁翁翁翁翁翁翁nn); if(find()=0) 轴灌晴龙全为空房!nn); else ( 轴灌晴龙请输入房问号:); scanf(%d,&i); while(1) ( if(roomi-1.flag=0) ( n该房为空房,1.重输2.退出nn);scanf(%d
18、,&s); if(s=1)( 轴灌晴龙请输入房问号:); scanf(%d,&i);else break; else ( n查询的个人信息为:); kfxinxi(i-1); n当前房间定价为:d,roomn-1.dingjia);break; break; quit(); return1; */ 查询当前房间入住情况/* intnow_room() (. inti,j,k,s; chara20; system(cls); 查询房间入住nn); t1.按房号查询nntt2.按客户信息查询nntt3.退出); n请选择:); scanf(%d,&i); while(1)
19、ntt输入有误,t#重新输入:); scanf(%d,&i); elseif(i=1) n请输入房问号:);/按房号查询 scanf(%d,&j); if(roomj-1.flag=0) n此房间无人住nn); else 轴灌晴龙您的个人信息为:); kfxinxi(j-1); break; elseif(i=2) n请输入您的身份证号:);/按客户信息查询 scanf(%s,a); while(1) for(k=0;kM;k+) if(strcmp(a,roomk.ID)=0)break; if(k!=M) n您的个人信息为:); kfxinxi(k);break; else
20、 tnn1.输入有误,请重新输入2.不存在此人信息,退出nn);scanf(%d,&s); if(s=1) :); 请输入您的身份证号 n scanf(%s,a); elsereturn(1);break; elseif(i=3)break; else tnn1.输入有误,请重新输入nn); t1.按房号查询nntt2.按客户信息查询 nntt3.按入住时间查询nntt4.退出); n请选择:); scanf(%d,&i); quit(); /*退出函数*/ intquit() inty; 轴灌晴龙是否需要返回主界面?1-是2-否nn); scanf(%d,&y); i
21、f(y=1) welcome。; else printf(*欢迎下次光临武科大酒店*!nn); return1; /保存函数/ voidsave() FILE*fp; inti; if(fp=fopen(kf_dat,wb)=NULL) printf(cannotopenfilen); return; for(i=0;i0) 轴踵晴龙找还顾客元丫口); elseprintf(顾客应再支付d元丫口*(-1); ) /*结账退房*/ inttuifang() ( charzhonglei30; intn,m; system(cls); 结账退房nn); if(find()=0) 轴灌晴龙房间都是空
22、的!nn); else ( 轴踵晴龙请输入需要退房的房号:); scanf(%d,&n); if(nM|n1) ( n输入有误,请重新输入:,M); scanf(%d,&n); ) if(roomn-1.flag=0) 轴灌晴龙空房,无法办理退房!nn); switch(roomn-1.kind) ( 惯敬幺3浮柢湾?柳渴济檐尬单人问);break; 惯敬3浮柢湾?柳渴济檐尬双人间);break; ) 轴灌晴龙房间号:%dn房间类型:sn客人姓名:sn身份证 号:%sn,roomn-1.num,zhonglei,,roomn-1.ID); t房间定价为:dn,roomn-1.dingjia); if(roomn-1.flag=1) shoufei(roomn-1.dingjia,roomn-1.shiji); n是否退房(1.是2.否):); scanf(%d,&m); if(m=1) roomn-1.flag=0; strcpy(, roomn-1.shi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026扬州平山堂茶业发展有限公司招聘茶饮店劳务派遣人员2人备考题库及答案详解一套
- 酒店工程部工作总结范文
- 2026年湖北省武汉市重点学校小升初数学考试题库试题附答案
- 2026年湖北省黄石市重点学校小升初语文考试题库试题附答案
- 2026年河南省重点学校初一入学语文分班考试试题及答案
- 第1节 了解网页与网站教学设计初中信息技术(信息科技)第三册粤教版(广州)
- 2026年中国石油湖南销售分公司校园招聘考试模拟试题及答案解析
- 第十六课 气象与我们的生活教学设计小学综合实践活动吉美版五年级下册-吉美版
- 2026年桂林市雁山区事业单位招聘笔试备考题库及答案解析
- 2026年河北融投控股集团有限公司校园招聘笔试参考题库及答案解析
- 简谱乐理基础知识入门
- 2025年油气回收设备项目深度研究分析报告
- 2024年废物回收居间买卖合同
- 人力资源输送合作协议正规范本2024年
- “沙钢杯”第十一届全国钢铁行业职业技能竞赛(电工)理论试题库-中(多选题)
- 钢铁行业低硫烟气钙基干法脱硫技术规范
- 铁皮棚搭建合同
- 集合间的基本关系高一上数学人教A版(2019)必修第一册
- 六年级语文下册10古诗三首《竹石》公开课一等奖创新教学设计
- 教师礼仪在课堂管理中的应用
- TQGCML 3022-2024 智能空降门规范
评论
0/150
提交评论