vb课程设计报告书.docx
《vb课程设计报告书.docx》由会员分享,可在线阅读,更多相关《vb课程设计报告书.docx(20页珍藏版)》请在冰点文库上搜索。
vb课程设计报告书
VisualBasic课程设计报告
题目:
基于VB的宾馆信息管理系统
院(系):
经济管理学院
专业:
信息管理与信息系统
班级:
姓名:
学号:
目录
第1章课设概述
.................................................3
1.1宾馆管理系统开发背景介绍
.....................................3
1.2课程设计的目的和意义
........................................3
1.3本课设的具体研究工作
.......................................4
第2章系统的设计与实现
.........................................5
2.1系统开发及运行环境
..........................................52.2系统需求分析
.................................................6
2.3系统分析设计
.................................................7
2.4课设的结果与讨论
..............................................8
第3章课设总结和展望
...........................................10
第1章课设概述
1.1宾馆管理系统开发背景介绍
随着经济的发展和人民生活水平的提高,人们不再局限于自己的小生活圈里,开始外出。
于是,出差,旅游,变成越来越普遍的话题。
也因此,给旅游业,服务业带来了很大的契机。
期中,最受益的当属宾馆服务。
当然,这亦给宾馆的管理造成了困扰。
目前很多宾馆酒店在这方面的工作还是靠人工进行管理,在这种管理方式中,前台负责人将入住宾馆的客人信息,房间信息逐一进行登记,最后再进行相关的统计分析。
而客人在入住宾馆时只能盲目进入,无法真正了解和比较那一家宾馆更适合自己。
传统的宾馆管理模式已经暴露出种种弊端,随着计算机应用的普及与深入,利用计算机能够对所有宾馆基本信息进行统一管理,并进行分析,大大减少前台负责人的工作量,提高工作效率同时更加方便了游客的选择,为宾馆管理带来了极大的方便。
1.2课程设计的目的和意义
建立宾馆信息管理系统,采用计算机对宾馆基本信息进行管理,帮助更多服务行业提高工作效率,避免输入错误信息及未信息输入不完全,实现宾馆信息管理工作流程的系统化、规范化和自动化。
今天,计算机的价格已经十分低廉,性能却有了很大的进步。
很多宾馆,酒店运用计算机来管理信息,资料。
开发一个简单、实用的宾馆管理系统有许多重要性,有以下几点好处:
可以存大量的宾馆基本信息,安全,高效。
节省大量时间,精力,为房客提供充足的信息和快捷的查询手段,可以便于他们了解宾馆概况并提前预定。
因此开发宾馆管理系统,以适应现行工作的要求,提高工作效率很有意义。
1.3本课设的具体研究工作
本课设采用VisualBasic6.0+Access2003实现单机数据库管理,首先用Access建立关系数据库,设计了用户表,宾馆概况表,房间信息表。
其中用户表管理登陆信息以及用户权限,宾馆概况表用来存放宾馆基本信息,房间信息表在管理传统的房间基本信息外加入了房间标准,。
然后用VisualBasic建立客户端,实现简单易懂的图形用户界面,并完成以下几个功能:
(1)用户管理:
该功能包括添加、修改、删除用户的功能,并实现用户权限的管理。
(2)宾馆管理:
该功能包括添加宾馆名称,宾馆所属地域,宾馆标准等,将所有添加的信息统一整理,归类,以及对添加的信息进行修改和查询和删除宾馆信息。
第2章系统的设计与实现
2.1系统开发及运行环境
(1)运行平台:
MicrosoftWindowsXP/WindowsVista/Windows7
虽然目前国内的主流操作系统已经由WindowsXP向Windows7过渡,但是由于学校的硬件设施更新速度慢,而且仅仅为了教育教学使用配置普遍偏低,在短期内校园的多媒体教室操作系统仍然以WindowsXP为主,所以软件运行测试都是在WindowsXP中进行
(2)系统开发平台:
VisualBasic6.0
(3)后台数据库系统软件:
Access2003
2.2系统需求分析
根据实际情况,我们使用原型法(RapidPrototyping)即以少量代价快速地构造一个可执行的软件系统模型。
使用户和开发人员可以较快地确定需求,然后采用循环进化的开发方式,对系统模型作连续的精化,将系统需具备的性质逐渐增加上去,直到所有的性质全部满足。
此时模块也发展成为最终产品了。
由于本系统是入住宾馆旅客使用,管理人员是按照宾馆各方面的信息来进行组织,而房客则按照自己的要求输入相关信息,选择更加适宜的宾馆入住,提前预定,基于这些特点,确定管理系统的工作流程如下:
首先用户登录系统,登录后系统将记录用户信息,并读取用户权限信息。
然后用户可以进入用户管理模块,这是可选操作,在这里用户只有修改密码的权限,其他权限是超级用户所具有的。
接着用户可以进行宾馆的管理,如果具有权限可以进行相应的操作,超级用户可以添加、删除、显示宾馆信息。
宾馆存在之后可以向宾馆中添加其他相关信息,同时可以进行修改删除等操作针对系统的要求设计了如下数据字段与表:
(1)用户信息表,包括的数据字段有:
用户名,用户密码,用户权限。
其中用户名是关键字。
(2)宾馆信息表,包括的数据字段有:
宾馆名称,宾馆电话,房间报价,宾馆地址等。
2.3系统分析设计
C/S结构就是“客户端/服务器端”的一种工作模式。
一般来说,这种模式都会要求安装一个客户端程序,由这个程序和服务器进行协同工作,因为由客户端来专门处理一些工作,所以C/S结构的程序一般都功能强大、界面漂亮,又由于任务分散在服务器端和客户端分别进行,因此提高了硬件的利用效率,对于开发人员开说也更加容易。
基于上速原因本系统采用两层的C/S结构。
模块是Access中实现数据库复杂管理功能的有效工具,它由VisualBasic编制的过程和函数组成。
为了清晰、全面的介绍宾馆各个方面管理系统的功能,以及各个功能模块间的关系,下图以结构图的形式给出了系统的功能,如图3.1所示。
(1)用户管理模块:
输入用户名和密码,如果用户名和密码正确,进入主控制平台;否则提示用户明确的错误信息。
管理员可以进行用户权限设置包括新用户添加,删除用户,修改用户的密码,显示所有用户信息。
(2)宾馆管理模块:
该模块主要对宾馆信息进行输入,查询,修改。
包括对宾馆名称,宾馆所属地域,宾馆地址和联系人的基本信息。
当用户想要查找想要的宾馆信息时,可输入相应的信息,系统自动显示符合要求的宾馆供用户选择,比较。
此过程也包括查询,修改等功能
图2-1系统功能结构图
2.4课设的结果与讨论
(1)系统的实现与运行结果
登陆界面可实现用户的登陆,进入系统。
图2-2登陆界面
设置登录窗体为启动窗体,运行程序,出现如图2-2对话框,输入用户名、密码后进入系统,出现如图2-3主界面。
图2-3主界面
在图2-3的界面中输入相应信息,也可对界面内容进行添加,修改,查询,删除等功能。
在图2-4中添加信息,点击确定按钮,在图2-5中可显示2-3中的相应信息。
用户可根据提供的信息进行选择。
图2-4输入信息界面
图2-5添加修改界面
在图2-5中用户可以得到宾馆的信息,也可以进行添加,修改,查询数据库中其他宾馆信息。
总结和展望
本宾馆信息管理系统是使用VisualBasic6.0+Access2003做为开发工具,基于C/S(客户端/服务器端)模式下的小型管理系统。
其功能特点都是针对当前旅游或出差过程中游客入住宾馆时根据各人要求不同而提前选择宾馆,以及了解价格提前预定而设计,界面友好便于操作。
与宾馆信息管理系统相比针对性更强,便于移植修改。
不足是功能上可以更加完善,安全性、保密性有待加强。
用户在选择宾馆之前可以先输入用户名和密码,进入登陆界面。
然后根据界面中输入的信息,用户可以选择相应的宾馆,也可以多家宾馆进行比较,择优选择。
通过宾馆提供的信息,提前预定。
信息通讯技术在信息管理领域的快速发展,,传统管理系统正面临着革命性的变化。
基于C/S结构的宾馆信息管理系统使用方便,维护简单,不仅大大节省了人力资源,提高了工作效率,更有利于房客在入住方面更多的了解,比较,尤其在旅游的高峰期提前预定房间也给游客提供了极大地便利,具有一定的推广前景使用价值。
附源代码
PublicPasswordKeyAsString
PublicNameKeyAsString
PublicTry_timesAsInteger
PrivateSubCmd_Cancel_Click()
End
EndSub
PrivateSubCmd_OK_Click()
DimjAsSingle
'数据有效性检查
IftxtUser=""Then
MsgBox"请输入用户名"
txtUser.SetFocus
ExitSub
EndIf
IftxtPwd=""Then
MsgBox"请输入密码"
txtPwd.SetFocus
ExitSub
EndIf
将用户输入赋值到变量中
NameKey=MakeStr(txtUser)
PasswordKey=MakeStr(txtPwd)
'判断用户是否存在
IfMyUser.In_DB(NameKey)=FalseThen
MsgBox"用户名不存在"
Try_times=Try_times+1
IfTry_times>=3Then
MsgBox"您已经三次尝试进入本系统,均不成功,系统将关闭"
DBapi_Disconnect
End
Else
ExitSub
EndIf
EndIf
'判断密码是否正确
MyUser.GetInfo(NameKey)
IfMyUser.Pwd<>PasswordKeyThen
MsgBox"密码错误"
Try_times=Try_times+1
IfTry_times>=3Then
MsgBox"您已经三次尝试进入本系统,均不成功,系统将关闭"
DBapi_Disconnect
End
Else
ExitSub
EndIf
EndIf
'登录成功,将当前用户的信息保存在CurUser中
CurUser.GetInfo(MyUser.UserName)
'关闭自己
UnloadMe
EndSub
PublicModifyAsBoolean
PublicOriIdAsLong
PublicOriAreaName,OriHotelNameAsString
PublicOriTypeAsInteger
PrivateFunctionCheck()AsBoolean
IfTrim(txtHotel)=""Then
MsgBox"请输入地域名称"
txtHotel.SetFocus
Check=False
ExitFunction
EndIf
IfTrim(txtHotel)=""Then
MsgBox"请输入宾馆名称"
txtHotel.SetFocus
Check=False
ExitFunction
EndIf
Check=True
EndFunction
PrivateSubCmd_OK_Click()
‘检查用户输入的地域数据是否有效
IfCheck=FalseThen
ExitSub
EndIf
WithMyHotel
‘把用户输入的地域数据赋值到MyHotel对象的成员变量中
.Hname=MakeStr(txtHotel)
.Hlevel=ComboLevel.Text
.Contact=MakeStr(txtContact)
.Phone=MakeStr(txtPhone)
.Address=MakeStr(txtAddress)
.Postcode=MakeStr(txtCode)
.Price1=Val(txtPrice1)
.Price2=Val(txtPrice2)
.Price3=Val(txtPrice3)
.Price4=Val(txtPrice4)
.AreaId=MyArea.GetId(ComboName)
'判断宾馆名称是否存在
IfModify=FalseOrOriHotelName<>Trim(txtHotel)Then
If.In_DB(MakeStr(txtHotel))=TrueThen
MsgBox"宾馆名称已经存在,请重新输入"
txtHotel.SetFocus
txtHotel.SelStart=0
txtHotel.SelLength=Len(txtHotel)
ExitSub
EndIf
EndIf
‘根据变量Modify的值,决定是插入新数据,还是修改已有的数据
IfModify=FalseThen
.Insert
Else
.Update(OriId)
EndIf
EndWith
UnloadMe
EndSub
PrivateSubCmd_Cancel_Click()
UnloadMe
EndSub
PrivateSubComboType_Click()
CallLoadarea(ComboType.ListIndex+1,ComboName)
IfComboName.ListCount>0Then
ComboName.ListIndex=0
EndIf
EndSub
PrivateSubForm_Load()
‘根据当前宾馆的地域数据OriType和OriAreaName装入地域,设置地域信息
ComboType.ListIndex=OriType-1
CallLoadarea(OriType,ComboName)
IfInCombo(OriAreaName,ComboName)=TrueThen
ComboName.Text=OriAreaName
EndIf
EndSub
PrivateSubtxtAddress_KeyPress(KeyAsciiAsInteger)
EnterTAB(KeyAscii)
EndSub
PrivateSubtxtPrice1_KeyPress(KeyAsciiAsInteger)
EnterTAB(KeyAscii)
IfIn_Single(KeyAscii)=FalseThen
KeyAscii=0
EndIf
EndSub
PrivateSubtxtPrice2_KeyPress(KeyAsciiAsInteger)
EnterTAB(KeyAscii)
IfIn_Single(KeyAscii)=FalseThen
KeyAscii=0
EndIf
EndSub
PrivateSubtxtPrice3_KeyPress(KeyAsciiAsInteger)
EnterTAB(KeyAscii)
IfIn_Single(KeyAscii)=FalseThen
KeyAscii=0
EndIf
EndSub
PrivateSubtxtPrice4_KeyPress(KeyAsciiAsInteger)
EnterTAB(KeyAscii)
IfIn_Single(KeyAscii)=FalseThen
KeyAscii=0
EndIf
EndSub
PrivateSubtxtCode_KeyPress(KeyAsciiAsInteger)
EnterTAB(KeyAscii)
EndSub
PrivateSubtxtContact_KeyPress(KeyAsciiAsInteger)
EnterTAB(KeyAscii)
EndSub
PrivateSubtxtPhone_KeyPress(KeyAsciiAsInteger)
EnterTAB(KeyAscii)
EndSub
PrivateSubtxtHotel_KeyPress(KeyAsciiAsInteger)
EnterTAB(KeyAscii)
EndSub
PrivateSubRefresh_Hotel()
‘为Adodc1控件设置数据源
Adodc1.RecordSource="SELECTa.AreaName所在地域,h.HnameAs宾馆名称,"_
+"h.HlevelAs宾馆标准,h.ContactAs联系人,h.PhoneAs联系电话,"_
+"h.AddressAs通信地址,h.PostcodeAs邮政编码,h.Price1As经济间报价,"_
+"h.Price2As双人间报价,h.Price3As三人间报价,h.Price4As四人间报价,"_
+"h.Input_timeAs录入时间FROMHotelh,AreaaWHEREh.AreaId=a.AreaId"_
+"Anda.AreaName='"+Trim(ComboName.Text)+"'"
Adodc1.Refresh
EndSub
PrivateSubCmd_Add_Click()
FrmHotelEdit.Modify=False
FrmHotelEdit.OriAreaName=ComboName.Text
FrmHotelEdit.OriType=ComboType.ListIndex+1
FrmHotelEdit.OriId=0
FrmHotelEdit.Show1
Refresh_Hotel
EndSub
PrivateSubCmd_Del_Click()
DimTmpIdAsLong
‘判断是否选择了要删除的记录
IfAdodc1.Recordset.EOF=TrueThen
MsgBox"请选择记录"
ExitSub
EndIf
‘确定当前选择记录的位置
p=Adodc1.Recordset.AbsolutePosition
‘要删除的宾馆编号
TmpId=MyHotel.GetId(Trim(Adodc1.Recordset.Fields
(1)))
'判断当前记录是否出现在线路中
IfMylhotel.HotelInLine(TmpId)>0Then
MsgBox"此宾馆在线路中使用,不能删除"
ExitSub
EndIf
'确认删除
IfMsgBox("是否删除当前行?
",vbYesNo,"确认")=vbYesThen
MyHotel.Delete(TmpId)
Refresh_Hotel
Ifp-1>0Then
Adodc1.Recordset.Movep-1
EndIf
EndIf
EndSub
PrivateSubCmd_Modi_Click()
IfAdodc1.Recordset.EOF=TrueThen
MsgBox"请选择记录"
ExitSub
EndIf
‘确定当前选择记录的位置
p=Adodc1.Recordset.AbsolutePosition
'宾馆编号
FrmHotelEdit.OriId=MyHotel.GetId(Adodc1.Recordset.Fields
(1))
'地域信息
FrmHotelEdit.OriAreaName=ComboName.Text
FrmHotelEdit.OriType=ComboType.ListIndex+1
'宾馆名称
FrmHotelEdit.OriHotelName=Trim(Adodc1.Recordset.Fields
(1))
FrmHotelEdit.txtHotel=Trim(Adodc1.Recordset.Fields
(1))
'宾馆级别
FrmHotelEdit.ComboLevel=Trim(Adodc1.Recordset.Fields
(2))
'联系人
FrmHotelEdit.txtContact=Trim(Adodc1.Recordset.Fields(3))
'联系电话
FrmHotelEdit.txtPhone=Trim(Adodc1.Recordset.Fields(4))
'通信地址
FrmHotelEdit.txtAddress=Trim(Adodc1.Recordset.Fields(5))
'邮政编码
FrmHotelEdit.txtCode=Trim(Adodc1.Recordset.Fields(6))
'经济间报价
FrmHotelEdit.txtPrice1=Adodc1.Recordset.Fields(7)
'双人间报价
FrmHotelEdit.txtPrice2=Adodc1.Recordset.Fields(8)
'三人间报价
FrmHotelEdit.txtPrice3=Adodc1.Recordset.Fields(9)
'四人间报价
FrmHotelEdit.txtPrice4=Adodc1.Recordset.Fields(10)
‘把变量Modify设置为True,表示当前状态为修改已有记录
FrmHotelEdit.Modify=True
FrmHotelEdit.Show1
‘修改完成,刷新显示内容
Refresh_Hotel
A