旅店管理信息系统课程设计.docx

上传人:b****6 文档编号:8440308 上传时间:2023-01-31 格式:DOCX 页数:24 大小:169.10KB
下载 相关 举报
旅店管理信息系统课程设计.docx_第1页
第1页 / 共24页
旅店管理信息系统课程设计.docx_第2页
第2页 / 共24页
旅店管理信息系统课程设计.docx_第3页
第3页 / 共24页
旅店管理信息系统课程设计.docx_第4页
第4页 / 共24页
旅店管理信息系统课程设计.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

旅店管理信息系统课程设计.docx

《旅店管理信息系统课程设计.docx》由会员分享,可在线阅读,更多相关《旅店管理信息系统课程设计.docx(24页珍藏版)》请在冰豆网上搜索。

旅店管理信息系统课程设计.docx

旅店管理信息系统课程设计

 

设计选题:

旅店管理系统

姓名:

蒲江红

班级:

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1