数据库课程设计报告酒店客房管理_第1页
数据库课程设计报告酒店客房管理_第2页
数据库课程设计报告酒店客房管理_第3页
数据库课程设计报告酒店客房管理_第4页
数据库课程设计报告酒店客房管理_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

./酒店客房管理系统本学期学习了数据库系统概论这门课,初步掌握了数据库的一般性知识,获得了一些基本的数据库操作技能,能够对数据库进行一些简单的操作。结合上星期学习的JAVA基础这门课,本次课程设计将通过Java利用Mysql,MyEclipse来做一个实例练习掌握的知识。系统概述系统目标采用电脑管理业务、财务等诸多环节已成为推动宾馆业迅速发展的先决条件,宾馆客房管理系统是各型宾馆所需要使用的一个管理系统。建立起一套功能完善的管理信息系统,既能满足业务人员日常处理的需要,增强企业经营全过程的数字化管理水平;又能满足管理人员决策分析的需要,提高公司管理层对公司经营反馈信息的响应速度。本实例将通过使用Mysql,MyEclipse设计软件,帮助酒店客房相关人员快速方便地对客人信息,员工信息进行管理。将原本散乱的客人信息系统化,图形化,建立一个运行稳定,易于操作的酒店客房管理系统,让工作人员能够方便快捷地执行各项工作。2.具体需求1〕功能需求系统初始化对系统的基本信息的名称、编号的初始化,对系统管理员的密码以与其他系统使用人员的用户名、权限、密码等的设定。客房信息管理实现房间基本信息的增、删、改、查等的维护工作。支持根据房间状态是预订、入住、空闲等类型进行查询。物品信息管理实现客房日常消耗物品信息的增删改查等维护工作。支持物品存量查询、入库登记、出库登记。员工信息管理实现员工基本信息的增删改查等维护工作。支持员工与入住、结账、物品出入库等活动的登记,做到经手人负责。宾馆入住管理实现客房预订登记,主要是登记客人XX、手机、预订房间类型和天数等基本信息,实现入住登记,即根据登记的客人XX信息查询到预订的房间,修改房间状态,收取押金,实现房间调整,退房结账。客人消费管理实现客房收费物品、洗衣费、餐饮等服务项目登记,如果超过押金要与时给出预警。最后退房时结算。系统安全管理实现对系统数据库进行备份和恢复的功能,以增强系统可靠性,并对系统用户进行权限管理,以增加系统的安全性。性能需求数据精确度:查询时应保证查全率,所有相应域包含查询关键字的记录都应能查到;时间特性:一般操作的响应时间应在1~2s内;适应性:Windows2000以上系统均可运行系统安全性一个功能完善的酒店客房管理系统,除了应保证能正常执行功能以外,还要具备一定的数据保护能力,以防止人为破坏或自然破坏。为此,要做到以下内容:要有严格的登录用户身份检查功能,防止非法用户的登录对各用户的操作权限要有严格分工,不能因为分工不清造成数据的不安全或损坏。对用户登录信息进行保护,防止泄露对用户提交的数据进行预先的完整性检查,防止垃圾数据进入数据库。保证对数据库增加、删除、修改等操作的安全执行,保持数据库中各基本表之间的数据完整性。另外还要注意网络安全和物理安全、数据备份等。需求分析进行系统功能分析与数据流图分析数据流程分析就是吧数据在组织内部的流动情况抽象出来,舍去了具体组织结构、信息载体、处理工作等,单从数据流动过程来考察实际业务的数据处理模式。数据流程分析主要包括对信息的流动、传递、处理、存储等的分析。酒店客房管理酒店客房管理前厅部预定入住调整退房人力资源部员工登记员工入住员工离职采购部新物品添加删除员工物品出入库客房部服务物品项目登记押金预警客人物品出入新服务添加删除DBA操作者信息备份恢复秘钥管理以上为数据流图数据库设计数据库结构设计的好坏对应用系统的效率以与实现的效果有很大的影响,一个优秀的数据库结构设计会减少数据库的存储量,数据的完整性和一致性比较高,系统具有较快的响应速度,简化基于此数据库的应用程序的实现等。由于数据库设计的重要性,人们提出了许多数据库结构设计的技术。但是这些设计方法和设计者的工作经验有很大的关系。因此要从根本上解决所有数据库结构设计的问题,需要多实践,在实践中积累经验和教训,最终成为数据库结构设计的专家。数据库概念结构设计这一设计阶段是在需求分析的基础上,设计出能够满足用户需求的各种实体,以与它们之间的关系,为后面的逻辑结构设计单下基础。这个阶段不用考虑所采用的数据库管理系统、操作系统类型和机器类型等问题。这阶段可用的工具很多,用的最多的是E-R图,另外还有许多计算机辅助工具,如CASE等可以帮助进行设计。在本次设计中,根据需求分析的结果,对系统中涉与到的数据进行抽象,主要实体有预订,入住,客房,服务项目,客房,库房,员工,员工物品,权限等。据此,画出酒店客房管理系统的实体-联系图,如图所示。预订预订手机XX违约金XX房间类型预订天数是服务项目是房间号服务项目项目总金额项目数量项目单价员工物品是库房物品数量员工号员工号员工号员工是XX员工号员工房间号月工资是入住当前天数房间号押金应付总金额XX分房客房房间号备注一天的价格房间状态房间类型数据库逻辑结构设计概念结构是独立于实际设计模型的信息结构,必须将其转化为逻辑结构后才能进行数据库应用的设计。也就是要将概念上的结构转化为Mysql数据库系统所支持的实际数据模型。转化原则:一个实体型转化为一个关系模式。实体的属性就是关系的属性,实体的码就是关系的码。实体间的联系:1:1,转换为一个独立的关系模式,或与任意一端的关系模式合并。1:N,转换为一个独立的关系模式,或与N端关系模式合并。M:N,转换为一个独立的关系模式。具有相同码的关系模式可合并。基于以上原则,转换之后的关系模式集为:秘钥信息〔用户名,秘钥〕注册信息〔用户名,密码,用户类型〕客人信息:〔XX,XX,手机〕客人预订:〔XX,房间号,房间类型,入住天数,违约金〕客人入住:〔XX,房间号,押金,应付总金额,目前入住天数〕客房信息:〔房间号,房间类型,房间状态,房间价格〕员工信息:〔XX,员工号,员工房间号,月工资>库房存储:〔物品,物品单价,数量〕员工物品:〔员工号,物品,数量〕服务项目:〔服务物品,服务单价〕服务登记:〔房间号,服务物品,服务数量,服务总价〕考虑因素:每X表设置一到两个主键。以客人信息表中的XX为参照目标,在客人入住表中设置外键。以员工信息表中的员工号,库房存储表中的物品为参照目标,在员工物品表中设置外键。设置3个触发器,实现当向客人预订表中插入数据时,改客房信息中相应客房状态为预订,当向客人入住表插入数据时,改客房信息中相应客房状态为入住,当向客人入住表删除数据时,改客房信息中相应客房状态为空闲。设置触发器,实现当向库房存储表中插入数据时,向服务物品表中插入相应数据。数据库物理结构设计根据逻辑模型,为关系模式选择存取方法,并设计关系,索引等数据文件的物理存储结构,如下:/* 秘钥信息 */createtable秘钥信息<用户名char<10>,秘钥char<10>,primarykey<秘钥>>;/*登录信息*/createtable注册信息<用户名char<10>,密码char<10>,用户类型char<10>,primarykey<用户名>>;/*客人信息*/createtable客人信息<XXchar<20>notnull,XXchar<20>,手机char<16>notnull,primarykey<XX>>;/*客人预订*/createtable客人预订<XXchar<20>,房间号char<4>notnull,房间类型char<6>notnull,入住天数intnotnull,违约金intnotnull,primarykey<XX>>;/*客人入住*/createtable客人入住<XXchar<20>,房间号char<4>notnull,押金intnotnull,应付总金额intnotnull,目前入住天数intnotnull,primarykey<XX>,foreignkey<XX>references客人信息<XX>,check<Pledge=100>>;/*客房信息*/createtable客房信息<房间号char<4>,房间类型char<6>notnull,房间状态char<4>notnull,房间价格intnotnull,primarykey<房间号>>;/*员工信息*/createtable员工信息<XXchar<20>notnull,员工号char<6>,员工房间号char<4>,月工资intnotnull,primarykey<员工号>>;/*库房存储*/createtable库房存储<物品char<30>,物品单价intnotnull,数量intnotnull,primarykey<物品>>;/*员工物品*/createtable员工物品<员工号char<6>,物品char<30>,数量intnotnull,primarykey<员工号,Item>,foreignkey<员工号>references员工信息<员工号>,foreignkey<物品>references库房存储<物品>,check<数量>=0>>;/*服务项目*/createtable服务项目<服务物品char<30>,服务单价intnotnull,primarykey<服务物品>>;/*服务登记*/createtable服务登记<房间号char<4>,服务物品char<30>,服务数量intnotnull,服务总价intnotnull,foreignkey<房间号>references客房信息<房间号>,foreignkey<服务物品>references服务项目<服务物品>,check<服务数量>=0>>;/*插入仓库触发器*/createtrigger插入仓库afterinserton仓库信息foreachrowinsertinto服务项目values<new.物品,new.单价>;/*改变客房状态触发器1*/createtrigger改变客房状态1afterinserton预订信息foreachrowupdate客房信息set房间状态='预订'where客房信息.房间号=new.房间号;/* 改变客房状态触发器2*/createtrigger改变客房状态2afterinserton入住信息foreachrowupdate客房信息set房间状态='入住'where客房信息.房间号=new.房间号;/*改变客房状态触发器3*/createtrigger改变客房状态3afterdeleteon入住信息foreachrowupdate客房信息set房间状态='空闲'where客房信息.房间号=old.房间号;数据库实施在Mysql命令行中输入用户名,密码进入Mysql,在记事本上写一句操作,同时在命令行中运行一句,确保成功。这样也可以利用记事本里的语句段快速重建数据库,以便测试使用。数据库建好,所有表创建完毕后,添加初始化的数据。Mysql中的数据库创建语句与初始化语句见编码部分。应用程序设计系统功能模块设计在系统功能分析的基础上,设计系统功能模块划分如下图。酒店客房管理系统酒店客房管理系统管理员采购部人力资源部客房部前厅部管理员采购部人力资源部客房部前厅部源代码与实现1〕Mysql创建数据库以与初始化代码setnamesgbk;createdatabasehotelcharactersetUTF8;usehotel;createtablecode<Usertypechar<10>,Codechar<10>,primarykey<Code>>;createtablelogininfo<Usernamechar<10>,Passwordchar<10>,Usertypechar<10>,primarykey<Username>>;createtableguestinfo<Gnamechar<20>notnull,Idchar<20>,Telchar<16>notnull,primarykey<Id>>;createtablepreorder<Idchar<20>,Rnumchar<4>notnull,Rtypechar<6>notnull,Pdaysintnotnull,Absentintnotnull,primarykey<Id>>;createtablecheckin<Idchar<20>,Rnumchar<4>notnull,Pledgeintnotnull,Gmoneyintnotnull,Ndaysintnotnull,primarykey<Id>,foreignkey<Id>referencesguestinfo<Id>,check<Pledge=100>>;createtableroominfo<Rnumchar<4>,Rtypechar<6>notnull,Rstatechar<4>notnull,Rmoneyintnotnull,primarykey<Rnum>>;createtablestaffinfo<Snamechar<20>notnull,SIdchar<6>,SRnumchar<4>,Mwageintnotnull,primarykey<SId>>;createtablestorage<Itemchar<30>,Upriceintnotnull,Iamountintnotnull,primarykey<Item>>;createtablestaffitem<SIdchar<6>,Itemchar<30>,Iamountintnotnull,primarykey<SId,Item>,foreignkey<SId>referencesstaffinfo<SId>,foreignkey<Item>referencesstorage<Item>,check<Iamount>=0>>;createtableservitem<Servitemchar<30>,Upriceintnotnull,primarykey<Servitem>>;createtableservice<Rnumchar<4>,Servitemchar<30>,Samountintnotnull,Servcostintnotnull,foreignkey<Rnum>referencesroominfo<Rnum>,foreignkey<Servitem>referencesservitem<Servitem>,check<Samount>=0>>;createtriggerinsert_into_storageafterinsertonstorageforeachrowinsertintoServitemvalues<new.Item,new.Uprice>;createtriggerroom_state_change1afterinsertonpreorderforeachrowupdateroominfosetRstate='预订'whereroominfo.Rnum=new.Rnum;createtriggerroom_state_change2afterinsertoncheckinforeachrowupdateroominfosetRstate='入住'whereroominfo.Rnum=new.Rnum;createtriggerroom_state_change3afterdeleteoncheckinforeachrowupdateroominfosetRstate='空闲'whereroominfo.Rnum=old.Rnum;insertintoguestinfovalues<'X三','3','333'>;insertintoguestinfovalues<'李四','4','444'>;insertintoguestinfovalues<'王五','5','555'>;insertintoguestinfovalues<'赵六','6','666'>;insertintoguestinfovalues<'魏七','7','777'>;insertintoguestinfovalues<'朱八','8','888'>;insertintoguestinfovalues<'X三一','31','999'>;insertintoguestinfovalues<'X三二','32','000'>;insertintoroominfovalues<'1840','套房','空闲',500>;insertintoroominfovalues<'1841','套房','空闲',500>;insertintoroominfovalues<'1842','套房','空闲',500>;insertintoroominfovalues<'0001','标准间','空闲',200>;insertintoroominfovalues<'0002','标准间','空闲',200>;insertintoroominfovalues<'0003','标准间','空闲',200>;insertintoroominfovalues<'0301','单人间','空闲',100>;insertintoroominfovalues<'0302','单人间','空闲',100>;insertintoroominfovalues<'0303','单人间','空闲',100>;insertintoroominfovalues<'1001','三人间','空闲',300>;insertintoroominfovalues<'1002','三人间','空闲',300>;insertintoroominfovalues<'1003','三人间','空闲',300>;insertintoroominfovalues<'1501','大床间','空闲',250>;insertintoroominfovalues<'1502','大床间','空闲',250>;insertintoroominfovalues<'1503','大床间','空闲',250>;insertintopreordervalues<'3','1840','套房',3,20>;insertintopreordervalues<'4','0001','标准间',1,20>;insertintopreordervalues<'5','0002','标准间',1,20>;insertintopreordervalues<'6','1002','三人间',7,20>;insertintocheckinvalues<'3','1840',100,1500,0>;insertintocheckinvalues<'4','0001',100,200,0>;insertintocheckinvalues<'5','0002',100,200,0>;insertintostaffinfovalues<'小明','000001','1908',50000>;insertintostaffinfovalues<'小刚','000002','1908',50000>;insertintostaffinfovalues<'小红','000003','1908',50000>;insertintostaffinfovalues<'小胖','000004','1908',50000>;insertintostaffinfovalues<'小瘦','000005','1908',50000>;insertintostoragevalues<'自行车',10,10>;insertintostoragevalues<'梯子',10,15>;insertintostoragevalues<'五金工具箱',10,23>;insertintostoragevalues<'打印机',10,15>;insertintostoragevalues<'订书机',10,45>;insertintostaffitemvalues<'000001','自行车',2>;insertintostaffitemvalues<'000003','梯子',1>;insertintostaffitemvalues<'000004','订书机',2>;insertintoservitemvalues<'足疗',80>;insertintoservitemvalues<'理发',30>;insertintoservitemvalues<'按摩',233>;insertintoservitemvalues<'洗衣',80>;insertintoservitemvalues<'餐饮',30>;insertintoservitemvalues<'睡衣',100>;insertintoservitemvalues<'香烟',50>;insertintoservicevalues<'1840','足疗',2,160>;insertintoservicevalues<'0001','香烟',1,50>;insertintologininfovalues<1,1,'前厅部'>;insertintologininfovalues<2,2,'客房部'>;insertintologininfovalues<3,3,'人力资源部'>;insertintologininfovalues<4,4,'采购部'>;insertintologininfovalues<5,5,'管理员'>;insertintocodevalues<'前厅部','111'>;insertintocodevalues<'客房部','222'>;insertintocodevalues<'人力资源部','333'>;insertintocodevalues<'采购部','444'>;insertintocodevalues<'管理员','555'>;应用程序部分主要代码连接数据库LoadDriver.javapackagedb;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;importjava.sql.PreparedStatement;importjava.sql.*;//Notice,donotimportcom.mysql.jdbc.*//oryouwillhaveproblems!〔注意,不要导入com.mysql.jdbc.*,否则//将出现问题!〕publicclassLoadDriver{privateConnectionconn;privatePreparedStatementpstat;priva

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论