收藏 分销(赏)

客房管理系统课程设计.doc

上传人:精*** 文档编号:3309944 上传时间:2024-07-01 格式:DOC 页数:39 大小:3.09MB 下载积分:12 金币
下载 相关 举报
客房管理系统课程设计.doc_第1页
第1页 / 共39页
客房管理系统课程设计.doc_第2页
第2页 / 共39页


点击查看更多>>
资源描述
实验报告 学 院 电气信息工程学院 组 长 乔 雨 组 员 焦少少 李凌鹏 张会荣 魏祥鹏 专 业 计 科 12101 实验项目 客 房 管 理 系 统 辅导老师 徐 晓 君 目录 任务分派和目的 3 1.系统需求分析 4 1.1待开发功能的一般描述 4 1.2待开发软件的功能模块 4 1.3网站可行性分析 5 1.4 UML系统建模 5 2.系统总体设计 8 2.1系统功能描述 8 2.2功能结构图 9 2.3系统流程图 10 3.数据库设计 12 3.1数据字典 12 3.2 E—R图设计 13 3.3数据表设计 14 4.系统具体设计及实现 16 4.1登录窗体设计 16 4.2系统主界面设计 18 4.3入住管理界面设计 20 4.4预定管理界面设计 25 4.5退房结账界面设计 30 5.总结 34 任务分派和目的 本系统的名称为客房管理系统 项目的负责人是组长乔雨 本项目参与者有焦少少、李凌鹏、魏祥鹏、张会荣 任务分派: 乔雨---重要统领全局及负责系统的重要代码的调试和编写; 焦少少---重要负责系统的基本功能及小组成员之间的协调工作; 李凌鹏---重要负责系统的总体功能实现及系统的调试; 张会荣---重要负责系统的部分代码和界面设计; 魏祥鹏---重要负责系统部分功能以及系统的问题解决; 我们重要针对架构清楚、模块独立性强、以及易维护和扩展等特点,进行系统设计,从而提供宾馆客房科学、规范的现代管理模式,使宾馆客房管理跨上一个新的台阶,一个先进的管理手段即高效率计算机管理方式引导宾馆行业的发展。 1.系统需求分析 1.1待开发功能的一般描述 酒店作为目前高层次的服务行业之一,最重要的就是要做到优质服务。服务的安排、调度是否周到,客人的规定是否能迅速地得到满足,都直接影响到酒店的形象和声誉。借助计算机技术来进行信息管理,并配合现代化的酒店管理经验和模式,可以极大地提高酒店的服务质量,获得更好的经济效益。酒店信息化管理已成为酒店现代科学管理的重要内容,是酒店经营中必不可缺少的现代科学工具。 系统目的:(1)建立一套功能完整、高效、安全、稳定的酒店管理系统. (2)系统可以对员工平常操作进行快速、安全地反映。 (3)实现对顾客信息,预订、入住、换房、退房、房态设立等信息的方便迅速录入、查询及管理,了解酒店平常业务的相关信息。 (4)界面简洁、操作方便、简朴易学,用户不需要有太多的专业知识。 1.2待开发软件的功能模块 针对客房管理系统的需求,通过对客房管理工作过程的内容分析,系统需要实现的功能有如下重要五大功能: (1)客房管理:客房编辑,客房状态编辑,客房类型编辑。 (对客房的状态、类型进行查,删,改) (2)顾客管理:客房预定,登记入住,房间调整,退房登记。 (根据顾客的规定对客房号或客房类型进行查询、修改等) (3)账单管理:消费记录,话费记录,入住登记。 (根据房间号查询,修改,删除顾客消费记录) (4)系统设立:修改密码以及用户管理。 (5)客房预订管理:登记预定客户、客房的信息以及浏览查询等。 1.3网站可行性分析 可行性研究是为了弄清楚系统开发的项目是不是可以实现和值得进行研究的过程,事实上是一次大大简化系统分析和系统设计的过程,所以,进行可执行性的分析是非常必要的,也是很重要的,通过最初的设计目的和进行的市场调查得出以下四点的可行性分析: (1)经济可行性:该系统设计是本组人员通过自己所掌握的知识设计的,又由于本组的设计能力有限,其功能还不能完善,所以没有什么经济效益可谈。 (2)技术可行性:Delphi的技术是我们以前所学习的知识,较为纯熟。 (3)运营可行性:该系统需要在对的连接Access数据库后可以正常运营。 通过以上的可行性分析,我们将采用Delphi的技术,运用Access数据库对系统进行建设。 1.4 UML系统建模 由于UML很适合于对逻辑数据库模式和物理数据库模式建模,所以我们对系统进行UML建模。下面是酒店客房管理系统的 UML建模过程。这里我们将使用Rational Rose进行UML建模。 用例图分析: 图1.1 系统用例图 订房管理时序图: 图1.2 预订时序图 顾客 规定预订 规定入住 结算 前台 查询房间 确认房间 预定登记 入住登记 退房登记 查询入住时间 规定退房 补交押金 登记 规定补交押金 业务流程图: 图1.3业务流程图 针对现在宾馆业的发展需求,在业务流程图的基础上,可以得到数据流程图: 顶层数据流图: 顾客 管理员 客房管理系统 顾客信息 (入住) 操作命令及数据 返回数据 返回信息 图1.4顶层数据流图 2.系统总体设计 2.1系统功能描述 我们组通过商讨,搜索资料,所设计的福到家宾馆客房管理系统合用于宾馆的客房资源和客户信息的管理,实现宾馆客房的信息化管理,该系统重要涉及预定管理、前台接待管理、前台收银操作、客房及客史管理、基础信息设立、系统帮助等功能。 具体功能设计内容如下: (一)预订管理:房态表(查看房间现状,有无空房、是否维修、是否住房等等)、预订操作、预定查询。 (二)前台接待管理:入住登记、入住查询。 (三)前台收银操作:记账操作、退房操作。 (四)客房及客史管理:客房信息查询、房态维护管理、预定客人报表:链接预定客人报表、在住客人报表、当天预定客人报表、当天入住客人报表、当天离店客人报表、链接当天离店客人报表、当天财务进账报表、历史客人预定查询、历史客人入住查询。 (五)基础信息设立:客房类型设立、客房信息设立、工作人员管理:链接工作人员管理窗体、操作人员管理、会员编号管理、用户密码修改、系统用户注销、系统备份还原、链接用户密码修改窗体、系统日记管理、系统数据维护、电话计费接口、房态系统接口。 (六)系统帮助:关于系统、联机帮助。 2.2功能结构图 客房管理系统功能结构如图2.1所示 退出系统 福 到 来 宾 馆 客 房 管 理 系 统 用户信息管理模块 客房类型设立 工作人员管理 会员编号管理 系统用户注销 系统日记管理 房卡系统接口 系统数据维护 系统备份还原 用户密码修改 电话计费接口 操作人员管理 客房信息设立 前台收银操作 记账操作 退房操作 前台接待管理 入住登记 入住查询 客房预订管理 房态表 预订操作 预定查询 预定客人报表 客房及客史管理 客房信息查询 当天预定客人报表 当天离店客人报表 历史客人预订查询 房态维护管理 在住客人报表 当天入住客人报表 历史客人入住查询 当天财务进账报表 系统帮助 用户信息删除 用户信息删除 登 陆 图2.1系统功能结构图 2.3系统流程图 有 否 无e’u 是 超级用户 用户登录 验证账号 开始 完毕添加、修改和删除用户 数据库维护对记录操作 查看系统日记 前台登记 收银结账 是否 预订 顾客消费记录可执行添加转账退单等消费记录 计算顾客消费金额住宿费用执行结账退房 查看客房 和商品销售情况 显示预订信息可添加预定删除预定修改预定 显示空房信息客人选择房间登记入住 修改添加删除客房和商品情况执行房态管理 退出系统 是否有空闲房间 建议入住其它客房 入住 是否缺货 销售 退出 结束 普通用户 验证成功 是 否 通过对系统功能的分析,可得到用户操作的一般流程,如图所示。 图2.2 登录流程图 用户登录系统时,系统将根据用户权限对其进行相应的功能限制。一般普通用户可拥有前台登记、收银结账以及对商品和客房信息进行查询和设立的权限;而超级用户除拥有普通用户的所有权限外,还可进行系统用户设立、数据库维护和查看系统日记。 3.数据库设计 3.1数据字典 根据绘制出的数据流图,定义出本系统的数据字典。如下列所示: 数据项 客户编号 含义说明 唯一标记每个客户 别名 类型 整型 长度 4 取值范围 0000-9999 取值含义 按客户顺序编号 与其他数据项的逻辑关系 表3.1 客户编号字典 表3.2客户字典 数据结构 客户 含义说明 客房管理系统的主体数据结构,定义了一个客户的相关信息 组成 客户编号,客户姓名,性别,年龄,身份证号,户籍 数据项 房号 含义说明 唯一标记每个房间 别名 房间编号 类型 整型 长度 4 取值范围 100-411 取值含义 每层楼的房间顺序 与其他数据项的逻辑关系 数据结构 客房 含义说明 客房管理系统的主体数据结构,定义一个客房的相关信息 组成 房号,房间类型,房间价格,房间状态 表3.4客房字典 数据流 结算账单 含义说明 客户入住的消费结果 数据流来源 结算解决 数据流去向 操作员 组成 账单编号,房号,住店天数,总费用 表3.3房号字典 数据存储 客户信息表 说明 记录入住的客户的综合信息 流入数据流 客户信息 流出数据流 入住信息 组成 客户,入住时间,离店时间,押金,账单编号,房号 表3.6结算账单字典 表3.5客房信息表 3.2 E—R图设计 入住编号 退房日期 押金 入住日期 入住 结帐金额 预定 房间类型 属于 客房信息 顾客信息 预订日期 预订入住日期 订单号 退订日期 预订入住天数 话费花销 电话 姓名 证件号 证件类型 籍贯 性别 客房号 房间类型 房间电话号码 客房状态 楼层 额定人数 额定床位 类型 是否有电视 是否有电脑 价格 面积 本系统采用Access数据库。经考察和分析,本案例客房管理系统涉及以下实体:客户实体、客房实体、操作员实体、结算账单实体,它们的E-R图如以下所示: M n m n n 1 图3.1整体E-R图 3.3数据表设计 根据E-R图,将图转换为关系模型即:将实体、实体的属性和实体之间的联系转换为关系模式,然后将全局E-R图转换成关系模型: 客房类型(价格,面积,类型,额定人数,是否有电脑,是否有电视,额定床位) 客房(房间类型,客房号,房间电话号码,客房状态,楼层) 顾客(姓名,证件号,籍贯,性别,电话,证件类型) 入住记录(入住编号,证件号,客房号,入住日期,退房日期,押金,结帐金额,话费花销) 预定信息(订单号,证件号,客房号,预定日期,预定入住日期,预定天数,退订日期) 关系数据表拟定后要进行数据表的逻辑结构设计,即定义关系数据表中字段名称、数据结构、是否允许为空、关键字、说明等。 客房表:(room) 字段名称 数据类型 字段大小 备注 客房号 Nchar 5 不允许为空(主键) 房间类型 Nchar 10 楼层 Int 房间状态 Nchar 10 包含空闲,占用,预定 房间电话号码 Nchar 6 用于联系房间住户 表3.7客房表 顾客表:(customer) 字段名称 数据类型 字段大小 备注 姓名 Nchar 10 不允许为空 证件号 char 20 不允许为空(主键) 籍贯 Char 10 不允许为空 性别 Char 4 电话号码 Nchar 11 证件类型 char 12 表3.7顾客表 客房类型表:(room_type) 字段名称 数据类型 字段大小 备注 类型 char 10 不允许为空(主键) 面积 float - 不允许为空 价格 money - 不允许为空 额定床位 smallint - 额定人数 smallint - 是否有电视 char 2 是否有电脑 char 2 表3.8客房类型表 入住登记表:(room_record) 字段名称 数据类型 字段大小 备注 证件号 char 20 不允许为空 客房号 Nchar 5 不允许为空 入住日期 datetime - 不允许为空 退房日期 datetime - 话费花销 char 6 押金 Money 结帐金额 Money 入住编号 Char 10 不允许为空(主键) 表3.9入住登记表 预订登记表:(book_record) 字段名称 数据类型 字段大小 备注 订单号 char 12 不允许为空(主键) 客房号 nchar 5 不允许为空 预定日期 datetime - 不允许为空 预定入住日期 datetime - 预定天数 smallint - 证件号 Char 20 不允许为空 表3.10预订记录 4.系统具体设计及实现 4.1登录窗体设计 (1)窗体功能描述 本窗体是系统的启动窗体,实现对于用户身份的多重验证功能。具体描述如下: 用户合法性验证。一方面判断用户输入的用户名和密码是否对的,若对的,就进入用户状态鉴定,若错误;系统便发出警告信息。系统限定用户只有三次输入机会,三次之后本窗体自动关闭。 (2)窗体设计 创建一个名为“LoginForm”的窗体,将caption属性改为“福到家宾馆用户登录”。并按图4.1进行界面设计 图4.1登录界面 登陆成功后主界面显示。 (3)代码设计 登录窗体载入时,运用Adoquery控件连接数据库,从Comobox控件中选择用户名,然后输入密码,点击登陆按钮即可实现对用户身份的多重验证,代码如下: procedure Tloginfm.dengluClick(Sender: TObject); begin if trim(usernamebox.text)='' then begin showmessage('请选择用户名!'); userpasedit.SetFocus; exit; end; with adoquery do begin close; sql.Clear; sql.Add('select * from 操作员表 where 姓名=:username and 密码=:userpas'); Parameters.ParamByName('username').Value:=trim(usernamebox.text); Parameters.ParamByName('userpas').Value:=userpasedit.text; open; if recordcount<1 then begin if j=3 then application.Terminate; messagedlg('密码错误!尚有'+inttostr(3-j)+'次机会',mtconfirmation,[mbok],0); userpasedit.Clear; j:=j+1; exit; end else with adoquery1 do begin close; sql.Clear; sql.Add('insert into 日记表(姓名,操作,时间) values(:xm,:cz,:sj)'); Parameters.ParamByName('xm').Value:=trim(usernamebox.text); Parameters.ParamByName('cz').Value:=loginfm.Caption+'成功!'; Parameters.ParamByName('sj').Value:=datetimetostr(now()); execsql; end; hotelfm.id:='操作员'; hotelfm.username:=fieldbyname('姓名').AsString; hotelfm.userpas:=fieldbyname('密码').AsString; hotelfm.statusbar.Panels.Items[0].Text:='当前用户:'+hotelfm.username; loginfm.hide; end; usernamebox.Text:=''; userpasedit.Text:=''; end; 4.2系统主界面设计 (1)窗体功能描述 本系统主界面设计美观实用,采用图形化按钮和特定风格的数据表格,酒店中客房经营情况一目了然,使用户可以及时、准确的掌握客房营销情况,为顾客提供征询服务。主界面涉及了预订管理、前台接待管理、客房及客史管理、基础设立、系统设立等几个功能模块。客户可以根据自己的需要点击相应的功能模块即可以进入功能窗体。 (2)窗体设计 新建一个窗体并命名为“hotelfm”,并把caption属性改为“福到家宾馆管理系统”。打开窗体的界面设计,在工具箱分别选择相应的控件把窗体设计成如图4.2所示。 图4.2系统主界面 ①单击菜单中某个选项时,就弹出相应的窗体,代码如下: procedure Thotelfm.N4Click(Sender: TObject); begin with adoquery1 do begin close; sql.Clear; sql.Add('insert into 日记表(姓名,操作,时间) values(:xm,:cz,:sj)'); Parameters.ParamByName('xm').Value:=hotelfm.username; Parameters.ParamByName('cz').Value:=hotelfm.N4.Caption; Parameters.ParamByName('sj').Value:=datetimetostr(now()); execsql; end; BookFm:=TBookFm.create(self); //预定操作 BookFm.showmodal; BookFm.free; end; ②当点击ToolBar控件上的图象按钮时,将激活相应的功能窗体。代码如下: procedure Thotelfm.N9Click(Sender: TObject); begin with adoquery1 do begin close; sql.Clear; sql.Add('insert into 日记表(姓名,操作,时间) values(:xm,:cz,:sj)'); Parameters.ParamByName('xm').Value:=hotelfm.username; Parameters.ParamByName('cz').Value:=hotelfm.N9.Caption; Parameters.ParamByName('sj').Value:=datetimetostr(now()); execsql; end; inroomFm:=TinroomFm.create(self); //入住登记 inroomFm.showmodal; inroomFm.free; end; 4.3入住管理界面设计 (1)窗体功能描述 顾客进入酒店后,需先到前台办理入住手续。操作员输入客人的相关信息,并根据顾客的规定选择相应的客房,操作员可手动设定折扣比例,系统会自动计算客房价格,收取一定的入住押金,最后点击拟定按钮即完毕入住手续的办理。 当顾客因故半途取消办理入住时,为方便操作,节省时间,可点击刷新按钮,则所有输入框中的信息自动清空。最后点击取消按钮即可退出登记入住窗体。 (2)窗体设计 新建一个名“inRoomFm”的窗体。并把caption属性改为“入住管理”,并运用相关控件设计成如图4.3所示。 图4.3入住管理界面 (3)入住代码设计: procedure TinroomFM.ydbtClick(Sender: TObject); var str:string; begin if roomtypebox.Text='' then begin showmessage('请选择客房类型!'); exit; end; if roomnumbox.Text='' then begin showmessage('请选择客房编号!'); exit; end; if inprice.Text='' then begin showmessage('请输入入住价格!'); exit; end; if (jcpriceedit.Enabled=true) and (jcpriceedit.Text='') then begin showmessage('请输入加床价格!'); exit; end; if (peonumedit.Text='') or (peonumedit.Text='0') then begin showmessage('请输入入住人数!'); exit; end; with adoquery1 do begin close; sql.Clear; sql.Add('select * from 入住单表 where 入住单号=:yddh'); Parameters.ParamByName('yddh').Value:=trim(booknumEdit.Text); open; if recordcount>=1 then begin showmessage('此入住单存在,请刷新重新登记'); exit; end; end; str:='insert into 入住单表(入住单号,客房类型,抵店时间,离店时间,'; str:=str+'单据状态,入住人数,客房编号,客房价格,入住价格,折扣,折扣因素,是否加床,加床价格,'; str:=str+'预收款,预定人,会员编号,预定公司,联系电话,特要说明,操作员,业务员,id,预定单号,早餐,叫醒,保密,vip) values'; str:=str+'(:yddh,:kflx,:ddsj,:ldsj,:djzt,:rzrs,:kfbh,:kfjg,:rzjg,:zk,:zkyy,:sfjc,'; str:=str+':jcjg,:ysk,:ydr,:hybh,:ydgs,:lxdh,:bz,:czy,:ywy,:id,:dr,:tgzc,:dsjx,:rzbm,:vip)'; with adoquery1 do begin close; sql.Clear; sql.Add(str); Parameters.ParamByName('bz').Value:=trim(bz.Text); Parameters.ParamByName('czy').Value:=trim(czyedit.Text); Parameters.ParamByName('ywy').Value:=trim(ywybox.Text); Parameters.ParamByName('id').Value:=''; Parameters.ParamByName('dr').Value:=trim(dr.Text); if tgzc.Checked then Parameters.ParamByName('tgzc').Value:=true else Parameters.ParamByName('tgzc').Value:=false; if dsjx.Checked then Parameters.ParamByName('dsjx').Value:=true else Parameters.ParamByName('dsjx').Value:=false; if rzbm.Checked then Parameters.ParamByName('rzbm').Value:=true else Parameters.ParamByName('rzbm').Value:=false; if vip.Checked then Parameters.ParamByName('vip').Value:=true else Parameters.ParamByName('vip').Value:=false; try execsql; //showmessage('预定成功'); except showmessage('入住失败!'); end; end; with adoquery1 do begin close; sql.Clear; sql.Add('update 客房信息表 set 状态="入住" where 客房编号=:kfbh'); Parameters.ParamByName('kfbh').Value:=trim(roomnumbox.Text); execsql; end; if (trim(dr.Text)<>'') then begin with adoquery1 do begin close; sql.Clear; sql.Add('update 预定单表 set 单据状态="入住" where 预定单号=:yddh'); Parameters.ParamByName('yddh').Value:=trim(dr.Text); execsql; end; with adoquery1 do begin close; sql.Clear; sql.Add('insert into 预定单历史表 select * from 预定单表 where 预定单号=:yddh'); Parameters.ParamByName('yddh').Value:=trim(roomnumbox.Text); execsql; end; with adoquery1 do begin close; sql.Clear; sql.Add('delete from 预定单表 where 单据状态="入住"'); execsql; end; end; showmessage('入住成功'); sxbt.Click; end; 4.4预定管理界面设计 (1)窗体功能描述 顾客可以通过点击主菜单中的预订管理模块来进行预定管理,在预定管理中包含了顾客对房间状态的查询、预定查询以及预定操作。顾客可以在预定操作中进行对房间的预定及对顾客自己预定信息的修改、删除等等。 (2)窗体设计 新建一个窗体并命名为“Bookfm”,并把caption属性改为“预订管理”。打开窗体的界面设计,在工具箱分别选择相应的控件把窗体设计成如图4.4所示。 图4.4预定管理界面 界面重要涉及以下控件:标签(Label),文本编辑(LabeledEdit),文本框(combobox),按钮(Button),时间(Datetimepicker),Pagecontrol控件和DataGrid控件组成。 (3)代码设计 ①预定代码设立: procedure TBookFm.ydbtClick(Sender: TObject); var str:string; begin if roomtypebox.Text='' then begin showmessage('请选择客房类型!'); exit; end; if roomnumbox.Text='' then begin showmessage('请选择客房编号!'); exit; end; if inprice.Text='' then begin showmessage('请输入入住价格!'); exit; end; if (jcpriceedit.Enabled=true) and (jcpriceedit.Text='') then begin showmessage('请输入加床价格!'); exit; end; if (peonumedit.Text='') or (peonumedit.Text='0') then begin showmessage('请输入入住人数!'); exit; end; with ydczado do begin close; sql.Clear; sql.Add('select * from 预定单表 where 预定单号=:yddh'); Parameters.ParamByName('yddh').Value:=trim(booknumEdit.Text); open; if recordcount>=1 then begin showmessage('次预定单存在,请刷新重新预定'); exit; end; end; str:='insert into 预定单表(预定单号,客房类型,预定期间,抵店时间,离店时间,'; str:=str+'单据状态,入住人数,客房编号,客房价格,入住价格,折扣,折扣因素,是否加床,加床价格,'; str:=str+'预收款,预定人,会员编号,预定公司,联系电话,备注,操作员,业务员,id) values'; str:=str+'(:yddh,:kflx,:ydsj,:ddsj,:ldsj,:djzt,:rzrs,:kfbh,:kfjg,:rzjg,:zk,:zkyy,:sfjc,'; str:=str+':jcjg,:ysk,:ydr,:hybh,:ydgs,:lxdh,:bz,:czy,:ywy,:id)'; with ydczado do
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服