VB毕业课程设计实验报告.docx
- 文档编号:3377725
- 上传时间:2022-11-22
- 格式:DOCX
- 页数:30
- 大小:413.57KB
VB毕业课程设计实验报告.docx
《VB毕业课程设计实验报告.docx》由会员分享,可在线阅读,更多相关《VB毕业课程设计实验报告.docx(30页珍藏版)》请在冰豆网上搜索。
VB毕业课程设计实验报告
(此文档为word格式,下载后您可任意编辑修改!
)
第1章
系统设计的目的与意义:
客房管理系统用于宾馆旅客入住情况登记,包括旅客的姓名及身份证号的登记,以及入住房间信息.当旅客离开时,需要办理退房结帐手续.对于一定时间没的旅客入住情况实现基本查询,报表打印功能.对于宾馆本身也实现了客房增减,入住情况查询等功能.
无论各种等级的宾馆,使用客房管理系统都具有非常实用的价值.使用该系统可以大大节省时间,提高办公效率,而且非常方便的实现旅客信息的查询,以及对宾馆本身客房入住情况及时了解.因此,客房管理系统的开发无疑具有深远的意义.
系统功能设计
系统设计包括数据库设计,主界面设计,菜单设计以及功能设计.而其他功能设计包括系统登录设计,旅客信息登记,旅客信息查询,退房信息处理设计以及报表输入等功能设计,系统功能设计流程图如图所示
图1.1
第2章
数据库设计
旅客信息表为旅客的个人信息加入住客房信息,数据结构如表
旅客信息表设置
字段名
类型
大小
说明
登记号
Text
8
旅客入住号
姓名
Text
8
旅客姓名
身份证号码
Text
18
旅客身份证号
房间号
Text
3
入住房间号
登记日期
Text
日期时间
旅客入住时间
性别
Text
3
旅客性别
籍贯
Text
8
旅客籍贯
表2.1
客房信息表为客房入住情况的基本信息,数据结构如表
客房信息表设置
字段名
类型
大小
说明
房间号
Text
3
房间号
客房等级
Text
8
客房等级
客房类型
Text
8
客房类型
客房价格
Text
单精度型
客房价格
客房状态
Text
3
客房状态
客房备注信息
备注
8
客房备注信息
表2.2
旅客退房记录表为旅客退房相关的一些记录信息,数据结构如表
旅客退房记录表设置
字段名
类型
大小
说明
登记号
Text
8
旅客入住号
登记日期
日期时间
旅客登记时间
退房时间
日期时间
旅客退房时间
付款金额
Text
单精度型
付费金额
退房备注信息
Text
8
退房备注信息
表2.3
管理人员信息表存储宾馆管理人员使用该系统的帐号密码,数据结构表
第一章主界面的设计(余蕾)
主体内容
3.1设计标准模块
本系统设计过程中,创建一个通用函数模块,用于实现数据库连接及按需要打开一个数据表。
程序代码如下:
OptionExplicit
PublicSubopentable(padoAsAdodc,precordsourceAsString)
Withpado
.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&App.Path&"Total.mdb"
mandType=adCmdUnknown
.RecordSource=precordsource
.Refresh
EndWith
EndSub
3.2户登录界面设计
用户登录的作用是判断使用本程序的用户是否是合法用户。
在程序进入登录界面时要求输入用户名和密码,如果用户名,密码正确程序继续执行。
当密码错误输入的次数超过设定次数时,给出提示信息退出程序,这样防止了非法用户对本程序的使用。
3.2.1工作界面设计
图3.1登录窗体
程序代码如下:
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=""
EndIIfstrusername=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
3.2.2添加新用户用于添加新的用户包括用户名,密码,及职务工作界面设计如图
图3.2添加用户窗体
程序代码如下:
PrivateSubCommand1_Click()
opentableadousers,"usersinfo"
adousers.Refresh
Withadousers.Recordset
DimiAsInteger
IfTrim(Text1(0).Text)=""Then
MsgBox"用户名不能为空!
",vbExclamation+vbOKOnly,"警告"
Text1(0).SetFocus
ExitSub
EndIf
IfTrim(Text1
(1).Text)=""Then
MsgBox"密码不能为空!
",vbExclamation+vbOKOnly,"警告"
Text1
(1).SetFocus
ExitSub
EndIf
IfTrim(Text1
(2).Text)=""Then
MsgBox"确认密码不能为空!
",vbExclamation+vbOKOnly,"警告"
Text1
(2).SetFocus
ExitSub
EndIf
IfTrim(Text1
(1).Text)<>Trim(Text1
(2).Text)Then
MsgBox"确认密码不正确!
",vbExclamation+vbOKOnly,"警告"
Text1
(2).SetFocus
ExitSub
EndIf
opentableadousers,"usersinfo"
adousers.Refresh
adousers.Recordset.Find"姓名="&"'"&Text1(0).Text&"'",,adSearchForward,1
Ifadousers.Recordset.EOF=FalseThen
MsgBox"已存在该用户!
",vbExclamation+vbOKOnly,"警告"
Text1(0).SetFocus
Text1(0).SelStart=0
Text1(0).SelLength=Len(Text1(0).Text)
ExitSub
EndIf
opentableadousers,"usersinfo"
.AddNew
!
姓名=Trim(Text1(0).Text)
!
密码=Trim(Text1
(1).Text)
IfOption1(0)Then!
权限=1
IfOption1
(1)Then!
权限=2
IfOption1
(2)Then!
权限=3
.Update
MsgBox"用户添加成功!
",vbExclamation+vbOKOnly,"警告"
Text1(0).Text=""
Text1
(1).Text=""
Text1
(2).Text=""
EndWith
UnloadMe
EndSub
PrivateSubCommand2_Click()
UnloadMe
EndSub
3.3创建系统主界面
当系统运行时,首先进入登录界面,当输入帐号,密码合法时,则启动系统主界面。
主窗体是进入其他模块的入口。
本系统主界面采用多文档界面,设计情况如图
图3.3主界面窗体
设计主界面菜单项
在操作项目比较多的情况下,通常是通过菜单来调用下级程序。
菜单项的设计包含设置快捷键与访问键,设置如表:
主窗体菜单表3.4
级别
菜单
名称
快捷键
访问键
主菜单
系统功能
mnuSystem
&S
子菜单
用户管理
mnuUser
Ctrl+U
&U
退出系统
mnuExit
&X
主菜单
基本信息管理
mnuInfo
&I
子菜单
客房信息
mnuRoomInfo
Ctrl+R
&R
入住情况
mnuGuest
&G
退房记录
mnuQuit
&C
主菜单
信息查询
mnuQuerySelect
&Q
主菜单
报表输出
mnuReport
&R
子菜单
房间情况表
mnuReportRoom
Ctrl+R
&R
收费情况表
mnuReportMoney
&M
主菜单
窗口布局
mnuWindow
&W
子菜单
水平平铺
mnuHor
Ctrl+R
&H
垂直平铺
mnuVer
&V
层叠
mnuCascade
&C
排列图标
mnuIcon
&I
主菜单
帮助信息
mnuHelp
Ctrl+H
&H
内容
mnuContent
&C
索引
mnuIndex
&I
设计主界面
OptionExplicit
PrivateSubMDIForm_Load()
App.Title="宾馆客房管理系统"
opentableadoroom,"room"
opentableadoguest,"guest"
opentableadoquit,"quit"
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
PrivateSubmnuIcon_Click()
frmmdi.ArrangevbArrangeIcons
EndSub
PrivateSubmnuqueryguest_Click()
frmqueryinfo.Show
EndSub
PrivateSubmnuqueryroom_Click()
frmqueryroom.Show
EndSub
PrivateSubmnuQuit_Click()
frmquitinfo.Show
EndSub
PrivateSubmnuRoomInfo_Click()
frmroominfo.Show
EndSub
PrivateSubmnuUser_Click()
frmusers.Show
EndSub
PrivateSubmnuver_Click()
frmmdi.ArrangevbTileVertical
EndSub
PrivateSubtoolbar1_buttonclick(ByValbuttonAsMSComctlLib.button)
SelectCasebutton.Index
Case1
mnuRoomInfo_Click
Case2
mnuGuest_Click
Case3
mnuQuit_Click
Case4
mnuqueryroom_Click
Case5
'mnuReportRoom_Click
Case6
mnuExit_Click
EndSelectEndSub
第二章制作客户信息登记窗体(赵岩辉)
客户信息窗体包括对全体旅客信息浏览,修改及删除的窗体和添加新入住旅客信息窗体。
旅客基本信息窗体,工作界面设计情况如图:
控件属性表3.5
控件名称
属性
设置值
DataGrid1
(名称)
dtgGuestInfo
Command1
(名称)
cmdAddNew
Caption
添加(&A)
Command2
(名称)
cmdEdit
Caption
修改(&E)
控件名称
属性
设置值
Command3
(名称)
cmdDelete
Caption
删除(&D)
Command4
(名称)
cmdExit
Caption
退出(&X)
图3.6旅客信息窗体
程序代码如下:
OptionExplicit
PrivateSubdtgguestrefresh()
Withdtgguestinfo
Set.DataSource=frmmdi.adoguest
.AllowRowSizing=False
.HeadFont=2
.MarqueeStyle=dbgHighlightRow
.AllowAddNew=False
.AllowDelete=False
.AllowUpdate=False
.Columns(0).Caption="登记号"
.Columns(0).Width=600
.Columns(0).AllowSizing=False
.Columns
(1).Caption="客人姓名"
.Columns
(1).Width=600
.Columns
(1).AllowSizing=False
.Columns
(2).Caption="身份证号码"
.Columns
(2).Width=1500
.Columns
(2).AllowSizing=False
.Columns(3).Caption="房间号"
.Columns(3).Width=600
.Columns(3).AllowSizing=False
.Columns(4).Caption="登记日期"
.Columns(4).Width=1000
.Columns(4).AllowSizing=False
.Columns(5).Caption="性别"
.Columns(5).Width=500
.Columns(5).AllowSizing=False
.Columns(6).Caption="籍贯"
.Columns(6).Width=2000
.Columns(6).AllowSizing=False
EndWith
EndSub
PrivateSubcmdaddnew_Click()
Withfrmguestinfoedit
.Caption="添加新旅客"
.txtbookno.Locked=False
.txtbookno.Text=""
.txtguestname.Text=""
.txtcardid.Text=""
.txtroomno.Text=""
dtpbookdate.Text=Date
.dtpbookdate.Enabled=False
EndWith
frmguestinfoedit.Show
EndSub
PrivateSubcmddelete_Click()
Iffrmmdi.adoguest.Recordset.EOF<>TrueAndfrmmdi.adoguest.Recordset.BOF<>TrueThen
Withfrmmdi.adoroom.Recordset
IfMsgBox("确认要删除当前记录吗?
",vbYesNo+vbQuestion+vbDefaultButton2,"确认框")=vbYesThen
.Find"房间号="&"'"&frmmdi.adoguest.Recordset!
房间号&"'",,adSearchForward,1
IfNot.EOFThen
!
客房状态="空"
EndIf
Withfrmmdi.adoguest.Recordset
.Delete
EndWith
frmGuestInfo.SetFocus
EndIf
EndWith
EndIf
EndSub
PrivateSubcmdedit_Click()
Iffrmmdi.adoguest.Recordset.EOF<>TrueAndfrmmdi.adoguest.Recordset.BOF<>TrueThen
Withfrmguestinfoedit
.Caption="修改客人信息"
.txtbookno.Text=frmmdi.adoguest.Recordset!
登记号
.txtbookno.Locked=True
.txtbookno.Enabled=False
.txtguestname.Text=frmmdi.adoguest.Recordset!
姓名
.txtcardid.Text=frmmdi.adoguest.Recordset!
身份证号码
.txtroomno=frmmdi.adoguest.Recordset!
房间号
.dtpbookdate.Text=frmmdi.adoguest.Recordset!
登记日期
.dtpbookdate.Enabled=False
EndWith
EndIf
frmguestinfoedit.Show
EndSub
PrivateSubcmdexit_Click()
UnloadMe
EndSub
PrivateSubForm_Load()
Me.Left=(frmmdi.Width-Me.Width)2
Me.Top=(frmmdi.Height-Me.Height)4
dtgguestrefresh
EndSub
第三章旅客信息登记窗体(龚剑)
本窗体用于当旅客入住时,登记其基本信息,包括入住房间号。
图3.7添加新旅客窗体
窗体初始化与激活事件代码:
OptionExplicit
DimproomnoAsString
PrivateSubcmdcancle_Click()
UnloadMe
EndSub
PrivateSubcmdok_Click()
Withfrmmdi.adoguest.Recordset
IfNottxtbookno.LockedThen
IfTrim(txtbookno.Text)=""Then
MsgBox"登记号不能为空!
",vbOKOnly+vbInformation,"提示"
txtbookno.SetFocus
ExitSub
EndIf
.Find"房间号="&"'"&txtbookno&"'",,adSearchForward,1
IfNot.EOFThen
MsgBox"已经有相同登记号!
",vbOKOnly+vbInformation,"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 毕业 课程设计 实验 报告