sqlserver C++ 宾馆客房管理系统数据库大作业含源文件.docx

上传人:b****5 文档编号:28498732 上传时间:2023-07-15 格式:DOCX 页数:39 大小:520.22KB
下载 相关 举报
sqlserver C++ 宾馆客房管理系统数据库大作业含源文件.docx_第1页
第1页 / 共39页
sqlserver C++ 宾馆客房管理系统数据库大作业含源文件.docx_第2页
第2页 / 共39页
sqlserver C++ 宾馆客房管理系统数据库大作业含源文件.docx_第3页
第3页 / 共39页
sqlserver C++ 宾馆客房管理系统数据库大作业含源文件.docx_第4页
第4页 / 共39页
sqlserver C++ 宾馆客房管理系统数据库大作业含源文件.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

sqlserver C++ 宾馆客房管理系统数据库大作业含源文件.docx

《sqlserver C++ 宾馆客房管理系统数据库大作业含源文件.docx》由会员分享,可在线阅读,更多相关《sqlserver C++ 宾馆客房管理系统数据库大作业含源文件.docx(39页珍藏版)》请在冰豆网上搜索。

sqlserver C++ 宾馆客房管理系统数据库大作业含源文件.docx

sqlserverC++宾馆客房管理系统数据库大作业含源文件

数据库系统概论课程设计报告

 

题目:

宾馆客房管理系统

    

 

一、需求分析

1.需求描述

面对信息时代的机遇和挑战,采用全新的计算机网络和宾馆信息管理系统,已成为提高宾馆管理效率、改善服务水准的重要手段之一,在某种意义上,宾馆管理的信息化已成为现代化宾馆的重要标志。

客房管理是宾馆管理的核心任务,为此,我们结合目前客房管理的现状,经过充分的调研和综合分析,开发了宾馆客房信息管理系统。

经过综合分析,确定了该系统应该包括如下功能:

(1)客房标准管理:

提供有关客房标准的添加、修改、和删除。

(2)客房信息管理:

管理各个客房的具体信息,如类型、位置、状态等。

(3)客户信息管理:

入住宾馆的客人的具体信息的录入、保存等。

(4)查询功能:

包括客户信息查询、客房信息查询、住宿记录查询结算信息查询等。

(5)入住管理功能:

登记入住信息、分配房间等。

(6)预订管理功能:

登记预订客户、客房的信息以及浏览查询等。

(7)结算功能:

客户退房收款以及注销房间等。

2.数据字典

经过以上综合分析,设计出后台数据库的数据字典如下:

(一)数据项

1数据项:

客户号

 含义说明:

唯一标识一个客户的身份

别名:

客户证件号

  类型:

数字

长度:

10

 取值范围:

1000—9999

2数据项:

姓名

 含义说明:

客户称谓 

别名:

个人代号 

类型:

文本

长度:

50

3数据项:

客房标准

含义说明:

唯一标识某一客房标准

类型:

文本

长度:

10

4数据项:

额定人数

含义说明:

规定各个客房的可容纳人数

类型:

数字

长度:

4

 取值范围:

1—10

5数据项:

价格

 含义说明:

客户住宿一日所付费用

别名:

每日房租

类型:

货币型

 长度:

 取值范围:

10—1000

6数据项:

客房编号

含义说明:

唯一标识一个客房

 别名:

门牌号

类型:

数字

 长度:

4

取值范围:

101—9999

7数据项:

入住日期

 含义说明:

客户入住宾馆的时间

类型:

日期型

长度:

8

取值范围:

2000-1-1—2999-12-31

8数据项:

结算日期

 含义说明:

客户退房结帐时的时间

 类型:

日期型

 长度:

8

  取值范围:

2000-1-1—2999-12-31 

9数据项:

预订入住日期

 含义说明:

客户订房时约定入住的日期

类型:

日期型

长度:

8

取值范围:

2000-1-1—2999-12-31

10数据项:

预订天数

 含义说明:

预订将要在宾馆住宿的时间长度

类型:

数字型

长度:

4

取值范围:

1—1000

11数据项:

预缴押金

含义说明:

客户订房时交纳的现金金额

 类型:

货币型

 长度:

8

取值范围:

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

n

1

n

n

1

入住

n

1

 

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(CIDRID StartDay StartTimeOrderAcount)

结算信息(客户号客房编号 价格 餐费 退房日期退房时间入住天数折扣金额)

CheckInfo(CID,RID,Price,Dinner,EndDay,EndTime,Day,Repay,Money)

系统用户(用户名密码,用户权限)

UserInfo(Name,Pwd,Level)

四、 物理结构设计

1.实施环境:

本系统是基于SQLServer2000数据库开发的一套管理系统,所以它的运行前提是要求该系统所运行的环境必须装有SQLServer 2000。

本系统可以在装有Windows98/2000/XP/NT的操作系统下运行。

2.开发工具:

 VC6.0+ SQLServer2000

五、数据库实施和维护

(一)创建数据库:

打开SQL ServerEnterpriseManger, “新建数据库”,创建一个空数据库,命名为myhotel。

(二)在myhotel中创建六张表,包括

(1)客房标准表;

(2)客房信息表;(3)客户信息表;(4)预订信息表;(5)入住信息表;(6)结算信息表;(7)系统用户信息表。

(1)客房标准(客房类型,客房面积,额定人数,是否有电视,是否有空调,是否有电话,是否有网络,是否有卫生间,价格)

RoomStandard(Type,Area,PeopleNum,TV,AirCondition,Telephone,

Internet,WC,Price)

CREATETABLERoomStandard

(Type CHAR(10)PRIMARYKEY,

AreaINT,

PeopleNumINT,

 TVCHAR(10),

 TelephoneCHAR(10),

AirConditionCHAR(10),

Internet CHAR(10),

WCCHAR(10),

PriceMONEY)

 

(2)客房信息(客房编号客房类型,客房状态)

RoomInformation(RID,Type,Price,Status)

CREATETABLERoomInformation

(RIDINTPRIMARYKEY,

 TypeCHAR(10),

 StatusCHAR(10),

FOREIGNKEY(Type)REFERENCESRoomStandard(Type))

(3)客户信息(客户号 姓名性别 住址联系电话)

ClientInfo(CID,CName,Sex,Place)

CREATETABLEClientInfo 

(CID INTPRIMARYKEY,

CName CHAR(10),

Sex CHAR(10),

PlaceCHAR(10),

TelephoneCHAR(20))

(4)预订信息(客户号客房编号 登记类型预订日期入住人数入住日期用餐标准押金 )

OrderInfo(CID,RID,OrderDay,OrderAcount,StartDay,StartTime,Dinner,Deposit)

CREATETABLE OrderInfo 

(CID INTNOTNULL,

RIDINTNOTNULL,

OrderDay INT,

OrderAcountINT,

 StartDayINT,

StartTime DATETIME,

DinnerCHAR(10),

 DepositINT,

PRIMARYKEY(CID,RID),

 FOREIGNKEY(RID)REFERENCESRoomInformation(RID) )

(5)入住信息(客户号 客房编号入住日期 入住时间 入住人数)

LiveInfo(CIDRIDStartDay StartTimeOrderAcount)

CREATETABLELiveInfo

(CID INTNOTNULL,

 RIDINTNOTNULL,

StartDayINT,

 StartTimeDATETIME,

OrderAcountINT,

PRIMARY KEY(CID,RID),

FOREIGN KEY(RID)REFERENCESRoomInformation(RID) )

(6)结算信息(客户号 客房编号价格餐费退房日期退房时间 入住天数折扣金额)

CheckInfo(CID,RID,Price,Dinner,EndDay,EndTime,Day,Repay,Money)

CREATETABLECheckInfo

(CIDINTNOTNULL,

 RIDINTNOTNULL,

EndDayINT,

EndTime DATETIME,

DayINT,

RepayINT,

MoneyINT,

PRIMARY KEY(CID,RID),

FOREIGNKEY(CID)REFERENCESClientInfo(CID),

FOREIGNKEY(RID)REFERENCESRoomInformation(RID))

(6)系统用户(用户名密码,用户权限)

UserInfo(Name,Pwd,Level)

CREATE TABLE  UserInfo

(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.类型

ORDER BY在住记录_cx2.入住日期;

5历史记录_cx1

SELECT客户信息.客户号,客户信息.姓名,入住记录.客房编号, 入住记录.入住日期, 入住记录.结算日期,[结算日期]-[入住日期]AS入住天数,入住记录.备注

FROM 客户信息LEFTJOIN入住记录ON客户信息.客户号 = 入住记录.客户号

WHERE(((入住记录.备注)="已退房"))

ORDERBY入住记录.结算日期;

6历史记录_cx2

SELECT 历史记录_cx1.客户号,历史记录_cx1.姓名, 历史记录_cx1.客房编号, 客房信息.类型, 历史记录_cx1.入住日期, 历史记录_cx1.结算日期,历史记录_cx1.入住天数

FROM历史记录_cx1 INNERJOIN客房信息ON历史记录_cx1.客房编号=客房信息.客房编号

ORDER BY历史记录_cx1.结算日期;

7历史记录_cx3

SELECT历史记录_cx2.客户号,历史记录_cx2.姓名,历史记录_cx2.客房编号,历史记录_cx2.类型,客房标准.价格,历史记录_cx2.入住日期,历史记录_cx2.结算日期,历史记录_cx2.入住天数,[价格]*[入住天数]AS结算金额

FROM客房标准INNERJOIN历史记录_cx2 ON 客房标准.类型 =历史记录_cx2.类型

ORDERBY历史记录_cx2.结算日期;

8预订信息_cx1

SELECT客户信息.客户号,客户信息.客户号, 客户信息.姓名,客户信息.性别,预订记录.客房编号,预订记录.预订日期, 预订记录.预订入住日期,预订记录.预订天数

FROM 客户信息LEFTJOIN预订记录ON客户信息.客户号=预订记录.客户号

WHERE(((客户信息.客户号)=[预订记录].[客户号]))

ORDER BY 预订记录.预订日期;

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预订信息_cx2 ON客房标准.类型 =预订信息_cx2.类型

ORDER BY预订信息_cx2.预订日期;

11 客房在住人数统计_cx

SELECT在住记录_cx3.客房编号,在住记录_cx3.类型, Count(在住记录_cx3.客房编号)AS在住人数,在住记录_cx3.额定人数

FROM在住记录_cx3

GROUP BY 在住记录_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客房在住人数统计_cx INNERJOIN未满非空房间_cx1ON客房在住人数统计_cx.客房编号=未满非空房间_cx1.客房编

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

当前位置:首页 > 考试认证 > IT认证

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

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