




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 计算机学院课程设计报告 课程名称: c+课程设计 课 题: 客房管理系统 专业班级: 学 号: 姓 名: 指导老师: 日 期: 2013年7 月3 日 目录1.课题简介03 2.设计方案043.具体设计及截屏图054.关键代码分析105.测试156.课题总结与体会177.参考文献188.源代码191.课题简介客房管理系统是根据某酒店对客房管理的实际情况进行编写的,主要目的是为了方便酒店对客房的实际情况进行集中的查询与管理工作,以提高整个酒店的工作。经过电脑及生活中的调查研究,根据客人的经济水平和生活理念,客房的类型已趋向于多样化,有标准房,单人房,vip间,甚至总统套房。而初步设定通过客房的
2、编号、类型、价格来定位一个客房的管理系统。客房是一个对外服务的内容,为了客人的住宿要求,所以系统需要实现客房信息的录入、修改和删除功能。客人对剩余客房需要进行选择,系统必须实现相应的查询、排序和输出功能,使客人择优而居。主要实现的功能包括:客房信息的录入、修改、删除、剩余客房信息查询、排序、输出。客房信息可写入文件,也可从文件中读取。客房信息涉及的数据有客房编号、客房类型、住房天数、订金、客户姓名、客户身份证号码等。2设计方案按照需求分析所得,客房信息系统有以下几个功能模块:1 新建两个类;分别为customer和holterroom ,其中customer为基类,holterroom通过共有
3、继承,成为customer的派生类。2 录入,增添客房信息;先判断是否已存在客房信息,如果已存在,则再选择是否添加;若不存在,则添加客房信息。3修改客房信息;读取保存的客房信息数据,根据客房编号查找所需修改的客房信息,然后根据具体所需,修改成员参数。4删除客房信息模块;从保存中的文件中读取信息,删除需要删除的信息,完善现在的客房运作。5查询客房函数;分按编号、类型、客户姓名查找客房信息,这样可以更具有人性化来选择所剩余的客房,从而进行日常安排。7输出剩余客房函数;输出根据系统所需排序后的客房信息,本系统中是根据了客人入住的有效期即天数来及时了解空出的房间。由上述需求分析可得,系统的功能模块图如
4、图1所示。 酒店客房管理系统录入客房信息客人入住登记修改客房信息客人退房结算输出所有客房信息查询窗口删除客房信息通过房号查询客房输出所有空房通过姓名查询客房通过房号查询客房 图1 2.具体设计及截屏图1、类的设计根据上述需求分析,有客房类和客户类。(1) 客户类 客户类中的主要成员有:name为客户姓名,id为客户身份证号码,money为客户订金,staytime为将要入住客房时长。(2)客房类客房类中的主要成员有:num是客房编号,type是客房类型,price是客房价格, holterroom()为客房类的构造函数,同时customer类中的成员均是客房类的成员。2界面设计:(1) 主界面
5、的设计主界面中显示客房管理系统的全部信息,客房信息的录入,客人入住登记,客房信息的修改,客人退房结算,查询所有客房信息,查询(包括按房间号,按房间类型,按客户姓名查询,同时还有输出所有空房信息),删除客房信息。酒店客房管理系统如图1所示。图2 主界面(2)分界面:客房信息查询设计分别实现按姓名,按房间号和按房间类型查询客房信息的功能,还可实现输出所有空房信息的功能。客房信息录入如图2所示。图3录入客房信息的分界面(4)分界面:客房信息的修改的设计提示根据编号寻找到客房并输出该客房内容,然后询问用户是否要修改客房信息,修改界面如图所示。图4 修改客房信息的分界面(5)分界面:客房信息的删除的设计
6、提示根据编号寻找到客房并输出该客房内容,然后询问用户是否要删除客房信息,修改界面如图所示。图5 删除客房信息的分界面(6)分界面:剩余客房信息的查询的设计在保存完所修改或删除的客房信息,查询剩余的客房信息,可浏览所有空房信息。查询空房的信息界面如图6所示。图6 查询客房信息的分界面(7)分界面:所有信息的输出的设计在排序完后的所有客房中,输出所有客房的信息,以检验客房的经营情况。所有客房信息输出界面如图7所示。图7 所有客房的信息4.关键代码分析(1)系统的登录在主函数中,输出客房信息系统的各功能提示。选择需要执行功能的序号,由switch判断和选择所需要执行的功能。选择1:执行客房信息的录入
7、;选择2:执行客人入住登记;选择3:执行教工客房信息的修改;选择4:执行客人退房结算;选择5:执行查询所有客房信息;选择6:执行查询;选择7:执行删除客房信息;选择8:退出系统;主函数:int main() holterroom room200; /创建客房对象数组 int top;holterroom b;top=-1;fstream file(room.txt,ios:in);while (1)file.read(char *)&b,sizeof(b);if (!file) break;top+;roomtop=b;file.close(); /读取文件夹room.txt中的数据while
8、(1) coutnn 客房管理系统 nn;cout - nn;cout 1.客房信息的录入 nn;cout 2.客人入住登记 nn;cout 3.客房信息的修改 nn;cout 4.客人退房结算 nn;cout 5.查询所有客房信息 nn;cout 6.查询系统 nn;cout 7.删除客房信息 nn;cout 8.退 出 系 统 nn;coutchoose;system(cls);switch (choose) /用户的选择 case 1:set_holterroom_info(room); break; /输入客房信息case 2:set_customer_info(room);break
9、; /客人入住登记 case 3:change_holterroom_info(room); break; /修改客房信息case 4:setcount(room);break; /客户退房 case 5:printall(room); break; /查询所有客房信息 case 6:find_choose(room); break; /查询case 7:delete_holterroom(room);break; /删除客房信息 case 8:write(room);save_holterroom_info(room);save_customer_info(room);exit(0); /退
10、出 default : break; return 0;在读取数据时,可以从以有的文件中读取数据到程序中,避免了程序的重复输入数据,既实现了程序的多次可持续地使用,又有利于后面的信息修改、删除等功能。void read(holterroom *room) /读取数据库int top;holterroom b;top=-1;fstream file(room.txt,ios:in); /创建一个输入文件流对象,读取文件夹room.txt中的数据。while (1)file.read(char *)&b,sizeof(b);if (!file) break;top+;roomtop=b; file
11、.close();/关闭文件(2)信息的添加客房信息的录入,创建holterroom类和room对象数组 ,调用构造函数,输入客房的房间编号、房间类型、定房日期、房间价格、房间内容及个人的入住有效期。 void set_holterroom_info(holterroom *room)if(room0.num=0)int size;cout暂无房间信息,请添加!endl;static int number=700;coutsize;for(int i=0;isize;i+)roomi.num=number+;cout房间号码:roomi.num;coutendl;coutroomi.type;
12、coutroomi.price;coutendlendl;cout客房信息录入成功!endlendl;else string p;coutp;if(p=y)add_holterroom_info(room);else if(p=n)cout已取消房间添加.endlendl;else cout此操作非法!endlendl;system(pause);system(cls);;(3)信息的删除删除客房信息,按要求提示输入要删除客房的房间编号,通过for循环和if语句寻找到要删除的客房,并显示其信息,然后询问用户是否要删除客房信息,通过if语句进行判断,若输入“y”则删除,并显示删除成功,若为“n”
13、,则取消删除,输入其他均显示“非法操作!”。void delete_holterroom(holterroom *room)int num;coutnum;for(int i=0;i30;i+)if(roomi.num=num )string b;cout房间已找到:endl;cout房间类型:;coutroomi.typeendl;cout房间价格:;coutroomi.priceendl;cout客户信息:endl;cout客户身份证号码:;coutroomi.idendl;cout客户姓名:;coutrendl;cout订金;coutroomi.moneyendl;co
14、utb;coutendl;if(b=y)roomi.type=null;roomi.num=0;roomi.price=0;roomi.money=0;roomi.staytime=0;r=无;roomi.id=0;cout删除成功!endl;else if(b=n)cout取消删除。endl;else cout非法的操作!endl;system(pause);system(cls);(4)信息的修改修改客房信息,按要求提示输入要修改客房的房间编号,通过for循环和if语句寻找到要修改的客房,并显示其信息,然后询问用户是否要修改客房信息,通过if语句进行判断,若输入“y”则进
15、行逐条修改,若为“n”,则取消修改,输入其他均显示“非法操作!”。void change_holterroom_info(holterroom *room)int num;cout请输入要修改的房间号码:num;string _name;string _id;int _money;int _staytime;string _price;string _type;int t=0;for(int i=0;i30;i+)if(num=roomi.num)cout房间类型:;coutroomi.typeendl;cout房间价格:;coutroomi.priceendl;cout客户姓名:;coutr
16、;coutendl;cout客户身份证号码:;coutroomi.id;coutendl;cout订金:;coutroomi.money;cout将于roomi.staytime天后退房。endl;cout房间信息已找到!endl;coutp;if(p=y) cout_name;r=_name;coutendl;cout_id;roomi.id=_id;coutendl;cout_money;roomi.money=_money;cout_staytime;cout天后;roomi.staytime=_staytime;coutendl; save_cust
17、omer_info(room); cout修改成功!endlendl;else if(p=n) cout已取消修改。;else cout操作非法!;t+;else if(t=0 & i=29 & roomi.type=null)cout查无此房!endlendl;system(pause);system(cls);5.测试程序测试是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。原程序:void add_holterroom_info(holterroom *room) /添加房间static int number=700;string k;doint
18、 i=5; roomi.num=number+;cout房间号码:roomi.num;coutendl;coutroomi.type;coutroomi.price;coutendlendl;cout添加成功!;coutk;i+;while(k=y);if (k=n)else cout此操作非法!;编译成功后开始运行,信息录入后,第一次调用函数可以正确添加房间信息,但第二次调用后,会覆盖第一次的记录,无法正确添加房间;经思索后,发现加入个for循环,并对每一房间进行判断,确定为未赋值再进行房间的添加便可。void add_holterroom_info(holterroom *room)str
19、ing p;do int number=700;for(int i=0;i30;i+)if(roomi.num=0) roomi.num=number+;cout房间号码:roomi.num;coutendl;coutroomi.type;coutendl;coutroomi.price;coutendlendl;coutp;break;else number+;while(p=y);if(p=n)cout已取消添加。endlendl;else cout此操作非法!endlendl;6.课题总结与体会 短学期的课程设计是一次非常珍贵的机会,这是一次可以让我们所学的理论与实际相结合的机会。通过这
20、次比较完整的一个程序的设计,我走出了纯理论的学习,从一种全新的角度去学习。 其实个人而言,我体会较深的一点是团队互相帮助学习的过程,自己看书学习的经验,以及从网上以及其他各种途径获得信息和知识的经验。理论与实际相结合的设计,锻炼了我综合运用所学的基础知识,解决实际问题的能力,同时也提高我查阅文献资料、对程序整体的把握等其他能力水平。而且通过对整体的掌控,对局部的取舍,都使我的能力得到了锻炼,我的各方面经验都得到了极大的丰富。 在面对各种陌生知识的时候,队友的耐心与任性,对于知识的渴求,对于工作的专注,极大程度上鼓舞了我。我们在交流中,迸发出了很多设计灵感,互相建议改进的过程中,我们分别从各个方
21、面共同改进着,这个已经不能仅仅称作课程设计的作品。 从知识获得方面来说,各种已经学习到的c+知识以及各种从网上搜索来的案例,我们都是随着设计的不断深入而不断熟悉的。和老师以及同学的沟通交流更使我对程序整体的规划与设计有了新的认识,也对自己提出了新的要求。提高是有限的但提高也是全面的。正是这一次设计让我积累了许多实际经验。也必然会让我在未来的工作学习中表现出更高的耐力、理解力、实践力。顺利如期的完成本次课程设计给了我很大的信心,但是也为我指出很多不足的地方。学习其实就是一个不断完善的过程,正视自己的不足之处。在以后的工作和学习中不断的弥补这些不足之处,在以后的生活中也要保持同样的态度,不断地完善
22、自己。 7.参考文献【1】郑莉.c+教程.人民邮电出版社.【2】谭浩强.c语言程序设计.清华大学出版社.【3】沈纪新.visual c+使用速成.清华大学出版社.8.源代码/客房管理系统主要实现的功能包括:客房信息的录入、修改、删除、剩余客房信息查询、排序、输出。客房信息可写入文件,也可从文件中读取。/* 系统的登录 信息的添加 信息的删除 信息的修改 */#include#include#includeusing namespace std;const int maxb=30;class customerpublic:string name;string id;int money;int s
23、taytime;customer();class holterroom:public customerpublic:int num;string price;string type;holterroom()num=0;price=0;type=null;money=0;staytime=0;name=无;id=0;holterroom();ofstream str(客房信息.txt,ios_base:trunc);ofstream c(客户信息.txt,ios_base:trunc);void set_customer_info(holterroom *room);void set_holte
24、rroom_info(holterroom *room);void find_holterroombynum(holterroom *room);void display_holterroom_info(holterroom *room);void add_holterroom_info(holterroom *room);void find_holterroombyname(holterroom *room);void find_holterroombytype(holterroom *room);void printall(holterroom *room);void change_hol
25、terroom_info(holterroom *room);void setcount(holterroom *room);void delete_holterroom(holterroom * room);void find_choose(holterroom * room);void save_holterroom_info(holterroom * room);void save_customer_info(holterroom * room);void write(holterroom *room);void read(holterroom *room);void save_holt
26、erroom_info(holterroom * room)for(int i=0;i30;i+)if(roomi.num!=0)str房间号码:roomi.numt房间类型:troomi.typet房间价格:troomi.priceendlendl;void save_customer_info(holterroom * room)for(int i=0;i30;i+)if(roomi.num!=0 & r!=无)c房间类型:;croomi.typeendl;c房间价格:;croomi.priceendl;c客户身份证号码:;croomi.idendl;c客户姓名:;cro
27、endl;c订金;croomi.moneyendl;c入住天数:;croomi.staytime;c天endlendl;void display_holterroom_info(holterroom *room)int t=0;for(int i=0;i30;i+)if(roomi.staytime=0 & roomi.num!=0)cout房间号码:;coutroomi.numt;cout房间类型:;coutroomi.typet;cout房间价格:;coutroomi.priceendl;t+;else if(t=0&i=29)cout暂无空房!;system(pause)
28、;system(cls);void find_choose(holterroom *room)int p=0;while(p=0) coutnn 客房管理系统 nn; cout - nn;cout 1.通过房号查询客房 nn;cout 2.通过类型查询客房 nn;cout 3.通过客户姓名查询客房 nn;cout 4.查询所有空房 nn;cout 5.返回主菜单 nn;coutchoose;system(cls);switch (choose) /用户的选择 case 1:find_holterroombynum(room); break; /输入客房信息case 2:find_holterr
29、oombytype(room);break; /客人入住登记 case 3:find_holterroombyname(room); break; /修改客房信息case 4:display_holterroom_info(room);break; /客户退房case 5:p=5;break; default :; break;void delete_holterroom(holterroom *room)int num;coutnum;for(int i=0;i30;i+)if(roomi.num=num )string b;cout房间已找到:endl;cout房间类型:;coutroom
30、i.typeendl;cout房间价格:;coutroomi.priceendl;cout客户信息:endl;cout客户身份证号码:;coutroomi.idendl;cout客户姓名:;coutrendl;cout订金;coutroomi.moneyendl;coutb;coutendl;if(b=y)roomi.type=null;roomi.num=0;roomi.price=0;roomi.money=0;roomi.staytime=0;r=无;roomi.id=0;cout删除成功!endl;else if(b=n)cout取消删除。endl;
31、else cout非法的操作!endl;system(pause);system(cls);void setcount(holterroom *room)int num;int t=0;coutnum;for(int i=0;i30;i+)if(num=roomi.num & roomi.staytime!=0)string b;cout房间已找到:endl;cout房间类型:;coutroomi.typeendl;cout房间价格:;coutroomi.priceendl;cout客户信息!:endl;cout客户身份证号码:;coutroomi.idendl;cout客户姓名:;coutr
32、endl;cout订金:;coutroomi.moneyendl;cout入住天数:;coutroomi.staytime;cout天.;coutendl;coutb;if(b=y)roomi.staytime=0;roomi.money=0;r=无;roomi.id=0;cout退房成功!endl;else if(b=n)cout取消退房。endl;else cout非法的操作!endl;t+;else if(num=roomi.num & roomi.staytime=0)cout此房为空房!;t+;else if(t=0 & i=29 & roomi.
33、type=null)cout查无此房!;system(pause);system(cls);void add_holterroom_info(holterroom *room)static int number=700;string p;do int number=700;for(int i=0;i30;i+)if(roomi.num=0) roomi.num=number+;cout房间号码:roomi.num;coutendl;coutroomi.type;coutendl;coutroomi.price;coutendlendl;coutp;break;else number+;whil
34、e(p=y);if(p=n)cout已取消添加。endlendl;else cout此操作非法!endlendl;void set_holterroom_info(holterroom *room)if(room0.num=0)int size;cout暂无房间信息,请添加!endl;static int number=700;coutsize;for(int i=0;isize;i+)roomi.num=number+;cout房间号码:roomi.num;coutendl;coutroomi.type;coutroomi.price;coutendlendl;cout客房信息录入成功!en
35、dlendl;else string p;coutp;if(p=y)add_holterroom_info(room);else if(p=n)cout已取消房间添加.endlendl;else cout此操作非法!endlendl;system(pause);system(cls);void set_customer_info(holterroom *room)int num;int t=0;coutnum;for(int i=0;i30;i+)if(num=roomi.num & roomi.staytime=0)cout房间已找到:endl;cout房间类型:;coutroomi.typ
36、eendl;cout房间价格:;coutroomi.priceendl;cout请输入客户信息!endl;coutp;if(p=y)coutroomi.id;coutr;coutroomi.money;coutroomi.staytime;cout天;coutendl;cout信息录入成功!endl;else if(p=n) cout订房已取消。;else cout操作非法!;t+;else if(num=roomi.num & roomi.staytime!=0)cout此房已住;t+;else if(t=0 & i=29)cout查无此房;system(pause);sy
37、stem(cls);void find_holterroombynum(holterroom *room)int num;int t=0;coutnum;for(int i=0;i30;i+)if(num=roomi.num & roomi.staytime!=0)cout房间类型:;coutroomi.typeendl;cout房间价格:;coutroomi.priceendl;cout客户姓名:;coutr;coutendl;cout客户身份证号码:;coutroomi.id;coutendl;cout订金;coutroomi.money;coutendlendl;cout此房已住,;c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 海南省陵水黎族自治县2025年上半年公开招聘城市协管员试题含答案分析
- 2025年二手房交易佣金支付标准协议
- 2025年度高科技企业采购法务与合同管理综合服务合同
- 2025房地产无底薪业务员营销服务及佣金分配合同
- 2025年度大型活动专用场馆租赁服务合同
- 2025年医疗设备采购与售后服务合同
- 2025版商铺租赁委托与市场拓展合作合同
- 2025年出租车行业新能源技术研发合作协议
- 2025版建筑废弃物填土处理工程合同
- 2025年度图书出版翻译与校对服务合同
- 2026年高考政治一轮复习:高考政治主观题背诵提纲汇编
- 骨科手术切口感染的预防与控制
- 电商数据分析报告顾问合同
- 电子信息类专业导论(第3版)课件全套 张有光 00 课程简介 - 12 中国大学教育:理念与实践
- 馕小屋管理办法
- (2025)全国辅警考试题库及答案
- 钢结构设计质量保证体系及措施
- 2025年财会类考试-精算师-寿险精算实务历年参考题库含答案解析(5卷100道集合-单选题)
- 2025至2030中国无痛伤口闭合器行业发展趋势分析与未来投资战略咨询研究报告
- 集资修路管理办法
- 脊髓梗死护理课件
评论
0/150
提交评论