宾馆客房信息管理系统设计数据库课程设计.docx
《宾馆客房信息管理系统设计数据库课程设计.docx》由会员分享,可在线阅读,更多相关《宾馆客房信息管理系统设计数据库课程设计.docx(40页珍藏版)》请在冰豆网上搜索。
宾馆客房信息管理系统设计数据库课程设计
课程设计报告
课程名称数据库原理课程设计
课题名称宾馆客房信息管理系统
专业计算机科学与技术
班级
学号
姓名
指导教师
学院
课程设计任务书
课程名称数据库原理课程设计
课题宾馆客房信息管理系统
专业班级08计算机03班
学生姓名
学号
指导老师
审批
任务书下达日期2011年3月4日
任务完成日期2011年3月18日
一、设计内容与设计要求
1.设计内容:
数据库系统原理的课程设计要求学生综合利用本课程的有关知识,在教师的指导下,利用特定的数据库设计环境,针对具体的问题,完成从系统的需求分析、数据库的概念设计、数据库的逻辑设计,到数据库实现等设计过程,最终实现一个较为完整的反映应用需求的数据库系统。
因此,在设计中,要求学生应该全面考虑各个设计环节以及它们之间的相互联系。
下面是各个设计阶段的具体内容。
⒈系统需求分析
需求分析是数据库系统设计的一个重要的环节。
本阶段应该对整个应用情况作全面的、详细的调查,确定特定数据库应用环境下的设计目标,收集该应用环境下针对系统设计所需要的基础数据以及对这些数据的具体存储要求,从而确定用户的需求。
用户对数据库的需求包括:
⑴处理需求。
即用户要完成什么处理功能等。
学生在设计中应根据具体的课题要求确定系统应该实现的功能,一些基本的功能通常是必须具备的,如用户的管理与维护,基本数据的维护,灵活的信息查询等。
⑵信息需求。
即在数据库中需要存储哪些数据。
学生应该根据具体的课题,认真分析有关的要求,确定本设计的信息需求。
⑶安全性和完整性功能。
实践中这是一个需要与用户不断交流才能逐步确定的需求。
本课程设计要求学生在自己的设计中能反映出基本的安全性和完整性功能。
本阶段的设计结果(即系统需求分析)应该在课程设计报告中进行详细描述,画出系统的数据流图,写出较为详细的数据字典,作为本课程设计的验收依据之一。
⒉数据库的概念设计
数据库的概念设计是在需求分析的基础上,利用与用户双方都能理解的形式,设计出数据库的概念模型。
本课程设计要求学生采用E-R方法进行数据库的概念设计。
本设计阶段可分为:
●数据抽象。
即根据需求分析的结果,抽取出与本课程设计相关的特性。
设计局部概念模式。
运用E-R方法,设计出系统的各个局部ER模型。
●设计全局概念模式。
通过对局部E-R模型的操作,解决各个E-R模型关于对象定义不一致问题,以及对各个E-R模型进行合并优化等,最终形成数据库的全局概念模式。
本阶段的设计结果(局部和全局E-R图、具体数据库设计工具中概念结构设计图)应该在课程设计报告中进行详细描述,应该能够反映该设计的正确性,作为本课程设计的验收依据之一。
⒊数据库的逻辑设计
数据库逻辑设计的目的是将概念设计阶段设计好的E-R图转换成与具体机器上的DBMS(如Oracle)所支持的数据模型(如关系模型)相符合的逻辑结构。
鉴于本课程设计的具体环境要求,学生在进行数据库的逻辑结构设计时应该充分考虑特定的数据库环境。
要求学生在本阶段的设计中分两步进行:
●形成初始的关系模式。
将概念设计阶段产生的全局概念模式(E-R图)转换成初始的关系模式。
●关系模式的规范化处理。
为了减少或消除关系模式中存在的数据冗余和操作异常,根据设计所要求的规范级别,按照本课程所学知识,逐一分析各个关系模式是否满足规定的范式。
在课程设计报告中应该提供本设计阶段的相关内容,作为本课程设计的验收依据之一。
⒋创建数据库
在某一数据库管理系统环境中创建数据库,根据需要也可建立相关数据视图和存储过程。
在课程设计报告中应该提供相关的内容,包括数据库及各个数据库对象的定义的SQL语句,作为本课程设计的验收依据之一。
2.设计要求:
鉴于数据库选题原理课程设计的具体内容,对课程设计提出如下要求:
⒈选题原则
课程设计题目以选用学生相对比较熟悉的业务模型为宜,要求通过本实践性教学环节,能较好地巩固数据库的基本概念、基本原理、关系数据库的设计理论、设计方法等主要相关知识点,针对实际问题设计概念模型,并应用现有的工具完成小型数据库的设计与实现。
⒉选题要求
在后面的课题表中列出了几个设计课题,每个课题都有相应的要求或说明。
各课题的难易度有一定的差异,因此,参加课程设计的学生首先要了解设计的任务,仔细阅读各个课题的设计要求,为了避免多人选同一题,所做课题为(学号最后两位数mod课题号,比如学号23号,选题为23mod10=3,即做第三题——学生管理系统)。
一般来说,选择课题应以在规定的时间内能完成,并能得到应有的锻炼为原则。
若学生对课题表以外的相关课题较感兴趣,希望选作课程设计的课题时,应征得指导教师的认可,并写出明确的设计要求和说明。
设计时要严格按照题意要求进行设计,不能随意更改。
若确因条件所限,必须要改变课题要求时,应在征得指导教师同意的前提下进行。
3.参考选题
工资管理系统
人事管理系统
仓库管理系统
学生管理系统
图书馆管理信息系统
宾馆客房管理信息系统
学籍管理系统
机票预定系统
学生成绩管理系统
课程管理子系统
通讯录子系统
教室管理子系统
宿舍管理子系统
个人事务管理子系统
库房管理系统
小商店销售管理系统
其它管理子系统数据库设计(自己选题需经指导教师认可).
4.课程设计报告要求
课程设计的设计报告是学生对本次课程设计的全面总结,应该反映每个设计阶段的设计思路和设计内容。
该设计报告,应作为整个课程设计评分的书面依据和存档材料。
设计报告一般要以固定规格的纸张(如A4)书写或打印并装订,字迹及图形要清楚,工整,规范。
内容及要求如下:
⑴设计任务、要求及所用软件环境或工具介绍。
⑵课程设计内容中要求的设计结果。
⑶总结
⑷验收情况
二、进度安排
第三周星期二8:
00——12:
00
星期三8:
00——12:
00
星期四8:
00——12:
00
第四周星期二8:
00——12:
00
星期三8:
00——12:
00
星期四8:
00——12:
00
附:
课程设计报告装订顺序:
封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。
正文的格式:
一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。
正文的内容:
一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。
正文总字数要求在5000字以上(不含程序原代码)。
一.系统需求分析
1.1设计前调查
近年来,宾馆业迅猛发展,市场的竞争日趋激烈,全面提高宾馆的软件管理水准,已成为宾馆业发展的当务之急。
尤其是对于星级宾馆,既需要完成前台的一些服务工作,还需要完成后台的管理工作。
然而,传统的人工管理模式已经远远不能满足有效、快捷地处理经营中产生的大量信息数据的需要,从而使得企业决策层无法及时、准确地掌握一线资料,继而影响对市场进行正确地分析和预测。
像沿海城市三星级以上宾馆引进外方管理,使小部分宾馆管理水准几乎接近或达到国际水平。
但对占80%以上的广大中小型宾馆来说,是难以做到的。
因此,欲在竞争中甩开对手,取得优势,必须在经营、管理、产品、服务等方面具备独到之处。
而对宾馆的经营状况起决定作用的是客房的管理。
简单的服务标准已不是制胜的锦囊,只有管理做到最细微之处,才能让顾客体会到宾馆服务的高标准、高质量,而准确、快速、周全往往就是最基本的成功要素。
传统的管理方法已经不能适应现代社会的需要,因此采用电脑管理业务、财务等诸多环节已成为推动宾馆业迅速发展的先决条件,宾馆客房管理信息系统是各大中小型宾馆所需要使用的一个管理系统。
1.2用户需求分析
建立一套功能完善的管理信息系统,既能满足业务人员日常处理的需要,增强企业经营全过程的数字化管理水平;又能满足管理人员决策分析的需要,提高公司管理层对公司经营反馈信息的响应速度。
从而大幅度提高工作效率,提高实施管理的准确性、科学性,使担负管理的工作人员从繁杂的手工劳作中解脱出来。
因而程序需要实现的功能有如下主要六大功能:
一、客房管理:
客房登记,入住情况查询,客房状态查看。
二、宾客入住管理:
客房预定,登记入住,房间调整,退房结帐
三、物资管理:
物品登记,物品查询,报修和维修,定时提醒。
四、财务管理:
追加押金,增删财务,日报表
五、员工管理:
增改员工,查删员工
六、系统管理:
增删管理员,修改密码,以及预留的基于SQL的数据库管理(该程序考虑到
作为课程设计和信息系统不是很大,使用了单机版的ACCESS,以求方便写程序)
七、其他功能:
界面管理(提供两套外观:
经典外观和春天里)
1.3核心数据流图
维修信息
客房信息
客房信息客房状态
客人信息入住登记
帐务信息
入住信息
部分数据流图
数据流名称:
客人信息
来源:
客人
去向:
入住登记
包含的数据项:
姓名、身份证号、性别、入住房间、房间类型、房间价格、入住状态等
(宾馆客房管理系统的数据流——客人信息)
数据流名称:
入住登记
来源:
客人产生入住登记
去向:
入住
包含的数据项:
订单编号、姓名、性别、身份证号、客户编号、客房类型、抵房时间、入住人数、预定人、电话、住几天等信息
(宾馆客房管理系统的数据流——入住登记)
数据流名称:
客房信息
来源:
客人产生入住登记
去向:
入住
包含的数据项:
客房编号、客房类型、客房价格、客房状态
(宾馆客房管理系统的数据流——客房信息)
数据流名称:
房间状态
来源:
退房
去向:
房间
包含的数据项:
客房号码、房间状态
(宾馆客房管理系统的数据流——房间状态)
数据流名称:
帐务信息
来源:
退房
去向:
财务
包含的数据项:
帐单编号、姓名、消费金额、入住时间、退房时间、押金
(宾馆客房管理系统的数据流——帐务信息)
1.4核心数据字典
[宾客入住信息表:
Cmanage]
数据项名称(库中字段名)
数据类型及长度
说明
客人电话(ctel)
Char(20)
客人姓名(cname)
Char(12)
Notnull
客人性别(csex)
Char(4)
客人身份证号(cidnum)
Char(20)
客人住址(caddress)
Char(50)
订单编号(cnumber)
Char(15)
Notnull,primarykey
入住人数(cmemeber)
int
客房编号(croom)
Char(20)
Notnull
客房类型(ctype)
Char(10)
客房价格(cprice)
money
客房状态(cstatue)
Char
(2)
Notnull
抵店时间(cindate)
短日期型date
退房时间(coutdate)
短日期型date
Notnull
入住类别(cintype)
Char(4)[预定/现开]
押金(cya)
money
调整房间(cchange)
Char(20)
原由(creason)
Char(80)
应付款(cmshould)
Money
实收(cmpay)
money
[客房登记表:
Roomlogin]
数据项名称(库中字段名)
数据类型及长度
说明
房间编号(Rid)
Char(12)
Notnull
房间名称(Rname)
Char(20)
Notnull,primarykey
房间描述(Rdescribe)
Char(100)
房间价格(Rprice)
money
Notnull
房间状态(Rstatue)
Char(8)
Notnull
操作员(ruser)
Char(12)
Notnull
[管理员表:
:
pw]
数据项名称(库中字段名)
数据类型及长度
说明
用户(user)
Char(12)
Notnull,primarykey
密码(pwd)
Char(8)
Notnull
权限(power)
Char
(1)
Notnull
[财务管理表:
Smanage]
数据项名称(库中字段名)
数据类型及长度
说明
财务ID(Sid)
Char(15)
Notnull,primarykey
事由(Sreason)
Char(20)
Notnull
收入(Sin)
money
支出(Sout)
money
Notnull
总收入(ssum)
money
Notnull
操作时间(Sdate)
date
Notnull
结帐人(sman)
Char(12)
Notnull
挂帐单位(scomp)
Char(12)
操作员(suser)
Char(12)
Notnull
[维修/报修表:
fix]
数据项名称(库中字段名)
数据类型及长度
说明
登记ID(Fid)
自动编号
Notnull,primarykey
登记日期(Fdate)
date
Notnull
物品名称(Fname)
Char(50)
Notnull
所属房间(Froom)
Char(20)
Notnull
维修状态(Fstatue)
Char(8)
Notnull
维修日期(Ffdate)
date
登记操作员(Fman)
Char(12)
Notnull
维修员(Ffman)
Char(12)
所需费用(Fpay)
money
[提醒表:
Reminder]
数据项名称(库中字段名)
数据类型及长度
说明
提醒ID(RemID)
自动编号
Notnull,primarykey
提醒日期(Remdate)
date
Notnull
提醒类别(remtype)
Char(20)
Notnull
提醒状态(remstatue)
Char(4)
Notnull
操作员(remuser)
Char(12)
Notnull
二、概念设计
2.1局部E-R图
[客房E-R]
[客人E-R][管理员E-R]
[职员E-R]
2.2全局E-R图
n1
1
11
111
nqp
m
1
1
m
[全局E-R图]
三、逻辑设计
3.1开发环境
开发语言:
VisualBasic
开发平台:
windowsxp,1G内存,集成显卡。
开发工具:
VisualBasic6.0企业版,SQLServer2000,Access2003
3.2关系模式形成以及规范
3.2.1有以下关系模式:
PW(user,pwd,power);
Empl(eid,ename,eage,esex,eaddress,etel,ejob,ejtime,ejage);
Fix(Fid,fname,froom,fstatue,ffdate,fpay,fman,fuser);
Gmanage(Gid,gname,gtype,gnum,gprice,guse,gsum,gdate,guser,gdw);
Roomlogin(Rid,rname,rtype,rdescribe,rprice,rstatue,ruser);
Reminder(remid,remname,remdate,remtype,remstatue,remuser);
Smanage(Sid,sreason,sin,sout,ssum,sdate,sman,scomp,suser);
Cmanage(cnumber,cname,cictype,cicnum,csex,caddress,ctel,cmember,croom,ctype,cprice,cindate,cintype,coutdate,cya,cyaadd,cstatue,cchange,creason,cmtel,cmmeeting,cmcar,cmdamage,cmother,cmshould,cmpay,cmback,cuser);
3.2.2分解分析:
1)各分量都是不可分割的数据项。
满足第一范式;
2)每一个关系中的非码属性都完全函数依赖于码,符合第二范式;
3)每个关系中的主属性不传递依赖关系中的每个关系键,符合第三范式;
4)关系中所有非主属性对每个码都是完全依赖,且所有主码对于每个不包含它的码也是完全函数依赖,没有任
何属性完全函数依赖非码的任何一组属性
四、创建数据库
1)创建数据库,让数据库可以动态增长
createdatabasehotel
on
(name=hotel_data,
filename='E:
\hotel.mdf',
size=5mB,maxsize=20mb,filegrowth=10%)
logon
(name=hotel_log,
filename='E:
\hotel.ldf',
size=2mb,maxsize=5mb,filegrowth=1mb)
go
2)创建PW用户表
usehotel
go
createtablepw
(userchar(12)notnullprimarykey,
Pwdchar(8)notnull,
Powerchar
(1)notnull)
go
3)创建客房登记表RoomLogin
createtableroomlogin
(ridchar(12)notnull,
Rnamechar(20)notnullprimarykey,
Rtypechar(10)notnull
Rdescribechar(100),
Rpricemoneynotnull,
Rstatuechar(8)notnull,
Ruserchar(12)notnull,)
go
4)同上创建提醒表Reminder、物品表Gmanage、维修表fix、员工表Empl、帐务表Smanage、客户如住表Cmanage
五、程序以及调试和使用说明
5.1程序登陆界面
[说明:
进入登陆界面后,系统会自动加载已有的用户,让用户选择自己的帐户进行登陆,密码
输入三次后关闭窗口;用控件属性设置来实现用户定义的完整性:
密码最大长度为8。
用户名错误,或密码错误,系统都会对其进行提醒,以达到正确输入,本程序设置一超
级用户:
admin,权限为1,其他用户的权限均为0。
超级用户能对押金进行追加,其他用户必须在超级用户协助下才能完成押金追加]
5.2主面板
[说明:
主界面用VB中的MDIForm,多入口提供给用户操作,包括菜单栏、工具栏(可选择显示和不显示)、侧边栏(可隐藏)、主面板Panel(提供操作员最常用的操作,节约时间),在状态栏可以显示系统时间和当前用户以及需要维修的房间数。
实现了所有要求的功能]
[说明:
提供两种风格供用户选择。
在vb模块里有一函数change(),一变量保存当前风格类型,当每次show一窗口时,就会调用该函数通过变量判断是显示那种风格]
5.3具体介绍
5.3.1房态查看
[说明:
在主面板上的快速入口上点击房态查询,显示当前房间入住图形界面。
直观、方便。
点击房间能显示在该房间入住过的客户。
嵌入的查询语句为:
"select
cnumber,cname,cictype,cicnum,csex,caddress,ctel,cmember,croom,ctype,cprice,cindate,coutdate,cstatuefromcmanagewherecroom='"&Command1(Index).Caption&"'",Command1(Index).Caption为当前按下的要查询的房间按钮的名称]
5.3.2入住登记和预定房间
[说明:
点"登记",系统自动在roomlogin表中rstatue='空闲'的房间名字添加到房间号码的下拉列表中,供客户选择房间,用户可以选择"现开/预定"当用户选择下拉列表中的一个房间时,系统自动将roomlogin中该房间的标准类型,价格自动加载显示,房间状况一目了然。
其他用户自定义完整性约束都通过对控件的属性设置来完成,当用户输入数据破坏完整性时,系统会发出警告,以保持数据库的完整性]
5.3.3调房,住宿、退宿查询
[说明:
通过入口可以打开窗体。
当客户需要调整房间时,点登记后,系统自动加载已入住客户的房间和空闲的房间号码,当用户选择要调房的客户时,系统自动加载客户的信息。
选择目标房间时候,系统自动加载房间信息。
用户确定调房后,系统修改数据库:
原房间状态改为空闲,目标房间改为入住。
原住房产生的费用将加在新入住房间上,而提醒表中原房间改为现房间。
因而需要修改三个表:
Cmanage,roomlogin,reminder.而查询入住信息的嵌入sql语句为:
"selectcnumber,cname,cictype,cicnum,csex,caddress,ctel,cmember,croom,ctype,cprice,cindate,coutdate,cstatuefromcmanage",其他查询语句雷同,此后不在赘述。
在文本框里输入要查询的姓名,MSFlexGrid空间将会显示查询结果,嵌入的查询语句为:
"selectcnumber,cname,cictype,cicnum,csex,caddress,ctel,cmember,croom,ctype,cprice,cindate,coutdate,cstatuefromcmanagewherecnamelike'"&Text1.Text&"*'"]
5.3.4挂帐,结帐,日报表,追加押金
[说明:
追加押金窗体.系统自动加载已入住客户号码,当用户选择客户号码时候,系统自动加载客户信息,用户添加押金后,保存时系统对cmanage表进行修改,保存数据;结帐窗体。
系统自动加载已入住还没退房的房间号,用户选择要退房的房间号,系统加载客户信息以需付款和明细供核对,确定结帐后,系统将对cmanage表,smanage,reminder,roomlogin进行修改,以保持数据库的参照完整性。
如果是挂帐,用户可以选择挂帐,在客户结帐的时候,调出挂帐结帐窗体,系统自动加载挂帐的单位,用户选择挂帐单位,系统自动加载需还金额。
挂帐结帐只对smanage表操作。
而日报表显示smange里的信息,提供按日期查找的方法,打印当天的帐务明细。