VB酒店管理系统 4.docx

上传人:b****3 文档编号:5355831 上传时间:2022-12-15 格式:DOCX 页数:22 大小:1.09MB
下载 相关 举报
VB酒店管理系统 4.docx_第1页
第1页 / 共22页
VB酒店管理系统 4.docx_第2页
第2页 / 共22页
VB酒店管理系统 4.docx_第3页
第3页 / 共22页
VB酒店管理系统 4.docx_第4页
第4页 / 共22页
VB酒店管理系统 4.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

VB酒店管理系统 4.docx

《VB酒店管理系统 4.docx》由会员分享,可在线阅读,更多相关《VB酒店管理系统 4.docx(22页珍藏版)》请在冰豆网上搜索。

VB酒店管理系统 4.docx

VB酒店管理系统4

 

VB.NET设计报告

 

酒店客房管理系统

一、课程设计的目的

本系统是模拟酒店客房管理系统。

主要用于宾馆旅客入住情况登记,包括旅客的姓名及身份证号的登记,以及入住房间信息.当旅客离开时,需要办理退房结帐手续.对于一定时间没有旅客入住情况实现基本查询,报表打印功能.对于宾馆本身也实现了客房增减,入住情况查询等功能.

二、功能简介

系统开发的总体任务是实现酒店的管理,主要完成的功能有:

1、入住信息管理:

即管理和维护住户的各项数据信息,包括入住者登记号、姓名、身份证号、房间号、登记日期、性别、籍贯。

当住户离开酒店时,允许高级管理员和系统管理员添加住户信息、删除住户信息和维护住户信息。

2、酒店客房信息管理:

即管理和维护酒店的各项数据信息,包括房间号、客房等级、客房价格、客房类型、客房状态、客房备注信息。

其中房间号必须是酒店客房数据表中的一种。

允许高级管理员和系统管理员添加客房信息、删除客房信息和维护客房信息。

3、酒店客房类别管理:

即管理和维护酒店客房类别的各项数据信息,包括有普通客房和贵宾客房两项。

允许高级管理员和系统管理员添加客房类别信息、删除客房类别信息和维护客房类别信息。

4、入住和退房管理:

即管理和维护客房的入住、退房及客户的缴纳房款等信息。

包括住户的登记号、姓名、身份证号、房间号、登记日期、籍贯等数据。

主要功能有客房入住、客房退还和缴纳罚款3项功能

5、管理员权限管理:

按照数据表里的记录来确定管理员权限,并允许其执行相应的功能。

这里我们定义了管理员的作用:

(1)、可以添加管理员

(2)、可以添加职员信息。

(3)、可以授权用户。

管理员可以进行所有权限。

三、数据库设计

3.1建立Access数据库及表

在一个酒店管理系统中,数据库的地位是非常重要的,是一个系统正常运行的基础。

本系统的数据库是采用Microsoft公司的Access2003设计的。

在数据库的设计过程中,首先是收集、分析需求;再从需求抽象出一般的实体、关系和他们的属性;再将这些实体、关系和属性按照一定的规则转化为二元表结构。

本系统中共有4数据表

表3-1为Usersinfo—管理员资料数据表。

管理员资料数据表记录了所有管理的基本资料,管理员可添加、删除和查询该表。

该表包括管理员ID、姓名、密码和权限等资料。

表3-1为UsersInfo—管理员资料数据表

字段名

类型

大小

说明

姓名

Text

20

管理人员帐号

密码

Text

20

管理人员密码

权限

Text

1

管理人员权限

表3-2旅客信息表为旅客的个人信息加入住客房信息数据结构表

字段名

类型

大小

说明

登记号

Text

8

旅客入住号

姓名

Text

8

旅客姓名

身份证号码

Text

18

旅客身份证号

房间号

Text

3

入住房间号

登记日期

Text

日期/时间

旅客入住时间

性别

Text

3

旅客性别

籍贯

Text

8

旅客籍贯

表3-3为room资料数据表。

room料数据表记录了room基本资料,可供查询。

该表主要包括了房间号、客房等级、客房类型、客房价格、客房状态、客房备注信息等基本资料。

表3-2room资料数据表

字段名

类型

大小

说明

房间号

Text

3

房间号

客房等级

Text

8

客房等级

客房类型

Text

8

客房类型

客房价格

Text

单精度型

客房价格

客房状态

Text

3

客房状态

客房备注信息

备注

8

客房备注信息

表3-4为quit资料数据表。

quit资料数据表记录了所有退房的基本资料,管理员可添加、删除和查询该表。

类型的基本资料,包括登记号、登记日期、退房日期、付款金额、退房备注信息。

表3-4为quit资料数据表

字段名

类型

大小

说明

登记号

Text

8

旅客入住号

登记日期

日期/时间

旅客登记时间

退房时间

日期/时间

旅客退房时间

付款金额

Text

单精度型

付费金额

退房备注信息

Text

8

退房备注信息

3.2连接数据库

由于本系统是采用ADO对象访问数据库的技术,所以在VB中需要添加ADO库。

添加的方法是在VB中选择“工程”—>“引用”命令,在对话框中选择MicrodoftActiveXDataObjects2.0Library,单击“确定”按钮。

在程序设计的公共模块中,先定义ADO连接对象。

语句如下:

PublicconnAsNewADODB.connection‘标记连接对象’

DimconnectionAsString

ConnectionString="provider=microsoft.jet.oledb.4.0;"&"datasource=carshale.mdb"

conn.OpenConnectionString

四、具体实现

4.1创建主窗体

建立主窗体:

单击”工程”->”添加MDI窗体”菜单,在弹出的对话框中单击”打开”按钮则为当前项目添加了一个MDI窗体。

设置好MDI窗体属性后,设置此项目的属性。

单击”工程”->”工程1属性”菜单,进入项目属性设置窗体。

在此项目属性窗体中通用选项卡的启动对象中选择MDIfrmMain项,将这一多文档窗体作为程序的启动窗体。

图4—1菜单结构

4.2主要窗体的实现

(1)登录模块的设计:

此模块的功能是检查管理员是否有进入系统的权限。

用到的主要控件为二个text、两个label和两个Button按钮。

窗体界面如图4-2所示。

图4-2登录窗体的界面

在此模块中管理员可以选择相应的管理员帐号进行登录,减去了忘记帐号或帐号名输入不方便的烦恼。

(2)主页面模块的设计:

此模块是系统服务器端的主要控制界面,通过菜单的选择,可以控制系统的所有功能,窗体界面如图4-3,4-4所示。

主界面的设计步骤:

1)设计主界面控件布局:

在主界面的布局中使用了工具栏(ToolBar)、时钟控件(timer)和图象列表(ImageList)等非Vb标准控件。

2)工具栏的设置:

给工具栏添加按钮

3)添加菜单:

菜单的使用是为了更好的给用户提供功能指引。

图4-3图象列表

图4-3工具栏列表

系统通过Timer控件在状态栏中显示系统的当前时间,Timer控件的时间间隔是1000,也就是1秒钟,这样状态栏中的时间每秒钟都会变化,达到显示系统时钟的目的,具体实现代码为:

PrivateSubTimer1_Timer()

StatusBar1.Panels

(2).Text=Date&""&Time

EndSub

(4)创建系统主界面

当系统运行时,首先进入登录界面,当输入帐号,密码合法时,则启动系统主界面。

图4-4系统主窗体的界面

5)用户进入客房需要必要的登记来完成如图:

 

图4-5用户登记界面

图4-6已经登记的用户

(6)退房信息:

当旅客离开宾馆时,需要为其办理退房手续,在这过程中需要在旅客退房信息表中添加记录信息,以及修改客房信息表,改变客房状态。

旅客退房信息窗体,工作界面设计情况如图:

 

图4-7退房登记表

(7)查询住户信息:

此界面用于查询房间状态如是否有所需的类型或是否为空房或满房,可以全部浏览,也可以按照查询条件来查找,如图:

图4-8客房状态界面

(8)查询客房:

客查询窗体主要功能是实现客房信息查询显示,查询方式可以是按旅客姓名,登记号也可以按房间号查询。

工作界面如图:

图4-9查询住户登记表

(8)客房情况打印表:

图4-10客房情况打印表

 

五、运行效果

在完成了程序各个功能模块的创建之后,就可以运行整个系统了。

运行程序,进入系统。

1、登录系统由用户登录、修改密码、退出系统等组成。

图5-1管理员进入

2、进入主页面,登录主页面后,可进入主页面运行系统。

图5-2主页面

附录

一、酒店管理信息系统程序代码:

PrivateSubCmdOK_Click()

Dims1AsString

DimiAsInteger

DimjAsInteger

Dima(18)AsString

j=Len(txtUserName.Text)

s1=txtUserName.Text

DimcAsInteger

c=1

Fori=1Toj

a(i)=Mid(s1,i,1)'逐一判断字符的合格化

Ifa(i)=""Then

MsgBox"Error",vbOKOnly,"Error"

ExitSub

ElseIfa(i)="<"Then

MsgBox"Error",vbOKOnly,"Error"

ExitSub

ElseIfa(i)=">"Then

MsgBox"Error",vbOKOnly,"Error"

ExitSub

ElseIfa(i)="="Then

MsgBox"Error",vbOKOnly,"Error"

ExitSub

ElseIfa(i)=""Then

MsgBox"Error",vbOKOnly,"Error"

ExitSub

ElseIfa(i)="~"Then

MsgBox"Error",vbOKOnly,"Error"

ExitSub

ElseIfa(i)=","Then

MsgBox"Error",vbOKOnly,"Error"

ExitSub

ElseIfa(i)="'"Then

MsgBox"Error",vbOKOnly,"Error"

ExitSub

EndIf

c=c+1

txtUserName.SetFocus

Nexti

DimstrusernameAsString

DimstrpasswordAsString

StaticintlogintimesAsInteger

IfTrim(txtUserName.Text)=""Then

MsgBox"用户名不能为空!

",vbOKOnly+vbCritical,"错误"

ExitSub

EndIf

opentableadousers,"usersinfo"

adousers.Refresh

adousers.Recordset.Find"姓名="&"'"&txtUserName.Text&"'",,adSearchForward,1

IfNotadousers.Recordset.EOFThen

strusername=adousers.Recordset!

姓名

strpassword=adousers.Recordset!

密码

Else

strusername=""

strpassword=""

EndIf

Ifstrusername=txtUserName.TextAndstrpassword=txtPassword.TextThen

adousers.Recordset.Close

UnloadMefrmmdi.Show

Else

MsgBox"用户名或密码不对!

",vbOKOnly+vbInformation,"提示"

intlogintimes=intlogintimes+1

Ifintlogintimes>=3Then

adousers.Recordset.Close

End

EndIf

txtPassword.SetFocus

SendKeys"{HOME}+{END}"

EndIf

EndSub

PrivateSubcmdcancel_click()

UnloadMe

EndSub

OptionExplicit

PrivateSubCommand1_Click()

Withfrmmdi.adoroom.Recordset

IfNottxtroomno.LockedThen

IfTrim(txtroomno.Text)=""Then

MsgBox"房间号不能为空!

",vbOKOnly+vbInformation,"提示"

txtroomno.SetFocus

ExitSub

EndIf

EndIf

!

房间号=Trim(txtroomno.Text)

!

客房等级=Trim(txtroomgrade.Text)

!

客房类型=Trim(txtroomtype.Text)

!

客房价格=Trim(txtroomprice.Text)

!

客房状态=Trim(txtroomstatus.Text)

!

客房备注信息=txtroominfo.Text

Update

UnloadMe

EndWith

EndSub

PrivateSubCommand2_Click()

UnloadMe

EndSub

退房登记实现代码:

PrivateSubCmdOK_Click()

Withfrmmdi.adoquit.Recordset

IfNottxtbookno.LockedThen

IfTrim(txtbookno.Text)=""Then

MsgBox"登记号不能为空!

",vbOKOnly+vbInformation,"提示"

txtbookno.SetFocus

ExitSub

EndIf

frmmdi.adoguest.Recordset.Find"登记号='"&Trim(txtbookno.Text)&

"'",,adSearchForward,1

Iffrmmdi.adoguest.Recordset.EOFThen

MsgBox"非法登记号!

",vbOKOnly+vbInformation,"提示"

txtbookno.SetFocus

SendKeys"{HOME}+{END}"

txtpaymoney.Text=""

ExitSub

EndIf

frmmdi.adoquit.Recordset.Find"登记号='"&Trim(txtbookno.Text)&"'",,adSearchForward,1

IfNotfrmmdi.adoquit.Recordset.EOFThen'有就提示,然后退出

MsgBox"已经有相同登记号!

",vbOKOnly+vbInformation,"提示"

txtbookno.SetFocus

SendKeys"{HOME}+{END}"

txtpaymoney.Text=""

ExitSub

EndIf

.AddNew

!

登记号=Trim(txtbookno.Text)

EndIf

!

付款金额=Val(Trim(txtpaymoney.Text))

!

登记日期=Trim(txtbookdate.Text)

!

退房时间=dtpquitdate.Text

Update

IfTrim(txtinfo.Text)=""Then

MsgBox"备注不能为空!

",vbOKOnly+vbInformation,"提示"

txtinfo.SetFocus

EndIf

!

退房备注信息=txtinfo.Text

Update

UnloadMe

frmmdi.adoroom.Recordset!

客房状态="空"

Withfrmmdi.adoguest.Recordset

Delete

EndWith

EndWith

EndSub

PrivateSubCommand1_Click()

IfoptroomThen

opentablefrmmdi.Adoroom1,"select*fromroomwhere(((room.房间号)like'"&Trim(txtvalue.Text)&"%"&"'))"

ElseIfoptgradeThen

opentablefrmmdi.Adoroom1,"select*fromroomwhere(((room.客房等级)like'"&Trim(txtvalue.Text)&"%"&"'))"'

ElseIfopttypeThen

opentablefrmmdi.Adoroom1,"select*fromroomwhere(((room.客房类型)like'"&Trim(txtvalue.Text)&"%"&"'))"

EndIf

dtgroomqueryinforefresh

EndSub

PrivateSubCmdOK_Click()

Dims1AsString

DimiAsInteger

DimjAsInteger

Dima(18)AsString

j=Len(txtUserName.Text)

s1=txtUserName.Text

DimcAsInteger

c=1

Fori=1Toj

a(i)=Mid(s1,i,1)

Ifa(i)=""Then

MsgBox"Error",vbOKOnly,"Error"

ExitSub

ElseIfa(i)="<"Then

MsgBox"Error",vbOKOnly,"Error"

ExitSub

ElseIfa(i)=">"Then

MsgBox"Error",vbOKOnly,"Error

MsgBox"Error",vbOKOnly,"Error"

ExitSub

ElseIfa(i)="="Then

MsgBox"Error",vbOKOnly,"Error"

ExitSub

ElseIfa(i)=""Then

MsgBox"Error",vbOKOnly,"Error"

ExitSub

ElseIfa(i)="~"Then

MsgBox"Error",vbOKOnly,"Error"

ExitSub

ElseIfa(i)=","Then

MsgBox"Error",vbOKOnly,"Error"

ExitSub

ElseIfa(i)="'"Then

MsgBox"Error",vbOKOnly,"Error"

ExitSub

EndIf

c=c+1

txtUserName.SetFocus

Nexti

DimstrusernameAsString

DimstrpasswordAsString

StaticintlogintimesAsInteger

IfTrim(txtUserName.Text)=""Then

MsgBox"用户名不能为空!

",vbOKOnly+vbCritical,"错误"

ExitSub

EndIf

opentableadousers,"usersinfo"

adousers.Refresh

adousers.Recordset.Find"姓名="&"'"&txtUserName.Text&"'",,adSearchForward,1

IfNotadousers.Recordset.EOFThen

strusername=adousers.Recordset!

姓名

strpassword=adousers.Recordset!

密码

Else

strusername=""

strpassword=""

EndIf

Ifstrusername=txtUserName.TextAndstrpassword=txtPassword.TextThen

adousers.Recordset.Close

UnloadMe

frmmdi.Show

Else

MsgBox"用户名或密码不对!

",vbOKOnly+vbInformation,"提示"

intlogintimes=intlogintimes+1

Ifintlogintimes>=3Then

adousers.Recordset.Close

End

EndIf

txtPassword.SetFocus

SendKeys"{HOME}+{END}"

EndIf

EndSub

PrivateSubcmdcancel_click()

UnloadMe

EndSub

二、主控制窗体代码:

OptionExplicit

PrivateSubMDIForm_Load()

App.Title="宾馆客房管理系统"

opentableadoroom,"room"

opentableAdoroom1,"room"

opentableadoguest,"guest"

opentableAdoguest1,"guest"

opentableadoquit,"quit"

StatusBar1.Panels

(1).Text="欢迎登陆宾馆管理系统"

StatusBar1.Panels

(2).Text=Date&""&Time

EndSub

PrivateSubmnuCascade_Click()

frmmdi.ArrangevbCascade

EndSub

PrivateSubmnudenglu_Click()

frmLogin.Show

EndSub

PrivateSubmnuExit_Click()

UnloadMe

EndSub

PrivateSubmnuGuest_Click()

frmGuestInfo.Show

EndSub

PrivateSubmnuHor_Click()

frmmdi.ArrangevbTileHorizontal

EndSub

PrivateSubmnuin_Click()

frmusers.Show

EndSub

PrivateSubmnuqueryguest_Click()

frmqueryinfo.Show

EndSub

PrivateSubmnuqueryroom_Click()

frmqueryroom.Show

EndSub

PrivateSubmnuQuit_Click()

frmq

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

当前位置:首页 > 自然科学 > 物理

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

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