酒店客房信息管理系统的设计与实现.doc_第1页
酒店客房信息管理系统的设计与实现.doc_第2页
酒店客房信息管理系统的设计与实现.doc_第3页
酒店客房信息管理系统的设计与实现.doc_第4页
酒店客房信息管理系统的设计与实现.doc_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

指导教师对课程设计(论文)的评语(工作态度、任务完成情况、能力水平、设计说明书(论文)的撰写和图纸质量等):成绩 指导教师签字 年 月 日目 录第一章 需求分析41.1开发背景41.2功能描述41.3 业务流程分析5第二章 数据流程分析62.1数据流程图62.2 数据字典6第三章 概念模型设计8第四章 逻辑模式设计和优化9第五章 物理设计和实施115.1 创建数据库115.2 程序以及调试和使用说明13第六章 课程设计心得体会.32参考文献.33第一章 需求分析1.1开发背景90年代中期,由于internet 的迅速普及,使intranet成为internet技术在企业管理信息系统中的应用和延伸,形成了集计算机,计算机网络、数据库、分布式计算等于一体的信息技术综合体,它打破了时间和地域的界限,使信息交流变得快捷、准确,为建立现代企业管理信息系统提供了充足的条件。企业信息管理系统在此基础上延伸、扩展,使之上下、内外全面贯通。引入internet后,形成了新型的浏览器/服务器(browser/server)结构,而传统的客户机/服务器(client/server)结构在这方面就远不及b/s结构。 近年来,宾馆业迅猛发展,市场的竞争日趋激烈,全面提高宾馆的软件管理水准,已成为宾馆业发展的当务之急。尤其是对于星级宾馆,既需要完成前台的一些服务工作,还需要完成后台的管理工作。然而,传统的人工管理模式已经远远不能满足有效、快捷地处理经营中产生的大量信息数据的需要,从而使得企业决策层无法及时、准确地掌握一线资料,继而影响对市场进行正确地分析和预测。像沿海城市三星级以上宾馆引进外方管理,使小部分宾馆管理水准几乎接近或达到国际水平。但对占80%以上的广大中小型宾馆来说,是难以做到的。因此,欲在竞争中甩开对手,取得优势,必须在经营、管理、产品、服务等方面具备独到之处。而对宾馆的经营状况起决定作用的是客房的管理。简单的服务标准已不是制胜的锦囊,只有管理做到最细微之处,才能让顾客体会到宾馆服务的高标准、高质量,而准确、快速、周全往往就是最基本的成功要素。传统的管理方法已经不能适应现代社会的需要,因此采用电脑管理业务、财务等诸多环节已成为推动宾馆业迅速发展的先决条件,宾馆客房管理信息系统是各大中小型宾馆所需要使用的一个管理系统。客房管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的数据库,而对于后者则要求应用程序功能完备,操作简单等,该系统的是终目的方便员工查阅。1.2功能描述经过调研及分析,客房管理信息系统主要完成以下功能:(1)客房信息输入包括每间客房的大小级别、地理位置、预设租金等信息。(2)客房信息查询用于及时掌握客房的安排情况。(3)前台操作员管理用于设置前台管理员的密码和基本信息。(4)客房预订处理各类客户预订要求,预订可以通过各种方式进行(如电话、e-mail、传真等)。前台需要根据当前客房入住情况,及时反馈给客户预订结果。(5)入住登记客户实际入住时,需要及时登记客户信息,以便今后查询。(6)房客查询可以根据各种信息查询房客是否入住及入住情况。(7)收费管理包括入住的定金、各类其他消费情况和最终的结账管理。1.3 业务流程分析业务流程分析 如图1所示。图1 业务流程图第二章 数据流程分析 2.1数据流程图数据流程图如图2所示。 维修信息调整房间维修/报修房间提醒 客房信息 预定 客房信息 客房状态入住退房客人 客人信息 入住登记 帐务信息财务现开 入住信息 图2 数据流程图 2.2、数据字典(1) 数据流编号:d001数据流名称:预订数据流来源:客人数据流去向:预订登记包含的数据项:客房号,客房类型,定金,预订方式,客人姓名,客房状态(2) 数据流编号:d002数据流名称:客房状态数据流来源:客房数据流去向:预订登记包含的数据项:客房号,定金,预订方式,客人姓名,客房状态(3) 数据流编号:d003数据流名称:客人信息登记数据流来源:预订登记数据流去向:客人信息包含的数据项:客房号,客人姓名,客人性别(4) 数据流编号:d004数据流名称:客人入住数据流来源:客人预订产生入住登记数据流去向:入住登记包含的数据项:客房号,客人姓名,客房类型,楼层,价格(5) 数据流编号:d005数据流名称:删除客人记录数据流来源:入住登记数据流去向:客人退房包含的数据项:客房号,客房类型,楼层,价格(6) 数据流编号:d006数据流名称:客人消费数据流来源:客人退房数据流去向:消费包含的数据项:客房号,客人姓名,客人餐费,定金,价格,总消费(7) 数据流编号:d007数据流名称:客房信息数据流来源:客人退房数据流去向:客房包含的数据项:客房号,客房类型,楼层,价格第三章 概念模型设计系统的总er图如图3所示。 图3 总er图第四章 逻辑模式设计和优化(1) 客房信息表1 客房信息客房号客房类型楼层价格 nvarchar(20)nvarchar(20)nvarchar(10)int(2) 客人信息表2 客人信息客房号客人姓名客人性别 nvarchar(20)char(10)char(3)(3) 客人预订表3 客人预订客房号定金预订方式客人姓名客房状态nvarchar(20)intnvarchar(20)char(10)nvarchar(20)(4) 客人入住表4 客人入住客房号客人姓名客房类型楼层价格nvarchar(20) nvarchar(20)nvarchar(20)nvarchar(20)int(5) 客人消费表5 客人消费客房号客人姓名客人餐费定金价格nvarchar(20) char(10)intintint第五章 物理设计和实施 5.1 创建数据库得到系统逻辑模型后,就该进行数据库的物理设计和实施数据库了,物理设计主要是要确定数据库的存储路径、存储结构等,可以采用系统的默认设置。数据库实施主要包括在具体的dbms中创建数据库和表的过程,本设计所选用的dbms为sql server2005,有关创建数据库和关系表的sql语句如下所示:(1) 创建数据库/*=*/ create database 酒店客房数据库;/*=*/create database 酒店客房信息管理系统go(2)创建数据库的表/*=*/ 客房信息表/*=*/create table 客房信息(客房号 nvarchar(20),客房类型 nvarchar(20),楼层 nvarchar(10),价格 int, primary key(客房号);/*=*/客人预订表/*=*/create table 客人预订(客房号 nvarchar(20),客房类型 nvarchar(20),定金 int,预订方式 nvarchar(10),客人姓名 char(10),客房状态 nvarchar(10),primary key (客房号),foreign key (客房号) references 客房信息(客房号),);/*=*/客人信息表/*=*/create table 客人信息(客房号 nvarchar(20), 客人姓名 char(10), 客人性别 char(3), primary key (客房号),foreign key (客房号) references 客人预订(客房号);/*=*/客人入住表/*=*/create table 客人入住(客房号 nvarchar(20),客人姓名 char(10),客房类型 nvarchar(20),楼层 nvarchar(10),价格 int,primary key (客房号),foreign key (客房号) references 客房信息(客房号),);/*=*/客人消费表/*=*/create table 客人消费(客房号 nvarchar(20), 客人姓名 char(10), 客人餐费 int,定金 int,价格 int,总消费 int,primary key (客房号),foreign key (客房号) references 客人入住(客房号); 5.2 程序以及调试和使用说明 (1)登陆界面图1 登陆界面private void 系统管理员_click(object sender, eventargs e) form1 e2 = new form1(); e2.show(); private void 前台管理员_click_1(object sender, eventargs e) form14 e3 = new form14(); e3.show(); private void客人查询_click(object sender, eventargs e) form15 u15 = new form15(); u15.show(); private void 退出_click(object sender, eventargs e) this.close(); application.exit(); (2)后台管理员登录界面图2 后台管理员登陆界面private void 登陆系统button_click(object sender, eventargs e) if (textusername.text = | textpassword.text = ) messagebox.show(输入登录信息不完整,请重新输入!, 信息提示, messageboxbuttons.ok, messageboxicon.information); else string constr = server=左-pc;uid=u3;pwd=123;database=酒店客房数据库; sqlconnection con = new sqlconnection(constr); string sqlstr = select * from 操作用户1 where 用户姓名= + textusername.text + and 用户密码= + textpassword.text + ; sqldataadapter ada = new sqldataadapter(sqlstr, con); datatable dt = new datatable(); ada.fill(dt); int i = dt.rows.count; if (i 0) 主界面 a = new 主界面 (); a.show(); else messagebox.show(用户名或密码不正确,请重新输入!, 信息提示, messageboxbuttons.ok, messageboxicon.information); private void 退出系统button_click(object sender, eventargs e) this.close(); application.exit(); (3)后台管理员主界面 图3 后台管理员主界面(4)前台管理员登陆界面图4 前台管理员登陆界面 private void button1_click(object sender, eventargs e) if (textusername.text = | textpassword.text = ) messagebox.show(输入登录信息不完整,请重新输入!, 信息提示, messageboxbuttons.ok, messageboxicon.information); else string constr = server=左-pc;uid=u3;pwd=123;database=酒店客房数据库; sqlconnection con = new sqlconnection(constr); string sqlstr = select * from 操作用户2 where 用户姓名= + textusername.text + and 用户密码= + textpassword.text + ; sqldataadapter ada = new sqldataadapter(sqlstr, con); datatable dt = new datatable(); ada.fill(dt); int i = dt.rows.count; if (i 0) 主界面1 a1 = new 主界面1(); a1.show(); else messagebox.show(用户名或密码不正确,请重新输入!, 信息提示, messageboxbuttons.ok, messageboxicon.information); (5)客房信息录入 图5 客房信息录入private void button1_click(object sender, eventargs e) if (textbox1.text = | textbox2.text = | textbox3.text = | textbox4.text = ) messagebox.show(输入信息不完整,请重新输入!, 信息提示, messageboxbuttons.ok, messageboxicon.information); else string constr = server=左-pc;user id=u3;pwd=123;database=酒店客房数据库; sqlconnection con = new sqlconnection(constr); stringbuilder strsql = new stringbuilder(); strsql.append(insert into 客房信息(客房号,客房类型,楼层,价格); strsql.append( values( + textbox1.text.trim().tostring() + , + textbox2.text.trim().tostring() + , + textbox3.text.trim().tostring() + , + textbox4.text.trim().tostring() + ); using (sqlcommand cmd = new sqlcommand(strsql.tostring(), con) con.open(); cmd.executenonquery(); con.close(); con.dispose(); messagebox.show(客房信息添加成功!, 信息提示, messageboxbuttons.ok, messageboxicon.information); textbox1.text = ; textbox2.text = ; textbox3.text = ; textbox4.text = ; (6)客房信息查询 图6 客房信息查询 private void form2_load(object sender, eventargs e) try string constr = server=左-pc;user id=u3;pwd=123;database=酒店客房数据库; sqlconnection con = new sqlconnection(constr); string sqlstr = select 客房号,客房类型,楼层,价格 from 客房信息; sqldataadapter ada = new sqldataadapter(sqlstr, con); dataset ds = new dataset(); ada.fill(ds); this.datagridview1.datasource = ds.tables0.defaultview; catch return; (7)前台管理员密码修改 图7 前台管理员密码修改private void 前台操作员管理_load(object sender, eventargs e) string constr = server=左-pc;user id=u3;pwd=123;database=酒店客房数据库; sqlconnection con = new sqlconnection(constr); con.open(); sqlcommand com = new sqlcommand(select 用户姓名 from 操作用户2, con); sqldatareader dr = com.executereader(); combobox1.items.clear(); while (dr.read() combobox1.items.add(dr0.tostring(); dr.close(); con.close(); private void button1_click(object sender, eventargs e) string constr = server=左-pc;user id=u3;pwd=123;database=酒店客房数据库; sqlconnection con = new sqlconnection(constr); using (sqlcommand cmd = new sqlcommand() con.open(); cmd.connection = con; cmd.commandtype = commandtype.storedprocedure; cmd.commandtext = 用户_update; sqlparameter par = new sqlparameter(name,bobox1 .text), new sqlparameter(pwd,this .textbox2 .text ), new sqlparameter(zw ,this .textbox3 .text ) ; foreach (sqlparameter parms in par) cmd.parameters.add(parms); cmd.executenonquery(); con.close(); messagebox.show(已经成功修改); private void button2_click_1(object sender, eventargs e) 显示修改后的数据库信息 m = new 显示修改后的数据库信息(); m.show(); private void 显示修改后的数据库信息_load(object sender, eventargs e) string constr = server=左-pc;user id=u3;pwd=123;database=酒店客房数据库; sqlconnection con = new sqlconnection(constr); string sqlstr = select * from 操作用户2; sqldataadapter ada = new sqldataadapter(sqlstr, con); dataset ds = new dataset(); ada.fill(ds); this.datagridview1.datasource = ds.tables0.defaultview; (8)前台管理员主界面图8 前台管理员主界面private void form2_load(object sender, eventargs e) try string constr = server=左-pc;user id=u3;pwd=123;database=酒店客房数据库; sqlconnection con = new sqlconnection(constr); string sqlstr = select 客房号,客房类型,楼层,价格 from 客房信息; sqldataadapter ada = new sqldataadapter(sqlstr, con); dataset ds = new dataset(); ada.fill(ds); this.datagridview1.datasource = ds.tables0.defaultview; catch return; (9)客房预订界面图9 客房预订界面 private void form3_load(object sender, eventargs e) string constr1 = server=左-pc;user id=u3;pwd=123;database=酒店客房数据库; sqlconnection con1 = new sqlconnection(constr1); con1.open(); sqlcommand com1 = new sqlcommand(select 客房号 from 客房信息 where 客房号 not in (select 客房号 from 客人预订 where 客房状态 is not null), con1); sqldatareader dr1 = com1.executereader(); combobox1.items.clear(); while (dr1.read() combobox1.items.add(dr10.tostring(); dr1.close(); con1.close(); string constr3 = server=左-pc;user id=u3;pwd=123;database=酒店客房数据库; sqlconnection con3 = new sqlconnection(constr3); con3.open(); sqlcommand com3 = new sqlcommand(select distinct 预订方式 from 客房信息 , con3); sqldatareader dr3 = com3.executereader(); combobox3.items.clear(); while (dr3.read() combobox3.items.add(dr30.tostring(); dr3.close(); con3.close(); private void button1_click(object sender, eventargs e) if (textbox1.text = | textbox3.text=| textbox2.text=) messagebox.show(输入信息不完整,请重新输入!, 信息提示, messageboxbuttons.ok, messageboxicon.information); else string constr = server=左-pc;user id=u3;pwd=123;database=酒店客房数据库; sqlconnection con = new sqlconnection(constr); stringbuilder strsql = new stringbuilder(); strsql.append(insert into 客人预订(客房号,客房类型,定金,预订方式,客人姓名,客房状态); strsql.append( values( + combobox1.selecteditem.tostring() + , + textbox4.text.trim().tostring() + , + textbox1.text.trim().tostring() + , + combobox3.selecteditem.tostring() + , + textbox3.text.trim().tostring() + , + textbox2.text.trim().tostring() + ); using (sqlcommand cmd = new sqlcommand(strsql.tostring(), con) con.open(); cmd.executenonquery(); con.close(); con.dispose(); messagebox.show(客房预订成功!, 信息提示, messageboxbuttons.ok, messageboxicon.information); textbox1.text = ; private void button3_click(object sender, eventargs e) string constr1 = server=左-pc;user id=u3;pwd=123;database=酒店客房数据库; sqlconnection mycon = new sqlconnection(constr1); mycon.open(); sqlcommand cmd = new sqlcommand(select 客房类型 from 客房信息 where 客房号= + combobox1.selecteditem.tostring() + , mycon); sqldatareader drr = cmd.executereader(); while (drr.read() textbox4.text = string.format(convert.tostring(drr.getvalue(0).tostring(); mycon.close(); (10)客人信息录入界面图10 客人信息录入界面private void form4_load(object sender, eventargs e) string constr = server=左-pc;user id=u3;pwd=123;database=酒店客房数据库; sqlconnection con = new sqlconnection(constr); con.open(); sqlcommand com = new sqlcommand(select 客房号 from 客人预订, con); sqldatareader dr = com.executereader(); combobox1.items.clear(); while (dr.read() combobox1.items.add(dr0.tostring(); dr.close(); con.close(); private void button1_click(object sender, eventargs e) if ( textbox2.text = | textbox3.text = | textbox4.text = | textbox5.text = ) messagebox.show(输入的信息不完整,请重新输入!, 信息提示, messageboxbuttons.ok, messageboxicon.information); else sqlconnection con = new sqlconnection(server=左-pc;user id=u3;pwd=123;database=酒店客房数据库); stringbuilder strsql = new stringbuilder(); strsql.append(insert into 客人入住(客房号,客人姓名,客房类型,楼层,价格); strsql.append(values( + combobox1.text.trim().tostring() + , + textbox2.

温馨提示

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

评论

0/150

提交评论