宾馆客房管理系统设计Word格式.docx
《宾馆客房管理系统设计Word格式.docx》由会员分享,可在线阅读,更多相关《宾馆客房管理系统设计Word格式.docx(24页珍藏版)》请在冰豆网上搜索。
![宾馆客房管理系统设计Word格式.docx](https://file1.bdocx.com/fileroot1/2022-11/22/4854d431-271e-47c2-8209-4145cf99f1d2/4854d431-271e-47c2-8209-4145cf99f1d21.gif)
客户证件号
类型:
数字
长度:
10
取值范围:
1000—9999
2数据项:
姓名
客户称谓
个人代号
类型:
文本
长度:
50
3数据项:
客房标准
含义说明:
唯一标识某一客房标准
文本
4数据项:
额定人数
规定各个客房的可容纳人数
4
1—10
5数据项:
价格
客户住宿一日所付费用
每日房租
货币型
8
10—1000
6数据项:
客房编号
唯一标识一个客房
门牌号
101—9999
7数据项:
入住日期
客户入住宾馆的时间
日期型
8数据项:
结算日期
客户退房结帐时的时间
9数据项:
预订入住日期
客户订房时约定入住的日期
10数据项:
预订天数
预订将要在宾馆住宿的时间长度
数字型
1—1000
11数据项:
预缴押金
客户订房时交纳的现金金额
10—10000
(二)数据流
1数据流:
客户需求
说明:
客户根据自身的需要而向前台提出的客房需求
数据流来源:
客户
数据流去向:
客房查询系统
组成:
价格、位置、客房配套设施等
平均流量:
待定
高峰期:
2数据流:
查询结果
输入查询条件后输出的结果
查询系统
客房编号、类型、价格、位置、客房配套设施等
3数据流:
客户选择
客户根据查询结果所作出的选择、决定
入住或预订登记系统
类型、客房编号等
4数据流:
客户信息与入住信息
前台将客户及其入住信息录入系统
登记模块
入住记录、预订记录
客房编号、客户号等
5数据流:
6数据流:
客户入住信息
结算时系统提供给客户的具体的入住信息,如价格、入住时间、消费金额等
结算系统
价格、入住时间、消费金额等
7数据流:
存档信息
客户结算时的结算日期、金额
客户入住记录
结算日期、金额
(三)数据存储
1数据存储:
客户信息
记录客户的基本信息,如客户号、姓名、性别、籍贯等
输入数据流:
输出数据流:
数据量:
存取方式:
随机存取
2数据存储:
记录各种类型客房的设施配置等信息
顺序存取
3数据存储:
客房信息
记录客房的基本信息,所属类型、客房编号、价格、客房状态等
4数据存储:
系统用户
记录用户使用系统的用户名、密码
5数据存储:
入住记录
记录客户入住的基本信息,如入住日期、预订客房编号等
6数据存储:
预订记录
记录客户预订的基本信息,如预订入住日期、预订客房编号、预订天数等
(四)处理过程
1处理过程:
查询
根据客户的需求和客户提供的信息,输入到查询系统中去,系统自动检索出与输入相匹配的记录输出到用户界面。
输入:
查询条件
输出:
与查询条件相匹配的的记录
处理:
在系统存储的信息中检索符合要求的信息记录并输出
2处理过程:
登记
客户入住或预订时提供个人信息以及入住或预订信息,记录到响应的存储中
客户信息、客房选择等
将客户的个人信息记录到客户信息表中,将入住(预订)信息记录到入住(预订)记录中
3处理过程:
结算
根据客户提供的信息为客户办理退房手序并注销房间
客户证件号或姓名
客户入住的具体信息以及结算信息
在系统存储的信息中检索出该客户的入住信息进行,结算后将该信息存档
4处理过程:
系统管理
用户的注册、登陆、修改密码以及对用户进行管理
用户名
用户的信息
在系统用户表中存储、修改、删除用户的信息,维护系统的可用性、安全性等
3.系统功能模块设计
根据以上对系统的功能需求的分析,将系统的功能划分为七大模块:
(一)住宿管理:
是客房管理系统的核心部分,它的主要功能是存储订房信息,包括登记姓名,证件号,客房标准,押金,入住时间等,这些直接关系到后面的结算信息管理。
(二)客房管理:
包括客房的编号,类型,面积,最多可住人数,价格,是否有电视等问题。
当添加新的客房时,就添加相应的标准信息,也可以查看客房的标准信息,同时可以进行修改。
(三)挂帐管理:
主要是处理客户的挂帐操作。
(四)查询统计:
主要是为客户和操作员提供客房信息查询、客房标准查询、客户信息查询入住情况查询等等。
(五)日结:
结合订房信息自动化结帐,并存储结算信息。
结算完毕,就可以退房。
(六)系统设置:
主要是管理员添加用户、用户权限设置、以及用户密码的修改等等。
(七)退出系统:
关闭并退出系统。
系统的功能模块图如下:
二、概念结构设计
通过以上对数据字典的设计,总结出以下几个数据库实体,其E-R图如下:
系统综合E-R图:
1.客户实体图:
2.客房信息实体图
3.客房标准实体图:
4.预订信息
5.入住信息:
6.结算:
7.数据流图:
三、逻辑结构设计
客房标准(客房类型,客房面积,额定人数,是否有电视,是否有空调,是否有电话,是否有网络,是否有卫生间,价格)
RoomStandard(Type,Area,PeopleNum,TV,AirCondition,Telephone,
Internet,WC,Price)
客房信息(客房编号客房类型客房状态)
RoomInformation(RID,Type,Price,Status)
客户信息(客户号姓名性别住址联系电话)
ClientInfo(CID,CName,Sex,Place,telephone)
预订信息(客户号客房编号登记类型预订日期入住人数入住日期用餐标准押金)
OrderInfo(RID,OrderDay,OrderAcount,StartDay,Dinner,Deposit)
入住信息(客户号客房编号入住日期入住时间入住人数)
LiveInfo(CIDRIDStartDayStartTimeOrderAcount)
结算信息(客户号客房编号价格餐费退房日期退房时间入住天数折扣金额)
CheckInfo(CID,RID,Price,Dinner,EndDay,EndTime,Day,Repay,Money)
系统用户(用户名密码,用户权限)
UserInfo(Name,Pwd,Level)
四、物理结构设计
1.实施环境:
本系统是基于SQLServer2000数据库开发的一套管理系统,所以它的运行前提是要求该系统所运行的环境必须装有SQLServer2000。
本系统可以在装有Windows98/2000/XP/NT的操作系统下运行。
2.开发工具:
VC6.0+SQLServer2000
五、数据库实施和维护
(一)创建数据库:
打开SQLServerEnterpriseManger,“新建数据库”,创建一个空数据库,命名为myhotel。
(二)在myhotel中创建六张表,包括
(1)客房标准表;
(2)客房信息表;
(3)客户信息表;
(4)预订信息表;
(5)入住信息表;
(6)结算信息表;
(7)系统用户信息表。
(1)客房标准(客房类型,客房面积,额定人数,是否有电视,是否有空调,是否有电话,是否有网络,是否有卫生间,价格)
CREATETABLERoomStandard
(TypeCHAR(10)PRIMARYKEY,
AreaINT,
PeopleNumINT,
TVCHAR(10),
TelephoneCHAR(10),
AirConditionCHAR(10),
InternetCHAR(10),
WCCHAR(10),
PriceMONEY)
(2)客房信息(客房编号客房类型,客房状态)
CREATETABLERoomInformation
(RIDINTPRIMARYKEY,
TypeCHAR(10),
StatusCHAR(10),
FOREIGNKEY(Type)REFERENCESRoomStandard(Type))
(3)客户信息(客户号姓名性别住址联系电话)
ClientInfo(CID,CName,Sex,Place)
CREATETABLEClientInfo
(CIDINTPRIMARYKEY,
CNameCHAR(10),
SexCHAR(10),
PlaceCHAR(10),
TelephoneCHAR(20))
(4)预订信息(客户号客房编号登记类型预订日期入住人数入住日期用餐标准押金)
OrderInfo(CID,RID,OrderDay,OrderAcount,StartDay,StartTime,Dinner,Deposit)
CREATETABLEOrderInfo
(CIDINTNOTNULL,
RIDINTNOTNULL,
OrderDayINT,
OrderAcountINT,
StartDayINT,
StartTimeDATETIME,
DinnerCHAR(10),
DepositINT,
PRIMARYKEY(CID,RID),
FOREIGNKEY(RID)REFERENCESRoomInformation(RID))
(5)入住信息(客户号客房编号入住日期入住时间入住人数)
CREATETABLELiveInfo
OrderAcountINT,
FOREIGNKEY(RID)REFERENCESRoomInformation(RID))
(6)结算信息(客户号客房编号价格餐费退房日期退房时间入住天数折扣金额)
CREATETABLECheckInfo
EndDayINT,
EndTimeDATETIME,
DayINT,
RepayINT,
MoneyINT,
FOREIGNKEY(CID)REFERENCESClientInfo(CID),
FOREIGNKEY(RID)REFERENCESRoomInformation(RID))
(6)系统用户(用户名密码,用户权限)
CREATETABLEUserInfo
(NameCHAR(10)PRIMARYKEY,
PwdCHAR(10),
LevelCHAR(10))
(三)建立查询
1客房详细信息_cx
SELECT客房信息.客房编号,客房信息.类型,客房标准.价格,客房标准.额定床位,客房标准.额定人数,客房标准.是否有电视,客房标准.是否有电话,客房标准.是否有空调,客房标准.是否有卫生间
FROM客房标准LEFTJOIN客房信息ON客房标准.类型=客房信息.类型;
2在住记录_cx1
SELECT入住记录.客户号,客户信息.姓名,入住记录.客房编号,客户信息.性别,入住记录.入住日期
FROM客户信息LEFTJOIN入住记录ON客户信息.客户号=入住记录.客户号
WHERE(((入住记录.备注)="
未退房"
))
ORDERBY入住记录.客户号;
3在住记录_cx2
SELECT在住记录_cx1.客户号,在住记录_cx1.姓名,在住记录_cx1.性别,在住记录_cx1.客房编号,客房信息.类型,在住记录_cx1.入住日期
FROM在住记录_cx1INNERJOIN客房信息ON在住记录_cx1.客房编号=客房信息.客房编号
ORDERBY在住记录_cx1.入住日期;
4在住记录_cx3
SELECT在住记录_cx2.客户号,在住记录_cx2.姓名,在住记录_cx2.性别,在住记录_cx2.客房编号,在住记录_cx2.类型,客房标准.价格,客房标准.额定床位,客房标准.额定人数,在住记录_cx2.入住日期
FROM客房标准INNERJOIN在住记录_cx2ON客房标准.类型=在住记录_cx2.类型
ORDERBY在住记录_cx2.入住日期;
5历史记录_cx1
SELECT客户信息.客户号,客户信息.姓名,入住记录.客房编号,入住记录.入住日期,入住记录.结算日期,[结算日期]-[入住日期]AS入住天数,入住记录.备注
已退房"
ORDERBY入住记录.结算日期;
6历史记录_cx2
SELECT历史记录_cx1.客户号,历史记录_cx1.姓名,历史记录_cx1.客房编号,客房信息.类型,历史记录_cx1.入住日期,历史记录_cx1.结算日期,历史记录_cx1.入住天数
FROM历史记录_cx1INNERJOIN客房信息ON历史记录_cx1.客房编号=客房信息.客房编号
ORDERBY历史记录_cx1.结算日期;
7历史记录_cx3
SELECT历史记录_cx2.客户号,历史记录_cx2.姓名,历史记录_cx2.客房编号,历史记录_cx2.类型,客房标准.价格,历史记录_cx2.入住日期,历史记录_cx2.结算日期,历史记录_cx2.入住天数,[价格]*[入住天数]AS结算金额
FROM客房标准INNERJOIN历史记录_cx2ON客房标准.类型=历史记录_cx2.类型
ORDERBY历史记录_cx2.结算日期;
8预订信息_cx1
SELECT客户信息.客户号,客户信息.客户号,客户信息.姓名,客户信息.性别,预订记录.客房编号,预订记录.预订日期,预订记录.预订入住日期,预订记录.预订天数
FROM客户信息LEFTJOIN预订记录ON客户信息.客户号=预订记录.客户号
WHERE(((客户信息.客户号)=[预订记录].[客户号]))
ORDERBY预订记录.预订日期;
9预订信息_cx2
SELECT预订信息_cx1.客户号,预订信息_cx1.姓名,预订信息_cx1.性别,预订信息_cx1.客房编号,客房信息.类型,预订信息_cx1.预订日期,预订信息_cx1.预订入住日期,预订信息_cx1.预订天数
FROM客房信息INNERJOIN预订信息_cx1ON客房信息.客房编号=预订信息_cx1.客房编号
ORDERBY预订信息_cx1.预订日期;
10预订信息_cx3
SELECT预订信息_cx2.客户号,预订信息_cx2.姓名,预订信息_cx2.性别,预订信息_cx2.客房编号,预订信息_cx2.类型,客房标准.价格,客房标准.额定床位,客房标准.额定人数,预订信息_cx2.预订日期,预订信息_cx2.预订入住日期,预订信息_cx2.预订天数,[价格]*[预订天数]AS预缴押金
FROM客房标准INNERJOIN预订信息_cx2ON客房标准.类型=预订信息_cx2.类型
ORDERBY预订信息_cx2.预订日期;
11客房在住人数统计_cx
SELECT在住记录_cx3.客房编号,在住记录_cx3.类型,Count(在住记录_cx3.客房编号)AS在住人数,在住记录_cx3.额定人数
FROM在住记录_cx3
GROUPBY在住记录_cx3.客房编号,在住记录_cx3.类型,在住记录_cx3.额定人数;
12客满房间_cx
SELECT客房在住人数统计_cx.客房编号,客房在住人数统计_cx.类型,客房在住人数统计_cx.在住人数,客房在住人数统计_cx.额定人数
FROM客房在住人数统计_cx
WHERE(((客房在住人数统计_cx.类型)<
>
"
双人间"
)AND((客房在住人数统计_cx.在住人数)>
0))OR(((客房在住人数统计_cx.类型)="
)AND((客房在住人数统计_cx.在住人数)=2))OR(((客房在住人数统计_cx.类型)="
三人间"
)AND((客房在住人数统计_cx.在住人数)=3));
13未满房间_cx
SELECT客房编号,类型
FROM客房信息
WHERE客房编号notin(select客房编号from客满房间_cx);
14空房_cx
SELECT客房信息.客房编号,客房信息.类型,客房标准.额定人数
FROM客房标准INNERJOIN客房信息ON客房标准.类型=客房信息.类型
WHERE(((客房信息.客房编号)NotIn(select客房编号from入住记录where备注="
)));
15未满非空房间_cx1
SELECT客房信息.客房编号,客房信息.类型
FROM未满房间_cx
WHERE(((客房信息.客房编号)NotIn(select客房编号from空房_cx)));
16未满非空房间_cx2
SELECT未满非空房间_cx1.客房编号,未满非空房间_cx1.类型,客房在住人数统计_cx.在住人数,客房在住人数统计_cx.额定人数
FROM客房在住人数统计_cxINNERJOIN未满非空房间_cx1ON客房在住人数统计_cx.客房编号=未满非空房间_cx1.客房编号;
六、数据库的操作界面
(1)登陆窗体的创建和设计
根据用户的不同,分配不同的权限。
(2)主窗体的创建和设计
(3)挂账查询
主要实现代码如下:
#if!
defined(AFX_FINDGUAZHANGDLG_H__ED6B3DCD_4A66_4FC3_9CD6_94882B283343__INCLUDED_)
#defineAFX_FINDGUAZHANGDLG_H__ED6B3DCD_4A66_4FC3_9CD6_94882B283343__INCLUDED_
#if_MSC_VER>
1000
#pragmaonce
#endif//_MSC_VER>
//Findguazhangdlg.h:
headerfile
//
/////////////////////////////////////////////////////////////////////////////
//CFindguazhangdlgdialog
classCFindguazhangdlg:
publicCDialog
{
//Construction
public:
CFindguazhangdlg(CWnd*pParent=NULL);
//standardconstructor
//定义ADO连接、命令、记录集变量指针
_ConnectionPtrm_pConnection;
_CommandPtrm_pCommand;
_RecordsetPtrm_pRecordset;
_Recordset