宾馆管理信息系统论文.doc

上传人:豆**** 文档编号:17559491 上传时间:2022-05-25 格式:DOC 页数:31 大小:263KB
返回 下载 相关 举报
宾馆管理信息系统论文.doc_第1页
第1页 / 共31页
宾馆管理信息系统论文.doc_第2页
第2页 / 共31页
点击查看更多>>
资源描述

《宾馆管理信息系统论文.doc》由会员分享,可在线阅读,更多相关《宾馆管理信息系统论文.doc(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流宾馆管理信息系统论文.精品文档.宾馆管理信息系统系统平台:Windows 2000数据库服务器:Microsoft SQL Server 2000开发工具:Visual Basic 6.0系统开发人员: 编写目的宾馆在正常的运营中需要对客房资源、顾客信息、结算信息进行管理,利用宾馆管理信息系统及时了解各个环节中信息的变更,有利于提高管理效率。系统功能分析 系统开发的总体任务是实现宾馆各种信息的系统化、规范化和自动化。主要完成功能: 有关客房标准的制定、标准信息的输入,包括标准编号、标准名称、房间面积、床位数量、住房单价、是否有空调、电视机、电

2、话以及单独卫生间等。 客房标准信息的修改、查询等。 客房基本信息的输入,包括客房编号、客房类型、客房位置、客房单价、备注等。 客房基本信息的查询、修改,包括客房编号、客房类型、客房位置、客房单价、备注等。 剩余客房信息的查询等。 订房信息的输入,包括客房编号、客房种类、客房位置、客房单价、顾客姓名、顾客身份证号码、入住日期、折扣、备注信息等。 订房信息的修改和查询,包括客房编号、客房种类、客房位置、客房单价、顾客姓名、顾客身份证号码、入住日期、折扣、备注信息等。 结算信息的输入,包括客房编号、客房种类、位置、客房单价、顾客姓名、顾客身份证号码、入住日期、折扣、结算日期、备注信息等。 结算信息的

3、修改和查询,包括客房编号、客房种类、客房位置、客房单价、顾客姓名、顾客身份证号码、入住日期、折扣、结日期、备注信息等。系统功能模块设计 按结构化程序设计思想,分析得出如下系统功能模块图 宾馆管理信息系统结算信息管理订房信息管理客房信息管理系统管理结算信息查询结算信息修改结算信息添加订房信息查询订房信息修改订房信息添加剩余客房信息查询设置客房信息设置客房标准密码管理用户管理客房信息查询客房信息修改客房信息添加客房标准修改客房标准添加 图系统功能模块图数据库设计数据库设计步骤: 数据库需求分析 数据库概念结构设计 数据库逻辑结构设计数据库需求分析分析调查有关宾馆管理信息需求的基础上得本系统所处理的

4、数据流程 客房标准设置基本信息输入客房登记基本信息录入客房信息管理顾客登记订房信息管理订房信息管理结算信息输入结算信息管理客房信息返回图 宾馆管理信息系统数据流程图 针对一般宾馆管理信息系统的需求,通过对宾馆管理过程的内容和流程分析,设计如下面所示的数据项和数据结构: 客房标准信息,包括的数据项有:标准编号、标准名称、房间面积、床位数量、住房单价、是否有空调、电视、电话、单独卫生间等。 客房信息,包括的数据项有:客房编号、客房种类、客房位置、客房单价、备注等。 订房信息,包括的数据项有:订房编号、客房编号、客房种类、客房位置、客房备注信息、顾客姓名、顾客身份证号码、入住时间、折扣、备注等。 结

5、算信息,包括的数据项有:订房编号、客房编号、客房种类、客房位置、客房备注信息、顾客姓名、顾客身份证号码、入住时间、折扣、结算时间、备注等。数据库概念结构设计 本系统根据以上的设计规划出的实体有:客房标准信息实体、客房信息实体、订房信息实体、结算信息实体。各个实体具体的描述-图如下:客房标准信息实体标准编号标准名称床位数量客房单价客房标准信息实体-图客房信息实体客房标准客房编号客房位置客房单价客房信息实体-图订房信息实体客房信息顾客信息折 扣入住时间订房信息实体-图结算信息实体客房信息顾客信息结算时间结算金额结算信息实体-图客房标准信息客房登记客房信息管理订 房订房信息管理结算信息管理客房结算实

6、体之间关系-图数据库逻辑结构设计 首先将宾馆管理信息系统的数据库概念结构转化为SQL 2000数据库系统所支持的实际数据模型,即:数据库的逻辑结构。其各个表格的设计结果如下列名数据类型可否为空说明TypeidVarcharNOT NULL标准编号TypenameVarcharNOT NULL标准名称AreaNumericNULL房间面积BednumNumericNULL床位数量HairconditionVarcharNULL是否有空调HtelephoneVarcharNULL是否有电话HtelevisionVarcharNULL是否有电视HtoiletVarcharNULL是否有单独卫生间Pr

7、iceNumericNULL单价Roomtype 客房标准信息表列名数据类型可否为空说明roomNOVarcharNOT NULL客房编号RoomtypeVarcharNOT NULL客房种类RoompositionVarcharNULL客房位置RoompriceNumericNULL单价PutupVarcharNOT NULL是否被预定RoommemoTextNULL备注Rooms 客房信息表列名数据类型可否为空说明Bookno VarcharNOT NULL订房编号CustomnameVarcharNOT NULL 顾客姓名CustomIDVarcharNOT NULL身份证号码Roomn

8、oVarcharNOT NULL客房编号IndateDatetimeNULL入住日期DiscountNumericNULL折扣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)

9、COLLATE Chinese_PRC_CI_AS NULL, user_Des char(10) COLLATE 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, haircond

10、itionchar(2) COLLATE Chinese_PRC_CI_AS NULL, htelephonechar(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_

11、CI_AS NOT NULL, roomtypechar(10) COLLATE Chinese_PRC_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 TAB

12、LE dbo.bookin( booknochar(14) COLLATE Chinese_PRC_CI_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_

13、PRC_CI_AS NULL, checkdatedatetime NULL, ammountnumeric(10,2) NULL) ON PRIMARY TEXTIMAGE_ON PRIMARY宾馆管理信息系统具体程序实现创建公用模块 Module1.bas 添加公共数据操作函数,用以执行各种SQL语句。添加函数ExecuteSQL,代码如下:Public Function ExecuteSQL(ByValSQL As String,MsgString AsString)_ As ADODB.Recordset 执行SQL语句,并返回记录集对象Dim cnn As ADODB.Connect

14、ionDim rst As ADODB.RecordsetDim sTokens() As String异常处理On Error GoTo ExecuteSQL_Error用Split函数产生一个包含各个子串的数组 sTokens=Split(SQL) Set cnn=NEW ADODB.Connection打开连接 cnn.Open ConnectString If InStr(“INSERT,DELETE,UPDATE”,UCase$(sTokens(0) Then Cnn.Execute SQL MsgString=sTokens(0)&”query successful” Else S

15、et rst=NEW ADODO.Recordset rst.Open Trim$(SQL),cnn,adOpenKeyset,adLockOptimistic rst.MoveLast get RecordCount 返回记录集对象 Set ExecuteSQL=rst MsgString=”查询到”&rst.RecordCount&”条记录” End IfExecuteSQL_Exit: Set rst=Nothing Set cnn=Nothing Exit FunctionExecuteSQL_Error: MsgString=”查询错误:”&Err.Description Resum

16、e ExecuteSQL_ExitEnd FunctionPublic Sub EnterToTab(Keyasc As Integer)判断是否为回车键 If Keyasc=13 Then Keyasc用来保存当前按键 转换成Tab键 SendKeys”TAB” End IfEnd sub添加全局变量,用来记录各个窗口的读写状态,代码如下:Public flagTedit As Boolean 标示是否进入修改的窗体Public flagRedit As BooleanPublic flagBedit As BooleanPublic flagCedit As BooleanPublic g

17、intCmode As Integer Public gintTmode As Integer 记录是添加还是修改状态,1为添加,2为修改Public gintRmode As IntegerPublic gintBmode As Integer Public flagSedit As Boolean系统用户管理模块的创建 用户管理模块主要实现: 用户登陆。 添加用户。修改用户 具体客房标准添加代码:Private Sub Form_Load() 载入窗体后,判断所处状态 Dim intCount As Integer Dim MsgText As String Dim i As Intege

18、r If gintTmode=1 Then 判断是否属于添加状态 Me.Caption=Me.Caption & ”添加” For i=0 To 3 Combo1(i).AddItem ”否” Combo1(i).AddItem ”是” Combo1(i).ListIndex=0 Next i ElseIf gintTmode=2 Then 判断是否处于修改状态 Set mrc=ExecuteSql(txtSQL,MsgText) If mrc.EOF=false Then With mrc For intCount=0 To 3 txtItem(intCount)=.Fields(intCo

19、unt) Next intCount txtItem(4)=.Fileds(8) For i=0 To 3 Combo1(i).Additem ”否” Combo1(i).Additem ”是” Combo1(i).ListIndex=0 Next i End With txtItem(0).Enabled=False End If Me.Caption=Me.caption&”修改”End IfmblChang=False End SubPrivate Sub cmd_Click()用户输入内容完毕后,单击cmdSave按钮触发Click事件 Dim intCount As Integer

20、Dim sMeg As String Dim MsgText As String For intCount=0 To 4 判断是否输入内容 If Trim(txtItem(intCount)&”)=” Then Select Case intCount Case 0 sMeg=”标准编号” Case 1 sMeg=”标准名称” Case 2 sMeg=”房间面积” Case 3 sMeg=”床位数量” Case 4 sMeg=”床位单价” End Select sMeg=sMeg&”不能为空!” MsgBox sMeg,vbOkOnly+vbExclamation,”警告” txtItem(i

21、ntCount).SetFocus Exit Sub End if Next intCount 判断输入内容是否为数字 For intCount=2 To 4 If Not IsNumeric(Trim(txtItem(intCount) Then Select Case intCount Case 2 sMeg=”房间面积” Case 3 sMeg=”床位数量” Case 4 sMeg=”床位单价” End Select sMeg=sMeg&”请输入数字!”MsgBox sMeg,vbOKOnly+vbExclamation,”警告”txtItem(intCount).SeFocusExit

22、 Sub End If Next intCount If gintTmode=1 Then 判断是否有相同ID记录 txtSQL=”select*from roomtype where typeid_ =”&Trim(txtItem(0)&” Set mrc=ExecuteSQL(txtSQL,MsgText) If mrc.EOF=False Then MsgBox “已经存在此标准编号的记录!”,vbOKOnly+vbExclamation,”警告” txtItem(0).SetFocus Exit Sub End If Mrc.Close End If txtSQL=”select *

23、from roomtype where typeid”&Trim(txtItem(0)&”and typename=”&Trim(txtItem(1)&” Set mrc=ExecuteSQL(txtSQL,MsgText) If mrc.EOF=False Then MsgBox”已经存在相同客房标准的记录!”,vbOKOnly+vbExclamation,“警告” txtItem(1).Setfocus Exit Sub End If txtSQL=”delete from roomtype where typeid=”&Trim(txtItem(0)&”删除已有记录 Set mrc=Ex

24、ecuteSQL(txtSQL,MsgText) txtSQL=”select *from roottype”添加新记录 Set mrc=ExecuteSQL(txtSQL,MsgText) mrc.AddNew For intCount=0 To 3 mrc.Fields(intCount)=Trim(txtItem(intCount) Next intCount For intCount=0 To 3 mrc.Fields(intCount+4)=Trim(Combo1(intCount) Next intCount mrc.Fields(8)=Trim(txtItem(4) mrc.Up

25、date 更新数据库 mrc.Close if gintTmode=1 Then 判断是否属于添加状态 MsgBox “添加纪录成功!”,vbOKOnly+vbExclamtion,“添加记录” For intCount=0 To 4 txtItem(intCount)=” 清除已经输入的内容 Next intCount For intCount=0 To 3 Combo1(intCount).ListIndex=0 Next intCount mblChange=False判断是否打开窗口 if flagTedit Then Unload frmRoomtype frmRoomtype.tx

26、tSQL=“select *from roomtype” frmRoomtype.Show End If ElseIf gintTmode=2 Then 判断是否处于修改状态 Unload Me If flagTedit Then Unload frmRoomtype EndIf frmRoomtype.txtSQL=”select *from roomtype” frmRoomtype.Show End If End SubPrivate Sub txtItem_GotFocus(Index As Integer)文本框获得焦点时触发该事件,即自动选中输入的内容,便于修改txtItem(In

27、dex).SelStart=0txtItem(Index).SelLength=Len(txtItem(Index)End SubPrivate Sub cmdExit_Click()单击按钮cmdExit取消添加信息If mblChange And cmdSave.Enabled Then If MsgBox(“保存当前记录的变化吗?”,vbOKCancel+vbExclamation,”警告”)=vbOK Then 保存 Call cmdSave_Click End IfEnd IfUnload MeEnd SubPrivate Sub txtItem_KeyDown(Index As I

28、nteger,KeyCode As Integer,Shift_ As Integer)输入完内容,单击回车键将自动进入下一个文本框,触发文本框的Keydown事件 EnterToTab KeyCodeEnd Sub修改客房标准窗体的创建Private Sub From_Load()ShowTitleShowDataflagTedit=TrueEnd SubPrivate Sub ShowTitle()调用showTitle函数,显示表头Dim i As IntegerWith msgList .Cols=10 .TextMatrix(0,1)=”标准编号” .TextMatrix(0,2)=

29、”标准名称” .TextMatrix(0,3)=”房间面积” .TextMatrix(0,4)=”床位数量” .TextMatrix(0,5)=”是否有空调” .TextMatrix(0,6)=”是否有电话” .TextMatrix(0,7)=”是否有电视” .TextMatrix(0,8)=”是否有卫生间” .TextMatrix(0,9)=”房间单价” .FixedRows=1固定表头 For i=0 To 9 设置各列的对齐方式 .ColAlignment(i)=0 Next i .FillStyle=flexFillRepeat表头项居中 .Col=0 .Row=0 .RowSel=1

30、 .ColSel=.Cols-1 .CellAlignment=4 .ColWidth(0)=300设置单元大小 .ColWidth(1)=1000 .ColWidth(2)=2000 .ColWidth(3)=2000 .ColWidth(4)=1000 .ColWidth(5)=1000 .ColWidth(6)=1000 .ColWidth(7)=1000 .ColWidth(8)=1000 .ColWidth(9)=1000 .Row=1End WithEnd SubPrivate Sub ShowData()调用showData函数,显示记录列表 Dim i As Integer S

31、et mrc=ExecuteSQL(txtSQL,MsgText)根据需要设置SQL语句,显示需要的记录 With msgList .Rows=1 Do While Not mrc.EOF .Rows=Rows+1 For i=1 To mrc.Fields.Count Select Case mrc.Fields(i-1).Type Case adDBDate .TextMatrix(.Rows-1,i)=Format(mrc.Fields(i-1)&”,”yyyy-mm-dd”) Case Else .TextMatrix(.Rows-1,i)=mrc.Fields(i-1)&” End

32、Select Next i Mrc.MoveNext Loop End With mrc.CloseEnd SubPrivate Sub msgList_MouseUp(Button As Integer,Shift As Integer,x As Single,y As Single)选择记录,然后单击鼠标右键,触发MouseUp事件 If Button=2 And Shift=0 Then PopupMenu fMainFrom.menuRoomtype End IfEnd SubPrivate Sub menuModifyroomtype_Click() Dim intCount As

33、Integer If flagTedit Then 判断是否打开记录窗体 If frmRoomtype.msgList.Rows1 Then fintTmode=2设置为修改状态 intCount=frmRoomtype.msgList.Row记下选择记录 frmRoomtype1.txtSQL=”select*from roomtype where typeid”&Trim(frmRoomtype.msgList.TextMatrix(intCount,1)&” frmRoomtype1.Show Else Call menuAddroomtype_Click End If Else frm

34、Roomtype.txtSQL=”select*from roomtype” frmRoomtype.Show End IfEnd SubPrivate Sub From_Resize()窗体变化时,调整标签和表格位置,使标签处于窗体的最上方,而表格始终处于标签下方 If Me.WindowStatevbMinimized And fMainFrom.WindowStatevbMinimized Then边界处理 If Me.Scaleheight10*lblTitle.Height Then Exit Sub End If If Me.ScaleWidth1 Then If MsgBox(“

35、真的要删除这条文件记录么?”,vbOKCancel+vbExclamation,”警告”)=vbOK Then intCount=frmRoomtype.msgList.Row txtSQL=”delete from roomtype where typeid”&Trim(frmRoomtype.msgList.TextMatrix(intCount,1)&” Set mrc=ExecuteSQL(txtSQL,MsgText) Unload frmRoomtype关闭记录窗体 frmRoomtype.txtSQL=”select*from roomtype”重新选择所有记录 frmRoomt

36、ype.Show End If End If End IfEnd Sub客房信息管理模块的创建 客房信息管理模块主要实现如下功能: 添加客房信息 修改客房信息 删除客房信息 查询客房信息 具体实现代码如下: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=me.Caption&“添加” txtSQL=”select DISTINCT typename from roomtype” Set mrc=ExecuteSQL(txtSQL,MsgText)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁