宾馆管理系统数据库课程设计实验报告Word文档格式.docx
- 文档编号:22397026
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:40
- 大小:301.99KB
宾馆管理系统数据库课程设计实验报告Word文档格式.docx
《宾馆管理系统数据库课程设计实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《宾馆管理系统数据库课程设计实验报告Word文档格式.docx(40页珍藏版)》请在冰豆网上搜索。
订房信息表(OrderInfo):
房间编号char(10),登记类型varchar(50),登记人姓名varchar(50),登记人证件varchar(50),入住人数int,入住时间datatime,用餐标准int,押金float,是否结账smallint.
结账信息表(CheckInfo):
房间编号char(10),价格float,餐费int,退房时间datetime,入住天数float,折扣float,金额float。
用户信息表(UserInfo):
用户名varchar(50),密码varchar(50)。
3数据库设计
3.1概念结构设计
N1
1
N
1N
宾馆管理系统E-R图
3.2逻辑结构设计
房间标准信息表(房间标准,房间面积,最多容纳人数,是否有空调,是否有电视,是否有冰箱,是否有电话,是否有电脑,是否有宽带,是否有洗衣机,是否有独立卫生间,价格).
房间信息表(房间编号,房间类型,价格,房间状态)。
订房信息表(房间编号,登记类型,登记人姓名,登记人证件,入住人数,入住时间,用餐标准,押金,是否结账)。
结账信息表(房间编号,价格,餐费,退房时间,入住天数,折扣,金额)。
3.3物理结构设计
用户信息表(UserInfo)
序号
字段名称
字段描述
数据类型
长度
属性
1
UserName
用户名
varchar
50
主键
2
Userpwd
密码
非空
客房标准表(RoomStandard)
TypeName
房间类型
主键
2
Area
房间面积
int
4
3
PeopleNum
最多容纳人数
4
AirCondition
有无空调
Smallint
5
Television
有无电视
6
Refrigerator
有无冰箱
7
Telephone
有无电话
8
Computer
有无电脑
9
Internet
有无宽带
10
Washing-machine
有无洗衣机
11
Washing
有无独立卫生间
12
Price
价格/天
float
8
房间信息表(RoomInformation)
序号
长度
RoomID
房间编号
char
10
TypeName
3
价格
Status
房间状态
text
16
主键:
RoomID外键:
TypeName被参照表:
RoomStandard
约束条件:
Status=’空闲’orStatus=’已订’
订房信息表(OrderInfo)
Char
OrderType
登记类型
OrderName
登记人姓名
OrderPaper
登记人证件
5
OrderAcount
入住人数
6
StartDay
入住时间
datetime
7
DinnerType
用餐标准
Deposit
押金
9
是否结账
smallint
外键:
RoomID,被参照表:
RoomInformation
Status='
0'
orStatus='
1'
结算信息表(CheckInfo)
房价编号
Dinner
餐费
EndDay
退房时间
DayNum
入住天数
Discount
折扣
Money
金额
RoomID,被参照表:
对OrderInfo表建的触发器:
1.CREATETRIGGER[deleteOrderInfo]ON[dbo].[OrderInfo]
FORDELETE
AS
declare@roomidchar(10),@statussmallint
select@roomid=RoomID,@status=Statusfromdeleted
begin
if(@status=0)
deletefromcheckinfo
whereRoomID=@roomidandMoney=NULL
updateRoomInformation
setStatus='
空闲'
whereRoomID=@roomid
end
2.createtriggerRoomStatus1
ondbo.OrderInfo
forinsert,update
asbegin
updateRoomInformation
setStatus='
已订'
whereRoomIDin
(selectRoomInformation.RoomID
fromRoomInformation,OrderInfo
whereRoomInformation.RoomID=OrderInfo.RoomIDandOrderInfo.Status=0)
3.CREATETRIGGER[insertorderinfo]ON[dbo].[OrderInfo]
FORINSERT,UPDATE
declare@roomidchar(10),@pricefloat,@dinnerfeeint,@discountfloat,@ordertypevarchar(50),@statussmallint
select@roomid=RoomID,@dinnerfee=DinnerType,@status=Status,@ordertype=OrderTypefrominserted
if(@ordertype='
会员'
)
select@discount=0.8
elseif(@ordertype='
团体'
select@discount=0.9
else
select@discount=1.0
select@price=Price
fromRoomInformation
ifexists(select*fromcheckInfowhereRoomId=@roomid)
if@status=0
deletefromCheckInfowhereRoomId=@roomid
insert
intoCheckInfo(RoomID,Price,DinnerFee,Discount)
values(@roomid,@price,@dinnerfee,@discount)
对RoomStandard表建的触发器
CREATETRIGGER[updateprice]ON[dbo].[RoomStandard]
afterUPDATE
AS
declare@pricefloat,@roomtypevarchar(50)
select@price=Price,@roomtype=TypeNamefrominserted
setPrice=@price
whereTypeName=@roomtype
endend
4系统功能设计
4、1系统流程
图
宾馆管理人员
前台操作人员
4、2系统所具有的功能
◆进入系统前需要进行身份验证,用户名密码输入正确后才可进入系统
◆房间信息管理,可以实现对房间的添加、修改以及删除
◆房间标准信息管理,可以实现对房间标准的添加、修改和删除
◆订房信息管理,可以根据需要添加、删除、修改订房信息
◆结账信息管理,可以对将要退房的客户结算金额并退房
◆查询房间和标准信息管理,可以查询各个标准的信息,房间信息
5、系统实现
5.1系统的开发环境
软件:
SQLSever2000,VC++6.0
操作系统:
WindowXP
硬件:
AMDAthlonX2Dual-CoreQL-65,MMX,2.00GB内存,120GB硬盘
5.2数据库的创建过程及连接
(1)、打开企业管理器,选中“数据库”文件夹,单击鼠标右键,选择“新建数据库”,输入数据库名HotelM.
(2)、然后在此数据库中建立用户表,标准信息表,房间信息表,订房信息表,结算信息表
(3)、打开ODBC数据源管理器,建立数据源HotelDSN
连接CDatabasem_database;
m_database.Open(_T("
HotelDSN"
));
或者:
为每个表建立一个CRecordset的一个派生类来访问数据库
5、3创建工程文件及窗体
登录窗口的创建
ID
控件类型
变量类型
成员变量
说明
IDC_USERNAME
EditBox
CString
m_strusername
IDC_PASSWORD
m_strpassword
CEdit
m_password
IDOK
Button
“登录“按钮
IDCANCLE
“取消”按钮
(1)在CLoginDlg类添加IDOK控件的消息响应函数
(2)m_database是CDatabase类型的一个全局变量
voidCLoginDlg:
:
OnOK()
{UpdateData();
CStringstrSQL;
strSQL.Format("
select*fromUserInfowhereUserName='
%s'
andUserpwd='
"
m_strusername,m_strpassword);
CRecordsetm_set;
m_set.m_pDatabase=&
m_database;
m_set.Open(CRecordset:
forwardOnly,strSQL);
if(m_set.GetRecordCount()==0)
{MessageBox("
用户名和密码错误!
请重新出入"
);
m_password.SetWindowText("
m_password.SetFocus();
return;
}
CDialog:
OnOK();
m_set.Close();
m_database.Close();
}
房间信息管理
对话框所添加的控件以及变量
IDC_COM_ROOMID
ComboBox
m_strroomid
ComboBo
CComboBox
m_roomid
IDC_COM_TYPE
m_strtype
m_roomtype
IDC_EDIT_PRICE
Float
m_fprice
IDC_COM_STATUS
CButton
m_okk
“确定”按钮
IDCANCEL
(1)添加记录集类CRoomSet类,基类为CRecordSet,数据表为RoomInformation表;
(2)在CRoomInfo类中添加CRoomSet类的成员变量m_roomset;
(3)添加初始化对话框OnInitDialog()方法:
(4)为确定按钮添加信息响应函数
BOOLCRoomInfo:
OnInitDialog()
{CDialog:
OnInitDialog();
CStringstrSQL;
strSQL.Format("
select*fromRoomStandard"
m_typeset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);
while(!
m_typeset.IsEOF())
{m_roomtype.AddString(m_typeset.m_TypeName);
m_typeset.MoveNext();
m_typeset.Close();
switch(rstatus)
{case1:
SetWindowText("
添加房间"
m_okk.SetWindowText("
添加"
break;
case2:
删除房间"
删除"
select*fromRoomInformation"
m_roomset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);
m_roomset.IsEOF())
{m_roomid.AddString(m_roomset.m_RoomID);
m_roomset.MoveNext();
m_roomset.Close();
break;
case3:
修改房间"
修改"
returnTRUE;
voidCRoomInfo:
{switch(rstatus)
AddRoom();
DeleteRoom();
ModifyRoom();
}}
AddRoom()
{UpdateData();
if(m_strroomid=="
{MessageBox("
房间号不能为空!
请输入房间号"
select*fromRoomInformationwhereRoomID='
m_strroomid);
if(m_roomset.GetRecordCount()!
=0)
此房间已存在!
请重新输入房间号"
m_roomset.Close();
return;
select*fromRoomStandardwhereTypeName='
m_strtype);
if(m_typeset.IsEOF())
此标准不存在,请在下拉列表中选择已存在的标准"
if(m_database.Open(_T("
)))
{strSQL.Format("
insertintoRoomInformationvalues('
'
%f,'
)"
m_strroomid,m_strtype,m_fprice);
m_database.ExecuteSQL(strSQL);
MessageBox("
增加完成"
m_pLeftView->
FullfillTree();
else
MessageBox("
打开数据库失败!
添加房间后的运行结果如下图:
DeleteRoom()
请选择要删除的房间"
确定要删除此房间吗?
deletefromRoomInformationwhereRoomID='
m_database.ExecuteSQL(s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 宾馆 管理 系统 数据库 课程设计 实验 报告