旅店管理信息系统课程设计.docx
- 文档编号:8440308
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:24
- 大小:169.10KB
旅店管理信息系统课程设计.docx
《旅店管理信息系统课程设计.docx》由会员分享,可在线阅读,更多相关《旅店管理信息系统课程设计.docx(24页珍藏版)》请在冰豆网上搜索。
旅店管理信息系统课程设计
课
程
设
计
报
告
设计选题:
旅店管理系统
姓名:
蒲江红
班级:
09信管1班
学号:
200920605129
老师:
张老师
目录
一、系统分析
(1)系统概述、必要性分析………………………………………2
(2)业务流程图……………………………………………………2
(3)数据流程图…………………………………………………4
(4)数据字典………………………………………………………5
二、系统设计部分
(1)功能结构图设计………………………………………………5
(2)代码设计………………………………………………………5
(3)系统运行环境与数据库设计…………………………………16
(4)输出、输入设计………………………………………………17
(*5)程序使用说明…………………………………………………18
三、系统实施部分
*开发系统展示以及上交……………………………………………18
一、系统分析
1.系统概述
1、该系统主要实现旅馆管理的下述功能:
2、实现床位的分配和回收。
旅客住店时,把旅客信息及其住房要求输入计算机系统中,快速获取符合旅客需求的房间等级、空房和空床信息,为旅客提供满意的服务。
旅客退房时,把所退房间的等级、空房和空床信息录入计算机系统中,自动完成退房工作。
3、查询。
对整个旅馆床位信息的查询:
根据对旅馆实际情况的调查,主要实现如下查询:
全店可分配男床位总数及女床位总数的查询、各个等级可分配男床总数和女床总数的查询、各个等级的空房信息和房间利用情况的查询。
还有对旅客信息的查询,包括现在正入住或者已经入住的旅客信息的查询。
另外,查询中,系统还实现了旅客信息的实时修改功能。
4、系统重置。
可对系统数据进行清空,实现该系统的再次利用。
2.必要性分析
随着电子电子计算机技术的进步,为各行各业的自动化管理打开了方便之门。
在新的条件下,有必要实现旅馆的自动化管理,提高旅馆工作人员的效率。
本系统从对旅馆的核心业务——床位的管理出发,着眼于为旅馆管理创造自动化的办公环境而开发。
3.业务流程图
、
4.数据流程图
二、系统设计部分
1.功能结构图设计
2.代码设计
VERSION5.00
BeginVB.Formabed
Caption="床位分配"
ClientHeight=4365
ClientLeft=60
ClientTop=345
ClientWidth=7290
LinkTopic="Form2"
MDIChild=-1'True
ScaleHeight=4365
ScaleWidth=7290
WindowState=2'Maximized
BeginVB.CommandButtonCommand1
Caption="关闭"
Height=375
Left=4200
TabIndex=9
Top=3600
Width=1215
End
BeginVB.CommandButtonCmdabed
Caption="分配房间"
BeginPropertyFont
Name="宋体"
Size=9.75
Charset=134
Weight=400
Underline=0'False
Italic=0'False
Strikethrough=0'False
EndProperty
Height=375
Left=1440
TabIndex=4
Top=3600
Width=1215
End
BeginVB.ComboBoxCombotype
Height=300
Left=2040
Style=2'DropdownList
TabIndex=3
Top=2880
Width=1335
End
BeginVB.TextBoxtxtdate
Height=375
Left=4800
TabIndex=2
Top=960
Width=1335
End
BeginVB.TextBoxtxtage
Height=375
Left=4800
TabIndex=1
Top=2880
Width=1335
End
BeginVB.TextBoxtxtname
Height=375
Left=4800
TabIndex=0
Top=2280
Width=1335
End
BeginVB.FrameFrame1
Caption="基本信息"
Height=1695
Left=480
TabIndex=5
Top=1800
Width=6495
BeginVB.Labellabno
Height=375
Left=1680
TabIndex=15
Top=480
Width=1095
End
BeginVB.LabelLabel6
Caption="编号:
"
Height=375
Left=480
TabIndex=14
Top=480
Width=1215
End
BeginVB.LabelLabel3
Caption="性别:
"
BeginPropertyFont
Name="宋体"
Size=9.75
Charset=134
Weight=400
Underline=0'False
Italic=0'False
Strikethrough=0'False
EndProperty
Height=375
Left=480
TabIndex=8
Top=1080
Width=1215
End
BeginVB.LabelLabel2
Caption="年龄:
"
BeginPropertyFont
Name="宋体"
Size=9.75
Charset=134
Weight=400
Underline=0'False
Italic=0'False
Strikethrough=0'False
EndProperty
Height=375
Left=3600
TabIndex=7
Top=1080
Width=735
End
BeginVB.LabelLabel1
Caption="姓名:
"
BeginPropertyFont
Name="宋体"
Size=9.75
Charset=134
Weight=400
Underline=0'False
Italic=0'False
Strikethrough=0'False
EndProperty
Height=495
Left=3600
TabIndex=6
Top=480
Width=735
End
End
BeginVB.FrameFrame2
Caption="床位分配"
BeginPropertyFont
Name="楷体"
Size=10.5
Charset=134
Weight=400
Underline=0'False
Italic=0'False
Strikethrough=0'False
EndProperty
Height=3975
Left=240
TabIndex=10
Top=240
Width=6975
BeginVB.FrameFrame3
Caption="等级要求"
Height=975
Left=240
TabIndex=11
Top=360
Width=6495
BeginVB.ComboBoxComboclass
Height=300
Left=1560
Style=2'DropdownList
TabIndex=16
Top=360
Width=1335
End
BeginVB.LabelLabel4
Caption="日期:
"
Height=375
Left=3600
TabIndex=13
Top=360
Width=735
End
BeginVB.LabelLabel5
Caption="房间等级:
"
Height=255
Left=480
TabIndex=12
Top=360
Width=975
End
End
End
End
AttributeVB_Name="abed"
AttributeVB_GlobalNameSpace=False
AttributeVB_Creatable=False
AttributeVB_PredeclaredId=True
AttributeVB_Exposed=False
'分配模块
OptionExplicit
'定义模块级变量
DimnamAsString,ageAsString,typAsString,datAsString,classnamAsString,gnoAsString,strQueryAsString
PrivatecnnrmisAsNewADODB.Connection
PrivatersrmisAsNewADODB.Recordset
PrivateSubCmdabed_Click()
'接收数据
DimsexAsString
dat=txtdate.Text
sex=Trim(Combotype.Text)
classnam=Trim(Comboclass.Text)
age=Trim(txtage.Text)
nam=txtname.Text
'对输入的字段进行验证,若为空,返回重新输入
IfLen(classnam)=0Then
MsgBox"请输入房间等级!
",,"输入等级"
Comboclass.SetFocus
ElseIfLen(nam)=0Then
MsgBox"请输入姓名!
",,"输入姓名"
txtname.SetFocus
ElseIfLen(nam)>8Then
MsgBox"用户名过长,非法!
",,"用户名非法"
txtname.Text=""
txtname.SetFocus
ElseIfLen(sex)=0Then
MsgBox"请输入性别!
",,"输入性别"
Combotype.SetFocus
ElseIfLen(age)=0Then
MsgBox"请输入年龄!
",,"输入年龄"
txtage.SetFocus
ElseIfLen(age)>3Then
MsgBox"年龄非法!
",,"年龄非法"
txtage.Text=""
txtage.SetFocus
ElseIfIsNumeric(age)=FalseThen
MsgBox"年龄应为数字!
",,"重输年龄"
txtage.Text=""
txtage.SetFocus
Else
'对男旅客类型赋为1,女旅客类型赋为2
Ifsex="男"Then
typ=1
EndIf
Ifsex="女"Then
typ=2
EndIf
'对ado对象adodc2进行赋值
DimstrQueryAsString,numAsInteger'num用来存储空床总数
init_ado
'查询空床总数
strQuery="selectsum(bsurplus)fromroomwheretype='0'ortype='"&typ&"'"
rsrmis.OpenstrQuery,cnnrmis,,,adCmdText
num=rsrmis.Fields(0).Value
rsrmis.Close
Ifnum=0Then
MsgBox"旅馆已经客满!
",,"客满"
Else
'num不为零时继续根据等级分配床位
strQuery="selectclass,cnumfromrclasswhereclassname='"&classnam&"'"'根据等级名称查询等级代码
rsrmis.OpenstrQuery,cnnrmis,,,adCmdText
DimclassnoAsString,totalbedAsString
classno=Trim(rsrmis.Fields(0).Value)
totalbed=rsrmis.Fields
(1).Value
rsrmis.Close
'下面查询是否有旅客要求等级的空床位
DimiAsInteger
strQuery="selectcount(*)fromroomwhereclass='"&classno&"'andbsurplus<>0and(type='0'ortype='"&typ&"')"
rsrmis.OpenstrQuery,cnnrmis,,,adCmdText
i=rsrmis.Fields(0).Value
rsrmis.Close
DimresponseAsInteger
Ifi=0Then'此时该等级没有空床位
response=MsgBox("该等级没有空床位,愿意更改等级否?
",vbOKCancel+vbQuestion,"无空床位")
Ifresponse=2Then'此时旅客不愿意更改等级
txtname=""
txtage=""
Else'旅客愿意更改等级,返回分配界面重新输入等级
Comboclass.SetFocus
EndIf
Else
'下面给旅客分配房间和床位号
strQuery="selectRno,bsurplusfromroomwhereclass='"&classno&"'andbsurplus<>0and(type='0'ortype='"&typ&"')"
rsrmis.OpenstrQuery,cnnrmis,,,adCmdText
DimbnumAsInteger,noAsString,surplusAsInteger'bnum用来记录分配给用户的床位号,no用来记录分配给用户的房间号
no=rsrmis.Fields(0).Value
surplus=rsrmis.Fields
(1).Value'surplus记录该房间的床位数,以便后面对该房间空床数的更新
rsrmis.Close
'求房间号为no的房间中,未用的床位号最小的空床位分配给该旅客
DimjAsInteger
j=1
strQuery="select*fromgroomwhererno='"&no&"'orderbynumasc"
rsrmis.OpenstrQuery,cnnrmis,,,adCmdText
Ifrsrmis.BOFThen
bnum=1
Else
rsrmis.MoveFirst
Fori=1Torsrmis.RecordCount
Ifrsrmis!
num<>jThen
ExitFor
EndIf
j=j+1
rsrmis.MoveNext
Nexti
bnum=j
EndIf
rsrmis.Close
'下面对groom表录入旅客的入住信息
rsrmis.Open"groom",cnnrmis,,,adCmdTable
Ifrsrmis.RecordCount<>0Then
rsrmis.MoveLast
EndIf
rsrmis.AddNew
rsrmis!
gno=gno
rsrmis!
rno=no
rsrmis!
num=bnum
rsrmis.Update
rsrmis.Close
'下面对ginfo表录入旅客的个人信息
rsrmis.Open"ginfo",cnnrmis,,,adCmdTable
Ifrsrmis.RecordCount<>0Then
rsrmis.MoveLast
EndIf
rsrmis.AddNew
rsrmis!
gno=gno
rsrmis!
Name=nam
rsrmis!
age=age
rsrmis!
Type=typ
rsrmis!
dat=Trim(CStr(Date))
rsrmis.Update
rsrmis.Close
'下面对room表中的现有床位数减一,如果是空房间,房间的类型变为1或2
surplus=surplus-1
strQuery="select*fromroomwhererno='"&no&"'"
rsrmis.OpenstrQuery,cnnrmis,,,adCmdText
rsrmis!
bsurplus=surplus
Ifrsrmis!
Type=0Then
rsrmis!
Type=typ
EndIf
rsrmis.Update
rsrmis.Close
'打印分配成功信息
Dimstr1AsString
str1="编号:
"&gno&""&"房间等级:
"&classnam&""&"房间号码:
"&no&""&"床位号码:
"&bnum
response=MsgBox(str1,vbOKOnly+vbInformation,"分配成功!
")
txtname=""
txtage=""
'把旅客入住信息存入info_store表中,以便长期保存和查询
rsrmis.Open"info_store",cnnrmis,,,adCmdTable
Ifrsrmis.RecordCount<>0Then
rsrmis.MoveLast
EndIf
rsrmis.AddNew
rsrmis!
gno=gno
rsrmis!
Name=nam
rsrmis!
age=age
rsrmis!
Type=typ
rsrmis!
check_in_dat=Trim(CStr(Date))
rsrmis!
rno=no
rsrmis!
num=bnum
rsrmis.Update
rsrmis.Close
Setrsrmis=Nothing
cnnrmis.Close
Setcnnrmis=Nothing
gno_producer
labno.Caption=gno
EndIf
EndIf
EndIf
EndSub
PrivateSubCommand1_Click()
UnloadMe
EndSub
PrivateSubForm_Load()
'完成对ComboBox对象Combotype和Comboclass的初始化。
DimiAsInteger
WithCombotype
.AddItem"男"
.AddItem"女"
EndWith
txtdate.Text=Date
init_ado
strQuery="selectclassnamefromrclass"
rsrmis.OpenstrQuery,cnnrmis,,,adCmdText
rsrmis.MoveFirst
WithComboclass
Fori=1Torsrmis.RecordCount
.AddItemrsrmis!
classname
rsrmis.MoveNext
Nexti
EndWith
rsrmis.Close
cnnrmis.Close
gno_producer
labno.Caption=gno
EndSub
PrivateSubgno_producer()
'下面的代码利用随机数产生0~10000之间的旅客编号(Gno字段)
init_ado
gno=""
strQuery="select*fromgroom"
rsrmis.OpenstrQuery,cnnrmis,,,adCmdText
Ifrsrmis.RecordCount=0Then
gno=str(Int(Rnd()*10000))
gno=Trim(gno)
Else
rsrmis.MoveFirst
DimresAsInteger,iAsInteger,jAsInteger
DoWhile1
rsrmis.MoveFirst
gno=str(Int(Rnd()*10000))
gno=Trim(gno)
j=0
Fori=1Torsrmis.RecordCount
res=StrComp(gno,Trim(rsrmis.Fields(0).Value))
Ifres<>0Then
j=j+1
Else
ExitFor
EndIf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 旅店 管理信息系统 课程设计