数据库SQL实训酒店客房管理系统.docx
- 文档编号:26976370
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:42
- 大小:813.38KB
数据库SQL实训酒店客房管理系统.docx
《数据库SQL实训酒店客房管理系统.docx》由会员分享,可在线阅读,更多相关《数据库SQL实训酒店客房管理系统.docx(42页珍藏版)》请在冰豆网上搜索。
数据库SQL实训酒店客房管理系统
第一章系统分析
一.可性行分析
可行性分析是指在允许的成本、性能要求下,分析每项需求实施的可行性,提出需求实现的相关风险,包括与其它需求的冲突,对外界因素的依赖和技术障碍。
可行性分析包括操作可行性、技术可行性、经济可行性和进度可行性。
下面是对酒店管理系统的可行性分析。
1.进度可行性:
鉴于本系统的目标要求和特点,能够保证在预期的时间内完成该系统的研究和设计。
2.经济可行性:
本系统开发完成后可缩减工作时间,提高工作效率,而且简单易操作,不需对使用人员进行培训,不管是在资金上还是效率上都能达到预期的效果。
3.技术可行性:
从目前比较流行的数据库开发、管理软件来看;对于比较简单的中小型数据库,VB.NET和SQLServer2000的结合无疑是在实际应用中较为成功的一种解决方案。
前者为用户提供了Windows所一贯坚持的非常友好、操作简单的用户界面.;后者则可对数据库实施操作、维护和权限识别功能,也可通过与SQL语句的结合对数据库进行更为复杂的操作。
对本系统而言,上述的结合方式是可行的。
第二章需求分析
(1)如果房客交的押金已经不能支付住宿费用,那么,房客需要去补交押金,这时可以添加房客的续住天数和应交押金等信息。
(2)因宾馆需要人员进行各个方面的管理,如总经理、前台等。
这里建立一个数据库来管理每个工作人员的信息,如用户添加、删除、修改密码等,这有助于清晰的管理每个工作人员的信息。
因权限不同,各个用户进入的界面不同,他们只能进行权限之内的操作。
所有的用户都可以在密码更改中更改密码。
(3)房客来宾馆入住时,宾馆的工作人员应该可以添加房客的姓名和身份证等个人信息以客房的房号和押金等入住信息。
(4)如果房客为了节省时间,需要预定房间,可以添加预定信息。
房客来到宾馆之后,需要把预定信息,转为入住信息,如果房客由于其余事情,不能来宾馆入住,可以取消预定。
(5)如果房客住宿时间期满,可以退房。
(6)如果房客对入住的房间不满意,可以为房客换房。
(7)按照宾馆人员的操作习惯,可以对客房和客房类型信息进行添加、修改、删除和查询操作。
(8)系统运行在Windows平台上,要求有一个较好的图形用户界面,操作要求简单。
(9)系统应该有很好的可扩展性,以便宾馆根据实际情况添加新的功能。
第三章系统总体设计
3.1总体设计
总体设计图
3.2详细设计模块
宾馆客房管理系统功能图
查询统一功能图
系统设置功能图住宿管理功能图
3.3数据库设计
设计数据库系统时首先应该充分了解用户各个方面的要求,包括现有的以及将来可能增加的要求。
数据库设计一般包括如下几个步骤:
1.数据库需要分析。
2.数据库概念结构设计。
3.数据库逻辑结构设计。
3.4数据库需要分析
3.4.1数据库分析
用户的需要具体体现在各种信息的提供,保存,更新和查询等方面,这就要求数据库结构能充分满足各种信息的输入和输出。
收集基本数据,数据结构以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。
仔细分析调查有关宾馆客房管理信息要求的基础上,将得到如图3-1所示的本系统所处理的数据流程。
宾馆客房管理信息系统数据流程图
针对一般宾馆客房管理信息系统的需求,通过对宾馆客房管理工作过程的内容和数据流程分析,设计如下面所示的数据项和数据结构:
客房标准信息,包括的数据项有:
标准编号,标准名称,房间面积,床位数量,住房单价,是否有空调,电视,电话,单独卫生间等。
客房信息,表格的数据项有:
客房编号,客房种类,客房位置,客房单价,备注等。
订房信息,包括的数据项有:
订房编号,客房编号,客房种类,客房位置,客房备注信息,顾客姓名,顾客身份证号码,入住时间,折扣,备注等。
结算信息,包括的数据项有:
订房编号,客房编号,客房种类,客房位置,客房备注信息,顾客姓名,顾客身份证号码,入住时间,折扣,结算时间,备注等。
有了上面的数据结构,数据项和数据流程,我们就能进行下面的数据库设计。
3.4.2数据库概念结构设计
得到上面的数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。
本实例根据上面的设计规划出的实体有:
客房标准信息实体,客房信息实体,订房信息实体,结算信息实体。
各个实体具体的描述E-R图如下。
客房标准信息实体E-R图如图所示:
客房信息实体E-R图如图所示:
客户信息实体
订房信息实体E-R图如图所示:
结算信息实体E-R图如图所示:
实体之间关系的E-R图如图所示:
3.4.3数据库逻辑结构设计
现在需要将上面的数据库概念结构转化为SQL数据库系统所支持的实体数据模型,也就是数据库的逻辑结构。
宾馆客房管理信息系统数据库中各个表格的设计结果如下面表格所示。
每个表格表示在数据库中的一个表。
TB_djb住房登记表:
Tb_kf房间标准详细表:
Tb_qxsz账户权限设置表:
Tb_tfdj退房登记表:
Tb_user:
登录用户表:
第四章系统代码设计及实现
至此有关数据库的设计和完善既所有后台工作初步完成有了数据库和数据。
现在将通过vb逐块来设计宾馆客房管理信息系统中各个功能模块的功能:
4.1创建宾馆客房管理信息系统的主登录窗体
用户登录窗体中放置了二个文本框(TextBox),用来输入用户名和用户密码:
二个按钮(CommandButton)用来确定或者取消登录:
三个标签(Label)用来标示窗体的信息。
这些控件的属性设置见表。
控件
属性
属性取值
FrmLogin(Form)
Name
frmLogin
Caption
登录
StartUpPosition
CenterScreen
WindowState
Nomal
Txtusername
name
Txtusername
txtpassword
name
txtpassword
passwordchar
*
cmdok
name
Cmdok
caption
确定
cmdcanel
Name
cmdcanel
caption
取消
Label1
caption
宾馆客房管理系统
Label2
caption
用户名
Label3
caption
用户密码
双击确定输入以下代码完成登录判断:
PrivateSubImage1_Click()
StaticitimesAsInteger
Main.StatusBar1.Panels(4).text=Text1.text'赋值给main.StatusBar1.Panels(4).Text
'验证操作员及密码
Adodc1.RecordSource="select*fromtb_userwhere操作员='"+Text1.text+"'"
Adodc1.Refresh
IfAdodc1.Recordset.RecordCount>0Then'如果记录数大于零
'验证密码
IfText2.text=Adodc1.Recordset.Fields("密码")Then
LoadMain
Main.Show
UnloadMe
Else
IfText2.text<>Adodc1.Recordset.Fields("密码")Then
MsgBox"密码错误,请重新输入!
",vbCritical,"系统提示"
itimes=itimes+1
Text2.text=""
Text2.SetFocus
EndIf
EndIf
Else
MsgBox"操作员不存在,请重新输入!
",vbCritical,"系统提示"
itimes=itimes+1
Text1.text=""
Text2.text=""
Text1.SetFocus
EndIf
Ifitimes=3Then'错误3次,退出系统
MyMsg=MsgBox("输入错误,请向系统管理员查询!
",vbCritical,"系统提示")
IfMyMsg=vbOKThenEnd
EndIf
EndSub
以下代码用于权限设置当系统中不存在任何账户第一次登录时会要求设置该账号权限PrivateSubForm_Activate()
'当记录为零时,进入系统具有所有权限
IfAdodc1.Recordset.RecordCount=0Then
MsgBox"请先设置操作员密码和权限!
",,"系统提示"
LoadMain
Main.Show
UnloadMe
Else
Text1.SetFocus
EndIf
EndSub
当用户输入完用户名要输入密码时可以按回车系统自动定位到下一个文本框实现代码如下:
PrivateSubtext2_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
IfKeyCode=vbKeyReturnThenImage1_Click'按回车键进入
EndSub
PrivateSubText1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
IfKeyCode=vbKeyReturnThenText2.SetFocus'按回车键,text2获得焦点
EndSub
总体的登录窗口调试效果如下:
用户运行系统首先将出现该登陆框,如果输入的用户名在用户表中没有找到,将提示重新输入用户名,文本框txt1将重新获得输入焦点。
如果用户输入的密码不正确,文本框txt2将重新获得输入焦点。
用户登录成功,全局变量ok将被赋值为true。
一旦三次输入密码均不正确,全局变量ok将被赋值为false。
系统强制退出。
4.2创建公用模块
在VisualBasic中可以用公用模块来存放整个工程项目公用的函数,过程和全局变量等。
这样可以极大的提高代码的效率。
在项目资源管理器中为项目添加一个Module,保存为Module1.bas。
下面就可以开始添加需要的代码了。
PublicadoconAsNewADODB.Connection
PublicadoRsAsNewADODB.Recordset
PublicSubMain()
adocon.Open"Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;UserID=sa;InitialCatalog=kfxt;DataSource=piglet"‘连接到本机的kfxtsql数据库
EndSub
PublicFunctionESQL(ByValsqlAsString)AsADODB.Recordset'定义函数
'定义连接
DimcnnAsADODB.Connection
DimrsAsADODB.Recordset
'创建连接
Setcnn=NewADODB.Connection
'打开连接
cnn.OpenStrCnn
Setrs=NewADODB.Recordset
rs.OpenTrim(sql),cnn,adOpenKeyset,adLockOptimistic
SetESQL=rs
EndFunction
PublicFunctionStrCnn()
'返回一个数据库连接
StrCnn="Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;UserID=sa;InitialCatalog=kfxt;DataSource=piglet"
EndFunction
4.3创建宾馆客房管理信息系统的主窗体
添加一个窗体然后在该窗体上添加好所用的控件,添加后如图示;
窗体和控件的主要属性设置见下表。
控件
属性
属性取值
FrmMain(Form)
Name
FrmMain
Caption
宾馆客房管理信息系统
StartupPosition
CenterScreen
WindowState
Maximized
SbStatusBar(StatusBar)
Name
Style
SbStatusBar
Panels
(1)
Style
SbrText
Panels
(2)
Style
SbrDate
Panels(3)
Style
SbrTime
在主窗体中加入状态栏控件,可以实时反映系统中的各个状态的变化。
状态栏控件需要在通常的属性窗口中设置一般属性,还需要在特有的弹出式菜单中进行设置。
选择状态栏控件,单击鼠标右键,选中Property菜单,然后设置属性。
面板1用来显示当前日期,面板2用来显示当前时间,面板3用来显示系统信息。
面板4显示操作员信息。
如图:
4.4创建主窗体的菜单
1.在如图所示的主窗体中,单击鼠标右键,选择弹出式菜单中的“MenuEditor”命令,创建如图所示菜单结构:
2:
添加用户窗体的创建
进入系统后,选择菜单“系统|添加用户”,就可以添加用户,出现添加用户的窗体:
在这个窗体中放置了二个文本框,用来输入密码和确认密码,二个按钮用来确定是否修改密码,二个标签用来标示文本框的内容,这些控件属性的设置见下表:
控件
属性
属性取值
Frmadduser(Form)
Name
Frmadduser
Caption
添加用户
StartUpPosition
CenterScreen
WindowState
Nomal
txtusername
name
txtusername
Txtpassword1
name
Txtpassword1
passwordchar
*
Txtpassword2
name
Txtpassword2
passwordchar
*
Cmdok
name
Command1
caption
确定
cmdcanel
Name
Command2
caption
取消
Label1
caption
操作元
Label2
caption
密码
Label3
caption
确认
二次输入密码后,单击Command1按钮,将触发click事件判断是否修改密码,代码如下:
PrivateSubCommand1_Click()'修改操作员密码
Adodc1.RecordSource="select*fromtb_qxszwhere操作员='"+Text1.text+"'"
Adodc1.Refresh
IfAdodc1.Recordset.RecordCount>0Then
ma.text=Adodc1.Recordset.Fields("密码")
Else
ma.text=""
MsgBox"不存在该操作员!
",,"系统提示"
ExitSub
EndIf
IfText1.text<>""AndText2.text<>""AndText2.text=Adodc1.Recordset.Fields("密码")Then
IfText3.text<>""Then
adocon.Open"Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;UserID=sa;InitialCatalog=kfxt;DataSource=piglet"
SetadoRs=adocon.Execute("updatetb_qxszset密码='"+Text3.text+"'where操作员='"+Text1.text+"'")
adocon.Close
Dimrs1AsNewADODB.Recordset
rs1.Open"select*fromtb_userwhere操作员='"+Text1.text+"'",StrCnn,adOpenKeyset,adLockPessimistic
Ifrs1.RecordCount>0Then
rs1.Fields("密码")=Text3.text
rs1.Update
rs1.Close
EndIf
MsgBox"密码修改成功,退出操作员密码修改!
",,"系统提示"
Main.Enabled=True
UnloadMe
Else
MsgBox"请输入新密码!
!
",,"系统提示"
EndIf
Else
IfText1.text=""Then
MsgBox"请输入操作员!
",,"系统提示"
Text1.SetFocus
Else
IfText1.text<>Adodc1.Recordset.Fields("操作员")Then
Text1.SetFocus
Text1.text=""
MsgBox"无此操作员,请重新输入!
",,"系统提示"
EndIf
EndIf
IfText2.text=""Then
MsgBox"请输入操作员原密码!
",,"系统提示"
Text2.SetFocus
Else
IfText2.text<>ma.textThen
MsgBox"原密码错误,请重新输入原密码!
",,"系统提示"
Text2.text=""
Text2.SetFocus
EndIf
EndIf
EndIf
EndSub
3.操作员密码修改窗体创建
用户可以修改自己的密码,选择菜单“系统|密码设置”出现如图所示的窗体:
在这个窗体中放置了二个文本框,用来输入密码和确认密码,二个按钮按钮用来确定是否修改密码,二个标签用来标示文本框的内容,这些控件属性的设置见下表
控件
属性
属性取值
Frmmodifyuserinfo(Form)
Name
Frmmodifyuserinfo
Caption
密码设置
StartUpPosition
CenterScreen
WindowState
Nomal
Txtpassword1
name
Txtpassword1
passwordchar
*
Txtpassword2
name
Txtpassword2
passwordchar
*
Cmdok
name
Command1
caption
确定
cmdcanel
Name
Command2
caption
取消
Label1
caption
操作员
Label2
caption
原密码
Label3
caption
新密码
二次输入密码后,单击Command1按钮,将触发click事件判断是否修改密码。
PrivateSubCommand1_Click()'修改操作员密码
Adodc1.RecordSource="select*fromtb_qxszwhere操作员='"+Text1.text+"'"
Adodc1.Refresh
IfAdodc1.Recordset.RecordCount>0Then
ma.text=Adodc1.Recordset.Fields("密码")
Else
ma.text=""
MsgBox"不存在该操作员!
",,"系统提示"
ExitSub
EndIf
IfText1.text<>""AndText2.text<>""AndText2.text=Adodc1.Recordset.Fields("密码")Then
IfText3.text<>""Then
adocon.Open"Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;UserID=sa;InitialCatalog=kfxt;DataSource=piglet"
SetadoRs=adocon.Execute("updatetb_qxszset密码='"+Text3.text+"'where操作员='"+Text1.text+"'")
adocon.Close
Dimrs1AsNewADODB.Recordset
rs1.Open"select*fromtb_userwhere操作员='"+Text1.text+"'",StrCnn,adOpenKeyset,adLockPessimistic
Ifrs1.RecordCount>0Then
rs1.Fields("密码")=Text3.text
rs1.Update
rs1.Close
EndIf
MsgBox"密码修改成功,退出操作员密码修改!
",,"系统提示"
Main.Enabled=True
UnloadMe
Else
MsgBox"请输入新密码!
!
",,"系统提示"
EndIf
Else
IfText1.text=""Then
MsgBox"请输入操作员!
",,"系统提示"
Text1.SetFocus
Else
IfText1.text<>Adodc1.Recordset.Fields("操作员")Then
Text1.SetFocus
Text1.text=""
MsgBox"无此操作员,请重新输入!
",,"系统提示"
EndIf
EndIf
IfText2.text=""Then
MsgBox"请输入操作员原密码!
",,"系统提示"
Text2.SetFocus
Else
IfText2.text<>ma.textThen
MsgBox"原密码错误,请重新输入原密码!
",,"系统提示"
Text2.text=""
Text2.SetFocus
EndIf
EndIf
EndIf
EndSub
4.5客房标准设置
宾馆在运行中需要设置不同的客房标准来适应不同消费水平顾客的需要。
对于每个客房标准,有不同的硬件设施和服务。
打开客
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 SQL 酒店客房 管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)