宾馆客房信息管理系统Word文件下载.docx
- 文档编号:18491361
- 上传时间:2022-12-17
- 格式:DOCX
- 页数:29
- 大小:823.16KB
宾馆客房信息管理系统Word文件下载.docx
《宾馆客房信息管理系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《宾馆客房信息管理系统Word文件下载.docx(29页珍藏版)》请在冰豆网上搜索。
客房预定,登记入住,房间调整,退房结帐
三、物资管理:
物品登记,物品查询,报修和维修,定时提醒。
四、财务管理:
追加押金,增删财务,日报表
五、员工管理:
增改员工,查删员工
六、系统管理:
增删管理员,修改密码,以及预留的基于SQL的数据库管理(该程序考虑到
作为课程设计和信息系统不是很大,使用了单机版的ACCESS,以求方便写程序)
七、其他功能:
界面管理(提供两套外观:
经典外观和春天里)
1.3核心数据流图
维修信息
客房信息
客房信息客房状态
客人信息入住登记
帐务信息
入住信息
部分数据流图
数据流名称:
客人信息
来源:
客人
去向:
入住登记
包含的数据项:
姓名、身份证号、性别、入住房间、房间类型、房间价格、入住状态等
(宾馆客房管理系统的数据流——客人信息)
客人产生入住登记
入住
订单编号、姓名、性别、身份证号、客户编号、客房类型、抵房时间、入住人数、预定人、电话、住几天等信息
(宾馆客房管理系统的数据流——入住登记)
客房信息
客房编号、客房类型、客房价格、客房状态
(宾馆客房管理系统的数据流——客房信息)
房间状态
退房
房间
客房号码、房间状态
(宾馆客房管理系统的数据流——房间状态)
帐务信息
财务
帐单编号、姓名、消费金额、入住时间、退房时间、押金
(宾馆客房管理系统的数据流——帐务信息)
1.4核心数据字典
[宾客入住信息表:
Cmanage]
数据项名称(库中字段名)
数据类型及长度
说明
客人电话(ctel)
Char(20)
客人姓名(cname)
Char(12)
Notnull
客人性别(csex)
Char(4)
客人身份证号(cidnum)
客人住址(caddress)
Char(50)
订单编号(cnumber)
Char(15)
Notnull,primarykey
入住人数(cmemeber)
int
客房编号(croom)
客房类型(ctype)
Char(10)
客房价格(cprice)
money
客房状态(cstatue)
Char
(2)
抵店时间(cindate)
短日期型date
退房时间(coutdate)
入住类别(cintype)
Char(4)[预定/现开]
押金(cya)
调整房间(cchange)
原由(creason)
Char(80)
应付款(cmshould)
Money
实收(cmpay)
[客房登记表:
Roomlogin]
房间编号(Rid)
房间名称(Rname)
Notnull,primarykey
房间描述(Rdescribe)
Char(100)
房间价格(Rprice)
房间状态(Rstatue)
Char(8)
操作员(ruser)
[管理员表:
:
pw]
用户(user)
密码(pwd)
权限(power)
Char
(1)
[财务管理表:
Smanage]
财务ID(Sid)
事由(Sreason)
收入(Sin)
支出(Sout)
总收入(ssum)
操作时间(Sdate)
date
结帐人(sman)
挂帐单位(scomp)
操作员(suser)
[维修/报修表:
fix]
登记ID(Fid)
自动编号
登记日期(Fdate)
Notnull
物品名称(Fname)
所属房间(Froom)
维修状态(Fstatue)
维修日期(Ffdate)
登记操作员(Fman)
维修员(Ffman)
所需费用(Fpay)
[提醒表:
Reminder]
提醒ID(RemID)
提醒日期(Remdate)
提醒类别(remtype)
提醒状态(remstatue)
操作员(remuser)
2、概念设计
2.1局部E-R图
[客房E-R]
[客人E-R][管理员E-R]
[职员E-R]
2.2全局E-R图
n1
1
11
111
nqp
m
1
[全局E-R图]
3、逻辑设计
3.1开发环境
开发语言:
VisualBasic
开发平台:
windowsxp,1G内存,集成显卡。
开发工具:
VisualBasic6.0企业版,SQLServer2000,Access2003
3.2关系模式形成以及规范
3.2.1有以下关系模式:
PW(user,pwd,power);
Empl(eid,ename,eage,esex,eaddress,etel,ejob,ejtime,ejage);
Fix(Fid,fname,froom,fstatue,ffdate,fpay,fman,fuser);
Gmanage(Gid,gname,gtype,gnum,gprice,guse,gsum,gdate,guser,gdw);
Roomlogin(Rid,rname,rtype,rdescribe,rprice,rstatue,ruser);
Reminder(remid,remname,remdate,remtype,remstatue,remuser);
Smanage(Sid,sreason,sin,sout,ssum,sdate,sman,scomp,suser);
Cmanage(cnumber,cname,cictype,cicnum,csex,caddress,ctel,cmember,croom,ctype,cprice,cindate,cintype,coutdate,cya,cyaadd,cstatue,cchange,creason,cmtel,cmmeeting,cmcar,cmdamage,cmother,cmshould,cmpay,cmback,cuser);
3.2.2分解分析:
1)各分量都是不可分割的数据项。
满足第一范式;
2)每一个关系中的非码属性都完全函数依赖于码,符合第二范式;
3)每个关系中的主属性不传递依赖关系中的每个关系键,符合第三范式;
4)关系中所有非主属性对每个码都是完全依赖,且所有主码对于每个不包含它的码也是完全函数依赖,没有任
何属性完全函数依赖非码的任何一组属性
4、创建数据库
1)创建数据库,让数据库可以动态增长
createdatabasehotel
on
(name=hotel_data,
filename='
E:
\hotel.mdf'
size=5mB,maxsize=20mb,filegrowth=10%)
logon
(name=hotel_log,
\hotel.ldf'
size=2mb,maxsize=5mb,filegrowth=1mb)
go
2)创建PW用户表
usehotel
go
createtablepw
(userchar(12)notnullprimarykey,
Pwdchar(8)notnull,
Powerchar
(1)notnull)
3)创建客房登记表RoomLogin
createtableroomlogin
(ridchar(12)notnull,
Rnamechar(20)notnullprimarykey,
Rtypechar(10)notnull
Rdescribechar(100),
Rpricemoneynotnull,
Rstatuechar(8)notnull,
Ruserchar(12)notnull,)
4)同上创建提醒表Reminder、物品表Gmanage、维修表fix、员工表Empl、帐务表Smanage、客户如住表Cmanage
5、程序以及调试和使用说明
5.1程序登陆界面
[说明:
进入登陆界面后,系统会自动加载已有的用户,让用户选择自己的帐户进行登陆,密码输入三次后关闭窗口;
用控件属性设置来实现用户定义的完整性:
密码最大长度为8。
用户名错误,或密码错误,系统都会对其进行提醒,以达到正确输入,本程序设置一超
级用户:
admin,权限为1,其他用户的权限均为0。
超级用户能对押金进行追加,其他用户必须在超级用户协助下才能完成押金追加]
5.2主面板
主界面用VB中的MDIForm,多入口提供给用户操作,包括菜单栏、工具栏(可选择显示和不显示)、侧边栏(可隐藏)、主面板Panel(提供操作员最常用的操作,节约时间),在状态栏可以显示系统时间和当前用户以及需要维修的房间数。
实现了所有要求的功能]
[说明:
提供两种风格供用户选择。
在vb模块里有一函数change(),一变量保存当前风格类型,当每次show一窗口时,就会调用该函数通过变量判断是显示那种风格]
5.3具体介绍
5.3.1房态查看
在主面板上的快速入口上点击房态查询,显示当前房间入住图形界面。
直观、方便。
点击房间能显示在该房间入住过的客户。
嵌入的查询语句为:
"
select
cnumber,cname,cictype,cicnum,csex,caddress,ctel,cmember,croom,ctype,cprice,cindate,coutdate,cstatuefromcmanagewherecroom='
&
Command1(Index).Caption&
"
'
,Command1(Index).Caption为当前按下的要查询的房间按钮的名称]
5.3.2入住登记和预定房间
点"
登记"
系统自动在roomlogin表中rstatue='
空闲'
的房间名字添加到房间号码的下拉列表中,供客户选择房间,用户可以选择"
现开/预定"
当用户选择下拉列表中的一个房间时,系统自动将roomlogin中该房间的标准类型,价格自动加载显示,房间状况一目了然。
其他用户自定义完整性约束都通过对控件的属性设置来完成,当用户输入数据破坏完整性时,系统会发出警告,以保持数据库的完整性]
5.3.3调房,住宿、退宿查询
[说明:
通过入口可以打开窗体。
当客户需要调整房间时,点登记后,系统自动加载已入住客户的房间和空闲的房间号码,当用户选择要调房的客户时,系统自动加载客户的信息。
选择目标房间时候,系统自动加载房间信息。
用户确定调房后,系统修改数据库:
原房间状态改为空闲,目标房间改为入住。
原住房产生的费用将加在新入住房间上,而提醒表中原房间改为现房间。
因而需要修改三个表:
Cmanage,roomlogin,reminder.而查询入住信息的嵌入sql语句为:
selectcnumber,cname,cictype,cicnum,csex,caddress,ctel,cmember,croom,ctype,cprice,cindate,coutdate,cstatuefromcmanage"
其他查询语句雷同,此后不在赘述。
在文本框里输入要查询的姓名,MSFlexGrid空间将会显示查询结果,嵌入的查询语句为:
selectcnumber,cname,cictype,cicnum,csex,caddress,ctel,cmember,croom,ctype,cprice,cindate,coutdate,cstatuefromcmanagewherecnamelike'
Text1.Text&
*'
]
5.3.4挂帐,结帐,日报表,追加押金
追加押金窗体.系统自动加载已入住客户号码,当用户选择客户号码时候,系统自动加载客户信息,用户添加押金后,保存时系统对cmanage表进行修改,保存数据;
结帐窗体。
系统自动加载已入住还没退房的房间号,用户选择要退房的房间号,系统加载客户信息以需付款和明细供核对,确定结帐后,系统将对cmanage表,smanage,reminder,roomlogin进行修改,以保持数据库的参照完整性。
如果是挂帐,用户可以选择挂帐,在客户结帐的时候,调出挂帐结帐窗体,系统自动加载挂帐的单位,用户选择挂帐单位,系统自动加载需还金额。
挂帐结帐只对smanage表操作。
而日报表显示smange里的信息,提供按日期查找的方法,打印当天的帐务明细。
查询的嵌入sql语句为:
selectsreason,sin,sout,ssum,sdate,sman,scomp,suserfromsmanagewheresdate=#"
DTPicker1.Value&
#"
。
在该处开始一直调试不出,后来发现在sql语句中对日期要加"
来格式说明是日期型的。
5.3.5报修和维修
打开该窗体,左边有一组option选项。
当选报修时候,系统自动加载空闲的房间号。
如果为入住的房间报修,则需先调房退房后才能报修,总不能让客户住在需维修的房间中吧。
确定报修后。
系统将在reminder表中增加一条需提醒事项,即需维修事项,传递房间号和维修状态给reminder表做为关键字。
在主窗体中便会有提示需要维修的房间,可以通过房态查询,查看需要维修的房间号。
维修完后要进行登记,选择登记后,系统加载当前状态为维修的房间,记录维修费用和维修员,确定后,系统将操作roomlogin和reminder表,保持数据库系统的参照完整性]
5.3.6添加用户,添加员工,修改密码
[说明:
只有管理员,即超级用户才能添加操作员和员工,但是普通拥护可以修改自己的密码。
添加操作员的代码为:
IfText1.Text<
>
AndText2.Text<
AndText2.Text=Puser.Fields("
pwd"
)Then
IfText3.Text<
Then
Puser.Edit
Puser.Fields("
)=Text3.Text
MsgBox("
密码修改成功,退出操作员密码修改!
)
Puser.Update
main.Enabled=True
UnloadMe
Else
请输入新密码!
!
EndIf
IfText1.Text="
请输入操作员!
Text1.SetFocus
user"
Text1.Text="
无此操作员,请重新输入!
IfText2.Text="
请输入操作员原密码!
Text2.SetFocus
IfText2.Text<
原密码错误,请重新输入原密码!
EndIf这是才用DAO3.6对象来对数据库进行操作,这是另一种方法对数据库操作
cr="
insertintopwvalues('
text1.text&
'
'
text2.text&
'
0'
)"
mydb.Executecr这是直接用嵌入sql语句来插入记录。
两种效果都一样
]
6、总结
选定课题后,开始收集相关资料和设计软件架构。
到宾馆调查和到网上收集信息,以及参考了其他信息管理系统,心里就有了轮廓。
设计好软件的几大模块,采用自顶向下的经典设计方法,确定实现的功能,开始设计数据库。
运用相关的数据库知识,设计好数据表,确定字段。
并通过模式分解,确定其是无损的连接。
有了数据库作为整个设计的底层,就好象盖房子有了骨架,而软件就象是砖瓦,只是将骨架填充完善,给客户一个好的外观。
因而数据库的设计尤为重要,但是在设计之初,往往会有很多情况不能考虑周全,再加之一个人编写,所以进度一度很慢,后来通过列出所有可能的情况,以及同同学老师等交流,总结并重新设计了数据库,终于是能有一个比较好的效果。
通过将所有和客户相关的财务信息都加到客户信息里,避免了对多表的操作,避免了有可能会出现的参照完整性不一致的问题。
继而是软件的设计,由于对vb还是算比较熟悉,因而有了数据库的支撑,就得心应手了。
考虑到用户使用的方便性,软件主界面提供了很多入口,以及直观的图形显示,方便用户操作,因而也给客户带来方便,免去了客户的很多等待时间,提升宾馆的形象。
同时提供了两套外观,春天里这套外观可以避免用户的审美疲劳。
整个程序完成了,又花了大量的时间对其进行调试。
通过白盒黑盒测试,程序能正常的显示结果和准确报错,达到了单机运行的效果。
接着在不同机环境器上测试,有些控件因为没有带走,所以报错,后来带上控件后都能正常运行,在xp和win7上都能正常运行。
由于公司规模和业务量大,因而信息系统不可能只在单机上运行,所以才用C/S,或B/S结构比较合适。
因时间关系所以没能完成,只预留了接口,供以后开发扩展用。
当然这次课程设计因为是数据库的课程设计,重点在数据库的设计,所以对于软件体系结构风格,没有考虑,只求能达到目的!
7、部分代码
7.1模块
PublicNowUserAsString'
当前用户名
PublicnowpowerAsString'
当前用户权限
PublicmydbAsDAO.Database'
定义数据库
PublicbgiAsInteger'
判断背景风格
PublicSubLoadAccess()
Setmydb=DAO.OpenDatabase(App.Path&
\hotel.mdb"
EndSub
PublicSubbground()
Ifbgi=1Then
main.Picture=panel.Image1.Picture
pan
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 宾馆 客房 信息管理 系统