版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北京理工大学珠海学院课程设计说明书2023—2023学年第1学期题目:酒店预订系统学院:商学院专业班级:信息管理与信息系统四班学号姓名:8谢泽铨学号姓名:1熊祖威 学号姓名:4邵骅学号姓名:3欧邦用指导教师:成绩:时间:年月日目录第一章设计内容与目标 41.1项目背景 41.2项目目的 41.3使用环境 41.4开发方法 4第二章需求分析 52.1软件工具与硬件环境需求 52.2功能需求2.2.1系统功能需求 52.2.2系统功能结构图 52.2.3功能需求具体介绍 62.2.4对系统性能的规定 62.2.5统计分析 6第三章系统分析 83.1现行系统的现况以及存在问题 83.1.1传统酒店房间预订业务活动 83.1.2传统酒店房间预订业务数据处理 83.2全面描述新系统的功能和目标 93.2.1从用户方的角度: 93.2.2从酒店方的角度: 93.3新系统的逻辑模型 93.3.2数据流图 103.3数据字典 133.3.1词条描述 133.4E-R图 203.5新系统的可行性分析 21第四章系统设计 224.1系统概述 224.2开发、测试与运行环境 224.3系统结构图 224.3.1功能模块划分 224.3.2功能模块描述 234.4代码设计 234.5数据库设计 244.5.1数据库环境说明 244.5.2数据库命名规则 244.5.3安全性设计说明 244.5.4概念结构设计 244.5.5关系数据模型 254.5.6数据库实施 254.6用户界面设计概述 284.7综合考虑 314.7.1稳定性和可扩展性 314.7.2性能分析 324.7.3性能指标实现 324.7.4防错与出错处理 32第五章酒店预订系统的实现 335.1开发环境的选择和依据 335.1.1开发环境的选择 335.1.2开发环境选择的依据 335.1.3开发框架和方法 335.2系统功能模块的实现 335.2.1用户模块实现 335.2.2查询模块实现 385.2.3预订模块实现 425.2.4退订模块实现 475.3酒店预订系统APP测试情况 485.3.1测试用例 485.3.2测试环境与配置 485.3.3测试方法 485.3.4测试数据 49第六章全文总结 50
第一章设计内容与目的1.1项目背景当下是一个信息化的时代,越来越多的用户喜欢在网上进行消费活动,如网上订餐,网上购物等等。而酒店预订作为一种较为普遍的消费活动,自然也需要借助信息的力量来使其更加方便快捷,让顾客具有更好的消费体验,同时节约顾客的时间成本。本系统是针对酒店的具体业务而开发的。业务管理以酒店前台管理为核心,通过使用手机APP的方式,为旅客提供高效的服务,减免手工解决的繁琐与误差,及时、准确的反映酒店的经营情况,提供应旅客以快捷、准确和可靠的信息和服务,同时,也提高了酒店自身的管理水平。1.2项目目的在如今信息化的背景下,任何行业都与信息化息息相关。如何运用现代社会赋予我们的新观念、新手段发明更大的财富,针对酒店预订这一环节,我们了解到目前酒店预订工作依旧效率低,大多数用户仍然使用着电话预定的人工预订方式,因而不能及时了解用户的需求,不可以很好地满足用户的需求。人工管理存在许多弊端,由于不可避免的人为因素,如登记错误,预订反复等,导致数据丢失、误报,因此就需要优化后的酒店预订系统。为了方便顾客更好地进行酒店预订以及帮助酒店更好地管理,避免浪费时间成本和管理成本,我们准备开发一个既方便顾客预订客房又能使酒店方便管理的具有良好客户体验的酒店预订管理系统。1.3使用环境本系统规定用户需要在Android4.0及其以上版本的系统上使用。1.4开发方法数据库采用面向过程的开发方法,APP应用运用JAVA语言进行面向对象的开发方法。第二章需求分析2.1软件工具与硬件环境需求(1)软件工具:MicrosoftVisualStudio2023,AndroidStudio(2)软件环境:Windows操作系统(3)硬件环境:配置在1G
RAM内存,160G硬盘,100Mbps网卡以上2.2功能需求
2.2.1系统功能需求作为酒店注册用户,可以通过本系统可以对酒店内未预订的房间经行查询,预订,对于已预订的房间进行退订的操作,同时用户也可更改个人信息,查询个人预订记录。对于系统自身,系统会根据用户的预定和退订即时更新房间信息对于酒店管理员,可以通过使用信息推送模块,根据需要发布房间优惠信息。2.2.2系统功能结构图酒店预订系统功能结构图如图2.1所示:2.2.3功能需求具体介绍为方便用户和管理员对此系统的操作,下面具体介绍它的一些功能:用户注册功能,面向所有未注册的游客,想要预订酒店房间的客人,需先注册成用户才干进行本系统,享受本系统的预订房间功能,注册时需对的填写本人手机联系方式(也作为用户账号),设立用户密码来完毕用户注册。查询功能模块中,用户可以通过房间的信息,如房间类型等信息,进行单个查询或者关键字搜索来查询未预订的房间信息,从而方便用户预订房间,还可以通过时间的先后顺序查询自身的预订记录,还可以进行个人信息的查询。用户预订房间功能,只面向已注册的用户,为他们提供简便快捷的预订功能,用户预定房间时需对的填写入住时间、退房时间,入住人姓名、联系方式,支付完毕后生成预订订单。用户取消预订房间功能,用户可在入住时间前三个小时自由取消预订的房间,同时酒店会扣取用户所预订房间价格的5%,但不在入住时间的三个小时前取消预订订单,将不可再取消该订单,房间将会保存给该客户直到退房时间。管理员更新优惠信息功能,管理员根据酒店的经营政策在APP应用界面上推送房间优惠信息。房间信息更新功能,用户预定和退订操作成功后将会影响数据库的房间信息,本系统会即时获取数据库信息从而自动更新房间信息。2.2.4对系统性能的规定为保证系统可以长期、安全、稳定、可靠、高效地运营,酒店预订系统应当满足以下的性能需求:(1)系统解决的准确性和及时性:系统解决的准确性和及时性是系统的必要性能,在系统设计、开发过程中,要充足考虑系统当前和将来也许承受的工作量,使系统的解决能力和响应能力可以满足业务的需求。系统的开发性和可扩充性:酒店预订系统在开发过程中,应当充足考虑以后的可扩充性,保证在未来一段时间内,在可接受用户需求更新的范围内,规定系统提供足够的手段进行功能的调整和扩充。而要实现这一点,应通过系统的开放性来完毕,既系统应是一个开放系统,只要符合一定的规范,可以简朴的加入和减少系统的模块,如增长APP的推送提醒模块等。(3)系统的易用性:酒店预订系统是直接面对使用人员的,而使用的人员是广大人民群众,他们对使用APP的了解不尽相同,所以就需要系统提供一个良好的用户接口和易用、直观的人机交互用户界面。本APP应尽量使用大部分人们所熟悉的术语和信息的界面,缩短用户对系统熟悉的过程,提高用户使用的便利性和简明性。(4)系统的响应速度:酒店预订系统在平常解决中的响应速度应当为秒级,达成实时规定,以及时反馈信息。2.2.5记录分析在系统的使用过程中中,会产生各种各样的预定记录,而这些数据将储存在一个数据库中,系统管理员可在数据库中获取所需的数据(如使用数据库语言获得数据),从而得到所需的报表,如酒店管理员想知道某个月那种房间类型被预订数是最多的“每月热门预订房间类型报表”,也可获取每月每个房间类型收入的“每月预订房间类型收入报表”等,对其进行记录分析所得到的记录报表有助于酒店经营管理的改善和提高。(1)每月热门预订房间类型报表查询时间:制表时间:制表人:房间类型1月预订数量2月预订数量3月预订数量4月预订数量5月预订数量6月预订数量7月预订数量8月预订数量9月预订数量10月预订数量11月预订数量12月预订数量汇总(2)每月预订房间类型收入报表查询时间:制表时间:制表人:房间类型1月预订收入2月预订收入3月预订收入4月预订收入5月预订收入6月预订收入7月预订收入8月预订收入9月预订收入10月预订收入11月预订收入12月预订收入汇总(3)房间预订状况表查询日期:制表时间:制表人:房间类型预订数未预订数房间总数(4)房间预订记录报表查询日期:制表时间:制表人:用户帐号用户名预订房间类型预订房间数量预订房间价格入住时间退房时间联系方式第三章系统分析3.1现行系统的现况以及存在问题在调查过现有的酒店房间预订业务流程,了解到现如今大多数酒店仍然使用着人工的方式进行酒店预订业务活动,从业务流程与数据解决两大方面来了解现如今的酒店关于酒店预订业务活动的现状以及存在的问题。3.1.1传统酒店房间预订业务活动传统的手工酒店预订的业务流程如图3.1所示3.1.2传统酒店房间预订业务数据解决通过调查了解到,传统酒店房间预订业务数据解决所有由人工来操作,涉及响应用户的查询和操作,手工记录用户的信息并将其归档,手工收费以及要定期对记录的数据进行整理。同时对操作中出现的问题进行人工的查询和修改。3.1.3存在的问题通过对业务流程图以及数据解决分析了解到传统酒店房间预订业务的局限性之处:需要花费大量的人工和时间,比如要人工记录各种信息,涉及用户的预订信息等响应速度不一,由于客服和前台人员工作经验不同,且人对数据信息的反映速度不同,导致每一次操作的时间不同样操作过程过于繁琐,如记录客户信息要手工填写,操作过程出现错误不能返回,只能重新开始操作操作中出现问题较多,比如用户的信息记录错误,归档错误等出现问题不能及时修改,需要花费时间去查找问题,比如用户预订了房间但是前台并没有记录等不能完整的收录用户的信息,从而不能判断用户的喜好,以及很难查阅到用户的所有交易信息收费所有需要手工完毕,月底或季度年度的运营记录分析导致不便,由于人工操作不可避免出现错误,此外,人工结算成本过高且时间过长3.2全面描述新系统的功能和目的根据现有的存在问题从用户方和酒店方的角度分析实现优化房间预订的目的。3.2.1从用户方的角度:(1)使用房间查询的功能,不需要进行繁琐的电话沟通,只需打开酒店房间预订系统即可查询到所满意的房间,并可以进行实时预订。(2)使用房间预订的功能,预订成功时,与酒店方形成一种合约关系,保证用户得到相应的房间。(3)使用退房功能,可以在规定期间之内取消对房间的预订,减轻了用户因突发情况发生时承担。3.2.2从酒店方的角度:(1)对账户进行管理,可以减少大量的人工输入,采用一个用户相应一个账号的方式,用于记录用户信息和预订信息。(2)对账户进行查询,通过用户数据清楚地收录每个客人的对房间的爱慕偏好,为用户提供便利,提高用户满意度。(3)收费采用第三方收款方式,准的确时到账,减低了由于人为出现收款错误的失误,进一步减轻了酒店方的风险。(4)当出现退房等异常情况时,不再需要人为重新登记房间信息,后台自动清空已预订房间,更新房间预订表,方便酒店管理人员核算房间使用情况。(5)设立房间订金,在进行预订时,当预订只能通过电话时,不能收取任何的预订费用,而通过酒店房间预订系统可以入住前三个小时之内收取5%的房间订金,保证酒店的正常运营,减低酒店的损失。(6)进行一系列的记录报表分析,当达成规定的时间,系统会进行月末记录,对每月热门预订房间类型,预订房间类型,收入房间预订以及房间预订记录报表,有助于酒店管理层人员作出判断,对酒店现状改善和提高。3.3新系统的逻辑模型由上述所描述的系统的功能得到我们所设计的系统的业务流程图。3.3.1业务流程图如图3.2所示:3.3.2数据流图根据上文需求分析所规定的功能需求和非功能需求,使用数据流方法对酒店预订活动进行建模。从2.2.3节——“功能需求具体介绍”中的需求描述可知,酒店的房间预订业务活动重要由游客查询、用户注册、用户查询、用户预订、用户退订五大组成,在对酒店预订房间经营过程和业务流程进行1具体分析的基础上,构造酒店预订管理系统的功能模型用数据流图描述如下。3.3.2.1抽象顶层数据流图酒店预订管理系统的顶层数据流图用功能活动“酒店预订管理”来描述,如图3.1所示。3.3.2.2第一层数据流图对顶层数据流图进行分解即得到图3.2所示的第一层数据流图。图3.2较具体地描述了实现用户预订酒店房间的业务活动所需的基本功能。完毕各项活动所需要输入的数据、输出信息,通过功能活动解决后存储的信息。3.3.2.3第二层数据流图由于图3.2描述的功能活动还不够具体,继续对图3.1中的功能活动进行分解即得到第二层数据流图,如图3.3~图3.7所示。3.3.2.3第三层数据流图本系统的核心功能是用户的查询功能模块和预订功能模块,继续对图3.5和图3.6中的查询功能和预订功能活动进行分解即得到第三层数据流图,如图3.8与图3.8所示。3.3数据字典3.3.1词条描述3.3.1.1数据流词条数据流编号数据流名简述组成来源去向F1用户登陆信息对需要使用该酒店预订系统的用户提供对的的用户账号和相应的密码信息用户账号+密码用户酒店预订系统、信息解决F1.1用户基本信息用户登录成功后系统会获得相应的用户基本信息用户账号+密码+性别+姓名+邮箱+手机号信息解决用户操作解决F1.2用户信息输入用户对系统所输入的信息,分为查询信息,预订信息,退订信息,修改信息分四种:预订信息,查询信息,退订信息,修改密码用户用户操作信息接受F1.3用户旧密码用户原本使用的密码用户账号+密码用户操作信息接受密码修改F1.4用户新密码用户通过密码修改获得的新密码用户账号+密码密码修改用户登录信息解决F2查询信息对于需要了解实际房间信息情况或个人预订记录信息的用户,可通过向系统输入查询信息,系统则会检索这些信息并作相应解决查询条件:共分两种情况:房间查询信息、用户预订记录查询信息用户操作解决查询解决F2.1查询房间信息系统检索用户所输入的查询信息为查询房间信息的信息,系统进入房间信息查询界面关键字或时间判别查询信息房间信息查询合法性F2.1.1查询房间信息条件用户为查询房间信息,所输入的合法性查询房间信息的方式关键字或时间房间信息查询合法性匹配房间信息F2.1.2匹配房间数据系统检测用户所输入的查询房间信息条件,并在数据库找到符合该条件的房间信息房间类型+房间价格匹配房间信息检查房间余量F2.2预订记录查询信息系统判断用户的查询信息为个人预订查询记录信息,并进入预订记录查询界面时间判别查询信息预订记录查询合法性F2.2.1匹配时间信息系统检测用户所输入的时间查询信息,并在数据库找到符合该条件的预订记录信息时间匹配查询时间信息检查预订记录时间F5未使用房间信息系统检索用户所输入的房间查询信息,输出相应可预订的房间信息房间类别+房间价格检查房间信息用户、预订解决F6个人预订记录信息系统检索用户所输入的预订记录查询信息,输出相应的预订记录信息房间类型+房间数量+用户帐号+联系方式+入住时间+退房时间+预订日期检查预订记录信息用户、退订解决F3预订信息用户根据需要,向系统输入预订信息,系统可检测这些信息,并作出相应的预订解决用户账号,入住时间,退房时间,房间类型,房间数量用户操作解决预订解决F3.1预订记录信息系统通过用户所输入的预订信息用户账号,入住时间,退房时间,房间类型,房间数量预订条件解决更新预订记录信息和房间信息F3.1.1检查房间数量信息系统接受用户所输入的预订信息,用于检测用户所输入的预订房间数量是否符合酒店实际房间数量用户账号,入住时间,退房时间,房间类型,房间数量接受预订信息检查预订房间数量F3.1.2检查日期信息系统检测预订信息中的入住时间和退房时间是否符合实际情况用户账号,入住时间,退房时间,房间类型,房间数量检查预订房间数量检查预订房间日期F7预订房间订单系统通过用户所输入的预订信息,所输出用户预订记录信息房间类型+房间数量+用户帐号+联系方式+入住时间+退房时间+预订日期检查预订房间日期用户,更新房间信息,更新预订记录信息F4退订信息用户根据需要,向系统输入退订信息,系统可检测这些信息,并作出相应的退订解决房间类型+房间数量+用户帐号+联系方式+入住时间+退房时间+预订日期用户操作解决更新预订记录与房间信息F4.1删除数据用户所删除预订记录数据房间类型+房间数量+用户帐号+联系方式+入住时间+退房时间+预订日期退订信息接受取消退订3.3.1.2数据元素词条数据项编号数据元素名称别名数据类型及宽度取值范围描述U-01用户账号usernameString11-区分不同用户U-02用户密码passwordString184{[数字,字母]}20用户登录系统密码U-03用户手机号mobilePhoneNumberString11-用户联系方式U-04用户姓名userNameString102{汉字}5用户称呼方式U-05用户邮箱userEmailString30[A-z,0-9]{1,}\[A-z,09,\.]{1}用户联系方式R-01房间类型Room_nameString10[‘单人间’],[‘双人间’],[‘标准间’],[‘豪华间’]房间类型的说明R-01房间价格Room_priceInt4“01”-“1000”房间的价格R-01房间数量Room_countInt4“000”-“100”房间的数量R-02入住日期checkInDatedatetime“0001”-“9999”+“01”-“12”+“01”-“31”+“00”-“24”用户到达酒店的日期R-03退房日期checkOutDatedatetime“0001”-“9999”+“01”-“12”+“01”-“31”+“00”-“23”用户离开酒店的日期R-04预订日期bookingDatedatetime“0001”-“9999”+“01”-“12”+“01”-“31”+“00”-“23”用户完毕预定房间订单的日期R-05取消预订日期canceiDatedatetime“0001”-“9999”+“01”-“12”+“01”-“31”+“00”-“24”用户取消预定房间订单的日期3.3.1.3数据文献(1)文献编号:D1数据文献名称:用户简述:保存的是用户的基本信息数据存储组成:用户账号,密码,性别,姓名,邮箱,手机号关键字:用户账号(2)文献编号:D2数据文献名称:预订记录简述:保存的是用户预订的记录的信息数据存储组成:用户账号、姓名、手机号、邮箱、房间类型、入住时间、退房时间、房间价格关键字:用户账号(3)文献编号:D3数据文献名称:房间信息简述:保存的是当前房间情况的信息数据存储组成:房间类型、房间价格、房间数量关键字:房间类型3.3.1.4外部实体外部实体编号:S1名称:用户简述:用户重要面向广大人民群众,为使用本系统的人有关数据流:系统与用户交互的是用户信息3.3.1.5解决过程介绍解决过程编号解决过程名输入数据流输出数据流简述P1信息解决用户登录信息,用户新密码用户基本信息该加工模块重要实现对登入操作的合法性检测P1.1用户登入信息解决用户登录信息用户基本信息实现提醒用户登录成功P2用户操作解决用户基本信息,旧密码预订信息,查询信息,退订信息,用户新密码用户可选择操作的三个模块,分别是修改密码、预订、查询、退订模块P2.1用户操作信息接受用户所输入的信息查询信息,预订信息,取消预订信息,用户旧密码接受用户所输入的信息P2.2修改密码用户旧密码用户新密码该加工模块重要实现用户修改个人密码的功能P3查询解决查询信息房间未使用信息,预订记录信息接受用户查询请求,反馈结果P3.1查询信息解决查询信息查询房间未使用信息,查询预订记录信息接受查询信息后,不同的查询条件中,结合预订记录、房间信息两个存储文献,给出相应解决措施P3.1.1查询信息接受查询信息查询信息用于接受用户所输入的查询信息P3.1.2判断查询信息查询信息房间查询信息,预订记录查询信息对所接受的查询信息进行判断,分析得出所输入的查询信息类别P3.2分析房间信息查询房间信息反馈房间未使用信息检索用户的房间查询信息,并输出相应的房间信息P3.2.1房间信息查询合法性房间查询信息房间信息查询条件检查用户所输入的房间查询信息的合法性P3.2.2匹配房间信息房间信息查询条件匹配房间信息检索用户所输入的房间查询信息,并根据查询信息的条件在数据库中匹配房间信息并输出P3.2.3检查房间余量匹配房间信息未使用房间信息对所匹配成功的房间信息进行检查,对房间余量大于0的房间信息进行输出P3.3分析预订记录信息预订记录查询信息预订记录信息检索用户的预订记录查询信息,并输出相应的预订记录信息P3.3.1匹配查询时间信息查询时间信息匹配时间信息检索用户所输入的预订记录查询信息,并根据查询信息的条件在数据库中匹配预订记录信息并输出P3.3.2检查预订记录时间时间信息预订记录信息对所匹配成功的房间信息进行检查,将符合时间的预订记录信息进行输出P4预订解决预订信息、未使用房间信息预订房间订单接受用户的预订信息,系统进行解决并反馈给用户P4.1预订条件解决预订信息预订记录信息对于用户输入的预订条件,结合当前房间占用情况,将最终的预订结果反馈给用户P4.1.1接受预订信息预订信息预订信息接受用户的预订信息P4.1.2检查预订房间数量预订信息预订信息对用户所输入的预订信息进行检查,检查所输入的房间数量是否符合酒店实际情况P4.1.3检查预订房间日期预订信息预订记录信息对用户所输入的预订信息进行检查,检查所输入的入住日期与退房日期是否符合实际生活情况P4.2更新预订记录与房间信息解决结果预订结果在得到系统回复后,将预订结果记录添加到预订记录中,并反馈给用户P4.2.1接受预订记录信息预订记录信息预订记录信息接受符合实际情况的用户预订房间信息P4.2.2更新房间信息预订记录信息预订记录信息用户预订成功时更新酒店房间信息P4.2.3更新预订记录信息预订记录信息预订记录信息用户预订成功时更新个人预订记录信息P5取消预订解决退订信息、预订房间订单接受用户的退订信息,系统进行退订解决P5.1退订信息接受退订信息删除数据接受用户输入的退订信息P5.2取消退订删除数据系统得到用户的删除预订记录信息后,对预订记录和房间信息两个存储文献进行更新3.4E-R图3.5新系统的可行性分析系统开发过程中会受届时间、资源、技术等因素的限制。在明确了系统的开发任务目的和系统范围之后,需要从技术、经济、操作等方面进行项目可行性分析,评估判断系统开发项目在现有技术和经济条件下是否可行,是否可以达成预期目的,以及保证项目正常进行需要的各种资源和支撑条件。系统可行性分析围绕着技术、经济、操作可行性三个方面。3.5.1技术可行性本系统使用的开发语言为java,使用android作为开发技术,在android平台上开发运营,使用Bmob后端云数据库。作为目前一种流行的开发技术,android是基于linux的自由及开放源代码的操作系统;通过数年的发展,android的开发技术已经非常成熟且方便快捷,配合上Bmob后端云数据库,可以高效便捷地实现开发目的。所以本系统的开发技术室可行的。3.5.2经济可行性投入方面,由于android操作系统以及Bmob后端云数据库都是免费使用的,同时本团队拥有系统开发人员,无需支付系统开发人工费用,所以系统从开发到运营都是免费的,后期的维护只需要支付很少的人工费用。收入方面,通过用户下载量来收取相相应的广告费用。3.5.3操作可行性本系统是为广大人民群众,为其方便预订房间开发的,使用大部分人们所熟悉的术语和信息的界面,缩短用户对系统熟悉的过程,提高用户使用的便利性和简明性,只要用户稍微懂得使用手机并且在合适的网络环境下就能自由使用本系统。第四章系统设计4.1系统概述酒店预订系统是使用的开发语言为java,使用android作为开发技术,在android平台上开发运营,使用Bmob后端云数据库的系统,系统的开发目的是为了方便酒店管理和用户预订;从而使酒店的管理高效便捷且可以节约时间成本和劳动成本;用户的预订也更加简朴。做为一个面向不同年龄阶层的操作系统,一定要简朴易操作,所以系统使用的开发语言为java,使用android作为开发技术,在android平台上开发运营,使用Bmob后端云数据库提高用户使用的便利性和简明性,只要用户稍微懂得使用手机并且在合适的网络环境下就能自由使用本系统。4.2开发、测试与运营环境类别标准配置最低配置开发环境Window7AndroidStudio、EclipseWindowxpWindow10AndroidStudio、EclipseUbuntu14.04AndroidStudio、Eclipse测试环境Android4.4Android402Android5.0Android6.0运营环境Android5.0Android4.024.3系统结构图4.3.1功能模块划分本系统要实现用户预订房间功能,需要设立用户模块,使用户可以通过手机直接登录本酒店的预订APP,在手机APP上实现酒店房间的查询、预订等活动。本系统由用户模块、预订模块、查询模块、退订模块组成,系统功能模块如图4.1所示及描述如下。4.3.2功能模块描述(1)用户模块该模块重要功能是用户进入本系统所需进行的登录或注册操作,用户登录成功后可对自己的用户信息进行修改,如邮箱,密码,用户名进行修改。(2)查询模块该模块重要功能是用户查询自己所需的信息,有房间信息与预订记录信息,并根据个人需要进入预订模块过退订模块。(3)预订模块该模块重要功能是用户根据查询模块所获得到得房间信息,根据自己的个人需求填写入住日期、退房日期和房间数量,合理填写后完毕预订订单。(4)退订模块该模块重要功能是用户根据查询模块所获得到得预订记录信息,根据自己的个人需求与实际时间情况进行房间退订。4.4代码设计酒店预订系统代码设计是根据酒店经营管理的特点,结合实际用户预订房间活动过程,所设计出的符合实际情况的代码,所设计代码结构如下:(1)用户帐号代码由11位数字组成,实际为用户注册时所输入的手机号为用户帐号代码,格式如下:(2)预订编号代码由8位数字组成,格式如下:4.5数据库设计4.5.1数据库环境说明系统采用Bmob云数据库系统,运用AndroidStudio等编程工具从数据库获取信息并显示在用户界面等。4.5.2数据库命名规则表和字段采用驼峰命名法。4.5.3安全性设计说明用户密码等隐私信息从用户登录到注销全程都进行加密传输,即使是数据库管理员也无法查看用户密码等隐私信息。4.5.4概念结构设计根据系统分析的数据流图和数字字典,即可设计出可以满足用户需求的各实体及他们的关系。这些实体包含的具体信息,通过其互相关系形成的数据流动,分析得到本系统的E-R图,如图4.1所示。4.5.5关系数据模型根据上节的概念模型得到本系统的关系数据模型用户信息表(User):手机号、用户名、邮箱、密码房间类型表(Room_name):类型名称、类型价格、类型数量预订表(Scheduled):预订编号、手机号、房间类型、预订时间、入住时间、退房时间、退订状态4.5.6数据库实行数据库的完整性和安全性设计,根据酒店预订业务规则设计触发器、存储过程。用户信息表(User):用户信息表重要用于保存使用本系统的用户信息,如用户帐号和用户密码(必需),和用户可选择填写的用户邮箱列名别名数据类型及宽度默认值取值范围主键/外键可否为空手机号mobilePhoneNumberString11-主键NotNULL密码passwordString184{[数字,字母]}20NotNULL用户名userNameString10user_手机尾号后四位1{数字、字母、汉字}5NULL邮箱userEmailString30[A-z,0-9]{1,}\[A-z,09,\.]{1}NULL房间类型表(Room_name):房间类型表重要用于保存房间类型的信息。列名别名数据类型及宽度取值约束主键/外键可否为空类型价格Room_priceNumber4“01”-“1000”NotNULL类型名称Room_nameString10[‘单人间’],[‘双人间’],[‘标准间’],[‘豪华间’]主键NotNULL类型数量Room_countNumber4“01”-“100”NotNULL(3)预订表(Scheduled):预订表重要用于保存用户完毕预订房间操作时,所生成的预订记录数据,如用户帐号、联系方式、预订房间类型、预订房间数量、预订时间、入住时间和退房时间,并且当用户在规定期间内即在入住时间前三个小时内退订将会更新预订登记表列名别名数据类型及宽度取值约束主键/外键可否为空预订编号IDNumber4自增长主键NotNULL手机号mobilePhoneNumberString11外键NotNULL类型名称Room_nameString10[‘单人间’],[‘双人间’],[‘标准间’],[‘豪华间’]外键NotNULL预订价格Room_priceNumber4“01”-“1000”NotNULL入住日期checkInDatedatetime“0001”-“9999”+“01”-“12”+“01”-“31”+“00”-“24”NotNULL退房日期checkOutDatedatetime“0001”-“9999”+“01”-“12”+“01”-“31”+“00”-“23”NotNULL预订日期bookingDatedatetime“0001”-“9999”+“01”-“12”+“01”-“31”+“00”-“23”NotNULL退订日期canceiDatedatetime“0001”-“9999”+“01”-“12”+“01”-“31”+“00”-“24”NuLL4.6用户界面设计概述下面图就列出了系统中的一些界面:此界面为登陆界面,登陆是进入酒店预定系统主界面的前提,在此界面输入对的的密码方可登陆,若没有账号,可点击注册按钮进行注册。此界面为注册界面,需要输入用户对的的手机号作为用户账号才干注册成功,当注册成功时会自动跳转到登陆界面。。此界面为酒店预订系统的主界面,在该界面用户可以看到三个可选择项:房间信息界面,搜索界面,用户信息界面(默认为房间信息界面),用户可以通过点击房间的图片或信息进入到房间预约的界面。当用户进入酒店预约的界面时,用户需要填写相应的信息来预约心仪的房间,若信息对的,则会跳到支付页面支付相应的费用;在预约成功后,用户可以在房间预约记录中查看已成功预约的房间信息。搜索房间界面中,当用户进行了搜索的操作,若符合搜索条件,界面会显示用户搜索到的房间,同时用户也可以再次点击搜索到的房间信息进行预约的操作。在用户信息界面中,用户可以看到两个可选择项:用户个人修改信息和房间预约记录。在房间预约记录中,用户可以查看已经预约的房间,同时可以点击退订按钮,来退订已经成功预定的房间,退订成功时将会更新预订登记表中的退订日期属性数据,表达该预订房间已退订成功,当在入住前三个小时前,退订按钮会显示灰色,此时用户将不能进行退订操作。4.7综合考虑4.7.1稳定性和可扩展性在总体设计的时候,既要使总体结构稳定,又要适应需求变化。4.7.1.1稳定性在设计酒店预订系统总体设计中,为了保证系统的稳定性,使总体结构稳定,又要适应需求变化,预测需求也许发生的变化。在用户表中,用户信息将通过用户自己输入相相应的信息,若格式对的,将会被后台数据库记录,而为了适应用户的需求,用户信息的密码,邮箱可以更改。房间表中关于房间的基础属性不变,而随着预订数量的变化,房间的数量将会增长或者减少。在预定表里,后台数据库将会实时记录用户信息与其预约的房间信息,而为了满足用户退订的需求,当用户进行了退订的操作时,数据库将会更新预订登记表,显示退订时间,表达用户在规定期间内退订成功。4.7.1.2扩展性在设计酒店预订系统的时候为了考虑整个系统的未来成长。我们通过可扩展性来扩充功能以完善整个系统。添加游客用户,该身份拥有查看房间数量、类型、价格等功能,但是该身份没有进行预约房间的权限;信息推送功能,酒店出现新的优惠或者房间价格出现变动的时候,将会弹出信息框提醒用户,方便用户随时核算房间更新信息;在首页上层添加一个广告位,目的是宣传酒店的其他业务,该广告位可以随时进行更新。4.7.2性能分析4.7.2.1数据精确度查询时应保证查全率,所有相应域包含查询关键字的记录都应能查到。由于通常的系统规模在几百到几千项记录,以查全率为标准所带来的对查准率的影响并不大。管理登记时数据准确度具有可控性,系统设立数据属性时对规定整数的数据设立成整型,对财务数据规定保存到小数点后三位,并满足实际情况。数据计算设立时可以进行数据类型转换,保证准确度。4.7.2.2时间特性一般操作的响应时间应在1~2秒内,对数据库和用户指令的响应根据具体的网络和硬件条件会有不同4.7.2.3适应性在操作方式、运营环境、与其他软件的接口以及开发计划等发生变化时,应具有的适应能力。系统可以支持软键盘、触屏控制。系统可以适应4.7.3性能指标实现(1)用户界面对用户和谐,易操作,支持软键盘和触屏(2)系统基于Android4.0进行开发和维护使用,使用Bmob后端云数据库4.7.4防错与犯错解决(1)为了防止系统犯错,本酒店管理系统将具有可恢复性,在预定过程中,假如软件忽然崩溃或者错误以后应当可以将忽略当前本次操作,重新进入初始预定界面,不记录到数据库。(2)在用户确认进行预订或者退订房间工作,会发生数据修改并记录到数据库时候应给与弹窗提醒,防止用户或酒店的错误操作而导致经济的损失。第五章酒店预订系统的实现本章叙述了系统开发的具体过程,一方面明确了系统所使用的开发环境和运营环境,即采用了Android平台为开发平台,数据库采用了Bmob后端云数据库,而数据流图的绘制则是采用了MicrosoftVisio绘图软件,然后根据上一章的系统设计,具体实现了酒店预订系统的界面设计,给出了部分系统界面。5.1开发环境的选择和依据5.1.1开发环境的选择本系统采用了Android平台为开发平台,数据库采用了Bmob后端云数据库,而数据流图的绘制则是采用了MicrosoftVisio绘图软件。5.1.2开发环境选择的依据安卓手机APP占APP市场比例大。5.1.3开发框架和方法本系统使用了MVP开发模式,采用了xutils3框架。本系统使用MVP开发模式可以高内聚,并且有解耦的作用,低耦合有助于程序的维护,单独的功能做成独立模块,整个系统由一个个模块通过接口组合而成,假如需要更新或者修改局部功能,只要修改一个接口的一个模块,不影响整个系统其他功能使用。5.2系统功能模块的实现从第三章系统设计可以得到酒店预订系统涉及以下各部分组成,分别是:用户模块,实现用户注册、登录和修改个人信息的功能;查询模块,实现用户根据需要查询自己所需的信息,有房间信息和个人预订记录信息等;预订模块,实现用户预订自己所心仪的房间的功能;退订模块,实现用户可以在规定期间内根据需要取消自己已预订的房间的功能和在规定期间外用户将不能取消已预订房间的功能。5.2.1用户模块实现用户模块重要用于存储用户的基本信息,以便用户进入本系统,和方便管理个人信息。
LoginActivity.java
//按钮点击事件
@Event(value
=
{R.id.sign_in_button,
R.id.sign_up_text})
private
void
onClick(View
view)
{
switch
(view.getId())
{
case
R.id.sign_in_button:
//获取手机号
String
phoneNumber
=
signInPhone.getText().toString().trim();
//获取密码
String
password
=
signInPassword.getText().toString().trim();
//判断手机号和密码是否为空
if
(TextUtils.isEmpty(phoneNumber)
||
TextUtils.isEmpty(password))
{
Toast.makeText(LoginActivity.this,
"请输入用户名和密码",
Toast.LENGTH_SHORT).show();
}
else
{
User
user
=
new
User();
//设立手机号
user.setMobilePhoneNumber(phoneNumber);
//设立用户名
user.setUsername("usr_"
+
phoneNumber.substring(7));
//设立密码
user.setPassword(password);
//登录逻辑
loginPresenter.login(user);
}
break;
case
R.id.sign_up_text:
Intent
signIntent
=
new
Intent(LoginActivity.this,
SignActivity.class);
overridePendingTransition(android.R.anim.fade_in,
android.R.anim.fade_out);
startActivity(signIntent);
break;
}
}
LoginPresenterImpl.java
@Override
public
void
login(User
user)
{
//显示登录加载
loginView.showLoading();
//登录逻辑
loginModel.loadUserInfo(user,
this);
}
@Override
public
void
onLoginSuccess(User
user)
{
//隐藏登录加载
loginView.hideLoading();
//接口回调,登录成功
loginView.loginSuccess(user);
}
@Override
public
void
onLoginFail(Exception
e)
{
//隐藏登录加载
loginView.hideLoading();
//接口回调,登录失败
loginView.loginFailed(e);
}
LoginModelImpl.java
//用户登录
@Override
public
void
loadUserInfo(final
User
user,
final
OnLoginListener
loginListener)
{
handler.post(new
Runnable()
{
@Override
public
void
run()
{
//通过检查数据库里该用户是否存在进行登录
user.login(new
SaveListener<User>()
{
@Override
public
void
done(User
user,
BmobException
e)
{
//登录成功返回User实例
if
(e
==
null)
{
//回调
loginListener.onLoginSuccess(user);
}
//登录失败返回Exception
else
{
//回调
loginListener.onLoginFail(e);
}
}
});
}
});
}ProfileActivity.java
//修改信息点击事件
@Event(value
=
{R.id.confirmButton,
R.id.home})
private
void
onClick(View
view)
{
switch
(view.getId())
{
case
R.id.confirmButton:
//获取用户名
String
username
=
usernameEditText.getText().toString().trim();
//获取邮箱地址
String
=
emailEditText.getText().toString().trim();
//获取密码
final
String
password
=
passwordEditText.getText().toString().trim();
//获取重新输入的密码
final
String
newPassword
=
newPasswordEditText.getText().toString().trim();
//获取确认密码
String
confirmPassword
=
confirmPasswordEditText.getText().toString().trim();
//判断用户名密码等是否为空
if
(!TextUtils.isEmpty(username)
&&
!TextUtils.isEmpty(email)
&&
TextUtils.isEmpty(password)
&&
TextUtils.isEmpty(newPassword)
&&
TextUtils.isEmpty(confirmPassword)
&&
isEmail(email))
{
progressDialog.show();
user.setUsername(username);
user.setEmail(email);
handler.post(new
Runnable()
{
@Override
public
void
run()
{
//更新用户信息
user.update(user.getObjectId(),
new
UpdateListener()
{
@Override
public
void
done(BmobException
e)
{
//更新成功,提醒用户更新成功
if
(e
==
null)
{
progressDialog.dismiss();
Toast.makeText(ProfileActivity.this,
"更新信息成功",
Toast.LENGTH_SHORT).show();
}
//更新失败,提醒用户更新失败
else
{
progressDialog.dismiss();
Toast.makeText(ProfileActivity.this,
e.getMessage(),
Toast.LENGTH_SHORT).show();
}
}
});
}
});
}
5.2.2查询模块实现查询模块重要用户查询功能,用户通过合理的查询方式来查找自己需要的信息。
MainFragment.java
@Nullable
@Override
public
View
onCreateView(LayoutInflater
inflater,
@Nullable
ViewGroup
container,
@Nullable
Bundle
savedInstanceState)
{
View
view
=
x.view().inject(this,
inflater,
container);
Bundle
bundle
=
getArguments();
if
(bundle
!=
null)
{
user
=
(User)
bundle.get("user");
Log.d("USER",
"get
user
success");
}
//房间加载presenter
presenter
=
new
MainPresenterImpl(this);
refreshLayout.setColorSchemeColors(R.color.colorPrimary,
R.color.colorPrimaryDark,
R.color.textPrimary,
R.color.textPrimaryDark);
refreshLayout.setOnRefreshListener(this);
manager
=
new
LinearLayoutManager(getActivity(),
LinearLayoutManager.VERTICAL,
false);
adapter
=
new
MainAdapter();
recyclerView.setHasFixedSize(true);
recyclerView.setItemAnimator(new
DefaultItemAnimator());
recyclerView.setLayoutManager(manager);
adapter.setItemClickListener(onItemClickListener);
recyclerView.setAdapter(adapter);
//刷新加载房间
onRefresh();
return
view;
}
@Override
public
void
onRefresh()
{
if
(rooms
!=
null)
{
rooms.clear();
}
//加载房间逻辑
presenter.load();
}
@Override
public
void
showLoading()
{
refreshLayout.setRefreshing(true);
}
@Override
public
void
hideLoading()
{
refreshLayout.setRefreshing(false);
}
//加载成功回调
@Override
public
void
loadingSuccess(List<Room>
rooms)
{
this.rooms
=
rooms;
adapter.setData(rooms);
}
//加载失败回调
@Override
public
void
loadingFailed(Exception
e)
{
Toast.makeText(getActivity(),
e.getMessage(),
Toast.LENGTH_SHORT).show();
Log.d("Exception",
e.getMessage());
}
MainPresenterImpl.java
//加载房间
@Override
public
void
load()
{
//显示等待加载
mainView.showLoading();
//加载逻辑
mainModel.load(this);
}
//接口回调,加载成功
@Override
public
void
onLoadingSuccess(List<Room>
rooms)
{
mainView.hideLoading();
mainView.loadingSuccess(rooms);
}
//接口回调,加载失败
@Override
public
void
onLoadingFailed(Exception
e)
{
mainView.hideLoading();
mainView.loadingFailed(e);
}
MainModelImpl.java
//加载房间
@Override
public
void
load(final
OnLoadListener
listener)
{
handler.post(new
Runnable()
{
@Override
public
void
run()
{
//新建查询
BmobQuery<Room>
query
=
new
BmobQuery<>();
//查询房间
query.findObjects(new
FindListener<Room>()
{
@Override
public
void
done(List<Room>
list,
BmobException
e)
{
if
(e
==
null)
{
//加载成功,返回Li
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物业代收废品合同范例
- 退休人员用工合同范例
- 预租赁商铺合同范例
- 沙场销售合同范例
- 盘条合同范例
- 解除咨询合同范例
- 员工度体检合同范例
- 存车合同范例
- 画画培训合同范例
- 简易转让合同范例
- 远大住工-装配式建筑发展现状和技术标准
- 人教版2023-2024学年四年级数学上册典型例题系列 第四单元:促销问题与“买几送几”专项练习(解析版)
- 浅析国产手机小米品牌形象塑造与维护
- 试制过程记录表
- 2024届浙江省宁波市镇海区镇海中学高一物理第一学期期末质量检测试题含解析
- 道路运输安全生产目标责任书
- 高中音乐-《锦鸡出山》教学课件设计
- 初中历史复习策略
- 常用介电常数
- 随班就读案例
- 国家开放大学《管理学基础》形考任务4参考答案
评论
0/150
提交评论