数据库课程设计宾馆管理系统.docx
《数据库课程设计宾馆管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计宾馆管理系统.docx(29页珍藏版)》请在冰豆网上搜索。
数据库课程设计宾馆管理系统
数据库原理课程设计报告
设计题目宾馆管理系统
专业班级
学号
学生姓名
指导教师
起止日期
*********系
1.问题描述
1.1背景
经调查了解后发现,目前较多的宾馆在客房管理上还处于人工阶段,效率低下且存在较多问题,为减少类似弊端开发此系统,以实现客房管理的电子化、科学化与现代化。
系统包括:
旅客基本信息管理、客房基本信息管理、住宿基本信息管理、客房物品基本信息管理、工作人员基本信息管理五大功能模块。
可以实现对每个功能模块的查询和更新功能,其中查询功能主要是通过视图实现,而更新功能则是通过存储过程来实现。
在五大功能模块中,宾馆住宿基本信息和客房基本信息的管理是本系统开发的重点。
本系统的开发过程包括了需求分析阶段、概念设计阶段、逻辑设计阶段、数据库实施阶段、系统调试和测试阶段、参考文献及附录整理等阶段。
宾馆是现代社会服务行业体系中的重要组成部分,它在社会发展中有着不可替代的作用。
在当今经济和商务交往日益频繁的状况下,客房服务行业正面临客流量骤增的压力。
传统的宾店客房管理一直以来使用人工的方式管理文件档案,这种管理方式存在着许多缺点,如:
效率低、保密性差;时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难;管理者往往要花大量的时间来处理烦琐的登记和结帐手续;不能及时提供空余客房资料等问题,将直接影响出租率。
据此现状,开发出本宾馆客房管理系统,通过本系统的应用不仅可以使宾馆客房管理科学化、正规化,而且对于提高员工工作效率,加速资金周转、降低各项成本及改善服务质量都有十分积极的作用。
1.2功能要求
(1)客人入住和退房时,宾馆管理人员对旅客基本信息的更新;
(2)客人入住和退房时,宾馆管理人员对客房基本信息的查询和状态更新;
(3)客人入住、续住和退房时,宾馆管理人员对客人住宿信息的查询和更新;
(4)客人要求服务时,宾馆管理人员对客房配备的工作人员信息进行查询,派遣服务人员;
(5)宾馆工作人员变动时,宾馆管理人员对工作人员基本信息进行更新;
(6)客房内物品信息变动时,宾馆管理人员对客房物品基本信息查询和更新;
2.需求分析
2.1数据流程图
1业务流程图
图2—1客房管理业务流程图
2数据流程图
顶层数据流程图:
图2—2顶层数据流程图
第二层数据流程图:
图2—3第二层数据流程图:
第三层数据流程图:
(1)从旅客开房角度出发:
图2—4旅店开房数据流程图
(2)从旅客续房角度出发:
图2—5旅客续房数据流程图
(3)从旅客退房角度出发:
图2—6旅客退房旅客要求服务
(4)从旅客要求服务角度出发:
图2—7旅客要求服务数据流程图
(5)从管理员管理客房物品角度出发:
图2—8管理客房物品数据流程图
(6)从管理员管理服务人员角度出发:
图2—9管理服务人员数据流程图
2.2数据字典
(1)系统涉及的数据项:
表2-1数据项列表
数据项
编号
数据项名
数据项含义
存储结构
别名
DI-1
Tno
旅客编号
Int
DI-2
Tname
旅客姓名
Char(10)
DI-3
Tsex
旅客性别
Char
(2)
DI-4
Tid
旅客ID号码
Char(6)
旅客身份证号
DI-5
Rno
客房编号
Int
房间号码
DI-6
Tcomedate
入住日期
Datetime
DI-7
Tleftdate
结算日期
Datetime
离开日期
DI-8
Ttime
住宿时间
Int
时间长度
DI-9
Tamount
房费金额
Int
房费
DI-10
Tdeposit
押金金额
Int
押金数目
DI-11
Rstyle
客房档次
Char(10)
房间类型
DI-12
Rprice
客房单价
Int
DI-13
Rstate
客房状态
Char(10)
空、打扫中、满
DI-14
Rtel
客房电话
Char(15)
DI-15
Workno
工作人员编号
Int
DI-16
Workname
工作人员姓名
Char(10)
DI-17
Worksex
工作人员性别
Char
(2)
DI-18
Workpos
工作人员职位
Char(10)
经理、职员
DI-19
Ritemno
客房物品编号
Char(10)
DI-20
Ritemname
客房物品名称
Char(10)
DI-21
Ritemprice
客房物品单价
Int
DI-22
Ritemnum
物品数量
Int
DI-23
Ritemstate
物品状态
Char(10)
(2)数据结构:
表2—2数据结构列表
数据结构编号
数据结构名
数据结构含义
组成
DS-1
Travellers
旅客基本信息
Tno,Tname,Tsex,Tid,
DS-2
Rooms
客房基本信息
Rno,Rstyle,Rprice,Rstate,
Rtel,Workno
DS-3
Living
旅客住宿信息
Tno,Rno,Tcomedate,Tleftdate,
Ttime,Tamount,Tdeposit
DS-4
Workers
工作人员信息
Workno,Workname,Worksex,Workpos
DS-5
Roomitem
客房物品信息
Rno,Ritemno,Ritemname,Ritemprice,Ritemstate,Ritemnum
3.概念结构设计
3.1E-R图
3.1.1分E-R图:
图3—1分E—R图一
图3—2分E—R图二
图3—3分E—R图三
3.1.2全局E-R图:
图3—4总E—R图
3.2实体及联系的属性:
(1)旅客Travellers:
Tno,Tname,Tsex,Tid
(2)客房Rooms:
Rno,Rstyle,Rprice,Rstate,Rtel,Workno
(3)旅客住宿Living:
Tno,Rno,Tcomedate,Tleftdate,Ttime,Tamount,Tdeposit
(4)客房物品
Roomitem:
Rno,Ritemno,Ritemname,Ritemprice,Ritemstate,Ritemnum
(5)工作人员Workers:
Workno,Workname,Worksex,Workpos
4.逻辑结构设计
具体的基本E-R图向关系模型的转化结果如下:
旅客Travellers(Tno,Tname,Tsex,Tid)
客房Rooms(Rno,Rstyle,Rprice,Rstate,Rtel,Workno)
旅客住宿Living(Tno,Rno,Tcomedate,Tleftdate,Ttime,Tamount,Tdeposit)
客房信息Roomitem(Rno,Ritemno,Ritemname,Ritemprice,Ritemstate,Ritemnum)
工作人员Workers(Workno,Workname,Worksex,Workpos)
(3)数据库模式定义
表1旅客基本信息表Travellers
属性名
数据类型
取值范围
是否为
主属性
是否为外键
完整性
属性描述
Tno
Int
0-9999
是
否
notnull
旅客编号
Tname
Char(10)
否
否
notnull
旅客姓名
Tsex
Char
(2)
‘男’or女’
否
否
notnull
旅客姓别
Tid
Char(6)
否
否
notnull
旅客身份证号
表2客房基本信息表Rooms
属性名
数据类型
是否是主属性
是否为外键
完整性
属性描述
Rno
Int
是
是
notnull
客房编号
Rstyle
char(10)
否
否
notnull
客房档次
Rprice
Int
否
否
notnull
客房单价
Rstate
char(10)
否
否
notnull
客房状态
Rtel
char(15)
否
否
notnull
客房电话
Workno
Int
否
是
notnull
工作人员编号
表3客房物品信息表Roomitem
属性名
数据类型
是否是主属性
是否为外键
完整性
属性描述
Ritemno
Int
是
否
notnull
客房物品编号
Rno
Int
否
是
notnull
物品的客房号
Ritemname
char(20)
否
否
notnull
客房物品名称
Ritemprice
Int
否
否
notnull
客房物品单价
Ritemstate
char(10)
否
否
notnull
客房物品状态
Ritemnum
Int
否
否
notnull
客房物品数目
表4工作人员信息Workers
属性名
数据类型
取值范围
是否为
主属性
是否为外键
完整性
属性描述
Workno
Int
是
否
notnull
工作人员编号
Workname
char(10)
否
否
notnull
工作人员名字
Worksex
char
(2)
‘男’or’女’
否
否
notnull
工作人员性别
Workpos
char(10)
否
否
notnull
工作职位
表5旅客住宿信息Living
属性名
数据类型
是否为
主属性
是否为外键
完整性
属性描述
Tno
Int
是
是
notnull
旅客编号
Rno
Int
是
是
notnull
客房编号
Tcomedate
Datetime
否
否
notnull
入住日期
Tleftdate
Datetime
否
否
notnull
结算日期
Ttime
Int
否
否
notnull
入住时间
Tamount
Int
否
否
notnull
房费金额
Tdeposit
Int
否
否
notnull
押金数目
5.触发器设计
触发器C1的功能为当有一条信息插入Living表中时,触发Rooms表中的Rstate='满'。
代码如下:
createtriggerc1
onLivingforinsert
as
ifexists(select*fromLiving,Roomswhereliving.Rno=Rooms.Rno)
begin
updateRooms
setRstate='满'
whereRno=(selectRno
frominserted)
End
触发器C2的功能为当从Living表中删除一条信息时,触发Rooms表中的Rstate='空'。
代码如下:
createtriggerc2
onLivingfordelete
as
ifexists(select*fromLiving,Roomswhereliving.Rno=Rooms.Rno)
begin
updateRooms
setRstate='空'
whereRno=(selectRno
fromdeleted)
End
6.存储过程设计
1物管人员添加客房物品信息
createprocedureadd_item
@rnoint,
@ritemnoint,
@ritemnamechar(10),
@ritempriceint,
@ritemstatechar(10),
@ritemnumint
asinsertintoRoomitem
values(@rno,@ritemno,@ritemname,@ritemprice,@ritemstate,@ritemnum)
2旅店管理者添加工作人员信息
createprocedureadd_worker
@worknoint,
@worknamechar(10),
@worksexchar
(2),
@workposchar(10)
as
insertintoWorkers
values(@workno,@workname,@worksex,@workpos)
3用于要续房、退房时特定客房的客人信息查询
createprocedurelookt
@rnoint
as
selectTname,Tsex,Rooms.Rno,Rprice,Tcomedate,Tleftdate,Ttime,Tamount,Tdeposit
fromTravellers,Rooms,Living
whereRooms.Rno=@rno
andLiving.Tno=Travellers.Tno
andLiving.Rno=Rooms.Rno
4用于要求服务时,特定客房工作人员信息查询
createprocedurelookw
@rnoint
as
selectRooms.Workno,Workname,Workpos,Rno
fromWorkers,Rooms
whereRooms.Rno=@rnoandWorkers.Workno=Rooms.Workno
7.应用程序实现
7.1建立ODBC数据源
(1)打开控制面板,双击控制面板上的“管理工具”图标,然后双击“管理工具”窗口中的“数据源(ODBC)”图标,弹出“ODBC数据源管理器”对话框,如图7—1所示。
图7-1“ODBC数据管理器”对话框
(2)建立一个系统DSN数据源,选择“系统DSN”选项卡,然后单击“添加”按钮,弹出如图7-2对话框。
图7-2“创建数据源”对话框
(3)在如图7-2对话框中选择要连接的数据库管理系统的驱动程序。
这里选择“SQLServer”,单击“完成”按钮后弹出7-3对话框。
、图7-3指定数据源名
(4)在图7-3所示的对话框中为数据源命名,并指定要连接到的数据库服务器的名字。
在“名称”文本框中输入数据源的名字CourseManagement,在“说明”文本框中输入次数据源的说明信息,在“服务器”下拉列表框中指定要连接的数据库服务器的名字,此服务器名字为“Lenovo-pc”。
指定后单击“下一步”弹出7-4所示对话框。
图7-4连接到数据库服务器的用户
(5)在图7-4所示的对话框中选择用户登录到的数据库服务器的身份验证方式和用户登录表示,然后单击“下一步”按钮,弹出图7-5所示对话框。
图7-5选择用户登录的默认数据库
(6)在如图7-5所示的对话框中,选择用户登录的默认数据库为旅馆,单击“下一步”按钮,弹出如图7-6所示
图7-6设置使用的数据库服务器选
(7)在如图7-6所示的对话框中,指定用于SQLServer消息的语言、字符数据转换和SQLServer驱动程序是否应当使用区域设置,单击“完成”按钮,弹出如图7-7所示的对话框。
图7-7新建ODBC数据源的描述
(8)如图7-7所示的对话框中显示了所定义的OBDC数据源的描述信息,单击“测试数据源”按钮,可以测试一下所建立的数据源是否成功。
建立好的OBDC数据源会列在“OBDC数据源管理器”窗口中,单击“确定”按钮,关闭“OBDC数据源管理器”窗口。
7.2VisualC++与数据库连同的应用程序
创建应用程序框架
(1)打开VisualC++主控界面。
单击“文件/新建”菜单项,在弹出的对话框中选择“新建工程类别”类型。
在“工程类型”列表框中选择“MFCAppWizard(exe)”工程类型。
(2)输入工程名称为“旅馆管理”,并选择合适的Win32平台类型。
(3)单击确定,进入文档类型设置。
(4)选择单文档类型,选择一个单文档的应用程序,选择文档/查看信息结构支持。
(5)单击“下一步”,进入第二步,出现如图7-8对话框,需要用户对数据库的应用做一些相关的选择。
图7-8程序框架第2布设置
(6)选择“查看数据库不适用文件支持”选项,该数据源就是我们在前面创建的“dal”。
(7)单击“数据源”按钮,弹出如图7-9所示对话框。
在“数据源”选项区域中的“ODBC”下拉列表中选择dal”。
图7-9数据源驱动程序选择
(8)单击“OK”,选择数据表就是文档界面所使用的数据表,选择其中一个,如图7-10所示。
图7-10数据源中的数据表
单击OK,按钮确认后,如图7-11所示。
图7-11数据源设置对话框
单击“完成”出现如图7-12所示的工程向导全部设置过程的信息。
图7-12数据设置信息框
(9)单击确定按钮,出现如图7-13所示的应用程序的基本框架。
图7-13应用程序的基本框架
7.3主窗体的基本制作
(1).在工程框架的主窗体中IDD_MY_FORM中加入八个静态的标签控制。
(2)鼠标右键单击静态标签控制,出现快捷菜单。
(3)在快捷菜单中单击“属性”选项,弹出把奥前控制的文本属性设置对话框。
(4)在窗体中加入八个编辑框。
7.4编辑框控件与数据表字段的绑定
(1)选取一个编辑框并单击鼠标右键谈出一个快捷菜单。
(2)在快捷菜单中单击“建立类向导”选项,弹出类向导对话框。
(3).切换到“MemberVariable”选项卡,并在“Classname”下拉列表框中选择“CmySet”。
在图中将类名切换为CmyView,出现类成员的列表,其中就包含了全部的编辑框控件的索引编码。
(4)选择“Tno”编辑框,单击“AddVariable”按钮,弹出增加变量对话框,选择所对应的数据表字段成员,建立映射关系
(5)单击OK按钮即完成建立“Tno编辑框”与“Tno”成员变量建立之间的映射以同样的方法可以建立每一个编辑框控件于其他字段成员之间的映射,完成全部的映射过程。
最后,编译执行程序。
7.5.为系统实现增加、删除、排序、查询功能
增加八个控件,窗体布局如图7-14所示。
图7-14窗体布局
1.添加数据:
m_pSet->AddNew();
UpdateData(true);
m_pSet->Update();
item效果图如图7-15:
图7-15效果图
2.排序数据:
m_pSet->m_strSort="Tno";
m_pSet->Requery();
UpdateData(false);
3.删除数据:
m_pSet->Delete();
m_pSet->MoveNext();
UpdateData(false);
如图7-16所示:
图7-16效果图
8.结束语
通过此次数据库的课程设计,真正达到了学与用的结合,增强了对数据库方面应用的理解,对自己今后参与开发数据库系统积累了不少经验,在实验过程中,从建立数据开始,对数据库设计理念及思想上有更高的认识,从需求分析,到概念设计和逻辑设计,E-R图的表示,数据字典的创建,懂得了不少有关数据库开发过程中的知识,增强了自己在数据库中应用SQL语言的灵活性,其中包括,插入、删除、修改、查询,牵涉表和表之间的联系,主建与外主键的定义,约束项的设置,使逻辑更严密,在学习过程中,我也能过上网查了不少资料,也看了一些别人设计的旅馆管理信息系统的设计报告,学以致用,自我创新,独立完成了这份自己的报告,从中在学到用,从用又到学,不断修改,系统更新。
虽然不能达到完善系统,但也做到了尽善尽美,加强理论学习对完善系统会有很多帮助,不管怎么说,对这次做的课程设计自己觉得还算满意。
9.答辩与成绩考核
答辩问
答
成绩评定
项目
权重
成绩
1、设计过程中勤、能力、水平、态度等方面
0.2
2、说明书书写及作品质量程度
0.4
3、答辩
0.2
4、系统
0.2
总成绩