毕业设计论文KTV管理信息系统的设计与实现.docx
《毕业设计论文KTV管理信息系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《毕业设计论文KTV管理信息系统的设计与实现.docx(37页珍藏版)》请在冰豆网上搜索。
![毕业设计论文KTV管理信息系统的设计与实现.docx](https://file1.bdocx.com/fileroot1/2022-12/13/5bb98150-143d-4897-801f-818dc40ffe5b/5bb98150-143d-4897-801f-818dc40ffe5b1.gif)
毕业设计论文KTV管理信息系统的设计与实现
KTV管理信息系统的
设计与实现
1.绪论
1.1开发的背景和意义
随着社会的发展和人民生活水平的提高,人们对精神文化生活的需求也在不断地增加。
KTV的出现和发展在一定程度上满足了人们的这种需求,所以KTV行业迅速崛起并且占据了重要的市场。
同时,在这个信息经济飞速发展的时代,计算机管理软件已经成为各个行业主要的管理工具,通过计算机管理软件的管理,可以大大提高管理的效率、安全性和准确性。
当然,在KTV行业的日常管理中,它的管理人员也同样希望通过信息化的管理来提高工作效率、降低运营成本、规范经营模式,大大提高自身的服务档次,提升了企业的管理水平,从而增强企业的竞争力,达到管理的系统化、规范化和自动化。
1.2开发工具的选择
(1)SQLServer简介
SQLServer是一个关系数据库管理系统。
它最初是由MicrosoftSybase和Ashton-Tate两家公司共同开发,于1988年推出了第一个OS/2版本。
在WindowsNT推出后,Microsoft与Sybase在SQLServer的开发上就分道扬镳了。
Microsoft将SQLServer移植到WindowsNT系统上,专注于开发推广SQLServer的WindowsNT版本。
Sybase则较专注于SQLServer在UNIX操作系统上的应用。
SQLServer2000,是Microsoft公司推出的SQLServer数据库管理系统的新版本。
该版本继承了SQLServer7.0版本的优点,同时又比它增加了许多更先进的功能,具有使用方便、可伸缩性好、与相关软件集成程度高等优点。
可跨越从运行MicrosoftWindows98的膝上型电脑,到运行MicrosoftWindows2000的大型多处理器的服务器等多种平台使用。
SQLServer2000的常见版本有企业版、标准版、个人版和开发者版。
其主要用于程序员开发应用程序时,需要SQLServer2000作为数据存储设备。
数据管理技术的发展,与硬件(主要是外存)、软件、计算机应用的范围有密切的联系。
数据管理技术的发展经过三个阶段:
人工管理阶段、文件系统阶段和数据库阶段。
人工管理阶段和文件系统阶段都有着相当多的缺陷,诸如数据冗余性,数据不一致性以及数据联系弱等等。
也正是由于这些原因,促使人们研究新的数据管理技术,从而产生了数据库技术。
当今数据库处理在信息系统的研究中一直是非常重要的主题,尤其是近年来,随着计算机管理系统的迅速发展,使得数据库技术之时成为最热门技术之一。
数据库的设计和开发既包括艺术又包括工程。
理解用户的需求,然后,把它们转变为有效的数据库设计是一个艺术过程。
把设计转变为实际的数据库,并且这些数据库带有功能完备、高效能的应用,是一个工程过程。
在数据库技术中,我们用模型的概念描述数据库的结构与语义,对现实世界进行抽象,表示实体类型及实体间联系的模型称为“数据模型”。
目前广泛使用的数据模型分为两种类型:
一种是独立于计算机系统的模型,完全不涉及信息在系统中的表示,只是用来描述某个特定组织所关心的信息结构,这类模型称为“概念数据模型”。
概念模型用于建立信息世界的数据模型,强调其语义表达功能,应该概念简单、清晰,易于用户理解,它是现实世界的第一层抽象,是用户和数据库设计人员之间进行交流的工具。
其中使用广泛的模型是“实体联系模型”。
另一种数据模型是直接面向数据库的逻辑结构,它是现实世界的第二层抽象。
这类模型涉及到计算机系统和数据库管理系统,又称为“结构数据模型”。
本系统采用了关系模型,关系模型主要是用二维表格结构表达实体集,利用主键和外键的连接进行表与表之间的连接。
关系模型是由若干个关系模式组成的集合。
关系模式相当于记录类型,它的实例称为关系,每个关系实际上是一张二维表格。
关系模型和层次、网状模型的最大判别是用关键码而不是用指针导航数据,表格简单、用户易懂。
用户对数据库的使用,是通过数据库管理系统提供的语言来实现的。
关系数据库管理系统几乎都提供关系数据库标准语言——SQL。
SQL的全称是StructuredQueryLanguage,即结构化查询语言。
SQL语句可以从关系数据库中获得数据,也可以建立数据库、添加数据、修改数据。
1986年ANSI采用SQL语言作为关系数据库系统的标准语言,后被国际化标准组织(ISO)采纳为国际标准。
SQL语言使用方便、功能丰富、简洁易学,因此得到广泛地应用。
例如关系数据库产品DB2、ORACLE等都实现了SQL语言。
这时,其它数据库产品厂家也纷纷推出各自的支持SQL的软件或者与SQL的接口软件。
这样SQL语言很快被整个计算机界所认可。
SQL语言是一种非过程化语言,它一次处理一个记录集合,对数据提供自动导航。
SQL语言允许用户在高层的数据结构上工作,而不对单个记录进行操作。
SQL语言不要求用户指定数据的存取方法,而是使用查询优化器,由系统决定对指定数据存取的最快速手段。
当设计者在关系表上定义了索引时,系统会自动利用索引进行快速检索,用户不需知道表上是否有索引或者有什么类型的索引等细节。
(2)VisualBasic简介
VisualBasic是一种由微软公司推出的可视化开发工具,是Windows环境下最受欢迎的程序设计工具之一。
VisualBasic不仅继承了早期Basic所具有的简单易用的特点,而且其编程系统采用了面向对象和时间驱动的编程机制,用一种巧妙的方法把Windows的编程复杂性封装起来,提供了一种所见即所得的可视化界面设计方法。
VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。
程序员可以轻松的使用VB提供的组件快速建立一个应用程序。
ADO(ActiveXDataObject,ActiveX数据对象)是一个基于OLEDB之上的对象模型,包含了所有可以被OLEDB标准接口描述的数据类型,通过ADO内部的属性和方法提供统一的数据访问接口方法。
ADO对象模型具有可扩展性,当把数据库上层应用程序移植到不同的数据库平台上时,只需更换连接数据库的驱动程序,而不需要对上层应用程序作任何修改。
ADO向VisualBasic程序员提供了许多好处,包括易于使用、熟悉的界面、高速度以及较低的内存占用时
综上我采用SQLServer2000数据库和VisualBasic来实现该KTV管理信息系统。
2.需求分析和开发环境
2.1用户需求分析
通过调查,根据用户的需要,系统应该具有以下功能:
●对KTV管理信息系统的登陆用户进行分类以及权限设置。
●展示KTV管理信息系统的主要界面。
●可以对房间信息进行查看功能,并且可以对其房间进行添加、修改、删除等操作。
●提供对会员信息进行查看功能,并且可以对其房间进行添加、修改、删除等操作。
●提供开房、预定、维修、打扫和结帐功能。
●提供预定单明细表、开房单明细表、维修单明细表。
●提供帐单、房间和会员查询功能。
●提供用户权限设置功能。
●提供用户管理功能。
●提供密码修改功能。
●提供用户查询功能。
●系统退出。
2.2可行性分析
该系统适用于中小型KTV的日常管理。
界面简洁直观、功能齐全、操作方便。
通过该软件可以对房间、会员、用户进行基本管理,同时可以很方便的对房间的基本业务进行操作,如开房、预定、结帐、打扫和维修。
同时通过对不同用户进行权限设置,增加了数据的安全性。
2.3开发环境
(1)硬件平台:
CPU:
P41.8GHz内存:
256MB以上
(2) 软件平台:
操作系统:
WindowsXP/Windows2000
数据库:
SQLServer2000
3.总体设计
3.1功能模块划分
KTV管理信息系统是一个典型的数据库和VB综合的开发应用程序,该系统包括五个功能模块:
基本信息功能模块、基本业务功能模块、查询统计功能模块、系统设置功能模块和退出系统功能模块。
如图3-1所示:
图3-1KTV管理信息系统的功能模块
3.2逻辑结构设计
3.2.1数据库表详细信息
本系统涉及到的表分别是结帐单信息表(CheckInfo)、会员信息表(MemberInfo)、预定单信息表(DestineInfo)、维修单历史表(RepairHistroy)、维修单信息表(RepairInfo)、开房单历史表(OpenRoomHistroy)、房间信息表(RoomInfo)、用户登陆信息表(UserInfo)和房间消费信息表(RoomConsumed)。
各个表的详细信息如下:
表1结帐单信息表CheckInfo
字段名
字段说明
数据类型
字段长度
必填字段
主键
CheckID
结帐单编号
Char
4
是
是
RoomID
房间编号
Char
2
是
否
RoomType
房间类型
Varchar
10
否
否
RoomPrice
房间价格
Float
8
否
否
ClientName
客户名称
Varchar
10
否
否
Agio
折扣
Int
4
否
否
OpenRoomTime
开房时间
Datetime
8
是
否
EndTime
结帐时间
Datetime
8
是
否
Prepay
预付金额
Float
8
否
否
PayMade
付款方式
Varchar
10
否
否
RoomMoney
消费金额
Float
8
是
否
OpenDate
开房日期
Datetime
8
是
否
MemberID
会员编号
Char
3
否
否
表2会员信息表MemberInfo
字段名
字段说明
数据类型
字段长度
必填字段
主键
MemberID
会员编号
Char
3
是
是
MemberName
会员姓名
Varchar
8
否
否
Tel1
固定电话
Varchar
20
否
否
Tel2
手机
Varchar
20
否
否
Address
地址
Varchar
30
否
否
SignCheck
签单额度
Int
4
是
否
ConsumedTime
消费次数
Int
4
是
否
ConsumedIntegal
消费积分
Float
8
是
否
Remake
备注
Varchar
50
否
否
表3预定单信息表DestineInfo
字段名
字段说明
数据类型
字段长度
必填字段
主键
DestineID
预定单编号
Char
4
是
是
ClientName
客户名称
Varchar
10
否
否
RoomID
房间编号
Char
2
是
否
RoomType
房间类型
Varchar
8
否
否
RoomPrice
房间价格
Float
8
否
否
ClientTel
客户电话
Varchar
20
否
否
ClientCount
人数
Int
4
否
否
OpenRoomDate
开房日期
Datetime
8
是
否
OpenRoomTime
开房时间
Datetime
8
是
否
Waitor
操作员
Varchar
10
否
否
Prepay
预付金额
Float
8
否
否
Remake
备注
Varchar
50
否
否
DestineDate
预定日期
Datetime
8
是
否
MemberID
会员编号
char
3
否
否
表4维修单历史表RepairHistroy
字段名
字段说明
数据类型
字段长度
必填字段
主键
RepairHisID
维修单编号
Char
3
是
是
RoomID
房间编号
Char
2
是
否
Remake
维修缘由
Varchar
50
否
否
RemakeAfter
维修结果
varchar
50
否
否
表5维修单信息表RepairInfo
字段名
字段说明
数据类型
字段长度
必填字段
主键
RepairID
维修单编号
Char
3
是
是
RoomID
房间编号
Char
2
是
否
Remake
维修缘由
Varchar
50
否
否
表6开房单历史表OpenRoomHistroy
字段名
字段说明
数据类型
字段长度
必填字段
主键
ORHistroyID
结帐单编号
Char
4
是
是
RoomID
房间编号
Char
2
是
否
RoomType
房间类型
Varchar
10
否
否
RoomPrice
房间价格
Float
8
否
否
ClientName
客户名称
Varchar
10
否
否
Agio
折扣
Int
4
否
否
OpenRoomTime
开房时间
Datetime
8
是
否
EndTime
结帐时间
Datetime
8
是
否
PayMade
付款方式
Varchar
10
否
否
RoomMoney
消费金额
Float
8
是
否
OpenDate
开房日期
Datetime
8
是
否
MemberID
会员编号
Char
3
否
否
表7房间信息表RoomInfo
字段名
字段说明
数据类型
字段长度
必填字段
主键
RoomID
房间编号
Char
2
是
是
RoomName
房间名称
Varchar
20
否
否
RoomType
房间类型
Varchar
10
否
否
RoomPrice
价格
Float
8
是
否
RoomState
房间状态
char
6
否
否
表8用户登陆信息表UserInfo
字段名
字段说明
数据类型
字段长度
必填字段
主键
UserID
用户ID
Char
2
是
是
UserName
用户姓名
Varchar
8
否
否
UserPwd
用户密码
Varchar
10
是
否
UserType
用户权限代码
int
4
否
否
Remake
用户类型
varchar
8
否
否
表9房间消费信息表RoomConsumed
字段名
字段说明
数据类型
字段长度
必填字段
主键
RoomConsumedID
开房单编号
Char
4
是
是
RoomID
房间编号
Char
2
是
否
RoomType
房间类型
Varchar
10
否
否
RoomPrice
房间价格
Float
8
否
否
ClientCount
人数
Int
4
否
否
ClientName
客户名称
Varchar
10
否
否
OpenTime
开房时间
Datetime
8
是
否
ClientTel
客户电话
Varchar
20
否
否
Prepay
预付金额
Float
8
否
否
Agio
折扣
Int
4
否
否
PayMade
付款方式
Varchar
10
否
否
OpenDate
开房日期
Datetime
8
是
否
Remake
备注
Varchar
50
否
否
MemberID
会员编号
Char
3
否
否
3.2.2数据库总体结构
本系统采用了SQLServer2000作为后台数据库的开发工具,本系统数据库名称为“KTVDB”,其中共包含9张表。
各个表之间的关系如图3-2。
图3-2数据库KTVDB联系
3.2.3系统中数据库的连接
在本系统中,都是通过ADO控件来与后台数据库进行连接的。
下面是系统中的登陆界面中所涉及到连接数据库的代码:
'连接数据库
'SqlStr="provide=SQLOLEDB.1;PersistecurityInfo=False;"&"UserID=sa;InitialCatalog=KTVDB;DataSource=(local)"
Setg_DBConn=NewADODB.Connection
'建立无源数据库连接
g_DBConn.ConnectionString="driver={sqlserver};server=(local);userid=sa;pwd=;Database=KTVDB"
g_DBConn.Open
在该连接代码中,数据库连接的服务器名称为local,数据库名称为KTVDB,当系统中使用到了相应的表时,再通过代码与该表进行连接,再通过SQL语句对数据库进行相应的操作。
4.系统的设计与实现
4.1系统的功能模块介绍
该系统主要包括以下功能模块:
●用户登录:
实现对用户的登录验证,并且根据用户的权限来判断功能按钮的显示与否。
●基本信息:
其中包括用户信息和会员信息,并且对相应的信息进行添加、删除、修改等操作。
●基本业务:
包括预定、开房、维修和打扫功能。
同时当用户选定某个房间时,通过鼠标右击可以调出相应的弹出菜单,这样就使操作更加方便快捷了。
●房间管理:
在房间管理中,用户可以通过查看预定单明细表来了解当前的预定信息、通过查看开房单明细表来了解正处于开房状态的房间信息和通过查看维修单明细表来了解正在处于维修状态的房间的详细信息。
●查询统计:
在查询统计中可以对帐单、房间和会员通过关键字进行具体的查询。
●系统设置:
在系统设置中包括用户权限设置、用户管理、密码设置和用户查询等功能。
●退出系统:
关闭所有界面,退出系统。
4.2系统的各个功能界面设计与实现
在对KTV管理信息系统的功能进行简单介绍以后,下面就根据系统主界面菜单栏的顺序来分别介绍每个功能界面的设计与实现。
4.2.1登录界面
在进入系统主界面之前,首先要进入登陆界面,如图4-1。
图4-1系统登录界面
在该系统中设计了三种用户,即管理员
(1)、高级用户
(2)和普通用户(0)。
其中管理员具有最高权限,能够执行所有操作;高级用户不可以进行用户信息的修改;普通用户除不可以进行用户信息的修改外,还不可以对房间信息和会员信息进行任何修改。
在登陆界面中通过SQL语句与数据库建立连接以后,在用户输入用户ID和用户密码后,系统将接收到的数据与数据库中UserInfo表中的记录进行比较,从而确定是否登陆成功。
并将记录用户的权限(g_LoginedUser.Type),以便交给主界面、会员信息窗体和房间信息窗来判断用户对各种功能的使用权限。
4.2.2系统主界面
当用户信息的用户ID和密码与数据库UserInfo中的信息想匹配时,则进入系统的主界面,如图4-2:
图4-2系统主界面
在系统主界面中,我们可以看到在最上方是菜单栏,用户可以通过菜单栏中的各个选项来选择相应的操作。
在主界面中,所有的房间都以自己的状态图标的形式显示出来。
在主界面的下方可以看到处于各种房间状态的房间个数。
主界面中最主要的是将所有房间显示在界面中和将处于各种状态的房间个数在主界面的下方显示出来。
将所有房间以房间状态的图标显示出来是通过ShowRoomStatus函数来实现的。
函数在数据库RoomInfo中读取房间编号、房间状态和房间名称的信息,通过房间编号来判定在MSFlexGrid控件中显示的位置,然后通过房间状态来确定所显示的图片文件。
ShowRoomStatus函数的代码如下:
FunctionShowRoomStatus()
DimstrRoomNameAsString
DimstrRoomStateAsString
DimiRoomIDAsInteger
DimdrAsNewADODB.Recordset‘定义新的ADO对象
DimStrAsString
DimiRecordAsInteger
DimiAsInteger
'清空房间图标准备重新显示
MSFlexGrid1.Clear
'在数据库中读取房间信息,确定房间编号、房间状态和房间名称。
Str="selectRoomID,RoomName,RoomStatefromRoomInfo"
dr.OpenStr,g_DBConn,adOpenStatic,adLockOptimistic
iRecord=dr.RecordCount
dr.MoveFirst
Fori=0ToiRecord
Ifdr.EOFThen
ExitFunction
EndIf
iRoomID=dr("RoomID").Value
strRoomName=Trim(dr("RoomName").Value)
strRoomState=Trim(dr("RoomState").Value)
'通过房间编号来确定显示的位置
If(iRoomIDMod10)<>0Then
Me.MSFlexGrid1.Row=Int(iRoomID/10)
Me.MSFlexGrid1.Col=((iRoomIDMod10)-1)
ElseIf(iRoomIDMod10)=0Then
Me.MSFlexGrid1.Row=Int(iRoomID/10)-1
Me.MSFlexGrid1.Col=9
EndIf
'根据房间状态读取所要显示的图片文件
SelectCasestrRoomState
Case"空房"‘如果房间状态为空房
MSFlexGrid1.CellPictureAlignment=flexAlignCenterTop
SetMe.MSFlexGrid1.CellPicture=LoadResPicture("KONGFANG",vbResBitmap)
MSFlexGrid1.Text=strRoomName
Case"占用"
MSFlexGrid1.CellPictureAlignment=flexAlignCenterTop
SetMe.MSFlexGrid1.CellPicture=LoadResPicture("ZHANYONG",vbResBitmap)
MSFlexGrid1.Text=strRoomName
Case