1、课程设计报告课程设计题目: 酒店客房预订管理系统 学 生 姓 名 : 肖莹 专 业:计算机应用技术班 级 : 1240301 指 导 教 师 : 李丽华 2014 年 6 月 18 日一、设计目的与意义本课程设计是信息系统设计的实践性环节之一,是在学习完数据库原理与应用课程后进行的一次全面的综合技术实践。通过数据库课程设计,旨在检验和提高学习数据库的能力,有助于培养学习兴趣。二、设计要求本次课程设计选择酒店客房预订管理系统为设计题目,要求设计出可适用于酒店客房的预订管理要求.通过本系统,能够实现完成客户预订客房的功能。要求结合课堂所学知识和生活中的信息管理和应用需求,完成本次酒店客房预订管理系
2、统的设计和实现。3、 需 求 分 析1、 市 场 需 求随着人类社会进入信息时代,计算机越来越多地活跃在社会各个领域,成为不可缺少的工具,尤其在管理方面,管理软件的出现使大量繁琐复杂的问题变得简单易行。在人民生活水平提高的同时,餐饮,住宿,娱乐业在服务行业中占有越来越重要的地位。要使在当前酒店行业日趋激烈的竞争中脱颖而出,必须努力发展自己在管理方面的特色,避免传统管理方法的失误,使酒店的信誉以及各个管理方面都能够出现零失误,给管理者和普通的营业员带来操作上的方便,对整个酒店各个方面的业务带来快捷,方便,高效的服务,才是管理软件的成功之处。现今酒店宾馆的规模不断扩大,客户数量急剧增加,有关客户的
3、各种信息也成倍增长,尤其是大量的客房预订信息。面对庞大的信息量,需要有客户信息管理系统来提高客户管理工作的效率。通过这样的系统,可以做到信息的规范管理,科学统计和快速查询,从而减少管理方面的工作量。当前许多酒店正在逐步完善客户信息管理工作,需要一个能满足内部管理需求,提高管理效率的应用系统进行内部管理。许多酒店经过多年的发展,规模不断扩大,客流量成倍增长,积累了大量的客户信息急需进行统一管理以防信息的流失。因此,许多酒店需要一个功能全面的客户信息管理系统来进行管理,以使管理客户信息的工作在该系统的配合下更加高效和便捷。2、用户需求该酒店预订管理系统使用户能迅速而便捷的了解和查询酒店信息,根据自
4、己的需求来预订房间。一个方便地实现对客房变更、房价及预订信息的自动化操作。 使用该系统全面管理酒店信息,为用户节省时间和人力,更能全面、有效地掌握酒店基本情况,及时获取最新的准确资料和信息。该软件能系统管理酒店的信息,功能与实现方面有相当的针对性和实用性。该系统的主要功能有酒店信息管理,房间类型管理,订单信息管理,业务人员编辑和系统用户管理。四、系统功能模块图根据上述系统功能分析,能得出下面系统软件功能模块图:1 、整体模块分配该系统充分考虑用户的操作简便性,实现快捷操作。它有以下四大模块:(1)订房:按照客户需求,为新客户分配新客房。(2)退订:删除已退客户信息,及时更新客房留存状态,方便新
5、客户入住。(3)客房信息:可以添加新客房,修改客房描述(房间等级,内部设施等),删除客房以及查看所有客房的状态信息。(4)客户信息:可以添加新客户,修改客户信息(客户编号,客户姓名) ,删除已退订客户信息以及查看所有客户的订房状态信息。2、客户信息子模块(1)新增:录入客户编号、客户姓名等信息(2)更改:更改相应客户的个人信息。(3)删除:删除相应客户的个人信息。(4)查询:查询所需客户的订房信息。(5)显示:显示所有预订客户的个人信息以及预订房号。(6)全删:删除所有客户信息。3 、客房信息子模块(1)新增:录入客房编号、客房描述等相关信息。(2)更改:更改相应客房的信息。(3)删除:删除相
6、应客户及客房的信息。(4)查询:查询所需客房的订房状态。(5)显示:显示所有客房的房号以及预订状态信息。(6)全删:删除所有客房信息。五、ER 模型mnn1 n1n11n111 111顾 客 退房 结算账单登记客 房预订预订人结算前台接待员管理管理员办理业务管理服务员服务顾 客账单编号客房编号 地 址 身份证号年 龄性 别姓 名顾客编号预订人身份证号客房编号预订编号姓 名客房价格客房编号客房类型客房状态实体属性顾客(顾客编号,姓名,性别,年龄,身份证号,地址,客房编号,账结算账单账单编号入住时间退房时间消费金额前台接待员编号客房前台接待员密 码顾客编号账单编号姓 名前台接待员编号管理员密码口令
7、姓 名管理员编号服务员姓名服务员编号单编号)预订人(姓名,身份证号,预订编号,客房编号)客房(客房编号,客房类型,客房状态,客房价格)住宿(顾客编号,客房编号,押金,入住时间,退房时间)前台接待员(前台接待员编号,姓名,账单编号,顾客编号,密码)管理员(管理员编号,姓名,密码口令)服务员(服务员编号,姓名)结算账单(账单编号,消费金额,入住时间,退房时间,前台接待员编号)六、数据库表1.t_guest(客户信息表)字段名称 字段说明 类型定义 属性限定 索引 关系(外键)Guestname 客户姓名 varChar(16) Not fullguesttype 客户类型 varChar(16)g
8、uestid 证件号 char(18) Primary KeyNot Null主索引 T_book.guestidguesttel 电话 Char(12)其中,guesttype 的默认值为普通客户 ,表示客户身份。2.t_book(预定客房表)字段名称 字段说明 类型定义 属性限定 索引 关系(外键)intime 入住时间 datatimeouttime 退房时间 datatimeroomid 房间号 Char(8) Not full t_room.roomidguestid 证件号 char(18) t_guest.guestidbookmoney 预付款 moneyorderno 预定号
9、 Char(10) Primary KeyNot Null主索引其中,预付款默认值为0 ,表示没有预付房款。3.t_room(客房信息表)字段名称 字段说明 类型定义 属性限定 索引 关系(外键)roomid 房间号 datatime Primary KeyNot Null主索引roomtype 房间类型 Varchar(16) Not nullposition 楼层 Varchar(20)price 价格 money Not nullstatus 房间状态 bit Not null其中,房间状态默认值为1,表示房间状态是否为空中的是 。4.t_vip(会员信息表)字段名称 字段说明 类型定义
10、 属性限定 索引 关系(外键)Guestname 客户姓名 varChar(16) Not fullvipno 客户类型 Char(8) Primary KeyNot Null主索引guestid 证件号 char(18) t_guest.guestiddiscount 优惠度 Numeric(2,2)其 中 , discount 的 默 认 值 为 1, 表 示 优 惠 额 度 为 0,不 优 惠 。5.t_check(账目表)字段名称 字段说明 类型定义 属性限定 索引 关系(外键)orderno 预订号 Char(10) Not full T_book.ordernoprintno 打印
11、号 Char(10) Primary KeyNot Null主索引monthly 月结 varchar(10)days 天数 Char(8)total 总计 moneyconsume 额外消费 money其中,monthly 的默认值为0,表示不月结。七 、 程 序 清 单创 建 数 据 库 的 sql 语 句 代 码 如 下 :图 7-1 创建数据库 hotel1在创建各数据表时,参考了如下的创建顺序:t_guest t_room t_book t_check t_vip ,这样创建符合逻辑思考,且容易创设外键关系。创建各数据表的具体 sql 代码如下:图 7-2 创建t_guest 表图
12、7-3 创建 t_room 表图 7-4 创建 t_book 表图 7-5 创建 t_check 表图 7-6 创建 t_vip 表八、主要代码Imports System.Data.SqlClientPublic Class Form1Dim sql As New SqlConnection(“data source =zheng-hpsqlexpress;initial catalog =hotel1;integrated security=true“)Dim yuju As StringDim spq As SqlDataAdapterDim sjj As New DataSet()Pr
13、ivate Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.LoadDim yuju9 As String = “select * from t_room “Dim spq9 As SqlDataAdapterspq9 = New SqlDataAdapter(yuju9, sql)Dim sjj9 As New DataSet()spq9.Fill(sjj9, “inn1“)ComboBox1.DataSource = sjj9.Tables(“inn1“)Co
14、mboBox1.DisplayMember = sjj9.Tables(“inn1“).Columns(0).ToStringComboBox2.DataSource = sjj9.Tables(“inn1“)ComboBox2.DisplayMember = sjj9.Tables(“inn1“).Columns(2).ToStringComboBox3.DataSource = sjj9.Tables(“inn1“)ComboBox3.DisplayMember = sjj9.Tables(“inn1“).Columns(1).ToStringComboBox4.DataSource =
15、sjj9.Tables(“inn1“)ComboBox4.DisplayMember = sjj9.Tables(“inn1“).Columns(0).ToStringEnd SubPrivate Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ClickDim yuju1 As String = “insert into t_guest values(“ & TextBox1.Text & “,“ & ListBox1.Text & “,“ & Text
16、Box2.Text & “,“ & TextBox3.Text & “)“Dim yuju2 As String = “insert into t_book values(“ & TextBox2.Text & “,“ & TextBox6.Text & “,“ & ComboBox4.Text & “,“ & TextBox4.Text & “ & _“, ,“ & TextBox15.Text & “)“Dim yujuz As String = “update t_room set status=false where roomid=“ & ComboBox4.Text & “Dim c
17、mmd As New SqlCommand(yuju1, sql)Dim cmmd2 As New SqlCommand(yuju2, sql)Dim i As IntegerDim d As Integersql.Open()Tryi = cmmd.ExecuteNonQuery()d = cmmd2.ExecuteNonQuery()Catch wx As ExceptionMsgBox(wx.Message)End Trysql.Close()MsgBox(“客户入住成功!“)End SubPrivate Sub Button9_Click(ByVal sender As System.
18、Object, ByVal e As System.EventArgs) Handles Button9.ClickDim yuju3 As String = “insert into t_vip values(“ & TextBox21.Text & “,“ & TextBox22.Text & “,“ & TextBox23.Text & “,“ & TextBox25.Text & “)“Dim cmmd3 As New SqlCommand(yuju3, sql)Dim ee As Integersql.Open()Tryee = cmmd3.ExecuteNonQuery()Catc
19、h wx2 As ExceptionMsgBox(wx2.Message)End Trysql.Close()MsgBox(“欢迎您,尊贵的会员!“)End SubPrivate Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Clickyuju = “select * from t_vip“spq = New SqlDataAdapter(yuju, sql)spq.Fill(sjj, “001“)DataGrid4.DataSource = sjj
20、.Tables(“001“)End SubPrivate Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.ClickDim yuju4 As String = “insert into t_guest values(“ & TextBox5.Text & “,“ & TextBox8.Text & “,“ & TextBox7.Text & “)“Dim yuju6 As String = “insert into t_book values(“ &
21、TextBox8.Text & “,“ & TextBox9.Text & “,“ & TextBox10.Text & “)“Dim cmmd4 As New SqlCommand(yuju4, sql)Dim cmmd6 As New SqlCommand(yuju6, sql)Dim ee2 As IntegerDim ee6 As Integersql.Open()Tryee2 = cmmd4.ExecuteNonQuery()ee6 = cmmd4.ExecuteNonQuery()Catch wx3 As ExceptionMsgBox(wx3.Message)End Trysql
22、.Close()MsgBox(“预订成功!“)End SubPrivate Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.ClickDim yuju7 As String = “select guestname,intime from t_book and t_guest where t_book.guestid=t_guest.guestid and orderno=“ & TextBox14.Text & “ “Dim spq7 As SqlData
23、Adapterspq7 = New SqlDataAdapter(yuju7, sql)Dim sjj7 As New DataSet()spq7.Fill(sjj7, “inn“)DataGrid1.DataSource = sjj7.Tables(“inn“)End SubPrivate Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.ClickDim yuju8 As String = “select * from t_book and t_gues
24、t where t_book.guestid=t_guest.guestid “Dim spq8 As SqlDataAdapterspq8 = New SqlDataAdapter(yuju8, sql)Dim sjj8 As New DataSet()spq8.Fill(sjj8, “inn3“)DataGrid1.DataSource = sjj8.Tables(“inn3“)End SubPrivate Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button
25、6.ClickDim yujua As String = “select * from t_room where position=“ & ComboBox2.Text & “ “Dim spqa As SqlDataAdapterspqa = New SqlDataAdapter(yujua, sql)Dim sjja As New DataSet()spqa.Fill(sjja, “inna“)DataGrid2.DataSource = sjja.Tables(“inna“)End SubPrivate Sub Button7_Click(ByVal sender As System.O
26、bject, ByVal e As System.EventArgs) Handles Button7.ClickDim yuju9 As String = “select * from t_room “Dim spq9 As SqlDataAdapterspq9 = New SqlDataAdapter(yuju9, sql)Dim sjj9 As New DataSet()spq9.Fill(sjj9, “inn1“)DataGrid2.DataSource = sjj9.Tables(“inn1“)End SubPrivate Sub Button12_Click(ByVal sende
27、r As System.Object, ByVal e As System.EventArgs) Handles Button12.ClickDim yuju10 As String = “select orderno,bookmoney,discount from t_book , t_vip where t_book.guestid=t_vip.guestid and roomid=“ & TextBox16.Text & “ “Dim spq10 As SqlDataAdapterspq10 = New SqlDataAdapter(yuju10, sql)Dim sjj10 As Ne
28、w DataSet()spq10.Fill(sjj10, “inn2“)DataGrid2.DataSource = sjj10.Tables(“inn2“)Dim mybind As BindingManagerBasemybind = BindingContext(sjj10, “inn2“)TextBox17.DataBindings.Add(“text“, sjj10.Tables(“inn2“), “orderno“)TextBox18.DataBindings.Add(“text“, sjj10.Tables(“inn2“), “discount“)TextBox19.DataBi
29、ndings.Add(“text“, sjj10.Tables(“inn2“), “bookmoney“)End SubPrivate Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.ClickDim yuju11 As String = “select orderno,bookmoney,discount,intime,bookmoney from t_room and t_vip where t_room.guestid=t_vip.guestid a
30、nd roomid=“ & TextBox16.Text & “ “Dim spq11 As SqlDataAdapterspq11 = New SqlDataAdapter(yuju11, sql)Dim sjj11 As New DataSet()spq11.Fill(sjj11, “inn5“)TextBox20.Text = sjj11.Tables(“inn5“).Columns(4).ToStringDim yujus As String = “update t_room set status=true where roomid=“ & TextBox16.Text & “Dim
31、cmmds As New SqlCommand(yujus, sql)Dim yuju15 As String = “insert into t_check values(“ & TextBox17.Text & “,“ & TextBox20.Text & “,“ & TextBox17.Text & “)“Dim cmmd15 As New SqlCommand(yuju15, sql)Dim yuju16 As String = “delete from t_book where roomid=“ & TextBox16.Text & “Dim cmmd16 As New SqlComm
32、and(yuju16,sql)Dim ii As IntegerDim ff As IntegerDim tt As Integersql.Open()Tryii = cmmds.ExecuteNonQuery()ff = cmmds.ExecuteNonQuery()tt = cmmds.ExecuteNonQuery()Catch wxs As ExceptionMsgBox(wxs.Message)End Trysql.Close()MsgBox(“退房成功!欢迎再次光临!“)End SubPrivate Sub Button2_Click(ByVal sender As System.
33、Object, ByVal e As System.EventArgs) Handles Button2.ClickEndEnd SubPrivate Sub Button13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.ClickDim yujub As String = “select * from t_room where position=“ & ComboBox1.Text & “ “Dim spqb As SqlDataAdapterspqb = New Sql
34、DataAdapter(yujub, sql)Dim sjjb As New DataSet()spqb.Fill(sjjb, “innb“)DataGrid2.DataSource = sjjb.Tables(“innb“)End SubPrivate Sub Button14_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button14.ClickDim yujuc As String = “select * from t_room where position=“ & ComboBox
35、3.Text & “ “Dim spqc As SqlDataAdapterspqc = New SqlDataAdapter(yujuc, sql)Dim sjjc As New DataSet()spqc.Fill(sjjc, “inna“)DataGrid2.DataSource = sjjc.Tables(“innc“)End SubEnd Class九、设计总结通过此次数据库的课程设计,真正达到了学与用的结合,增强了对数据库方面应用的理解,对自己今后参与开发数据库系统积累了不少经验,在实验过程中,从建立数据开始,对数据库设计理念及思想上有更高的认识,从需求分析,到概念设计和逻辑设计,
36、E-R 图的表示,懂得了不少有关数据库开发过程中的知识,增强了自己在数据库中应用 SQL 语言的灵活性,其中包括,插入、删除、修改、查询,牵涉表和表之间的联系,主建与外主键的定义,约束项的设置,使逻辑更严密,在学习过程中,我也上网查了不少资料,也看了一些别人设计的旅馆管理信息系统的设计报告,学以致用,自我创新,完成了这份自己的报告,从中在学到用,从用又到学,受益匪浅。东华理工大学课程设计评分表学生姓名: 肖莹 班级: 1240301 学号:201240030145课程设计题目:酒店客房预订管理系统项目内容 满分 实 评能结合所学课程知识、有一定的能力训练。符合选题要求(5 人一题) 10选题
37、工作量适中,难易度合理 10能熟练应用所学知识,有一定查阅文献及运用文献资料能力 10理论依据充分,数据准确,公式推导正确 10能应用计算机软件进行编程、资料搜集录入、加工、排版、制图等 10能力水平能体现创造性思维,或有独特见解 10总体设计正确、合理,各项技术指标符合要求。 10说明书综述简练完整,概念清楚、立论正确、技术用语准确、结论严谨合理;分析处理科学、条理分明、语言流畅、结构严谨、版面清晰10设计说明书栏目齐全、合理,符号统一、编号齐全。 格式、绘图、表格、插图等规范准确,符合国家标准 10成果质量有一定篇幅,字符数不少于 5000 10总 分 100指导教师评语:指导教师签名:年 月 日