宾馆房客管理系统bgib.docx
目录第一章概概述21.1 开发目目的21.2 功能需需求2第二章需需求分析析32.1 数据需需求32.2数数据字典典3第三章数数据库设设计53.1 概念结结构设计计53.2 逻辑结结构设计计53.3 物理结结构设计计6第四章应应用系统设计计94.1概概要设计计94.2详详细设计计104.3系系统测试试14第五章设设计小结结18第一章 概述1.1 开发目目的为了进一一步加强强对宾馆馆宾客及及工作人人员的管管理,规规范宾馆馆行为, 减少主主管部门门和企业业的工作作量,提提高工作作效率,特特开发此此系统。1.2 功能需需求1)使用用系统的的管理部部门人员员: a.信息要要求:能够了解解宾馆的的实时信信息,可可以查询询所有的的宾馆信信息,并并按要求求管理和和处理宾宾馆信息息。b.处理理要求: 主管部部门根据据自身的的权限,对对所在辖辖区的位位置进行行管理,并并能查看看所在辖辖区的宾宾馆信息息,有权权给宾馆馆信息反反馈,警警告。c安全全性安全性要要求:1.系统统应设置置访问用用户的标标识以鉴鉴别是否否是合法法用户,并并要求合合法用户户设置其其密码,保保证用户户身份不不被盗用用;2.系统统应对不不同的数数据设置置不同的的访问级级别,限限制访问问用户可可查询和和处理数数据的类类别和内内容;3.系统统应对不不同用户户设置不不同的权权限,区区分不同同的用户户,如总总经理,管管理员等等。2)宾馆馆:a.信息息要求:能够填写写和查看看自身宾宾馆的信信息,上上报后,能能查看自自身信息息的状态态,并能能修改。b.处理理要求:当宾馆信信息初次次填写,和和审批通通过或为为审批通通过,则则可以修修改自身身信息。第二章 需求分分析2.1 数据需需求宾馆客房房管理系系统就是是对宾客客及负责责员工信信息的管管理1) 能能够通过过键盘登登记客人人入住信信息(房房号、客客人姓名名、入住住时间、入住期限、入住押金、每日租金、客房等级、单/双/三人间)2) 给给定员工工姓名,显显示本员员工所管管理的楼楼层客房房信息(经经济、标标间、豪豪华、单单/双/三人间间的入住住情况(包包括空闲闲/已入入住/入入住客人人姓名)3) 给给定入住住客人姓姓名,显显示其入入住情况况(房号号、姓名名、已交交押金、入入住费用用累计,入入住结算算) 4) 给给定房号号,修改改押金数数目(实实现添加加的数目目和以往往的数目目累加)2.2 数据字字典该系统的的房间数数据主要要是描述述房间管管理中存存储的所所有房间间信息(包包括所有有房间查查询的所所需信息息),起起数据字字典如下下表所示示:属性名存储代码码类型长度房间号RNummcharr10房间级别别Rlevvelcharr4房间类型型RTyppecharr6该系统的的员工数数据主要要是描述述员工信信息组成成,其数数据字典典如下表表所示:属性名存储代码码类型长度员工姓名名ENammecharr20员工牌号号ENammecharr10所管理的的楼层号号EFlooorInt员工职务务EBussineesscharr10该系统的的宾客数数据字典典如下表表所示:属性名存储代码码类型长度入住房间间号RNummCharr10客人姓名名GNammechatt20入住时间间GCheeckiintiimeCharr10入住期限限GCheeckiinteermint每日租金金GEveerdaayREENT innt入住押金金GCheeckiinFooreggiftt innt楼层号GFlooorNNum Innt 该系统的的系统数数据主要要是用来来描述宾宾馆住房房情况的的信息,其其数据字字典如下下表所示示:属性名存储代码码类型长度楼层总数数SFlooorSSUMint每层房间间数SFreeeNuumInt空闲数量量SFreeeNuumInt入住数量量SCheeckiinNuumInt第三章 数据库库设计(江亚波波)3.1 概念结结构设计计E-R图图:所管理的楼层号入住时间员工牌号入住期限客人姓名员工姓名 员工管理入住押金 宾客日租金空闲数量楼层号员工职务房间号码入住数量豪华间日租金标准房日租金房间等级 房间经济房日租金房间类型入住数量 系统信息空闲数量楼层总数每层房间数量3.2 逻辑结结构设计计该设计以以概念结结构设计计中的EE-R图图为主要要依据,设设计出相相关的整整体逻辑辑结构。根根据总EE-R图图了解有有四个实实体,四四个关系系模式如如下:员工表(员工名,员工牌号,所管理楼层,员工职务,入住数量,空闲数量)宾客表(宾客姓名,入住时间,入住期限,日租金,入住押金,楼层号,房间号码)房间表(房间号,房间类型,房间等级)系统表(经经济房日日租金,标标准房日日租金,豪豪华间日日租金,入入住数量量,空闲闲数量,每每层房间间数量,楼楼层总数数)3.3 物理结结构设计计a. 创建课程程信息表表的语句句为:CREAATE TABBLE Empployyee(ENamme CCHARR(200) NNOT NULLL,-员工工姓名ENumm CHHAR(10) NOOT NNULLL,-员工牌牌号EFlooorNNum INTT NOOT NNULLL,-所管理理的楼层层号EBussineess CHAAR(110) NOTT NUULL,-员员工职务务-ECChecckinnNumm INNT DDEFAAULTT 0,-入入住数量量-EFFreeeNumm INNT NNOT NULLL,-空闲闲数量CONSSTRAAINTT pkk_ENNum PRIIMARRY KKEY(ENuum),CONSSTRAAINTT ckk_EBBusiinesss CCHECCK( EBuusinnesss INN('楼楼层管理理员','客房房领班'') ),-addd iin pproggramm COONSTTRAIINT ck_EChheckkinNNum CHEECK( ECChecckinnNumm >= 0 ),-addd iin pproggramm COONSTTRAIINT ck_EFrreeNNum CHEECK( EFFreeeNumm >= 0 ),);输入数据据后,效效果如下下图:b.创建建宾客信信息表的的语句为为:CREAATE TABBLE Gueest(RNumm vaarchhar(10),-房间号号码GNamme CCHARR(200) NNOT NULLL,-客人人姓名GCheeckiinTiime DATTE DDEFAAULTT(GEETDAATE(),-入入住时间间GCheeckiinTeerm DATTE DDEFAAULTT(GEETDAATE(), -入住期期限GEveeryddayRRentt INNT DDEFAAULTT 0,-每每日租金金GCheeckiinFooreggiftt INNT DDEFAAULTT 0,-入入住押金金GFlooorNNum INTT, -楼层层号PRIMMARYY KEEY(RRNumm),FOREEIGNN KEEY(RRNumm) RREFEERENNCESS Rooom(RNuum)ON DDELEETE CASSCADDEON UUPDAATE CASSCADDE,);输入数据据后,结结果如下下图所示示:c.创建建房间信信息表的的语句为为:CREAATE TABBLE Rooom(RNumm vaarchhar(10),-房间号号码RLevvel CHAAR(44) NNOT NULLL DDEFAAULTT '标标间',-房房间等级级:经济济 标间间 豪华华RTyppe CCHARR(6) NOOT NNULLL DEEFAUULT '双人人间',-房房间类型型:单人人间 双双人间 三人间间CONSSTRAAINTT pkk_RNNum PRIIMARRY KKEY(RNuum),CONSSTRAAINTT ckk_RLLeveel CCHECCK( RLeevell INN('经经济','标间间',''豪华'') ),CONSSTRAAINTT ckk_RTTypee CHHECKK( RRTyppe IIN(''单人间间',''双人间间',''三人间间') ); 输输入数据据后,效效果如下下图所示示:d.创建建系统信信息表的的语句为为:CREAATE TABBLE SysstemmInffo(SFlooorSSum INNT PPRIMMARYY KEEY,-楼层层总数SRSuumEaachFF INNT NNOT NULLL, -每每层房间间数量SFreeeNuum IINT NOTT NUULL,-空空闲数量量SCheeckiinNuum IINT DEFFAULLT 00,-入住数数量SEacchDRRenttEcoo INNT DDEFAAULTT 500, -eaach dayy reent forr ecconoomy levvelSEacchDRRenttStaa INNT DDEFAAULTT 800,-eacch dday rennt ffor staandaard levvelSEacchDRRenttLuxx INNT DDEFAAULTT 1550, -eacch dday rennt ffor luxxuryy leevellCONSSTRAAINTT SFFlooorSuum CHEECK( SFFlooorSuum >> 0 ),CONSSTRAAINTT SRRSummEacchF CHEECK( SRRSummEacchF > 00 ),CONSSTRAAINTT ckk_SCChecckinnNumm CHHECKK( SSCheeckiinNuum >>= 00 ),CONSSTRAAINTT ckk_SFFreeeNumm CHHECKK( SSFreeeNuum >>= 00 ),CONSSTRAAINTT ckk_SEEachhDReentEEco CHEECK( SEEachhDReentEEco > 00 ),CONSSTRAAINTT ckk_SEEachhDReentSSta CHEECK( SEEachhDReentSSta > 00 ),CONSSTRAAINTT ckk_SEEachhDReentLLux CHEECK( SEEachhDReentLLux > 00 );输入数据据后,效效果如下下图所示示:第四章 应用系系统设计计(刘涛涛)4.1概概要设计计输入: 程序正正常运行行后,屏屏幕上显显示一个个文字菜菜单(根根据序号号选定相相应的操操作项目目),当当用户选选定操作作项目所所对应的的序号时时,根据据应用程程序的提提示信息息,从键键盘上输输入相应应的数据据。输出: 1) 应用程程序正常常运行后后,要在在屏幕上上显示一一个文字字菜单2) 要要求用户户输入数数据时,要要给出清清晰、明明确的提提示信息息,包括括输入的的数据内内容、格格式及结结束方式式等系统功能能模块图图:COpBase类数据库操作CBaCombox类combox控件的基本操作CDeCCHead类主窗口的combox控件操作CDeCCAdd类增加.选项的combox控件操作CEmployee类员工操作CGuest类宾客与房间操作4.2详详细设计计1)数据据库操作作:classs CCOpBBaseepubllic:booll CoonneectDDataabasse();voidd OppenRRecoordSSet( coonstt sttrinng &&strr ); voidd ClloseeReccorddSett();voidd ClloseeDattabaase();voidd Exxecuute( coonstt chhar *chh );COppBasse()prottectted:_ConnnecctioonPttr _pCoonneectiion;/建建立Coonneectiion对对象的指指针_ReccorddsettPtrr _ppReccorddsett;/classs CCEmpployyee: puubliic CCOpBBaseepubllic:voidd InnitSSysIInfoo();voidd InnitEEmplloyeee();voidd CllearrEmpployyee();voidd SeetEmmplooyeeeInffo( connst strringg &sstr, innt ii ) _eemplloyeeeii = sttr; voidd AdddEmmplooyeee( HHWNDD );voidd AmmenddEmpployyee();/ TTABLLE SSysttemIInfoo opperaatioonvoidd SaaveSSysIInfoo();voidd SeetSyysInnfo();voidd InncSyysInnfo();voidd DeecSyysInnfo();int GettSyssInffo( intt i ) retturnn _ssysttemi; / ssearrch strringgvoidd SeetSeearcchSttr( connst strringg &sstr ) _SeearcchSttr = sttr; voidd SeetSeearcchInndexx( cconsst iint &Seearcch ) _SeaarchhInddex = SSearrch; sizee_t GettcollumnnSizze() rretuurn _coolummnSeet.ssizee(); vecttor<<strringg>& GettCollumnnSett() reeturrn _collumnnSett; typeedeff maap<iint,vecctorr<_vvariiantt_t>> > Mapp_IVVal;typeedeff maap<iint,vecctorr<_vvariiantt_t>> >:vaaluee_tyype Mapp_IVVal_VallTyppe;typeedeff veectoor< vecctorr<_vvariiantt_t>> * > VVecVVec_Varr;VecVVec_Varr& EEdattaSeet() rretuurn _EddataaSett; Map_IVaal& EdaataSSetAAd() rretuurn _EddataaSettAd; Map_IVaal& EdaataSSetFFm() rretuurn _EddataaSettFm; sizee_t GettdattaSeetSiize() retturnn _EEdattaSeet.ssizee(); voidd DiispllayEE( CCLisstViiew &LiistVVieww );prottectted:striing PLooadSSQLsstrEE();/ iindeex oof ccombbo bbox HEAAD_CCC_SSEARRCHint _SeearcchInndexx;/ ssearrch strringgstriing _SeearcchSttr;/ SSysttem infformmatiion/ 00:_SSFlooorSSum(maxximuum rroomm nuumbeer)、11:_SSRSuumEaachFF(thhe nnumbber of flooor)/ 22:_SSFreeeNuum(tthe nummberr off frree roooms)、3:_SCChecckinnNumm(thhe nnumbber of cheeckiing in )/ 44:_SSEacchDRRenttEcoo、5:_SEEachhDReentSSta、66:_SSEacchDRRenttLuxxstattic connst intt NSSysSSizee = 7;int _syysteemNNSyssSizze;/ kkey: flloorr nuumbeer/ vvaluue: dattaseetMap_IVaal _EdaataSSetAAd; / 楼层管管理员Map_IVaal _EdaataSSetFFm; / 客房领领班(gguesst rroomm fooremman)vecttor<< veectoor<_varriannt_tt> * > _EddataaSett;/ eemplloyeee iinfoormaatioon/ 00:_EENamme、11:_EENumm、2:_EFFlooorNuum、33:_EEBussineess、44:_EECheeckiinNuum、55:_EEFreeeNuumstattic connst intt N = 66;striing _emmplooyeeeN;vecttor<<strringg> _collumnnSett;/classs CCGueest: puubliic CCEmpployyeepubllic:/ ooperratee too daatabbaseevoidd AdddGuuestt( HHWNDD hwwnd, HWWND hwnndHeead, CDDeCCCAddd &ccbAddd );voidd InnitGGuesst();voidd CllearrGueest() _daataSSet.cleear(); voidd SeetRooomIInfoo( cconsst sstriing &sttr, intt i ) _rooomi = sstr; voidd SeetGuuesttInffo( connst strringg &sstr, innt ii ) _gguesstii = sttr; sizee_t GettdattaSiize() retturnn _ddataaSett.siize(); vecttor<< veectoor<_varriannt_tt> >>& ddataaSett() reeturrn _dattaSeet; voidd DiispllayGG( CCLisstViiew &LiistVVieww );/ sset dettaill innforrmattionnvoidd SeetDeetInnfoGG( HHWNDD hwwnd, innt iindeex );/ sset dettaill innforrmattionn too daatabbaseevoidd SeetDBBDettInffoG( HWWND hwnnd, intt inndexx );voidd DeelCuurGuuestt( HHWNDD, CCDeCCCAddd& );voidd DeelDBBGueest( HWWND );CGuuestt()privvatee:striing PLooadSSQLsstriing();voidd PCCreaateDDataaSett();/ gguesst iinfoormaatioon/ 00:_GGNamme、11:_GGCheeckiinTiime、22:_GGEveeryddayRRentt/ 33:_GGCheeckiinFooreggiftt、4:_GFFlooorNuumstattic connst intt scciGuuesttN = 5;striing _guuesttscciGuuesttN;/ rroomm innforrmattionn/ 00:_RRNumm、1:_RLLeveel、22:_RRTyppestattic connst intt scciRooomNN = 3;striing _rooomsciiRooomN;vecttor<< veectoor<_varriannt_tt> >> _ddataaSett;2)coombooboxx控件操操作:classs CCBaCCombbobooxpubllic:CBaCCombboboox( HWNND hhwnddParrentt, CCGueest &daata, innt bbaseeInddex ): _hhwnddParrentt(hwwndPPareent),_ddataa(daata), _basseInndexx(baaseIIndeex) vooid Cleear( innt bbaseeInddex, innt nnum ); /*virrtuaal CBaaCommbobbox() = 0;*/prottectted:HWNDD _hhwnddParrentt;CGueest &_ddataa;/ sstorre tthe firrst adddresss oof tthe seqquennce of thee Coomboo Boox IIDsint _baaseIIndeex;classs CCDeCCCHeead: puubliic CCBaCCombbobooxpubllic:CDeCCCHeead( HWWND hwnndPaarennt, CGuuestt &ddataa, iint basseInndexx ): CBBaCoombooboxx(hwwndPPareent, daata, baaseIIndeex) vooid SettGueest(); vooid SettEmpployyee(); vooid SettRooom(); / uppdatte ccombbo bbox infformmatiion boool UpaadatteCBBInffo(); boool UpaadatteCBBEmpployyee(); /*CDDeCCCHeaad()*/privvatee:voidd PSSetGGuesstRooom();classs CCDeCCCAddd: pubblicc CBBaCoombooboxxpubllic:CDeCCCAddd( HWNND hhwnddParrentt, CCGueest &daata, innt bbaseeInddex ): CBBaCoombooboxx(hwwndPPareent, daata, baaseIIndeex)voidd SeetGuuestt();voidd SeetEmmplooyeee();voidd SeetRooom();voidd CllearrGueest();voidd Innit();voidd SeethwwndPPareent( HWWND hwnndPaarennt ) _hwnndPaarennt = hwwndPPareent; voidd InncFRRoomm( iint flooor, innt rroomm );voidd DeecFRRoomm( iint flooor, innt rroomm );voidd TeestEEmplloyeee( intt );voidd SeetCuurGuuestt();voidd SeetTyype();/*viirtuual CDDeCCCAddd()*/privvatee:voidd PAAssiitGuuestt( iint rtyype, innt lleveel, intt flloorr );vecttor<< veectoor<bbooll> >> _FFreeeRooom;vecttor<< innt >> _FFRooomEaachFF; / ffreee rooomss eaach flooor;4.3系系统部分分功能测测试1) 登陆界面面如下:2) 运行界面面:2.1)文文件>添加加2.1.1)添添加顾客客2.1.2)添添加员工工2.2)帮帮助>关于于:第五章 设计小小结1. 在在开发一一个系统统时,前前期的分分析准备备工作非非常的重重要。对对于系统统的需求求要明确确,这样样才能做做到有的的放矢。特特别是对对于系统统中数据据的存储储和重要要算法的的设计,设设计的不不好会出出现大量量的冗余余,不仅仅浪费存存储空间间,还影影响查询询效率。2.在设设计的初初期,对对一个功功能模块块的设计计,要想想出两种种或两种种以上方方案,这这样可以以进行比比较,从从而获得得更佳的的设计方方案,设设计开发发过程中中一定要要吸取经经验教训训,避免免返工。尤尤其是一一些重要要算法或或功能。在对具体实现功能模块进行编程时,要养成良好的加注释的习惯,这样的话不仅能理清思路,而且可以为以后的调试带来很大的方便。3. 懂懂得充分分利用网网络资源源,因为为实地调调研的时时间是非非常有限限的,所所以需求求分析中中大部分分分析结结构都是是在我阅阅读专业业书籍,网网络资料料后得出出的。参考文献献:1 卢湘江江,李向向荣,晏晏子. MySSQL高高级配置置和管理理. 北北京:清清华大学学出版社社,2 萨师煊煊,王珊珊. 数数据库系系统概论论. 北北京:高高等教育育出版社社3 张海藩藩. 软软件工程程. 北北京:人人民邮电电出版社社,4孙孙明丽,王王斌.ssql serrverr 20005 数据库库系统开开发.北北京,人人民邮电电出版社社5苗苗雪兰.数据库库系统原原理及应应用教程程M.北京京,机械械工业出出版社.6SScottt MMeyeers, Efffecctivve CC+ Thiird Ediitioon. Adddisoon WWeslley Proofesssioonall7 Chaarlees PPetzzoldd, PProggrammminng WWinddowss. 数据库原原理课程程设计宾馆客房房管理系系统系 、 部:计计算机与与信息科科学系学生姓名名:江亚波学 号: 09330100403328 合作伙伴伴:刘涛专 业: 计算算机科学学与技术术 班 级: 计计本09903班班 完成时时间: 20111.112.225 28