数据库课程设计报告_宾馆信息管理系统_第1页
数据库课程设计报告_宾馆信息管理系统_第2页
数据库课程设计报告_宾馆信息管理系统_第3页
数据库课程设计报告_宾馆信息管理系统_第4页
数据库课程设计报告_宾馆信息管理系统_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

数据库课程设计报告宾馆信息管理系统计算机科学与技术学院08级电子商务专业一、系统开发平台题目酒店信息管理预订系统开发语言JAVAECLIPSE/NETBEANS后台数据库管理系统SQLSERVER2000操作系统WINDOWSXP二、数据库规划21任务陈述引言客房管理系统是典型的信息管理系统的一部份,而且是必不可少的一部份。其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起简洁且资料一致性和完整性强、资料安全性好的数据库。而对于后者则要求应用程序功能完备,易使用等特点。酒店客房管理系统的内容对于经营的决策者和管理者来说都至关重要,所以客房管理系统、信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多弊端,如效率低、保密性差,容易出现差错等,且对于查询空房间及已定房间等极为不方便。在当今时代,这些完全可以改用计算机来代替人的手工操作。作为计算机及网络应用的一部分,使用计算机对客房信息进行管理,具有手工管理所无法比拟的优点。例如检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高客房经营管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。且办事效率也是决定收入的一个关键因素。因此,我选择的酒店客房管理系统设计,力求开发出一套界面友好,功能强大,使用简单的适用于各大、中、小规模的酒店客房的管理系统。同时也是一款完全适合宾馆或旅馆酒店客房管理傻瓜式日常业务管理的软件。酒店系统由前台和后台管理两个部分组成。前台作为与前台服务员直接交互的可视化界面,由于使用方便,能将系统的各个功能提供给他们,以帮助服务员进行客房管理。前台在考虑功能实现的同时,也考虑了操作的简洁和方便性,目的是让大多数客户能够轻松地享受电子商务给他们带来的便利。为了确保客户和酒店的信息具有更好的安全性,前台管理和后台管理是分离的。前台的各管理模块只有部分功能和权限,我为此设计了两个角色一是酒店管理员,二是前台服务员。其中酒店管理员享有最高权限,可以使用酒店客房管理系统所提供的所有功能,包括员工信息修改、客房类型维护、客房信息维护、客户信息查询。前台服务员的主要职能是负责订房,入住和退房,以及查询和修改订单,查询房间信息和查询预订及入住的客户信息。所有该角色只可以使用部分功能,后台管理主要由数据库系统作为支持,后台管理的维护工作主要由系统管理员进行。数据库管理系统由于酒店管理系统是一个典型的数据库应用系统,因而选择一个良好的DBMS是系统实现的另一个重要环节。DBMS访问数据库。一般来说现代的DBMS具备以下几个功能1事务的恢复功能为尽可能减少由于故障而引起的数据库数据失效的损失,现代的DBMS通常具备恢复功能。2完整性约束检查由于数据库中的数据是持久和共享的,其正确性十分重要,为保证数据的正确性,DBMS提供对数据库数据的语法和语义的检查,数据在语义上的约束称为完整性约束。3访问控制并不是任何用户可以不加限制的访问任何数据库中的数据,DBMS应有控制用户访问权限的功能,即所谓的访问控制功能,访问控制不但可以限制用户的访问范围,而且可以限制用户可进行的操作。4数据目录管理数据库中保留的是持久和共享的数据,对数据的定义应不同于一般的程序设计语言,应独立于应用程序,长期保留在数据库中,这就构成了数据目录,数据目录的管理是DBMS的基本功能。22任务目标设计目标(1)操作简单方便、界面简洁美观,方便中小型酒店人员使用。(2)前台服务员功能住宿管理客房预订(能实现散客和团体客户预订,团体预订可预订多间不同类型的房间,并在这些房间中选择一个作为主房间号)客人入住(能实现散客和团体客户入住,团体入住可选择多间不同类型的房间,并在这些房间中选择一个作为主房间号)客户信息录入(在订单生成页面将录入客户信息,团体客户只记录一位主客户信息,而不需所有客户依次登记)入住押金管理(押金设为住宿总费用的百分之五十,在开入住订单时系统自动计算并显示)信息管理预订和入住订单查询(可按订单号、客户身份证号、入住类型查询)团体订单细则(对团体订单中每一个房间信息显示)修改预订订单和入住订单(可修改主客的基本信息及订单信息)取消预订订单(直接删除预订订单,恢复房间的可用状态)将预订订单直接转为入住(省去了再次生成入住订单的程序)房间查询(可按照房间号、房间类型、房间状态查询)客户查询(可按照客户姓名、客户身份证号、入住类型查询)入住客户中途换房(只能换同种类型房间,消费金额不变)入住客户正常退房(根据入住时间计算消费金额,最后客户应缴费用为总费用与已交押金之差)(3)管理员功能除了前台接待的功能之外,还包括房间信息设定及修改(包括客房类型,客房分机号,楼层,备注)个人信息修改(包括个人密码,联系方式,住址)增加客房类型(包括类型号,单价,床位数,房间设施,面积等)增加客房信息(包括房间号,房间类型,房间分机,楼层,备注)(4)酒店介绍等信息介绍酒店的地址,房间价格标准,联系电话等信息三、系统定义31系统边界酒店信息管理系统住宿管理客房管理后台管理员散客客房预订散客客房入住团体客房预订团体客房入住押金管理客户信息录入预订订单查询入住订单查询预订订单修改入住订单修改取消预订订单房间信息查询客户信息查询个人信息维护增加客房类型增加客房信息修改已有房间信息退换房管理已住订单换房已住订单退房及结账32用户视图前台服务员散客客房预订与入住前的房间查询散客预订生成订单,录入客户基本信息散客入住生成订单,录入客户基本信息团体客房预订与入住前房间查询,设置主房间号团体预订生成订单,录入主客户基本信息团体入住生成订单,录入主客户基本信息预订订单信息查询预订订单修改团体预订订单所有房间信息细则取消预订订单入住订单信息查询入住订单修改团体入住订单所有房间信息细则客房信息查询客户信息查询入住换房管理入住正常退房及消费结账管理后台管理员后台管理员登陆管理员个人功能主页个人信息修改增加客房类型增加客房信息修改已有客房信息四、需求分析41用户需求分析411数据需求前台服务员用户视图预订信息预订订单号(唯一),客户身份证号,客户姓名,主客房间号,预订房间数,入住类型(散客/团体),预订时间,入住时间,入住天数,主客电话。预订登记预订登记号(唯一),所属预订订单号,房间号,房间类型号,房间类型,预订时间,入住时间,入住天数,房间单价。入住信息入住订单号(唯一),客户身份证号,客户姓名,主客房间号,预订房间数,入住类型(散客/团体),入住时间,入住天数,主客电话,房间总费用,需收押金。入住登记入住登记号(唯一),所属入住订单号,房间号,房间类型号,房间类型,预订时间,入住时间,入住天数,房间单价。客户信息客户身份证号(唯一),客户姓名,客户电话,性别,备注客房信息房间号,房间类型号,房间类型(标准间/高级套房/普通单间/总统套房),房间状态(可用/预订/入住),楼层,分机号,备注换房信息房间号,房间类型,客户姓名,客户身份证号,订单号退房信息订单号,客户姓名,客户身份证号,入住时间,入住天数,房间单价,已交押金,房间总费用,还需缴纳费用后台管理员用户视图管理员登陆管理员账号,管理员密码管理员个人信息维护管理员姓名,管理员账号,管理员密码,联系电话,住址,职务增加房间类型房间类型号,房间类型名称,房间单价,床位数,面积,房间设施增加客房房间号,房间类型,房间状态,楼层,分机,备注412事务需求前台服务员视图数据查询现有各类房间的详细信息以供预订或入住列出已有所有预订订单列出已有所有入住订单列出所有客房信息(可用/已住/预订)列出所有客户信息(预订/入住)列出某客户的订单情况列出某团体的所有登记房间情况列出需要换房的房间信息以及所有同种类型当前可用房间信息列出需要退房的房间信息,已交金额及需交金额显示酒店详细信息数据录入录入客户需要的房间信息(选择房间类型及房间数目)录入客户的基本信息(姓名,身份证号,电话等)录入订单信息(时间,入住天数)录入订单修改信息(修改预订及入住订单,及取消订单)录入换房信息录入退房信息数据输出输出酒店现有有所类型房间的数目自动输出预订订单及入住订单的订单号和登记号(每一个订单有一个订单号,一个订单中的每个房间有一个登记号,一个登记号对应一个订单号,一个订单号对应一个或多个登记号。订单号和登记号按系统时间自动生成)自动输出退房信息,退房所需交的金额后台管理员视图数据录入录入管理员账号,密码录入个人修改信息(密码,电话,住址)录入新增加房间类型(类型号,类型名称,单价等)录入新增加房间信息(房间号,房间类型,分机,楼层)录入已有房间修改信息(房间号,房间类型等)数据查询列出现有所有房间信息列出个人所有信息列出修改后的房间信息数据输出输出增加的房间类型输出增加的房间信息42系统需求说明421软件环境软件环境需要支持WINDOW操作系统,及SQLSERVER2000商业数据库422硬件环境INTERRCORETM2DUOCPUT5670180GHZ179GHZ,504MB内存423初始数据库大小客房信息40条员工信息4条客户信息15条预订订单信息8条入住订单信息7条预订登记信息15条入住登记信息15条424数据库增长速度住宿信息每天增长大约50条预订信息每天增长大约50条退宿信息每天增长大约30条换房信息每天增长大约10条订单号酒店客房房间类型预订登记表登记有属于客户预订订单预订入住管理管理员所属登记号登记号订单号入住登记表入住订单登记登记号所属订单号其他信息增长速度不定425记录查找的类型和平均数量查询客房信息大约每天50次查询住宿信息大约每天50次查询客户信息大约每天50次查询退宿信息大约每天50次426安全性管理员和服务员有不同的权限每个管理员登录系统是需要身份验证(前台服务员不需要)五、数据库逻辑设计51ER图52数据字典521实体和联系属性客房信息(房间号,房间类型号,房间类型,房间状态,楼层,房间分机,备注)房间类型(房间类型号,类型名称,房间单价,面积,床位数,房间设施)客户信息(身份证号,客户姓名,联系电话,性别,备注)预订订单(预订订单号,主客姓名,主客身份证号,主客房间号,入住类型,房间数目,预订时间,入住时间,入住天数,客户电话)预订登记表(预订登记号,所属预订订单号,房间号,房间类型号,房间类型,预订时间,入住时间,入住天数,入住类型,房间单价)入住订单(入住订单号,主客姓名,主客身份证号,主客房间号,入住类型,房间数目,入住时间,入住天数,客户电话,房间总费用,需交押金)入住登记表(入住登记号,所属入住订单号,房间号,房间类型号,房间类型,入住时间,入住天数,入住类型,房间单价)团体入住信息(团体入住订单号,主客姓名,主客身份证号,客户人数,主客房间号,入住时间,入住天数,主客电话,房间总费用,需收押金)管理员(管理员账号,密码,管理员姓名,职位,联系电话,住址)522属性描述实体属性类型及大小空身份证号(KEY)CHAR10否客户姓名VARCHAR50否联系电话VARCHAR50否性别VARCHAR50否客户信息备注VARCHAR50房间号(KEY)CHAR10否房间类型号CHAR10否房间类型VERCHAR50否房间状态VERCHAR50否房间分机CHAR10否楼层CHAR10否客房信息备注VARCHAR10管理员账号(KEY)CHAR10否密码CHAR10否职位VARCHAR50否联系方式CHAR10否管理员住址VARCHAR50预订订单号KEYCHAR10否主客姓名VARCHAR50否预订订单主客身份证号CHAR10否入住类型VARCHAR50否预订房间数目CHAR10否主客房间号CHAR10否预订时间DATETIME否入住时间DATETIME否入住天数CHAR10否主客电话CHAR10否预订登记号(KEY)CHAR10否所属预订订单号CHAR10否房间号CHAR10否房间类型号CHAR10否房间类型VARCHAR(50)否预订时间DATETIME8否入住时间DATETIME8否入住天数CHAR10否入住类型VARCHAR(50)否预订登记表房间单价CHAR10否入住订单号KEYCHAR10否主客姓名VARCHAR50否主客身份证号CHAR10否入住类型VARCHAR50否入住房间数目CHAR10否主客房间号CHAR10否入住时间DATETIME否入住天数CHAR10否主客电话CHAR10否房间总费用CHAR10否入住订单需交押金CHAR10否入住登记号(KEY)CHAR10否所属入住订单号CHAR10否房间号CHAR10否房间类型号CHAR10否房间类型VARCHAR(50)否入住时间DATETIME8否入住天数CHAR10否入住类型VARCHAR(50)否入住登记表房间单价CHAR10否房间类型号(KEY)CHAR10否类型名称VARCHAR(50)否床位数CHAR10否单价CHAR10否房间设施VARCHAR(50)否房间类型面积CHAR10否53关系表六、数据库物理设计61索引使用查询分析器运行USE酒店管理系统DBCCSHOWCONTIGWITHTABLERESULTS,ALL_INDEXES可以得到“酒店管理系统”数据库中全部索引的相关信息,其中用户所建表的部分信息如下OBJECTNAMIDINDEXNAMEAVERAGEFREEBYTLOGICALFRAGEMENTATEESION入住订单18099105PK_团体入住信息6384000入住登记表210099789PK_团体入住登记表5240000客户信息837578022PK_客户信息473001000房间类型933578364PK_房间类型7422000客房信息1669580986PK_客房信息387601000管理员1909581841PK_高级管理7617000预订订单2021582240PK_团体预订信息6278000预订登记表2085582468PK_团体预订登记表428001000以上都是主键索引。62安全机制(1)后台管理员登录必须要通过身份验证,当数据库中有此账号并且权限与用户类型一致是,才能成功登录。保证了系统的安全性。(2)前台工作人员没有权利访问经理的工作空间,对一些宾馆的基本信息和重要数据,如房间类型、客房信息,没有全部查询或者修改的权利。保证了数据的安全性。七、应用程序设计71功能模块前台服务员(1)散客的预订和入住房间可按照房间类型(如单人间,标准间等)选择房间,该房间必须为空闲,即未被预订,并且目前无人入住的房间,登记客户的基本信息,包括客户姓名、电话、登记入住时间、预定时间。在预订后,会自动生成一个订单号和一个登记号,客房状态即为“预订”,从而在其他客户登记查询房间的时候此房间不会被查询到。同时,如果客户在预订订单中的入住时间之后三天仍未到达,则视为放弃,此时房间状态恢复“可用”。(2)团体的预订和入住登记页面首先显示酒店现在剩余的各类空闲房间数,客户可选择其中的各种类型数目,并设定一个主房间。登记入住客户的基本信息,包括客户姓名、通讯地址、电话、登记预定时间和入住时间以及准备入住天数,对于已经预定过房间的情况,根据房间号直接找出其预定信息,修改需变动的信息后做入住登记。每一个订单有一个订单号,一个订单中包括了该团体中的所有房间,且每个房间有一个登记号。即一个订单对应多个登记号,一个登记号只对应一个订单号。团体预订只需记录主客的姓名电话等信息即可。入住之后的房间状态为“已住”,从而在其他客户登记查询房间的时候此房间不会被查询到。(3)退宿结账根据订单号查询客户的入住订单信息,包括住宿天数、退宿时间,根据单价、已交押金和入住天数等信息自动计算费用。(4)入住换房根据房间号可查询到该房间及订单的所有信息,同时会显示该类房间的其他剩余房间,选择其中一间确定换房后,订单表和登记表中的数据都会改变。(5)房间管理与查询查询预订订单可以直接查询所有订单,也可根据订单号、主客身份证号,入住类型查询。对每一个订单,可以显示其登记的所有房间信息。修改预订订单可以对预订订单中的客户信息和预订信息修改,其中客户信息包括除了身份证号之外的所有信息,预订信息包括入住天数和入住时间。查询入住订单可以直接查询所有订单,也可根据订单号、主客身份证号,入住类型查询。对每一个订单,可以显示其登记的所有房间信息。修改入住订单可以对入住订单中的客户信息和预订信息修改,其中客户信息包括除了身份证号之外的所有信息,预订信息包括入住天数和入住时间。查询房间信息可以直接查询所有房间的房间号,房间状态,房间楼层,房间类型等信息,也可以根据房间号,房间类型,房间状态查询。查询客户信息可以直接查询所有客户,也可以根据客户姓名,客户身份证号,订单类型查找。(6)关于我们对酒店的简介及联系方式等信息。后台管理员(1)高级管理查询、增加、删除、修改客房信息,还包括修改个人信息,修改密码等功能。修改房间的各项数据信息,包括房间号、房间类型、位置、状态、备注。修改个人信息,包括个人登录密码,联系方式,住址等。(2)房间类型维护增加房间类型信息,包括类型号、名称、面积、床位数、设施(是否有沙发、是否有电视、是否有电话、是否有卫生间),房间价格。对该类信息的修改只有高级管理员才有权限。72界面设计使用了NETBEANS设计界面。主界面散客预订与入住界面选择房间类型可以查询当前剩余此类房间数生成预订订单。点击预订,自动生成预订订单号和登记号。生成入住订单。点击入住,自动生成入住订单号和登记号,及需交押金。团体预订与入住。选择房间类型,点击添加可以增加房间,并可以设定一个主房间。生成预订订单和入住订单,填写客户信息。查询订单信息,可以全部查询,按订单号、主客身份证号,入住类型查询。点击详情,可查看该订单的详细登记信息点击修改,可以修改预订订单,也可以取消订单查询入住订单,和预订订单类似。入住信息修改查询房间信息和客户信息换房。输入房间号可查询同类房间,点击确定可以换房。退房结账。输入订单号可以显示应缴金额。管理员登陆界面点击修改,可以显示自己个人信息并修改。点击增加,可以增加房间类型和房间信息。输入房间号或房间类型,可以查询房间信息。修改房间信息后选择确定修改。酒店简介。73事务设计自动生成订单号和登记号。PUBLICSTATICSYNCHRONIZEDSTRINGNEXTCODESTRINGPREFIX/产生序列号GREGORIANCALENDARCALENDARNEWGREGORIANCALENDARINTMONTHCALENDARGETCALENDARMONTH1INTDAYCALENDARGETCALENDARDAY_OF_MONTHINTHOURCALENDARGETCALENDARHOUR_OF_DAYINTMINUTECALENDARGETCALENDARMINUTEINTSECONDSCALENDARGETCALENDARSECONDLONGMMONTH100000000DAY1000000HOUR10000MINUTE100SECONDSSTRINGNLONGMTOSTRINGRETURNPREFIXN调用时预订订单参数为“A”,入住订单为“B”。登记号为入住号加后缀。/需要自动生成散客入住订单号和登记号XULIEHAOXULIENEWXULIEHAOCOMENOXULIENEXTCODE“B“/订单号REGISTERNOCOMENO“0“/登记号/需要自动生成团体入住订单号和登记号XULIEHAOXULIENEWXULIEHAOCOMENOXULIENEXTCODE“B“/订单号REGISTERNONEWSTRINGMESSAGELENGTH/登记号REGISTERNOICOMENOSTRINGVALUEOFI自动计算现在剩余各类房间数目PRIVATESTRINGRESTSTRINGTYPNOSTRINGSQL1“SELECTCOUNT房间号FROM客房信息WHERE房间状态可用AND房间类型号“TYPNO“STRINGRESTNULLRESULTSETATRYSCNEWDBCONNECTSTATDBCONNECTGETSTATEMENTASTATEXECUTEQUERYSQL1WHILEANEXTRESTAGETSTRING1/SYSTEMOUTPRINTACATCHSQLEXCEPTIONE/TODOAUTOGENERATEDCATCHBLOCKEPRINTSTACKTRACERETURNREST自动计算退房时应缴金额TRYPREPAREDSTATEMENTPRSCONNPREPARESTATEMENT“SELECT需收押金FROM入住订单WHERE入住订单号“PRSSETSTRING1,ORDNORS1PRSEXECUTEQUERYWHILERS1NEXTDEPOSITRS1GETSTRING1TRIM/已交押金CATCHSQLEXCEPTIONE1E1PRINTSTACKTRACESYSTEMOUTPRINTLNDEPOSITSTRINGALLFAREJTABLE1GETVALUEAT0,6TOSTRINGTRIM/总费用INTNEEDINTEGERPARSEINTALLFAREINTEGERPARSEINTDEPOSIT/还需缴纳换房后,房间状态改变TRYPREPAREDSTATEMENTPRS1CONNPREPARESTATEMENT“UPDATE入住订单SET主客房间号WHERE主客房间号“PRS1SETSTRING1,NEWROOMPRS1SETSTRING2,ROOMNOPRS1EXECUTEUPDATEPREPAREDSTATEMENTPRSCONNPREPARESTATEMENT“UPDATE入住登记表SET房间号WHERE房间号“PRSSETSTRING1,NEWROOMPRSSETSTRING2,ROOMNOPRSEXECUTEUPDATEPREPAREDSTATEMENTPRS2CONNPREPARESTATEMENT“UPDATE客房信息SET房间状态可用WHERE房间号“PRS2SETSTRING1,ROOMNOPRS2EXECUTEUPDATEPREPAREDSTATEMENTPRS3CONNPREPARESTATEMENT“UPDATE客房信息SET房间状态已住WHERE房间号“PRS3SETSTRING1,NEWROOMPRS3EXECUTEUPDATEJOPTIONPANESHOWMESSAGEDIALOGNULL,“换房成功“,“OK“,JOPTIONPANEINFORMATION_MESSAGECATCHSQLEXCEPTIONE1JOPTIONPANESHOWMESSAGEDIALOGNULL,“换房失败“,“ERROR“,JOPTIONPANEERROR_MESSAGEE1PRINTSTACKTRACE八、测试和运行测试在测试时花时间最多的地方时SQL语句。有时候一个小小的引号没有中英切换就要出错,或者是在PREPAREDSTATEMENT语句中用SETSTRING时候可能会把序号写错。出错以后就不得不反复用SYSTEMOUTPRINTLN语句检测,并且用查询分析器检测SQL语句是否正确。在测试中也发现当条件语句检测比如JTEXTFIELD是否为空的时候,用“NULL”是检测不出来的,就要不断上网搜查资料。在测试中也发现有很多没有想到的情况,比如在输入客房订单信息时,不仅要考虑所有客户信息不能为空,还要考虑入住天数不能小于一,入住时间要晚于预订时间等等。可能需要很多条件语句,而条件语句嵌套的多了,就容易出问题。实验进行中我的想法一直跟着做的程度变化。因为最开始的时候不可能将所有的情况和事件都料想到。比如ROOMMANAGE的类中,在查询窗口中我一直没有确定到底按照哪种方式查询。本来设想了很多JTEXTFIELD可以供不同的条件查询,可是测试的时候发现这样的出错率很高,于是将它改成了一个下拉列表,选择查询方式再按照条件查询。不仅界面变得简洁并且错误也解决了。这些大大小小的错误需要不断看,不断调试,所以调试在实验中占了很大一部分。运行当所有模块基本都完成了之后,每个界面之间加好跳转语句,可以从MAINFR

温馨提示

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

评论

0/150

提交评论