KTV管理系统论文doc.docx
- 文档编号:9921453
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:30
- 大小:321.64KB
KTV管理系统论文doc.docx
《KTV管理系统论文doc.docx》由会员分享,可在线阅读,更多相关《KTV管理系统论文doc.docx(30页珍藏版)》请在冰豆网上搜索。
KTV管理系统论文doc
KTV管理系统论文
****
毕业论文(设计)
KTV管理系统
KTVmanagementsystem
3.2存储过程设计(11)
4.2包厢管理模块(16)
4.3顾客消费管理模块(17)
4.4点歌模块(19)
参考文献(28)
1引言
1.1项目开发背景
随着人们生活水平的提高,人们的业余生活也发生了巨大变化,为了满足人们对生活的需要,丰富业余生活,娱乐KTV等行业蓬勃发展。
近些年来,人们的业余生活变得越来越丰富多彩,去练歌房练歌,成为人们在生活之余的主要休闲方式。
传统的卡拉OK一直用关盘来喂顾客播放歌曲,由于光盘存放歌曲数量有限,很多时候,顾客都找不到自己想唱的歌,并且用光盘播放歌曲不方便。
在数字化的今天,我们已经离不开计算机,为了加强对包厢和点歌的管理,我们必须使用计算机来对大量的歌曲以及对包厢进行处理,使KTV管理员对歌曲点播和分配包厢等操作的管理更加有序、到位。
系统采用先进开发工具,通过本系统,顾客可通过多种方式点播自己喜爱的歌曲,管理员可向系统中添加、修改和删除歌曲信息。
基于上述种种原因,开发一套KTV管理系统迫在眉捷,,基于这些优点,在本次毕业设计之际,我作为一名计算机专业的毕业生,着手开发以下的KTV管理系统方案[1]。
1.2项目提出的意义
“KTV管理系统”是娱乐场所点歌为适应标准化、快捷化的需要而发展起来的。
它是光盘播放的一种发展与革新,它是计算机应用于娱乐产业的成果。
2项目分析设计
2.1需求分析
从顾客使用点歌系统的角度挖掘需求,点歌系统应当具备多种途径的歌曲查询点播功能,普通点歌系统一般会提供一个纸质的歌单,通常其上的曲目按歌名的首字母进行排序并对每个曲目设定有一个特定的编号,也有部分点歌系统以歌名的字数进行排序,顾客在查找到相应的曲目之后再通过遥控器输入该曲目的编号完成点歌功能。
而本系统追求的是全电子化的系统,因此对曲目的查询要求采用无纸化的操作,通过输入即可查询所有曲目,并且需要提供更为丰富的查询方式。
基于方便性与习惯,首先本系统应当提供传统点歌系统的查询方式,即以歌曲名首字母为依据的查询方式和以歌曲名字数多少为依据的查询方式,此外,需要增加以歌手名为依据的查询方式和以歌曲语种为依据的查询方式。
事实上,这些查询方式并没有什么奇特的地方,但是因为可以让不同的顾客选择自己习惯与适应的查询方式,它必将会让用户在消费时感觉更愉快些。
从经营者使用点歌系统的角度挖掘需求,点歌系统应当具备基本的按消费时间计算的计费功能。
此外,点歌系统还应当可以方便地增加新的曲目,也应提供对现有曲目的修改、删除功能,并且,对曲目的管理应当是各包房统一的,而不是必须一个一个包房地进行设置与操作。
另外,因为曲目的管理会影响到整个系统提供的服务,所以这些管理功能应当只能由具有相应权限的管理人员完成,因此,点歌系统中还应提供相应管理人员管理功能及权限控制功能
2.2可行性分析
也称为可行性研究,是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、操作等方面进行分析和研究,以避免投资失误,保证新系统的开发成功。
可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。
该系统的可行性分析包括以下几个方面的内容。
1 .技术可行性:
开发此KTV管理系统需要的硬件环境要求不高,操作系统为windows2000以上系列即可,系统的开发软件为ecliose,数据库管理系统为SQL2000。
除专业技术人员外,普通操作人员无需掌握ecliose及SQL的使用,易于学习和使用。
因此从技术方面讲开发此KTV管理系统是可行的[2]。
2.经济可行性分析
本KTV管理系统主要面向娱乐场所的,所需的硬件和软件环境均不高,所需的专业技术人员也不多,大部分人员在系统的演示完毕之后就可以亲自操作了,并且可以利用娱乐场所已有的工具,所以开发此系统成本低、经济效益高、实用性高,因此从经济方面讲开发此KTV管理系统是可行的[3]。
3.操作可行性分析
根据现有的技术设备条件和准备充实的技术力量和设备,系统在技术上的实现是可行的。
在设备方面,计算机内存容量、外存容量输入输出设备等都可在原有的基础上满足需要[4]。
综上所述,此系统开发目标已明确,在技术和经济等方面都可行,并且投入少、见效快。
因此系统的开发是完全可行的[5]。
2.3系统开发所用的技术准备
2.3.1JDK简介
JDK(JavaDevelopmentKit)是SunMicrosystems针对Java开发员的产品。
自从Java推出以来,JDK已经成为使用最广泛的JavaSDK。
JDK是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库[6]。
JDK是学好Java的第一步。
而专门运行在x86平台的Jrocket在服务端运行效率也要比SunJDK好很多。
从SUN的JDK5.0开始,提供了泛型等非常实用的功能,其版本也不断更新,运行效率得到了非常大的提高[7]。
2.3.2Eclipse简介
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentKit,JDK)[8]。
2.3.3sqlserver2000
SQL是英文StructuredQueryLanguage的缩写,意思为结构化查询语言。
SQL语言的主要功能就是同各种数据库建立联系,进行沟通。
按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。
SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。
目前,绝大多数流行的关系型数据库管理系统,如Oracle,Sybase,MicrosoftSQLServer,Access等都采用了SQL语言标准。
2.4系统整体框架和模块功能说明
图2-2系统整体框架图
1.用户登录模块
前台身份登录:
可查询和分配包厢信息、赋予顾客查询权限;不可添加、修改、删除
服务员身份登录:
开启点歌系统,让顾客进行点歌;
管理员身份登录:
可进行包厢、歌手和歌曲的添加、修改、查询、删除信息;
2.包厢管理模块
空房查询:
查询没被使用的包厢
分配包厢:
根据空房查询的结果把可用包厢分配给顾客
时间记录:
记录包厢开始使用和结束使用的时间
3.顾客消费管理模块
费用管理:
记录顾客消费的费用
会员管理:
记录会员信息
4.点歌模块
歌手名称点歌:
根据演唱歌手的名字来查询选择歌曲。
歌曲名称点歌:
按照歌曲名称进行查询选择歌曲。
歌曲拼音点歌:
根据歌曲名称的每个字的首字母来选歌。
歌曲字数点歌:
根据歌曲字数来检索歌曲。
歌曲语种点歌:
根据不同语种检索歌曲。
5.数据维护模块
歌曲信息维护:
对歌手信息进行添加、修改、删除及查询操作。
歌手信息维护:
对歌曲信息进行添加、修改、删除及查询操作。
包厢信息维护:
对用户信息进行添加、修改、删除及查询操作。
3数据库实现
3.1数据表设计
3.1.1数据库表总体关系
数据库各个表之间的关系如图3-1所示:
图3-1数据库表之间的关系图
3.1.2数据表详细结构
本系统用SQL2000作为数据库,数据库命名为KTV,各表设计如下[9]:
表1UserForm:
用来记录用户名和密码
数据项名称
类型
长度
值
username
char
4
Primarykey
Password
char
10
Notnull
Usertype
char
4
Notnull
用户信息实体所包含的属性E-R图如图
表2Singer:
用来记录歌手信息
数据项名称
类型
长度
值
SingerNo
char
5
Primarykey
SingerName
varchar
30
Notnull
Sex
char
2
Notnull
Nation
char
8
Notnull
歌手信息实体所包含的属性E-R图如图
表3Song:
用来记录歌曲信息
数据项名称
类型
长度
值
SongNo
char
8
Primarykey
SongName
varchar
30
Notnull
WordCount
int
4
Notnull
Spell
varchar
10
SongLan
varchar
8
Notnull
SingerNo
char
5
Notnull
歌曲信息实体所包含的属性E-R图如图
表4selected:
用来记录已选歌曲信息
数据项名称
类型
长度
值
recordno
char
8
Primarykey
SongNo
char
8
Notnull
SongName
varchar
30
Notnull
SingerName
varchar
30
Notnull
SongLan
varchar
8
Notnull
已选歌曲信息实体所包含的属性E-R图如图
表5Room:
用来记录包厢信息
数据项名称
类型
长度
值
RoomNo
char
3
Primarykey
RoomType
char
4
Notnull
RoomPrice
int
4
Notnull
State
tinyint
1
Notnull
包厢信息实体所包含的属性E-R图如图
表6Register:
用户登记表
数据项名称
类型
长度
值
CustomerName
varchar
10
Primarykey
RoomNo
char
3
Notnull
OpenTime
datetime
8
Notnull
LeaveTime
datetime
4
Notnull
CardId
char
8
登记用户信息实体所包含的属性E-R图如图
表7record:
历史记录表
数据项名称
类型
长度
值
recordid
int
4
Primarykey
CustomerName
varchar
10
Notnull
RoomNo
char
3
Notnull
OpenTime
datetime
8
Notnull
LeaveTime
datetime
8
Notnull
CardId
char
8
历史记录信息实体所包含的属性E-R图如图
表8charge:
用来记录用户账单
数据项名称
类型
长度
值
CustomerName
Varchar
10
Notnull
Charge
float
8
Notnull
Discount
float
8
Pay
float
8
Notnull
RoomNo
Char
3
Notnull
RecordId
int
4
Primarykey
用户账单信息实体所包含的属性E-R图如图
表9Vip:
用来记录会员信息
数据项名称
类型
长度
值
CardId
char
8
Primarykey
CustomerName
Varchar
10
Notnull
CardType
varchar
8
Notnull
Phone
char
11
Notnull
会员信息实体所包含的属性E-R图如图
表10CARD:
用来记录会员卡信息
数据项名称
类型
长度
值
CardType
Varchar
8
Primarykey
Discount
float
8
Notnull
会员卡信息实体所包含的属性E-R图如图
3.2存储过程设计
3.2.1点歌的5个存储过程
1.按字数查找
CREATEproc按字数查找@字数char(10)
asselectSongNo,SongName,SingerName,SongLan
from歌曲信息
whereWordcount=@字数
GO
2.按拼音查找
CREATEproc按拼音查找@拼音char(10)
asselectSongNo,SongName,SingerName,SongLan
from歌曲信息
whereSpell=@拼音
GO
3.按歌手查找
CREATEproc按歌手查找@歌手名char(30)
asselectSongNo,SongName,SingerName,SongLan
from歌曲信息
wheresingername=@歌手名
GO
4.按歌曲名称查找
CREATEproc按歌曲名称查找@歌曲名称char(30)
asselectSongNo,SongName,SingerName,SongLan
from歌曲信息
whereSongName=@歌曲名称
GO
5.按语种查找
CREATEproc按语种查找@语种char(10)
asselectSongNo,SongName,SingerName,SongLan
from歌曲信息
wheresonglan=@语种
GO
3.2..2维护的5个存储过程
1.修改歌手信息
CREATEproc歌手修改@singernochar(5),@singernamevarchar(30),@sexchar
(2),
@nationchar(8)
asupdatesinger
setsingerno=@singerno,singername=@singername,sex=@sex,nation=@nation
wheresingerno=@singerno
GO
2.修改包厢信息
CREATEproc包厢修改@roomnochar(3),@roomtypechar(4),@roompriceint,
@statetinyint
asupdateroom
setroomno=@roomno,roomtype=@roomtype,roomprice=@roomprice,state=@state
whereroomno=@roomno
GO
3.修改歌曲信息
CREATEproc维护修改@songnochar(8),@songnamevarchar(30),@wordcountchar(4),
@spellvarchar(10),@songlanvarchar(8),@singernochar(5)
asupdatesong
setsongno=@songno,songname=@songname,wordcount=@wordcount,spell=@spell,songlan=@songlan,singerno=@singerno
wheresongno=@songno
GO
4.插入歌曲
CREATEproc维护插入@songnochar(8),@songnamevarchar(30),@wordcountchar(4),
@spellvarchar(10),@songlanvarchar(8),@singernochar(5)
asinsertintosong
values(@songno,@songname,@wordcount,@spell,@songlan,@singerno)
GO
5.显示歌曲信息
CREATEproc维护显示
asselectsongno,songname,singername,songlan,wordcount,spell,Singerno
from歌曲信息
GO
3.2..3顾客登记和结账的1个存储过程
1.在顾客登记部分用了1个存储过程来插入顾客信息
CREATEproc顾客登记@customernamevarchar(10),@roomnochar(3),@opentimedatetime,
@leavetimedatetime,@cardidchar(3),@IsCalchar(4)
asinsertintoregister
values(@customername,@roomno,@opentime,@leavetime,@cardid,@IsCal)
GO
2.在结账部分用了1个存储过程来插入账单信息
CREATEproc账单插入@roomnochar(3),@customernamevarchar(10),@chargefloat(8),@discountfloat(8),
@payfloat(8)
asinsertintocharge
values(@roomno,@customername,@charge,@discount,@pay)
GO
3.3视图设计
创建了2个视图,一个用视图来建立完整的歌曲信息,包括歌曲表中的信息和歌手表中的信息;一个视图用来显示vip顾客结账时需要的信息
3.3.1歌曲信息视图
CREATEVIEWdbo.歌曲信息
AS
SELECTdbo.Song.SongNo,dbo.Song.SongName,dbo.Singer.SingerName,
dbo.Song.SongLan,dbo.Song.WordCount,dbo.Song.Spell,dbo.Singer.SingerNo,
dbo.Singer.Nation,dbo.Singer.Sex
FROMdbo.SongINNERJOIN
dbo.SingerONdbo.Song.SingerNo=dbo.Singer.SingerNo
3.3.2VIP结账视图
CREATEVIEWdbo.结账
AS
SELECTdbo.Register.CustomerName,dbo.Register.RoomNo,dbo.Room.RoomPrice,
dbo.Register.OpenTime,dbo.Register.LeaveTime,dbo.CARD.Discount,
dbo.Vip.CardId
FROMdbo.RegisterINNERJOIN
dbo.RoomONdbo.Register.RoomNo=dbo.Room.RoomNoINNERJOIN
dbo.VipONdbo.Register.CardId=dbo.Vip.CardIdINNERJOIN
dbo.CARDONdbo.Vip.CardType=dbo.CARD.CardType
3.4触发器设计
1.这个触发器是用来修改包厢状态的,当向register表插入信息时,将room表对应的state(状态)改成1,表示该包厢已使用
CREATETrigger登记
Ondbo.Register
forinsert,delete
As
declare@RoomNochar(3)
begin
updateroom
setstate='1'
fromroom,inserted
whereroom.roomno=inserted.roomno
end
2.这个触发器的作用是当从register删除信息时,将room表对应的state(状态)改成0,表示该包厢为空,并将删除的信息添加到record表
CREATETrigger注销
Ondbo.Register
fordelete
As
declare@Customernamevarchar(10)
declare@RoomNochar(3)
declare@OpenTimedatetime
declare@LeaveTimedatetime
declare@CardIdchar(8)
begin
select@Customername=Customernamefromdeleted
select@RoomNo=RoomNofromdeleted
select@OpenTime=OpenTimefromdeleted
select@LeaveTime=LeaveTimefromdeleted
select@CardId=CardIdfromdeleted
updateroom
setstate='0'
fromroom,deleted
whereroom.roomno=deleted.roomno
insertintorecord
values(@CustomerName,@RoomNo,@OpenTime,@LeaveTime,@CardId)
end
4系统运行和测试
4.1用户登录模块
4.1.1分析与设计
根据应用,要实现前台、服务员和管理者的登录,从而确保信息的安全
4.1.2测试与实现
测试登录界面的使用,并登录成功
测试截图:
登陆校验伪代码:
if(ae.getSource()==bLogin){//点登陆按钮
if(tUser.getText().equals("")||password.getPassword().equals("")){//如果用户名和密码为空
提示请输入
}else{
此处省略“连接数据库,匹配用户名和密码”
if(成功){
跳转到登陆页面
}else{
提示失败信息
}
}
}
4.2包厢管理模块
4.2.1分析与设计
根据设计,要使前台能实现包厢的空房查询,分配包厢,时间记录,并最终注销包厢,使到时间的包厢回复空包厢状态
4.2.2测试与实现
开包厢伪代码:
if(ae.getSource()==b1){//添加按钮
if(t3.getText().equals("")){//如果卡号为空
提示请输入!
}else{
if(s4.equals("使用中")){
s4="1"//s4为房间标记,1为使用中,0为空
}else{
s4="0";
}
if(s1.length()!
=3){//顾客姓名为空
提示包厢号必须为3位数字
}else{
Stringsql="insertintoroomvalues('"+s1+"','"
+s2+"','"+s3+"','"+s4+"')";
rs=stat.executeUpdate(sql);//执行sql语句
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- KTV 管理 系统 论文 doc