1、数据库原理课程设计报告设计题目宾馆管理系统专业班级学 号学生姓名指导教师起止日期目录1.问题描述 .11.1 背景 11.2 功能要求 1.需求分析 .12.1 数据流程图 12.2 数据字典 53.概念结构设计 63.1 E-R 图 63.2 实体及联系的属性: .74.逻辑结构设计 75. 触发器设计 .96. 存储过程设计 97.应用程序实现 128.结束语 .219答辩与成绩考核 .2211.问题描述1.1 背景 经调查了解后发现,目前较多的宾馆在客房管理上还处于人工阶段,效率低下且存在较多问题,为减少类似弊端开发此系统,以实现客房管理的电子化、科学化与现代化。系统包括:旅客基本信息管
2、理、客房基本信息管理、住宿基本信息管理、客房物品基本信息管理、工作人员基本信息管理五大功能模块。可以实现对每个功能模块的查询和更新功能,其中查询功能主要是通过视图实现,而更新功能则是通过存储过程来实现。在五大功能模块中,宾馆住宿基本信息和客房基本信息的管理是本系统开发的重点。本系统的开发过程包括了需求分析阶段、概念设计阶段、逻辑设计阶段、数据库实施阶段、系统调试和测试阶段、参考文献及附录整理等阶段。宾馆是现代社会服务行业体系中的重要组成部分,它在社会发展中有着不可替代的作用。在当今经济和商务交往日益频繁的状况下,客房服务行业正面临客流量骤增的压力。传统的宾店客房管理一直以来使用人工的方式管理文
3、件档案,这种管理方式存在着许多缺点,如:效率低、保密性差;时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难;管理者往往要花大量的时间来处理烦琐的登记和结帐手续;不能及时提供空余客房资料等问题,将直接影响出租率。据此现状,开发出本宾馆客房管理系统,通过本系统的应用不仅可以使宾馆客房管理科学化、正规化,而且对于提高员工工作效率,加速资金周转、降低各项成本及改善服务质量都有十分积极的作用。1.2 功能要求(1)客人入住和退房时,宾馆管理人员对旅客基本信息的更新;(2)客人入住和退房时,宾馆管理人员对客房基本信息的查询和状态更新;(3)客人入住、续住和退房时,宾馆管理人员对客
4、人住宿信息的查询和更新;(4)客人要求服务时,宾馆管理人员对客房配备的工作人员信息进行查询,派遣服务人员;(5)宾馆工作人员变动时,宾馆管理人员对工作人员基本信息进行更新;(6)客房内物品信息变动时,宾馆管理人员对客房物品基本信息查询和更新;.需求分析2.1 数据流程图21 业务流程图图 21 客房管理业务流程图2 数据流程图顶层数据流程图:图 22 顶层数据流程图第二层数据流程图:图 23 第二层数据流程图:3第三层数据流程图:(1)从旅客开房角度出发:图 24 旅店开房数据流程图(2)从旅客续房角度出发:图 25 旅客续房数据流程图(3)从旅客退房角度出发:4图 26 旅客退房旅客要求服务
5、(4)从旅客要求服务角度出发:图 27 旅客要求服务数据流程图(5)从管理员管理客房物品角度出发:图 28 管理客房物品数据流程图5(6)从管理员管理服务人员角度出发:图 29 管理服务人员数据流程图2.2 数据字典(1)系统涉及的数据项:表 2-1 数据项列表数据项编号 数据项名 数据项含义 存储结构 别名DI-1 Tno 旅客编号 IntDI-2 Tname 旅客姓名 Char(10)DI-3 Tsex 旅客性别 Char(2)DI-4 Tid 旅客 ID 号码 Char(6) 旅客身份证号DI-5 Rno 客房编号 Int 房间号码DI-6 Tcomedate 入住日期 Datetime
6、DI-7 Tleftdate 结算日期 Datetime 离开日期DI-8 Ttime 住宿时间 Int 时间长度DI-9 Tamount 房费金额 Int 房费DI-10 Tdeposit 押金金额 Int 押金数目DI-11 Rstyle 客房档次 Char(10) 房间类型DI-12 Rprice 客房单价 IntDI-13 Rstate 客房状态 Char(10) 空、打扫中、满6数据项编号 数据项名 数据项含义 存储结构 别名DI-14 Rtel 客房电话 Char(15)DI-15 Workno 工作人员编号 IntDI-16 Workname 工作人员姓名 Char(10)DI-
7、17 Worksex 工作人员性别 Char(2)DI-18 Workpos 工作人员职位 Char(10) 经理、职员DI-19 Ritemno 客房物品编号 Char(10)DI-20 Ritemname 客房物品名称 Char(10)DI-21 Ritemprice 客房物品单价 IntDI-22 Ritemnum 物品数量 IntDI-23 Ritemstate 物品状态 Char(10)(2)数据结构:表 22 数据结构列表数据结构编号 数据结构名 数据结构含义 组成DS-1 Travellers 旅客基本信息 Tno,Tname,Tsex,Tid,DS-2 Rooms 客房基本信息
8、 Rno,Rstyle,Rprice,Rstate,Rtel,WorknoDS-3 Living 旅客住宿信息 Tno,Rno,Tcomedate,Tleftdate,Ttime,Tamount,TdepositDS-4 Workers 工作人员信息 Workno,Workname,Worksex,WorkposDS-5 Roomitem 客房物品信息 Rno,Ritemno,Ritemname,Ritemprice,Ritemstate,Ritemnum3.概念结构设计3.1 E-R 图3.1.1 分 E-R 图:7图 31 分 ER 图一图 32 分 ER 图二图 33 分 ER 图三3.
9、1.2 全局 E-R 图:图 34 总 ER 图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,Workp
10、os4.逻辑结构设计具体的基本 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)8工作人员 Workers( Workno,Workname,Worksex,Workpos)(3) 数据库
11、模式定义 表 1 旅客基本信息表 Travellers属性名 数据类型 取值范围 是否为主属性 是否为 外键 完整性 属性描述Tno Int 0-9999 是 否 not null 旅客编号Tname Char(10) 否 否 not null 旅客姓名Tsex Char(2) 男or 女 否 否 not null 旅客姓别Tid Char(6) 否 否 not null 旅客身份证号表 2 客房基本信息表 Rooms属性名 数据类型 是否是主属性 是否为外键 完整性 属性描述Rno Int 是 是 not null 客房编号Rstyle char(10) 否 否 not null 客房档次R
12、price Int 否 否 not null 客房单价Rstate char(10) 否 否 not null 客房状态Rtel char(15) 否 否 notnull 客房电话Workno Int 否 是 not null 工作人员编号表 3 客房物品信息表 Roomitem属性名 数据类型 是否是主属性 是否为外键 完整性 属性描述Ritemno Int 是 否 not null 客房物品编号Rno Int 否 是 not null 物品的客房号Ritemname char(20) 否 否 not null 客房物品名称Ritemprice Int 否 否 not null 客房物品单价
13、Ritemstate char(10) 否 否 not null 客房物品状态Ritemnum Int 否 否 not null 客房物品数目表 4 工作人员信息 Workers属性名 数据类型 取值范围 是否为主属性 是否为外键 完整性 属性描述Workno Int 是 否 not null 工作人员编号Workname char(10) 否 否 not null 工作人员名字Worksex char(2) 男 or女 否 否 not null 工作人员性别Workpos char(10) 否 否 not null 工作职位表 5 旅客住宿信息 Living属性名 数据类型 是否为主属性是否
14、为外键 完整性 属性描述Tno Int 是 是 not null 旅客编号Rno Int 是 是 not null 客房编号Tcomedate Datetime 否 否 not null 入住日期Tleftdate Datetime 否 否 not null 结算日期Ttime Int 否 否 not null 入住时间Tamount Int 否 否 not null 房费金额9Tdeposit Int 否 否 not null 押金数目5. 触发器设计触发器 C1 的功能为当有一条信息插入 Living 表中时,触发 Rooms 表中的 Rstate=满。代码如下:create trigge
15、r c1on Living for insertas if exists(select* from Living,Rooms where living.Rno=Rooms.Rno)beginupdate Roomsset Rstate=满where Rno=(select Rnofrom inserted) End触发器 C2 的功能为当从 Living 表中删除一条信息时,触发 Rooms 表中的 Rstate=空。代码如下:create trigger c2on Living for deleteas if exists(select* from Living,Rooms where li
16、ving.Rno=Rooms.Rno)beginupdate Roomsset Rstate=空where Rno=(select Rnofrom deleted) End6. 存储过程设计1 物管人员添加客房物品信息create procedure add_itemrno int,ritemno int,ritemname char(10),ritemprice int,10ritemstate char(10),ritemnum intas insert into Roomitemvalues(rno,ritemno,ritemname,ritemprice,ritemstate,rite
17、mnum)2 旅店管理者添加工作人员信息create procedure add_workerworkno int,workname char(10),worksex char(2),workpos char(10)asinsert into Workersvalues(workno,workname,worksex,workpos)3 用于要续房、退房时特定客房的客人信息查询 create procedure looktrno intasselect Tname,Tsex,Rooms.Rno,Rprice,Tcomedate,Tleftdate,Ttime,Tamount,Tdepositf
18、rom Travellers,Rooms,Living11where Rooms.Rno=rnoand Living.Tno=Travellers.Tno and Living.Rno=Rooms.Rno4 用于要求服务时,特定客房工作人员信息查询create procedure lookwrno intasselect Rooms.Workno,Workname,Workpos,Rnofrom Workers,Roomswhere Rooms.Rno=rno and Workers.Workno=Rooms.Workno127.应用程序实现7.1 建立 ODBC 数据源(1)打开控制面板,双
19、击控制面板上的“管理工具”图标,然后双击“管理工具”窗口中的“数据源(ODBC) ”图标,弹出“ODBC 数据源管理器”对话框,如图 71 所示。图 7-1 “ODBC 数据管理器” 对话框(2)建立一个系统 DSN 数据源,选择“系统 DSN”选项卡,然后单击“添加”按钮,弹出如图 7-2 对话框。13图 7-2 “创建数据源”对话框(3)在如图 7-2 对话框中选择要连接的数据库管理系统的驱动程序。这里选择“SQL Server”,单击“完成”按钮后弹出 7-3 对话框。、 图 7-3 指定数据源名(4)在图 7-3 所示的对话框中为数据源命名,并指定要连接到的数据库服务器的名字。在“名称
20、”文本框中输入数据源的名字 CourseManagement,在“说明”文本框中输入次数据源的说明信息,在“服务器”下拉列表框中指定要连接的数据库服务器的名字,此服务器名字为“Lenovo-pc”。指定后单击“下一步”弹出 7-4 所示对话框。14图 7-4 连接到数据库服务器的用户(5)在图 7-4 所示的对话框中选择用户登录到的数据库服务器的身份验证方式和用户登录表示,然后单击“下一步”按钮,弹出图 7-5 所示对话框。图 7-5 选择用户登录的默认数据库(6)在如图 7-5 所示的对话框中,选择用户登录的默认数据库为旅馆,单击“下一步”按钮,弹出如图 7-6 所示15图 7-6 设置使用
21、的数据库服务器选(7)在如图 7-6 所示的对话框中,指定用于 SQLServer 消息的语言、字符数据转换和 SQL Server 驱动程序是否应当使用区域设置,单击“完成”按钮,弹出如图 7-7 所示的对话框。图 7-7 新建 ODBC 数据源的描述16(8)如图 7-7 所示的对话框中显示了所定义的 OBDC 数据源的描述信息,单击“测试数据源”按钮,可以测试一下所建立的数据源是否成功。建立好的 OBDC 数据源会列在“OBDC 数据源管理器”窗口中,单击“确定”按钮,关闭“OBDC 数据源管理器”窗口。7.2Visual C+与数据库连同的应用程序创建应用程序框架(1)打开 Visua
22、l C+主控界面。单击“文件/新建”菜单项,在弹出的对话框中选择“新建工程类别”类型。在“工程类型”列表框中选择“MFCAppWizard(exe)”工程类型。(2)输入工程名称为“旅馆管理”,并选择合适的 Win32 平台类型。(3)单击确定,进入文档类型设置。(4)选择单文档类型,选择一个单文档的应用程序,选择文档/查看信息结构支持。(5)单击“下一步” ,进入第二步,出现如图 7-8 对话框,需要用户对数据库的应用做一些相关的选择。图 7-8 程序框架第 2 布设置(6)选择“查看数据库不适用文件支持”选项,该数据源就是我们在前面创建的“dal” 。(7)单击“数据源”按钮,弹出如图 7
23、-9 所示对话框。在“数据源”选项区域中的“ODBC”下拉列表中选择 dal”。17图 7-9 数据源驱动程序选择(8)单击“OK” ,选择数据表就是文档界面所使用的数据表,选择其中一个,如图 7-10 所示。图 7-10 数据源中的数据表单击 OK,按钮确认后,如图 7-11 所示。18图 7-11 数据源设置对话框单击“完成”出现如图 7-12 所示的工程向导全部设置过程的信息。图 7-12 数据设置信息框(9)单击确定按钮,出现如图 7-13 所示的应用程序的基本框架。19图 7-13 应用程序的基本框架7.3 主窗体的基本制作(1).在工程框架的主窗体中 IDD_MY_FORM 中加入
24、八个静态的标签控制。(2)鼠标右键单击静态标签控制,出现快捷菜单。(3)在快捷菜单中单击“属性”选项,弹出把奥前控制的文本属性设置对话框。(4)在窗体中加入八个编辑框。7.4 编辑框控件与数据表字段的绑定(1)选取一个编辑框并单击鼠标右键谈出一个快捷菜单。(2)在快捷菜单中单击“建立类向导”选项,弹出类向导对话框。(3).切换到“Member Variable”选项卡,并在“Class name”下拉列表框中选择“CmySet”。在图中将类名切换为 CmyView,出现类成员的列表,其中就包含了全部的编辑框控件的索引编码。(4)选择“Tno”编辑框,单击“Add Variable”按钮,弹出增
25、加变量对话框,选择所对应的数据表字段成员,建立映射关系(5)单击 OK 按钮即完成建立“Tno 编辑框”与“Tno”成员变量建立之间的映射以同样的方法可以建立每一个编辑框控件于其他字段成员之间的映射,完成全部的映射过程。最后,编译执行程序。 7.5.为系统实现增加、删除、排序、查询功能增加八个控件,窗体布局如图 7-14 所示。20图 7-14 窗体布局1.添加数据:m_pSet-AddNew();UpdateData(true);m_pSet-Update();item 效果图如图 7-15:图 7-15 效果图212.排序数据:m_pSet-m_strSort=“Tno“;m_pSet-R
26、equery();UpdateData(false);3.删除数据:m_pSet-Delete();m_pSet-MoveNext();UpdateData(false);如图 7-16 所示:图 7-16 效果图8.结束语通过此次数据库的课程设计,真正达到了学与用的结合,增强了对数据库方面应用的理解,对自己今后参与开发数据库系统积累了不少经验,在实验过程中,从建立数据开始,对数据库设计理念及思想上有更高的认识,从需求分析,到概念设计和逻辑设计,E-R 图的表示,数据字典的创建,懂得了不少有关数据库开发过程中的知识,增强了自己在数据库中应用 SQL 语言的灵活性,其中包括,插入、删除、修改、查询,牵涉表和表之间的联系,主建与外主键的定义,约束项的设置,使逻辑更严密,在学习过程中,我也能过上网查了不少资料,也看了一些别人设计的旅馆管理信息系统的设计报告,学以致用,自我创新,独立完成了这份自己的报告,从中在学到用,从用又到学,不断修改,系统更新。虽然不能达到完善系统,但也做到了尽善尽美,加强理论学习对完善系统会有很多帮助,不管怎么说,对这次做的课程设计自己觉得还算满意。229答辩与成绩考核答辩问答项 目 权重 成绩1、设计过程中勤、能力、水平、态度等方面 0.22、说明书书写及作品质量程度 0.43、答辩 0.24、系统 0.2成绩评定总 成 绩