《数据库课程设计-酒店管理信息系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计-酒店管理信息系统.docx(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据库课程设计课题 酒店管理系统 班级 0904 学号 0942001458134 姓名 罗 浩 成绩 2010年 10 月 30 日酒店管理信息系统编写目的酒店在正常的运营中需要对客房资源、顾客信息、结算信息进行管理,利用宾馆管理信息系统及时了解各个环节中信息的变更,有利于提高管理效率。系统功能分析 系统开发的总体任务是实现宾馆各种信息的系统化、规范化和自动化。主要完成功能: 有关客房标准的制定、标准信息的输入,包括标准编号、标准名称、房间面积、床位数量、住房单价、是否有空调、电视机、电话以及单独卫生间等。 客房标准信息的修改、查询等。 客房基本信息的输入,包括客房编号、客房类型、客房位置、
2、客房单价、备注等。 客房基本信息的查询、修改,包括客房编号、客房类型、客房位置、客房单价、备注等。 剩余客房信息的查询等。 订房信息的输入,包括客房编号、客房种类、客房位置、客房单价、顾客姓名、顾客身份证号码、入住日期、折扣、备注信息等。 订房信息的修改和查询,包括客房编号、客房种类、客房位置、客房单价、顾客姓名、顾客身份证号码、入住日期、折扣、备注信息等。 结算信息的输入,包括客房编号、客房种类、位置、客房单价、顾客姓名、顾客身份证号码、入住日期、折扣、结算日期、备注信息等。 结算信息的修改和查询,包括客房编号、客房种类、客房位置、客房单价、顾客姓名、顾客身份证号码、入住日期、折扣、结日期、
3、备注信息等。系统功能模块设计 按结构化程序设计思想,分析得出如下系统功能模块图 宾馆管理信息系统结算信息管理订房信息管理客房信息管理系统管理结算信息查询结算信息修改结算信息添加订房信息查询订房信息修改订房信息添加剩余客房信息查询设置客房信息设置客房标准密码管理用户管理客房信息查询客房信息修改客房信息添加客房标准修改客房标准添加 图系统功能模块图数据库设计数据库设计步骤: 数据库需求分析 数据库概念结构设计 数据库逻辑结构设计数据库需求分析分析调查有关宾馆管理信息需求的基础上得本系统所处理的数据流程 客房标准设置基本信息输入客房登记基本信息录入客房信息管理顾客登记订房信息管理订房信息管理结算信息
4、输入结算信息管理客房信息返回图 宾馆管理信息系统数据流程图 针对一般宾馆管理信息系统的需求,通过对宾馆管理过程的内容和流程分析,设计如下面所示的数据项和数据结构: 客房标准信息,包括的数据项有:标准编号、标准名称、房间面积、床位数量、住房单价、是否有空调、电视、电话、单独卫生间等。 客房信息,包括的数据项有:客房编号、客房种类、客房位置、客房单价、备注等。 订房信息,包括的数据项有:订房编号、客房编号、客房种类、客房位置、客房备注信息、顾客姓名、顾客身份证号码、入住时间、折扣、备注等。 结算信息,包括的数据项有:订房编号、客房编号、客房种类、客房位置、客房备注信息、顾客姓名、顾客身份证号码、入
5、住时间、折扣、结算时间、备注等。数据库概念结构设计 本系统根据以上的设计规划出的实体有:客房标准信息实体、客房信息实体、订房信息实体、结算信息实体。各个实体具体的描述-图如下:客房标准信息实体标准编号标准名称床位数量客房单价客房标准信息实体-图客房信息实体客房标准客房编号客房位置客房单价客房信息实体-图订房信息实体客房信息顾客信息折 扣入住时间订房信息实体-图结算信息实体客房信息顾客信息结算时间结算金额结算信息实体-图客房标准信息客房登记客房信息管理订 房订房信息管理结算信息管理客房结算实体之间关系-图数据库逻辑结构设计 首先将宾馆管理信息系统的数据库概念结构转化为SQL 2000数据库系统所
6、支持的实际数据模型,即:数据库的逻辑结构。其各个表格的设计结果如下列名数据类型可否为空说明TypeidVarcharNOT NULL标准编号TypenameVarcharNOT NULL标准名称AreaNumericNULL房间面积BednumNumericNULL床位数量HairconditionVarcharNULL是否有空调HtelephoneVarcharNULL是否有电话HtelevisionVarcharNULL是否有电视HtoiletVarcharNULL是否有单独卫生间PriceNumericNULL单价Roomtype 客房标准信息表列名数据类型可否为空说明roomNOVar
7、charNOT NULL客房编号RoomtypeVarcharNOT NULL客房种类RoompositionVarcharNULL客房位置RoompriceNumericNULL单价PutupVarcharNOT NULL是否被预定RoommemoTextNULL备注Rooms 客房信息表列名数据类型可否为空说明Bookno VarcharNOT NULL订房编号CustomnameVarcharNOT NULL 顾客姓名CustomIDVarcharNOT NULL身份证号码RoomnoVarcharNOT NULL客房编号IndateDatetimeNULL入住日期DiscountNum
8、ericNULL折扣InmenoTextNULL备注CheckdateDatetimeNULL结算日期AmountNumericNULL金额Bookin 订房信息表数据库结构的实现利用SQL 2000数据库系统中的查询分析实现数据库的逻辑结构,其表格如下:创建系统用户表格 user_Info CREATE TABLE dbo.user_Info1( user_IDchar(10) COLLATE Chinese_PRC_CI_AS NOT NULL, user_PWD char (10) COLLATE Chinese_PRC_CI_AS NULL, user_Des char(10) COL
9、LATE Chinese_PRC_CI_AS NULL ) ON PRIMARY 创建客房标准信息表格roomtype CREATE TABLE dbo.roomtype( typeidchar(10) COLLATE Chinese_PRC_CI_AS NOT NULL, typenamechar(10) COLLATE Chinese_PRC_CI_AS NOT NULL, areanumeric(5,0) NULL, bednumnumeric(2,0) NULL, hairconditionchar(2) COLLATE Chinese_PRC_CI_AS NULL, htelepho
10、nechar(2) COLLATE Chinese_PRC_CI_AS NULL, htelevisionchar(2) COLLATE Chinese_PRC_CI_AS NULL, htoiletchar(2) COLLATE Chinese_PRC_CI_AS NULL, pricenumeric(10,2)NULL ) ON PRIMARY创建客房信息表格roomsCREATE TABLE dbo.rooms( roomNOchar(10) COLLATE Chinese_PRC_CI_AS NOT NULL, roomtypechar(10) COLLATE Chinese_PRC_
11、CI_AS NOT NULL, roompositionchar(20) COLLATE Chinese_PRC_CI_AS NULL, roompricenumeric(10,2) NULL, putupchar(2) COLLATE Chinese_PRC_CI_AS NOT NULL, roommemotext COLLATE Chinese_PRC_CI_AS NULL ) ON PRIMARY TEXTIMAGE_ON PRIMARY创建订房信息表bookinCREATE TABLE dbo.bookin( booknochar(14) COLLATE Chinese_PRC_CI_
12、AS NOT NULL, customnamechar(10) COLLATE Chinese_PRC_CI_AS NOT NULL, customIDchar(18) COLLATE Chinese_PRC_CI_AS NOT NULL, roomnochar(10) COLLATE Chinese_PRC_CI_AS NOT NULL, indatedatetime NULL, discountnumeric(2,0) NULL, inmemotext COLLATE Chinese_PRC_CI_AS NULL, checkdatedatetime NULL, ammountnumeri
13、c(10,2) NULL) ON PRIMARY TEXTIMAGE_ON PRIMARY宾馆管理信息系统具体程序实现客房信息管理模块的创建 客房信息管理模块主要实现如下功能: 添加客房信息 修改客房信息 删除客房信息 查询客房信息 具体实现代码如下:Private Sub From_Load()载入窗体时,自动添加客房信息种类 Dim sSql As String Dim intCount As Integer Dim MsgText As String Dim mrcc As ADODB.Recordset If gintRmode=1 Then 判断是否处于添加状态 Me.Caption
14、=me.Caption&“添加” txtSQL=”select DISTINCT typename from roomtype” Set mrc=ExecuteSQL(txtSQL,MsgText) If Not mrc.EOF Then Do While Not mrc.EOF cboItem(0).AddItem Trim(mrc.Fields(0) mrc.MoveNext Loop cboItem(0).ListIndex=0显示记录内容 Else MsgBox “请先进行客房标准设置!”,vbOKOnly+vbExclamation,“警告” cmdSave.Enabled=Fals
15、e Exit Sub End If mrc.Close ElseIf gintRmode=2 Then 判断是否处于修改状态 Set mrcc=ExecuteSQL(txtSQL,MsgText)设置SQL语句显示当前选择记录 If mrcc.EOF=False Then With mrcc txtItem(0)=.Fields(0) For intCount=1 To 2 If Not IsNull(.Fields(intCount+1)Then判断内容是否为空 txtItem(intCount)=.Fields(intCount+1) End If Next intCount txtIte
16、m(3)=.Fields(5) txtSQL=”select DISTINCT typename from roomtype” Set mrc=ExecuteSQL(txtSQL,MsgText) If Not mrc.EOF Then Do While Not mrc.EOF cboItem(0).AddItem Trim(mrc.Fields(0) mrc.MoveNext Loop cboItem(0).ListIndex=0 Else MsgBox“请先进行客房标准设置!”,vbOKOnly+vbExclamation,“警告” cmdSave.Enabled=False Exit S
17、ub End If mrc.Close End With End If mrcc.Close Me.Caption=Me.Caption&“修改” End If mblChange=FalseEnd SubPrivate Sub cmdSave_Click()单击保存按钮触发事件 Dim intCount As Integer Dim sMeg As String Dim mrcc As ADODB.Recordset Dim Msgtext As String For intCount=0 To 3 If Trim(TxtItem(intCount)&”)=” Then Select Cas
18、e intCount Case 0 sMeg=“客房编号” Case 1 sMeg=“客房位置” End Select sMeg=sMeg&“不能为空!” MsgBox sMeg,vbOKOnly+vbExclamation,“警告” txtItem(intCount).SetFocus Exit Sub End If Next intCount If gintRmode=1 Then判断是否有重复记录 txtSQL=”select * from rooms where roomNO=”&Trim(txtItem(0)&” Set mrc=ExecuteSQL(txtSQL,msgText)
19、If mrc.EOF=False Then MsgBox “已经存在此客房编号的记录!”,vbOKOnly+vbExclamation,“警告” txtItem(0).SetFocus Exit Sub End If mrc.Close End If If gintRmode=2 Then 判断是否处于修改状态 txtSQL=”delete from rooms where roomNO=”&Trim(txtItem(0)&” Set mrc=ExecuteSQL(txtSQL,MsgText) End If txtSQL=”select*from rooms”再加入新记录 Set mrc=E
20、xecuteSQL(txtSQL,MsgText) mrc.AddNew为数据库对象添加记录 mrc.Fields(0)=Trim(txtItem(0) mrc.Fields(1)=Trim(txtItem(0) For intCount=1 To 2 If Trim(txtItem(intCount)&”)=” Then mrc.Fields(intCount+1)=Null Else mrc.Fields(intCount+1)=Trim(txtItem(intCount) End If Next intCount mrc.Fields(4)=” mrc.Fields(5)=Trim(tx
21、tItem(3) mrc.Update mrc.Close If gintRmode=1 Then For intCount=0 To 3 txtItem(intCount)=” Next intCount mblChange=False If flagRedit Then Unload frmRoom frmRoom.txtSQL=”select*from rooms”重新显示数据 frmRoom.Show End If ElseIf gintRmode=2 Then Unload Me If flagRedit Then Unload frmRoom End If frmRoom.txtS
22、QL=”select*from rooms” frmRoom.Show End If End Sub修改客房信息Private Sub menuModifyroom_Click()选择修改房间信息,触menuModifyroom的Click事件,程序判断为修改状态后,首先删除原有记录,然后把新内容加入到数据库中 Dim intCount As Integer If flagRedit Then 判断记录窗体是否打开 If frmRoom.msgList.Rows1 Then判断客房信息列表内容是否为空 gintRmode=2设置为修改状态 intCount=frmRoom.msgList.Ro
23、w纪录当前记录位置frmRoom1.txtSQL=”select*from rooms where roomNO=”&Trim(frmRoom.msgList.TextMatrix(intCount,1)&”frmRoom1.Show Else Call menuAddroom_Click添加记录End If Else frmRoom.txtSQL=”select*from rooms” frmRoom.ShowEnd IfEnd Sub 删除客房信息Private Sub menuDeleteroom_Click() Dim txtSQL As String Dim intCount As
24、Integer Dim mrc As ADODB.Recordset Dim MsgText As String If flagTedit Then If frmRoom.msgList.Rows1 Then判断客房信息列表内容是否为空 If MsgBox(“真的要删除这条文件记录么?”,vbOKCancel+vbExclamation,“警告”)=vbOK Then intCount=frmRoom.msgList.Row记载当前记录位置 txtSQL=”delete from rooms where roomNO=”&Trim(frmRoom.msgList.TextMatrix(intC
25、ount,1)&” Set mrc=ExecuteSQL(txtSQL,MsgText)执行删除操作Unload frmRoom frmRoom.txtSQL=”select*from rooms” frmRoom.Show End If End If End If End Sub查询客房信息Private Sub From_Load()载入窗体时,将自动加入所有记录的入库时间 Dim i As Integer Dim j As Integer Dim sSql As String Dim txtSQL As String Dim MsgText As String Dim mrc As AD
26、ODB.Recordset txtSQL=”select DISTINCT typename from roomtype”初始化客房种类 Set mrc=ExecuteSQL(txtSQL,MsgText) If Not mrc.EOF Then Do While Not mrc.EOF Combo1.AddItem Trim(mrc.Fields(0) Mrc.MoveNext Loop Combo1.ListIndex=0 Else MsgBox “请先进行客房标准设置!”,vbOKOnly+vbExclamation,”警告” Exit Sub End If mrc.CloseEnd S
27、ubPrivate Sub cmdOK_Click()设置完查询内容和方式后,单击cmdOk按钮查询 Dim sQSql As String If chkItem(0).Value=vbChecked Then sQSql=”roomNO=”&Trim(txtItem(0)&”)&” End If If chkItem(1).Value=vbChecked Then If Trim(sQSql&”)=” Then sQSql=”roomtype=”&Trim(Combo1&”)&” Else End If End If If Trim(sQSql)=” Then MsgBox “请设置查询条件!”,vbOKOnly+vbExclamation,“警告” Exit Sub Else If flagRedit Then Unload frmRoom End If frmRoom.txtSQL=”select*from rooms where”&sQSql frmRoom.Show End If Me.HideEnd Sub7小结对于本次课程设计主要从三方面,即知识、技能和态度,学生采用自我评估方式来检查自己,这样可以产生这种日常性的,内省方式的自我评估,以检查自己的学习进度和成绩,改进学习方法和增强学习自信心。
限制150内