C++C客房管理系统含源代码docxWord文件下载.docx

上传人:b****6 文档编号:19316913 上传时间:2023-01-05 格式:DOCX 页数:26 大小:24.49KB
下载 相关 举报
C++C客房管理系统含源代码docxWord文件下载.docx_第1页
第1页 / 共26页
C++C客房管理系统含源代码docxWord文件下载.docx_第2页
第2页 / 共26页
C++C客房管理系统含源代码docxWord文件下载.docx_第3页
第3页 / 共26页
C++C客房管理系统含源代码docxWord文件下载.docx_第4页
第4页 / 共26页
C++C客房管理系统含源代码docxWord文件下载.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

C++C客房管理系统含源代码docxWord文件下载.docx

《C++C客房管理系统含源代码docxWord文件下载.docx》由会员分享,可在线阅读,更多相关《C++C客房管理系统含源代码docxWord文件下载.docx(26页珍藏版)》请在冰豆网上搜索。

C++C客房管理系统含源代码docxWord文件下载.docx

开发环境

系统开发平台:

中文windowsxp

系统开发工具:

MicrosoftVisualC++。

系统开发语言:

C++

3详细设计

按照需求分析所得,客房信息系统有以下几个功能模块:

1.新建两个类;

分别为Customer和Room,其中Customer类中包含住客姓名、身份证号、年龄、入住日期等相关信息,Room类包含房间号,类型,价格等相关信息。

2.录入客房信息;

先判断是否已存在客房信息,如果已存在,则提示选择是否再次添加;

若不存在,则添加客房信息。

3.住客登记模块;

页面首先显示目前剩余客房信息,后提示客户选择入住房号,登记相关客户信

息,登记入住成功。

4.修改客房信息;

客房管理系统

读取保存的客房信息数据,根据客房编号查找所需修改的客房信息,然后根据具体所需,修改成员参数。

5.退房结算模块;

页面首先显示目前已住客房信息,后提示客户选择退房房号,确认退房后,解

除客户与客房关联,并提示需要缴纳房费金额,退房成功。

6.查询客房函数;

住客

客房

退房

查询

删除

分按编号、类型、客户姓名查找客房信息,同时可以查看当日所有客房、已住客房、剩录余客入房信息,登这样记可以更具修有人改性化来选结择所算剩余的客信房,息从而进信行日息常安排。

7.删除客房信息模块;

从保存中的文件中读取信息,删除需要删除的信息,完善现在的客房运作。

8.退出系统函数;

房号

姓名

类型

所有

已住

在退出系统的同时,进行文件保存,方便日后再次读取客房信息。

根据需求分析,可以对这个系统的设计分为以下几个模块:

空房

客房

类的设计

输入choose判,断choose是否是1-7

根据需求分析,有客房类和客户类。

(1)客户类

Y

客户类中的主要成员有:

name为客户姓名,id为客户身份证号码,

age为年龄,roomnum为入住房号。

开始初始化。

具体如下:

根据choose的值调用各功能模块函数

显示各功能选项

stringname;

xt"

ios_base:

:

trunc);

ofstreamC("

客户信息.txt"

if(!

Str||!

C)

{cout<

<

"

文件存入失败!

"

;

return}

for(inti=0;

i<

30;

i++)

{if(room[i].num!

=0)

{Str<

room[i].num<

\t"

room[i].type<

room[i].price<

room[i].renshu<

room[i].yajin<

endl;

}}

for(intj=0;

j<

j++)

{if(customer[j].roomnum!

{

C<

customer[j].roomnum<

customer[j].name<

customer[j].id<

customer[j].sex

customer[j].age<

customer[j].ruzhum<

customer[j].ruzhut

customer[j].lidianm<

customer[j].lidiant<

customer[j].staytime<

en

dl;

}

();

4所遇到的问题和分析解决

1、在最初开始,我先把客房信息和客户信息设置成结构体,但是后来发现,结构体数组初始化有点麻烦,需要用到for循环,于是用了类,然后构造函数初始化客房类和客户类里的相关信息。

然后在保存文件函数和读入文件函数模块,我运用

了read和write函数直接读取文件和存入文件。

但是在存入的时候导致了一系列问题,在保存文件里出现了很多“烫”字,之后上网查了很多信息,但是一直没查到解决的方案,一直调试都没有成功。

最后,我不得已用了<

>

>

两个读取符,一个一个把数组中的字符(串)存入文件中。

在存入文件的时候,存入的时候字符与字符之间没有间隔,导致读取的时候,出现一整片读取错误的状况。

后来,修改了存入文件中,用‘\t’设置字符跳格之后,读取文件成功。

2、在客房录入函数模块中,我设置了客房录入从房间号300开始。

但是这样子,

遇到了一些问题。

比如,虽然在第一次的时候,能正确录入。

但是当再次录入的时

候,也依旧从房间号300开始录入,相当于前面录入的客房信息已经被抹掉了。

过我从网上查询后,运用了static函数。

因为static函数有这样的作用,平时无static

定义的变量的含义是由程序自动控制变量的生存周期,通常指的就是变量在进入其

作用域的时候被分配,离开其作用域的时候被释放;

而static不一样,变量在程序初始化时被分配,直到程序退出前才被释放;

也就是static是按照程序的生命周期来分配释放变量的,而不是变量自己的生命周期。

所以我在客房录入函数模块中,

运用了static函数定义房间号number变量,使其成为静态局部变量。

这样就可以在每次退出系统后,都记录之前最后一次录入的房间号了。

3、在程序编译时常常会出现各种或多或少的错误提示,其原因往往是程序代码

出现了一些细节上的简单错误,或是分号缺失,或是大括号不对应,或是未定义变量等各种常见错误。

这些错误虽不是致命性的严重失误但却影响了程序的编译和连接,最终仍不能使程序正常执行。

为了能够消除这些错误,必须不断地、反复地修改程序代码,并且不断的调试运行。

5系统特色及关键技术

本系统在设计之初,有很多可圈可点的想法点子,让系统有一定的特色。

但在实际操作过程中,却出现各种各样的问题,包括时间问题,个人水平问题等等,导致有些功能不能得以实现。

故在系统完成后,我审阅了程序,没有很大的特色。

但是小特色还是有以下几点的。

1、在房间录入函数模块,如果之前已经录入了房间,会有提示说之前已经录入客房信息,是否再次录入。

这是比较人性化的一方面。

这个主要是在录入客房信息时,运用了for函数循环查找是否之前已经录入了客房信

息,然后用if语句在已经录入和未录入之间选择,组成了以上的可以提示信息的功能。

2、在住客入住登记模块,在开始的界面,会首先提示当日剩余的客房信息,包括类型、价格等等,以便供客户更好的选择房间。

这里没有用到多大的技术,主要是在该函数模块里面,调用了剩余客房函数模块,使其先显示剩余客房信息,让客户有更好的选择权。

关键代码如下:

cout<

今日本酒店剩余空房如下:

if(room[i].renshu==0&

&

room[i].num!

房间号码:

房间类型:

房间价格:

p++;

3、在退房结算模块,在提示客户确认需要退掉的房间后,还会自动显示当前应该缴纳的房费。

这一功能主要通过调用该客户的信息以及入住的天数,房间的价格等,进行一个四则运算后得出来的。

关键代码如下。

房客信息如下:

客户姓名:

客户身份证号码:

endl<

客户共入住:

天,共需交费:

n<

整。

确定要退掉客房?

(Y/N)"

6结论

(一)系统完成情况

本次课程设计,大体上完成了老师对客房管理系统的要求。

该系统能简单实现对客栈的住宿情况进行管理。

客房包括以下信息:

房号、房型、单价(每床)、已住人数;

客户包括以下信息:

住客姓名、性别、年龄、身份、身份证号码,房号,床号,入住日期、入住时间、离店日期、离店时间。

并且我把这些信息应存放在两个文件中,分别是客房信息文件、客户信息文件。

在系统退出后,可以以TXT的形式保存客房和客户信息。

同时,在登陆系统的时候,可以读入已经保存的客房和客户信息。

这样可以避免每次登陆和退出系统时信息的丢失。

本系统具有以下的功能:

1.具有建立数据文件(客房信息文件、住客信息文件)功能;

5.能查询(查找)一些基本信息(如按房号查询、按姓名查询、空余客房查询等);

6.具有多种统计功能(要求有一定的实用性)

(如某客房当前有那些空床、某住客应付多少费用等)

7、在系统界面,比如客房录入、入住登记等界面,都有比较人性化的功能,能显示已经录入或者该房是否已经入住等等提示。

(二)未能完成和有待改进之处

由于本人的技术水平问题和时间问题,本系统有不少不足之处。

比如没有排序功

能。

虽然在登记入住过程中,能显示剩余客房的情况,但是只能按照房间号来排序,没有能进行房间类型或者房间价格来排序,这是不足的地方。

还有,没能统计当天到底一共入住了多少个客房,只能显示所有的已住客房数。

这也是不足之处。

(三)课程设计期间的收获

通过此次课程设计,我更加理解和懂得运用结构化程序设计的思想和方法,初步掌握开发一个小型实用系统的基本方法,学会调试一个较长程序的的基本方法,学会利用流程图表示算法,进一步掌握和提高利用C++语言进行程序设计的能力。

在课程设计中遇到了许多的调试不出结果出乎意料的问题。

在调试的过程中,得到了许多以后可以避免错误的经验。

也得到了很多没有接触过的知识。

这些都使我获益匪浅。

最大的收获是,编写程序时一定要有信心和勇气,要相信自己一定可以把这个程序编写出来。

分析问题做出算法,想好思路,在心里有个大致的框架,然后按部就班的记下自己想到的每一点内容,把写下的东西认真整理,查缺补漏,把一些细节的地方补上,就这样一个貌似很难的程序就写出来了(其实编程并不难,关键是要投

入,要钻到里面去)。

下一步就是读程序了,读程序时一定要小心仔细,一条语句、一条语句的读,看是否能输出自己想要输出的结果,如果发现错误要马上改过来,

再接着向下读,直到把程序调试的完美无缺为至。

附:

源代码:

#include<

iostream>

string>

fstream>

usingnamespacestd;

/*问题描述:

至少包括以下信息:

这些信息应存放在两个文件中,分别是客房信息文件、住客信息文件。

房型"

可取

值1-3,分别表示单人间、双人间、通铺(可以住很多人的房间)功能要求:

(如某客房当前有那些空床、某住客应付多少费用、某天住店总人数和总收入等)

说明:

(1)功能各方面越完善越好

(2)自定义的数据结构可以使用数组,链表,树等,可以使用多种数据结构来存放数据,然后在其上使用不同的排序算法。

(3)若用数组,必须动态分配空间(文本文件中最好有一行来表示数组应该有多大,这样便于动态分配空间)

*/

um==0)

intsize;

staticintNumber=300;

目前暂无房间信息,请添加!

cout<

请输入要添加的房间数:

cin>

size;

room[i].num=Number++;

room[i].num;

房间类型:

room[i].type;

房间价格:

room[i].price;

};

客房信息录入成功!

else

stringP;

客房信息已有,是否还要添加房间?

(Y/N)"

P;

if(P=="

Y"

room_luru2(room);

elseif(P=="

N"

已取消房间添加."

elsecout<

此操作非法!

system("

pause"

);

cls"

房间添加成功,是否继续添加?

(Y/N):

cin>

break;

elseNumber++;

}while(P=="

已取消添加。

enshu==0&

if(p==0)cout<

抱歉,今日暂无空房!

请问,需要入住吗?

b;

if(b=="

{intNum;

intt=0;

请输入入住房间号码:

Num;

if(Num==room[i].num&

room[i].renshu==0&

room[i].renshu=1;

customer[i].roomnum=Num;

请输入客户信息!

customer[i].name;

customer[i].id;

年龄:

customer[i].age;

性别:

customer[i].sex;

客房押金:

room[i].yajin;

入住日期:

customer[i].ruzhum;

入住时间:

customer[i].ruzhut;

离店日期:

customer[i].lidianm;

离店时间:

customer[i].lidiant;

入住天数:

customer[i].staytime;

信息录入成功!

t++;

elseif(Num==room[i].num&

room[i].renshu!

=0&

抱歉,此房已住"

elseif(t==0&

i==29)

查无此房"

elseif(b=="

)cout<

订房已取消。

查无此房!

um)

房间号:

房间类

型:

价格:

房间信息已找到!

是否确定要修改房间信息?

stringp;

p;

if(p=="

房间类型改为:

_type;

room[i].type=_type;

房间价格改为:

_price;

room[i].price=_price;

um==Num&

room[i].num==customer[j].roomnum)taytime*room[i].price-room[i].yajin;

房间已找到:

客户共入住:

天,共需交费:

元整。

B;

if(B=="

customer[j].name="

无"

customer[j].id="

0"

customer[j].sex="

customer[j].age=-1;

customer[j].roomnum=0;

customer[j].ruzhum="

customer[j].ruzhut="

customer[j].lidianm="

customer[j].lidiant="

customer[j].staytime=0;

room[i].renshu=0;

room[i].yajin=0;

退房成功!

elseif(B=="

取消退房成功。

else{cout<

非法的操作!

elseif(t==0&

i==29&

j==29){cout<

错误,找不到客房信

息!

\n

过房号查询客房

2.通过姓名查询客房

3.通过类型查询客房

4.查询所有客房

\n"

5.查询已住客房

6.查询所有空房

7.返回

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 演讲主持

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

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