酒店管理系统程序设计
随着计算机技术的飞速发展,信息时代的到来,信息改变了我们这个社会。各类行业在日常经营管理各个方面也在悄悄地走向规范化和网络化。市场经济的发展,消费者消费意识的提高,酒店行业的竞争越来越激烈。为了提高办事效率,增加、保证酒店的销售额,树立酒店的良好形象,运用科学的管理方法非常必要。客房管理的信息化程度体现在将计算机及网络与信息技术应用于经营与管理,以现代化工具代替传统手工作业。无疑,使用网络信息化管理使客房管理更先进、更高效、更科学,信息交流更迅速。
我力求开发一个界面友好,功能强大,使用简单的酒店客房管理系统。它可以完全适用于小型酒店宾馆的客房管理服务。希望通过使用酒店客房管理系统得到所需信息,达到提高客房管理水平的目的。
需求分析
有关客房信息的制定,房间号,所在楼层,价格,以及客房状态。是否有电话,电视,空调,网络和独立卫生间,以及所提供的服务等级。客户信息的录入和存储,包括客户的基本信息和是否为贵宾等信息等。客房的预定登记,主要是登记房客的信息,对房客的信息进行维护。入住实际,和预定的离店时间以及已付的押金,将客房的状态标注为预定状态。客房的入住登记,对已预定的客房进行入住操作,更新客户的实际入住时间,将客房标注为已入住的状态。客房的退房结算,更新客户的实际离店时间,对房客的实际住店的时间进行计算,输出实际产生的消费,与预订时所付的押金进行结算,多还少补。客房状态查询,分为四个模块,1查询当前已预定的客房,输出所有已经预定的客房和预定的客户信息,包括预定的入住和离店时间已经预交的押金;2查询当前已入住的客房,输出所有已经入住的客房和客户的信息,包括客户实际入住的时间;3查询当前空置的客房,分类显示所有空置的房间;4排序显示所有非空置的房间,输出这些客户的信息和房间信息。系统退出时,以二进制文件将当前系统的状态和所有的用户信息,客房信息存储到本地。在启动程序时,读取存储的二进制文件,将上一次的系统状态恢复。若第一次启动,则创建二进制文件。系统的异常处理,对错误的输入进行处理,防止系统出现异常
系统功能结构
简要的流程图
类的定义和设计
定义一个存储房间信息和客户信息的基类,包扩这个房间的预定,入住,结算和显示信息的方法。 其中预定,和显示的方法定义为虚函数,用于实现多态性。
class Room
{
public:
Room();
~Room();
virtual void booking() =0;
void checkin();
void checkout();
virtual void display() =0;
int room_num
;
int status
;
protected:
char name
[10];
char contact
[11];
int start
;
int dead
;
int deposit
;
int price
;
};
用房间的基类派生出一个标准间的派生类,加上安装电话,和安装空调两个属性,并且重载预定登记和状态查询两个方法。
class TwinRoom : public Room
{
public:
TwinRoom();
~TwinRoom();
void booking();
void display();
private:
int tel
;
char air
;
};
用房间的基类派生出一个高级标准间的派生类,加上VIP编号,安装电话,和安装空调,电视,和无线网络属性,并且重载预定登记和状态查询两个方法。
class HTwinRoom : public Room
{
public:
HTwinRoom();
~HTwinRoom();
void booking();
void display();
private:
int VIPnum
;
int tel
;
char air
;
int TV
;
int wifi
;
};
用房间的基类派生出一个豪华套间的派生类,加上SVIP编号,安装电话,和安装空调,电视,无线网络和独立卫生间属性,并且重载预定登记和状态查询两个方法。
class SuiteRoom : public Room
{
public:
SuiteRoom();
~SuiteRoom();
void booking();
void display();
private:
int SVIPnum
;
int tel
;
char air
;
char TV
;
char wifi
;
char bath
;
};
其他模块设计
查询预定客房信息:用一个函数,遍历所有的的对象,把房间状态为预定的用对象的display()方法显示出来。
查询入住客房信息:用一个函数,遍历所有类型的的对象,把房间状态为入住的用对象的display()方法显示出来。
查询空置的房间:用一个函数,遍历所有类型的的对象,把房间状态为空置的,另一个函数分类显示各种类型的房间的编号。
排序显示客房信息:用冒泡排序,以房间的编号为关键字,按递增输出所有不少空置的房间。
文件存储模块中,用三个二进制的文件分别存储三种类型的客房信息,读取文件时,把文件的指针指到文件的末尾,计算出需要读取的对象的个数,用一个循环将文件中的数据读取到内存中。 存储文件时,用函数确定对象数组中的对象个数,用一个for循环将对象以二进制的方法保存到文件中。
存储文件时,用函数确定对象数组中的对象个数,用一个for循环将对象以二进制的方法保存到文件中。
测试结果