当前位置:文档之家› 数据库课程设计酒店管理信息系统

数据库课程设计酒店管理信息系统

《数据库》课程设计课题酒店管理系统班级0904学号34姓名罗浩成绩2010年10 月30 日酒店管理信息系统⒈编写目的酒店在正常的运营中需要对客房资源、顾客信息、结算信息进行管理,利用宾馆管理信息系统及时了解各个环节中信息的变更,有利于提高管理效率。

⒉系统功能分析系统开发的总体任务是实现宾馆各种信息的系统化、规范化和自动化。

主要完成功能:●有关客房标准的制定、标准信息的输入,包括标准编号、标准名称、房间面积、床位数量、住房单价、是否有空调、电视机、电话以及单独卫生间等。

●客房标准信息的修改、查询等。

●客房基本信息的输入,包括客房编号、客房类型、客房位置、客房单价、备注等。

●客房基本信息的查询、修改,包括客房编号、客房类型、客房位置、客房单价、备注等。

●剩余客房信息的查询等。

●订房信息的输入,包括客房编号、客房种类、客房位置、客房单价、顾客姓名、顾客身份证号码、入住日期、折扣、备注信息等。

●订房信息的修改和查询,包括客房编号、客房种类、客房位置、客房单价、顾客姓名、顾客身份证号码、入住日期、折扣、备注信息等。

●结算信息的输入,包括客房编号、客房种类、位置、客房单价、顾客姓名、顾客身份证号码、入住日期、折扣、结算日期、备注信息等。

●结算信息的修改和查询,包括客房编号、客房种类、客房位置、客房单价、顾客姓名、顾客身份证号码、入住日期、折扣、结日期、备注信息等。

⒊系统功能模块设计按结构化程序设计思想,分析得出如下系统功能模块图图Ⅰ系统功能模块图⒋数据库设计数据库设计步骤:●数据库需求分析●数据库概念结构设计●数据库逻辑结构设计①数据库需求分析分析调查有关宾馆管理信息需求的基础上得本系统所处理的数据流程图Ⅱ宾馆管理信息系统数据流程图针对一般宾馆管理信息系统的需求,通过对宾馆管理过程的内容和流程分析,设计如下面所示的数据项和数据结构:●客房标准信息,包括的数据项有:标准编号、标准名称、房间面积、床位数量、住房单价、是否有空调、电视、电话、单独卫生间等。

●客房信息,包括的数据项有:客房编号、客房种类、客房位置、客房单价、备注等。

●订房信息,包括的数据项有:订房编号、客房编号、客房种类、客房位置、客房备注信息、顾客姓名、顾客身份证号码、入住时间、折扣、备注等。

●结算信息,包括的数据项有:订房编号、客房编号、客房种类、客房位置、客房备注信息、顾客姓名、顾客身份证号码、入住时间、折扣、结算时间、备注等。

②数据库概念结构设计本系统根据以上的设计规划出的实体有:客房标准信息实体、客房信息实体、订房信息实体、结算信息实体。

各个实体具体的描述E-R图如下:客房标准信息实体E-R图客房信息实体E-R图订房信息实体E-R图结算信息实体E-R图实体之间关系E-R图③数据库逻辑结构设计首先将宾馆管理信息系统的数据库概念结构转化为SQL 2000数据库系统所支⒌数据库结构的实现利用SQL 2000数据库系统中的查询分析实现数据库的逻辑结构,其表格如下:创建系统用户表格 user_InfoCREATE TABLE [dbo].[user_Info1]([user_ID][char](10) COLLATE Chinese_PRC_CI_AS NOT NULL,[user_PWD] [char] (10) COLLATE Chinese_PRC_CI_AS NULL,[user_Des] [char](10) COLLATE Chinese_PRC_CI_AS NULL) ON [PRIMARY]创建客房标准信息表格roomtypeCREATE TABLE [dbo].[roomtype]([typeid][char](10) COLLATE Chinese_PRC_CI_AS NOT NULL,[typename][char](10) COLLATE Chinese_PRC_CI_AS NOT NULL,[area][numeric](5,0) NULL,[bednum][numeric](2,0) NULL,[haircondition][char](2) COLLATE Chinese_PRC_CI_AS NULL,[htelephone][char](2) COLLATE Chinese_PRC_CI_AS NULL,[htelevision][char](2) COLLATE Chinese_PRC_CI_AS NULL,[htoilet][char](2) COLLATE Chinese_PRC_CI_AS NULL,[price][numeric](10,2)NULL) ON [PRIMARY]创建客房信息表格roomsCREATE TABLE [dbo].[rooms]([roomNO][char](10) COLLATE Chinese_PRC_CI_AS NOT NULL,[roomtype][char](10) COLLATE Chinese_PRC_CI_AS NOT NULL,[roomposition][char](20) COLLATE Chinese_PRC_CI_AS NULL,[roomprice][numeric](10,2) NULL,[putup][char](2) COLLATE Chinese_PRC_CI_AS NOT NULL,[roommemo][text] COLLATE Chinese_PRC_CI_AS NULL) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]创建订房信息表bookinCREATE TABLE [dbo].[bookin]([bookno][char](14) COLLATE Chinese_PRC_CI_AS NOT NULL,[customname][char](10) COLLATE Chinese_PRC_CI_AS NOT NULL,[customID][char](18) COLLATE Chinese_PRC_CI_AS NOT NULL,[roomno][char](10) COLLATE Chinese_PRC_CI_AS NOT NULL,[indate][datetime] NULL,[discount][numeric](2,0) NULL,[inmemo][text] COLLATE Chinese_PRC_CI_AS NULL,[checkdate][datetime] NULL,[ammount][numeric](10,2) NULL) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]⒍宾馆管理信息系统具体程序实现客房信息管理模块的创建客房信息管理模块主要实现如下功能:·添加客房信息·修改客房信息·删除客房信息·查询客房信息具体实现代码如下:Private Sub From_Load()‘载入窗体时,自动添加客房信息种类Dim sSql As StringDim intCount As IntegerDim MsgText As StringDim mrcc As ADODB.RecordsetIf gintRmode=1 Then ‘判断是否处于添加状态Me.Caption=me.Caption&“添加”txtSQL=”select DISTINCT typename from roomtype”Set mrc=ExecuteSQL(txtSQL,MsgText)If Not mrc.EOF ThenDo While Not mrc.EOFcboItem(0).AddItem Trim(mrc.Fields(0))mrc.MoveNextLoopcboItem(0).ListIndex=0‘显示记录内容ElseMsgBox “请先进行客房标准设置!”,vbOKOnly+vbExclamation,“警告”cmdSave.Enabled=FalseExit SubEnd Ifmrc.CloseElseIf gintRmode=2 Then ‘判断是否处于修改状态Set mrcc=ExecuteSQL(txtSQL,MsgText)‘设置SQL语句显示当前选择记录If mrcc.EOF=False ThenWith mrcctxtItem(0)=.Fields(0)For intCount=1 To 2If Not IsNull(.Fields(intCount+1))Then‘判断内容是否为空txtItem(intCount)=.Fields(intCount+1)End IfNext intCounttxtItem(3)=.Fields(5)txtSQL=”select DISTINCT typename from roomtype” Set mrc=ExecuteSQL(txtSQL,MsgText)If Not mrc.EOF ThenDo While Not mrc.EOFcboItem(0).AddItem Trim(mrc.Fields(0))mrc.MoveNextLoopcboItem(0).ListIndex=0ElseMsgBox“请先进行客房标准设置!”,vbOKOnly+vbExclamation,“警告” cmdSave.Enabled=FalseExit SubEnd Ifmrc.CloseEnd WithEnd Ifmrcc.CloseMe.Caption=Me.Caption&“修改”End IfmblChange=FalseEnd SubPrivate Sub cmdSave_Click()‘单击保存按钮触发事件Dim intCount As IntegerDim sMeg As StringDim mrcc As ADODB.RecordsetDim Msgtext As StringFor intCount=0 To 3If Trim(TxtItem(intCount)&””)=”” ThenSelect Case intCountCase 0sMeg=“客房编号”Case 1sMeg=“客房位置”End SelectsMeg=sMeg&“不能为空!”MsgBox sMeg,vbOKOnly+vbExclamation,“警告”txtItem(intCount).SetFocusExit SubEnd IfNext intCountIf gintRmode=1 Then‘判断是否有重复记录txtSQL=”select * from rooms where roomNO=‘”&Trim(txtItem(0))&”’”Set mrc=ExecuteSQL(txtSQL,msgText)If mrc.EOF=False ThenMsgBox “已经存在此客房编号的记录!”,vbOKOnly+vbExclamation,“警告”txtItem(0).SetFocusExit SubEnd Ifmrc.CloseEnd IfIf gintRmode=2 Then ‘判断是否处于修改状态txtSQL=”delete from rooms where roomNO=‘”&Trim(txtItem(0))&”’” Set mrc=ExecuteSQL(txtSQL,MsgText)End IftxtSQL=”select*from rooms”‘再加入新记录Set mrc=ExecuteSQL(txtSQL,MsgText)mrc.AddNew‘为数据库对象添加记录mrc.Fields(0)=Trim(txtItem(0))mrc.Fields(1)=Trim(txtItem(0))For intCount=1 To 2If Trim(txtItem(intCount)&””)=”” Thenmrc.Fields(intCount+1)=NullElsemrc.Fields(intCount+1)=Trim(txtItem(intCount))End IfNext intCountmrc.Fields(4)=””mrc.Fields(5)=Trim(txtItem(3))mrc.Updatemrc.CloseIf gintRmode=1 ThenFor intCount=0 To 3txtItem(intCount)=””Next intCountmblChange=FalseIf flagRedit ThenUnload frmRoomfrmRoom.txtSQL=”select*from rooms”‘重新显示数据frmRoom.ShowEnd IfElseIf gintRmode=2 ThenUnload MeIf flagRedit ThenUnload frmRoomEnd IffrmRoom.txtSQL=”select*from rooms”frmRoom.ShowEnd IfEnd Sub·修改客房信息Private Sub menuModifyroom_Click()‘选择修改房间信息,触menuModifyroom的Click事件,程序判断为修改状态后,首先删除原有记录,然后把新内容加入到数据库中Dim intCount As IntegerIf flagRedit Then ‘判断记录窗体是否打开If frmRoom.msgList.Rows>1 Then‘判断客房信息列表内容是否为空gintRmode=2‘设置为修改状态intCount=frmRoom.msgList.Row‘纪录当前记录位置frmRoom1.txtSQL=”select*from rooms where roomNO=’”&Trim(frmRoom.msgList.TextMatrix(intCount,1))&”’”frmRoom1.ShowElseCall menuAddroom_Click‘添加记录End IfElsefrmRoom.txtSQL=”select*from rooms”frmRoom.ShowEnd IfEnd Sub·删除客房信息Private Sub menuDeleteroom_Click()Dim txtSQL As StringDim intCount As IntegerDim mrc As ADODB.RecordsetDim MsgText As StringIf flagTedit ThenIf frmRoom.msgList.Rows>1 Then‘判断客房信息列表内容是否为空 If MsgBox(“真的要删除这条文件记录么?”,vbOKCancel+vbExclamation,“警告”)=vbOK ThenintCount=frmRoom.msgList.Row‘记载当前记录位置txtSQL=”delete from rooms where roomNO=‘”&Trim(frmRoom.msgList.TextMatrix(intCount,1)&”’”Set mrc=ExecuteSQL(txtSQL,MsgText)‘执行删除操作Unload frmRoomfrmRoom.txtSQL=”select*from rooms”frmRoom.ShowEnd IfEnd IfEnd IfEnd Sub·查询客房信息Private Sub From_Load()‘载入窗体时,将自动加入所有记录的入库时间Dim i As IntegerDim j As IntegerDim sSql As StringDim txtSQL As StringDim MsgText As StringDim mrc As ADODB.RecordsettxtSQL=”select DISTINCT typename from roomtype”‘初始化客房种类Set mrc=ExecuteSQL(txtSQL,MsgText)If Not mrc.EOF ThenDo While Not mrc.EOFCombo1.AddItem Trim(mrc.Fields(0))Mrc.MoveNextLoopCombo1.ListIndex=0ElseMsgBox “请先进行客房标准设置!”,vbOKOnly+vbExclamation,”警告” Exit SubEnd Ifmrc.CloseEnd SubPrivate Sub cmdOK_Click()‘设置完查询内容和方式后,单击cmdOk按钮查询 Dim sQSql As StringIf chkItem(0).Value=vbChecked ThensQSql=”roomNO=’”&Trim(txtItem(0)&””)&”’”End IfIf chkItem(1).Value=vbChecked ThenIf Trim(sQSql&””)=”” ThensQSql=”roomtype=’”&Trim(Combo1&””)&”’”ElseEnd IfEnd IfIf Trim(sQSql)=”” ThenMsgBox “请设置查询条件!”,vbOKOnly+vbExclamation,“警告”Exit SubElseIf flagRedit ThenUnload frmRoomEnd IffrmRoom.txtSQL=”select*from rooms where”&sQSqlfrmRoom.ShowEnd IfMe.HideEnd Sub7.小结对于本次课程设计主要从三方面,即知识、技能和态度,学生采用自我评估方式来检查自己,这样可以产生这种日常性的,内省方式的自我评估,以检查自己的学习进度和成绩,改进学习方法和增强学习自信心。

相关主题