数据库SQL实训酒店客房管理系统.docx

上传人:b****3 文档编号:26976370 上传时间:2023-06-24 格式:DOCX 页数:42 大小:813.38KB
下载 相关 举报
数据库SQL实训酒店客房管理系统.docx_第1页
第1页 / 共42页
数据库SQL实训酒店客房管理系统.docx_第2页
第2页 / 共42页
数据库SQL实训酒店客房管理系统.docx_第3页
第3页 / 共42页
数据库SQL实训酒店客房管理系统.docx_第4页
第4页 / 共42页
数据库SQL实训酒店客房管理系统.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

数据库SQL实训酒店客房管理系统.docx

《数据库SQL实训酒店客房管理系统.docx》由会员分享,可在线阅读,更多相关《数据库SQL实训酒店客房管理系统.docx(42页珍藏版)》请在冰豆网上搜索。

数据库SQL实训酒店客房管理系统.docx

数据库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客房标准设置

宾馆在运行中需要设置不同的客房标准来适应不同消费水平顾客的需要。

对于每个客房标准,有不同的硬件设施和服务。

打开客

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

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

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

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