ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:24.49KB ,
资源ID:6307644      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6307644.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C++C客房管理系统含源代码docx.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C++C客房管理系统含源代码docx.docx

1、C+C客房管理系统含源代码docx课程设计 (论文 )说明书题 目: 简易客房管理系统学 院: 计算机科学与工程学院专 业: 计算机科学与技术姓 名:学 号:指导教师:2014年09月 30日引言随着我国经济的迅速发展,人们的生活水平有了显着的提高,宾馆酒店业的竞争也愈来愈激烈。如何在激烈的竞争中生从发展,是每一个宾馆酒店必须面临的问题。因此,采用全新的计算机网络和宾馆管理系统,已成为提高宾馆的管理效率,改善服务的水准备的重要手段之一。在某种意义上,宾馆客房管理方面的信息话已成为现代化宾馆的重要标志。是国家发展必要的软件管理基础。所以,本着这样的需求。此次 C+语言课程设计我选择的是简易客房管

2、理系统设计,系统设计采用 c+语言在 microsoft visual c+ 下编译而成。通过本课程设计,使我能更加系统地理解和掌握数据结构的基本概念; 能自如地根据实际要求,设计相应的数据结构,并运用 C+语言实现所设计的算法,能够利用所学的基本知识和技能,分析和解决简单的程序设计问题 ,为后续其它课程的学习和应用打下良好基础。1系统概述客房管理系统具有1.建立数据文件 (客房信息文件、住客信息文件 )功能;2具有数据输入功能;3具有数据修改功能;4具有数据删除功能;5能查询(查找)一些基本信息(如按房号查询、按姓名查询、空余客房查询等);6具有多种统计功能(如、某住客应付多少费用等)本系统

3、开发由分析、设计、实施、调试和测试等阶段组成。通过一个菜单界面,提示用户进行信息输入输出,提供客房信息录入,客户入住登记,客房信息修改,客房信息删除,退房结算,查询空房,已住房相关信息的功能,并在最后具有通过文件的形式保存客房信息、住客信息的功能。由此构成一个简单的,供客房工作人员进行客房管理、住客登记、查询一体化的客房管理系统。2需求分析系统需求根据题目要求,要求对客户信息进行输入、输出等操作;在程序中需要浏览客户的信息,应提供显示、统计、查询、修改等操作;另外还应提供键盘式选择菜单实现功能选择。开发环境系统开发平台:中文 windows xp系统开发工具: Microsoft Visual

4、 C+ 。系统开发语言: C+3详细设计按照需求分析所得,客房信息系统有以下几个功能模块:1 新建两个类;分别为 Customer 和 Room, 其中 Customer 类中包含住客姓名、身份证号、年龄、入住日期等相关信息, Room类包含房间号,类型,价格等相关信息。2 录入客房信息;先判断是否已存在客房信息,如果已存在,则提示选择是否再次添加;若不存在,则添加客房信息。3.住客登记模块;页面首先显示目前剩余客房信息,后提示客户选择入住房号,登记相关客户信息,登记入住成功。4修改客房信息; 客房管理系统读取保存的客房信息数据,根据客房编号查找所需修改的客房信息,然后根据具体所需,修改成员参

5、数。5.退房结算模块;页面首先显示目前已住客房信息,后提示客户选择退房房号,确认退房后,解除客户与客房关联,并提示需要缴纳房费金额,退房成功。6查询客房函数;住客客房退 房查 询删 除客房分按编号、类型、客户姓名查找客房信息,同时可以查看当日所有客房、已住客房、剩录余客入房信息,登这样记可以更具修有人改性化来选结择所算剩余的客信房,息从而进信行日息常安排。7删除客房信息模块;从保存中的文件中读取信息,删除需要删除的信息,完善现在的客房运作。8退出系统函数;房号姓名类型所有已 住所有在退出系统的同时,进行文件保存,方便日后再次读取客房信息。根据需求分析,可以对这个系统的设计分为以下几个模块:空

6、房查 询查 询查 询客 房客 房类的设计输入 choose 判,断 choose 是否是 1-7根据需求分析,有客房类和客户类。(1) 客户类Y客户类中的主要成员有: name为客户姓名, id 为客户身份证号码,age 为年龄, roomnum为入住房号。开始初始化。具体如下:根据 choose的值调用各功能模块函数显示各功能选项string name;xt,ios_base:trunc);ofstream C( 客户信息 .txt,ios_base:trunc);if (!Str|!C)cout 文件存入失败! ;returnfor(int i=0;i30;i+)if(roomi.num!

7、=0)Strroomi.numtroomi.typetroomi.pricetroomi.renshutroomi.yajinendl;for(int j=0;j30;j+)if(customerj.roomnum!=0)Ccustomerj.roomnumtcustomerj.nametcustomerj.idtcustomerj.sextcustomerj.agetcustomerj.ruzhumtcustomerj.ruzhuttcustomerj.lidianmtcustomerj.lidianttcustomerj.staytimeendl;();();4所遇到的问题和分析解决1、在

8、最初开始,我先把客房信息和客户信息设置成结构体,但是后来发现,结构体数组初始化有点麻烦,需要用到 for 循环,于是用了类,然后构造函数初始化客房类和客户类里的相关信息。然后在保存文件函数和读入文件函数模块,我运用了 read 和 write 函数直接读取文件和存入文件。 但是在存入的时候导致了一系列问题,在保存文件里出现了很多“烫”字,之后上网查了很多信息,但是一直没查到解决的方案,一直调试都没有成功。最后,我不得已用了 两个读取符,一个一个把数组中的字符(串)存入文件中。在存入文件的时候,存入的时候字符与字符之间没有间隔,导致读取的时候,出现一整片读取错误的状况。后来,修改了存入文件中,用

9、 t设置字符跳格之后,读取文件成功。2、在客房录入函数模块中, 我设置了客房录入从房间号 300 开始。但是这样子,遇到了一些问题。比如,虽然在第一次的时候,能正确录入。但是当再次录入的时候,也依旧从房间号 300 开始录入,相当于前面录入的客房信息已经被抹掉了。经过我从网上查询后,运用了 static 函数。因为 static 函数有这样的作用, 平时无 static定义的变量的含义是由程序自动控制变量的生存周期, 通常指的就是变量在进入其作用域的时候被分配,离开其作用域的时候被释放;而 static 不一样,变量在程序初始化时被分配,直到程序退出前才被释放;也就是 static 是按照程序

10、的生命周期来分配释放变量的,而不是变量自己的生命周期。所以我在客房录入函数模块中,运用了 static 函数定义房间号 number 变量,使其成为静态局部变量。 这样就可以在每次退出系统后,都记录之前最后一次录入的房间号了。3、在程序编译时常常会出现各种或多或少的错误提示,其原因往往是程序代码出现了一些细节上的简单错误,或是分号缺失,或是大括号不对应,或是未定义变量等各种常见错误。 这些错误虽不是致命性的严重失误但却影响了程序的编译和连接,最终仍不能使程序正常执行。为了能够消除这些错误,必须不断地、反复地修改程序代码,并且不断的调试运行。5系统特色及关键技术本系统在设计之初,有很多可圈可点的

11、想法点子,让系统有一定的特色。但在实际操作过程中,却出现各种各样的问题,包括时间问题,个人水平问题等等,导致有些功能不能得以实现。故在系统完成后,我审阅了程序,没有很大的特色。但是小特色还是有以下几点的。1、 在房间录入函数模块,如果之前已经录入了房间,会有提示说之前已经录入客房信息,是否再次录入。这是比较人性化的一方面。这个主要是在录入客房信息时, 运用了 for 函数循环查找是否之前已经录入了客房信息,然后用 if 语句在已经录入和未录入之间选择,组成了以上的可以提示信息的功能。2、 在住客入住登记模块,在开始的界面,会首先提示当日剩余的客房信息,包括类型、价格等等,以便供客户更好的选择房

12、间。这里没有用到多大的技术,主要是在该函数模块里面,调用了剩余客房函数模块,使其先显示剩余客房信息,让客户有更好的选择权。关键代码如下:cout今日本酒店剩余空房如下: endl;for(int i=0;i30;i+)if(roomi.renshu=0 & roomi.num!=0)cout房间号码: ;coutroomi.numt;cout房间类型 :;coutroomi.typet;cout房间价格 :;coutroomi.priceendl;p+;3、 在退房结算模块,在提示客户确认需要退掉的房间后,还会自动显示当前应该缴纳的房费。这一功能主要通过调用该客户的信息以及入住的天数,房间的价

13、格等,进行一个四则运算后得出来的。关键代码如下。cout房客信息如下: endl;cout客户姓名: ;coutcustomerj.nameendl;cout客户身份证号码 :;coutcustomerj.idendlendl;cout 客户共入住: customerj.staytime 天 ,共需交费: n 元整。 endl;cout确定要退掉客房? (Y/N);6结论(一)系统完成情况本次课程设计,大体上完成了老师对客房管理系统的要求。该系统能简单实现对客栈的住宿情况进行管理。客房包括以下信息:房号、房型、单价(每床)、已住人数;客户包括以下信息:住客姓名、性别、年龄、身份、身份证号码,房

14、号,床号,入住日期、入住时间、离店日期、离店时间。并且我把这些信息应存放在两个文件中,分别是客房信息文件、客户信息文件。在系统退出后,可以以 TXT 的形式保存客房和客户信息。同时,在登陆系统的时候,可以读入已经保存的客房和客户信息。 这样可以避免每次登陆和退出系统时信息的丢失。本系统具有以下的功能:1具有建立数据文件 (客房信息文件、住客信息文件 )功能;2具有数据输入功能;3具有数据修改功能;4具有数据删除功能;5能查询(查找) 一些基本信息 (如按房号查询、 按姓名查询、 空余客房查询等) ;6具有多种统计功能(要求有一定的实用性)(如某客房当前有那些空床、某住客应付多少费用等)7、在系

15、统界面,比如客房录入、入住登记等界面,都有比较人性化的功能,能显示已经录入或者该房是否已经入住等等提示。(二)未能完成和有待改进之处由于本人的技术水平问题和时间问题,本系统有不少不足之处。比如没有排序功能。虽然在登记入住过程中, 能显示剩余客房的情况, 但是只能按照房间号来排序,没有能进行房间类型或者房间价格来排序,这是不足的地方。还有,没能统计当天到底一共入住了多少个客房,只能显示所有的已住客房数。这也是不足之处。(三)课程设计期间的收获通过此次课程设计,我更加理解和懂得运用结构化程序设计的思想和方法,初步掌握开发一个小型实用系统的基本方法,学会调试一个较长程序的的基本方法,学会利用流程图表

16、示算法,进一步掌握和提高利用 C+语言进行程序设计的能力。在课程设计中遇到了许多的调试不出结果出乎意料的问题。在调试的过程中,得到了许多以后可以避免错误的经验。也得到了很多没有接触过的知识。这些都使我获益匪浅。最大的收获是,编写程序时一定要有信心和勇气,要相信自己一定可以把这个程序编写出来。分析问题做出算法,想好思路,在心里有个大致的框架,然后按部就班的记下自己想到的每一点内容,把写下的东西认真整理,查缺补漏,把一些细节的地方补上,就这样一个貌似很难的程序就写出来了(其实编程并不难,关键是要投入,要钻到里面去) 。下一步就是读程序了, 读程序时一定要小心仔细, 一条语句、一条语句的读,看是否能

17、输出自己想要输出的结果,如果发现错误要马上改过来,再接着向下读,直到把程序调试的完美无缺为至。附:源代码:#include#include#includeusing namespace std;/* 问题描述:该系统能简单实现对客栈的住宿情况进行管理。至少包括以下信息:房号、房型、单价(每床)、已住人数;住客姓名、性别、年龄、身份、身份证号码,房号,床号,入住日期、入住时间、离店日期、离店时间。这些信息应存放在两个文件中,分别是客房信息文件、住客信息文件。 房型 可取值 1-3,分别表示单人间、双人间、通铺(可以住很多人的房间)功能要求:1具有建立数据文件 (客房信息文件、住客信息文件 )功能

18、;2具有数据输入功能;3具有数据修改功能;4具有数据删除功能;5能查询(查找) 一些基本信息 (如按房号查询、 按姓名查询、 空余客房查询等) ;6具有多种统计功能(要求有一定的实用性)(如某客房当前有那些空床、某住客应付多少费用、某天住店总人数和总收入等)说明:(1)功能各方面越完善越好(2)自定义的数据结构可以使用数组,链表,树等,可以使用多种数据结构来存放数据,然后在其上使用不同的排序算法。(3)若用数组,必须动态分配空间(文本文件中最好有一行来表示数组应该有多大,这样便于动态分配空间)*/um=0)int size;static int Number=300;cout 目前暂无房间信息

19、,请添加! endlendl; coutsize;for(int i=0;isize;i+)roomi.num=Number+;cout房间号码: roomi.num;coutendl;coutroomi.type;coutroomi.price;coutendlendl;cout 客房信息录入成功 !endlendl;elsestring P;coutP;if(P=Y)room_luru2(room);else if(P=N)cout已取消房间添加 .endlendl;else cout此操作非法! endlendl;system(pause);system(cls);um=0)roomi.

20、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;enshu=0 & roomi.num!=0)cout房间号码: ;coutroomi.numt;cout房间类型 :;coutroomi.typet;cout房间价格 :;coutroomi.priceendl;p+;if(p=0)

21、cout 抱歉,今日暂无空房! endl;elsecout 请问 ,需要入住吗?( Y/N )b;if(b=Y) int Num; int t=0;cout 请输入入住房间号码: Num;for(int i=0;i30;i+)if(Num=roomi.num &roomi.renshu=0 & roomi.num!=0)roomi.renshu=1;customeri.roomnum=Num;cout请输入客户信息! endlendl;coutcustomeri.name;coutcustomeri.id;coutcustomeri.age;coutcustomeri.sex;coutroom

22、i.yajin;coutcustomeri.ruzhum;coutcustomeri.ruzhut;coutcustomeri.lidianm;coutcustomeri.lidiant;coutcustomeri.staytime;coutendl;cout信息录入成功 !endl;t+;else if(Num=roomi.num &roomi.renshu!=0& roomi.num!=0)cout抱歉,此房已住 ;t+;else if(t=0 & i=29)cout查无此房 ;else if(b=N) cout 订房已取消。 ;else cout查无此房! ;system(pause);

23、system(cls);um)cout房间号 :roomi.numt 房间类型:roomi.typet 价格 :roomi.priceendlendl;cout房间信息已找到 !endl;coutp;if(p=Y)cout_type;roomi.type=_type;coutendl;cout_price;roomi.price=_price;coutendl;um=0)cout查无此房! endlendl;system(pause);system(cls);um=Num&roomi.num=customerj.roomnum ) taytime * roomi.price - roomi.y

24、ajin;cout房间已找到: endl;cout房间类型 :;coutroomi.typeendl;cout房间价格 :;coutroomi.priceendlendl;t+;cout房客信息如下: endl;cout客户姓名: ;coutcustomerj.nameendl;cout客户身份证号码 :;coutcustomerj.idendlendl;cout客户共入住: customerj.staytime 天,共需交费:n 元整。 endl;coutB;coutendl;if(B=Y)customerj.name=无;customerj.id=0;customerj.sex=0;cus

25、tomerj.age= -1;customerj.roomnum=0;customerj.ruzhum=0;customerj.ruzhut=0;customerj.lidianm=0;customerj.lidiant=0;customerj.staytime=0;roomi.renshu=0;roomi.yajin=0;cout退房成功! endl;else if(B=N)cout 取消退房成功。 endl;break;else cout非法的操作! endl;break;else if(t=0&i=29&j=29)cout 错误,找不到客房信息!endlendl;system(pause);system(cls);n;过房号查询客房coutn2.通过姓名查询客房n;coutn3.通过类型查询客房n;coutn4.查询所有客房n ;coutn5.查询已住客房n;coutn6.查询所有空房n;coutn7.返回

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1