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

上传人:b**** 文档编号:14762500 上传时间:2023-06-27 格式:DOCX 页数:36 大小:2.64MB
下载 相关 举报
数据库SQL实训-酒店客房管理系统.docx_第1页
第1页 / 共36页
数据库SQL实训-酒店客房管理系统.docx_第2页
第2页 / 共36页
数据库SQL实训-酒店客房管理系统.docx_第3页
第3页 / 共36页
数据库SQL实训-酒店客房管理系统.docx_第4页
第4页 / 共36页
数据库SQL实训-酒店客房管理系统.docx_第5页
第5页 / 共36页
数据库SQL实训-酒店客房管理系统.docx_第6页
第6页 / 共36页
数据库SQL实训-酒店客房管理系统.docx_第7页
第7页 / 共36页
数据库SQL实训-酒店客房管理系统.docx_第8页
第8页 / 共36页
数据库SQL实训-酒店客房管理系统.docx_第9页
第9页 / 共36页
数据库SQL实训-酒店客房管理系统.docx_第10页
第10页 / 共36页
数据库SQL实训-酒店客房管理系统.docx_第11页
第11页 / 共36页
数据库SQL实训-酒店客房管理系统.docx_第12页
第12页 / 共36页
数据库SQL实训-酒店客房管理系统.docx_第13页
第13页 / 共36页
数据库SQL实训-酒店客房管理系统.docx_第14页
第14页 / 共36页
数据库SQL实训-酒店客房管理系统.docx_第15页
第15页 / 共36页
数据库SQL实训-酒店客房管理系统.docx_第16页
第16页 / 共36页
数据库SQL实训-酒店客房管理系统.docx_第17页
第17页 / 共36页
数据库SQL实训-酒店客房管理系统.docx_第18页
第18页 / 共36页
数据库SQL实训-酒店客房管理系统.docx_第19页
第19页 / 共36页
数据库SQL实训-酒店客房管理系统.docx_第20页
第20页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

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

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

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

目录

目录 1

第一章系统分析 2

一.可性行分析 2

第二章需求分析 2

第三章系统总体设计 3

3.1总体设计 3

3.2详细设计模块 4

3.3数据库设计 5

3.4数据库需要分析 5

3.4.1数据库分析 5

3.4.2数据库概念结构设计 7

3.4.3数据库逻辑结构设计 9

第四章系统代码设计及实现 11

4.1创建宾馆客房管理信息系统的主登录窗体 11

4.2创建公用模块 13

4.3创建宾馆客房管理信息系统的主窗体 14

4.4创建主窗体的菜单 15

4.5客房标准设置 20

4.6客房查询 22

4.7住宿查询模块设计 23

4.8退房查询模块设计 24

4.9日结统计报表模块设计 25

4.10系统维护模块设计 26

该模块主要用于数据恢复及备份用以保证数据安全打开系统维护-数据备份 26

4.11权限设置模块 28

4.12安全退出模块设计 30

第五章系统的编译和发行 30

第六章实训总结 31

第一章系统分析

一.可性行分析

可行性分析是指在允许的成本、性能要求下,分析每项需求实施的可行性,提出需求实现的相关风险,包括与其它需求的冲突,对外界因素的依赖和技术障碍。

可行性分析包括操作可行性、技术可行性、经济可行性和进度可行性。

下面是对酒店管理系统的可行性分析。

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账户权限设置表:

Tbtfdj退房登记表:

10

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

11

IfAdodc1.Recordset.RecordCount>0Then'如果记录数大于零'验证密码

IfText2.text=Adodc1.Recordset.Fields("密码")ThenLoadMainMain.Show

UnloadMe

Else

IfText2.text<>Adodc1.Recordset.Fields("密码")ThenMsgBox"密码错误,请重新输入!

",vbCritical,"系统提示"itimes=itimes+1Text2.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

ElseText1.SetFocus

EndIf

EndSub当用户输入完用户名要输入密码时可以按回车系统自动定位到下一个文本框实现代码如下:

PrivateSubtext2_KeyDown(KeyCodeAsInteger,ShiftAsInteger)

IfKeyCode=vbKeyReturnThenImage1_Click'按回车键进入EndSub

PrivateSubText1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)

12

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()

13

'返回一个数据库连接

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

14

用来显示当前时间,面板3用来显示系统信息。

面板4显示操作员信息。

如图:

4.4创建主窗体的菜单

1.在如图所示的主窗体中,单击鼠标右键,选择弹出式菜单中的“ MenuEditor”命令,创

建如图所示菜单结构:

2:

添加用户窗体的创建

进入系统后,选择菜单“系统|添加用户”,就可以添加用户,出现添加用户的窗体:

15

在这个窗体中放置了二个文本框,用来输入密码和确认密码,二个按钮用来确定是否修改密码,二个标签用来标示文本框的内容,这些控件属性的设置见下表:

控件

属性

属性取值

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(" 密码")

16

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.Recordsetrs1.Open"select*fromtb_userwhere操作员='"+Text1.text+"'",StrCnn,adOpenKeyset,adLockPessimistic

Ifrs1.RecordCount>0Thenrs1.Fields("密码")=Text3.textrs1.Updaters1.Close

EndIf

MsgBox"密码修改成功,退出操作员密码修改!

",,"系统提示"

Main.Enabled=True

UnloadMe

Else

MsgBox"请输入新密码!

!

",,"系统提示"

EndIf

Else

IfText1.text=""Then

MsgBox"请输入操作员!

",,"系统提示"

Text1.SetFocus

Else

IfText1.text<>Adodc1.Recordset.Fields("操作员")ThenText1.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

17

3.操作员密码修改窗体创建

用户可以修改自己的密码,选择菜单“系统 |密码设置”出现如图所示的窗体:

在这个窗体中放置了二个文本框,用来输入密码和确认密码,二个按钮按钮用来确定是否修改密码,二个标签用来标示文本框的内容,这些控件属性的设置见下表

控件

属性

属性取值

Frmmodifyuserinfo(Form)

Name

F

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

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

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2