毕业设计 毕业论文 KTV点歌系统 卡拉OK点歌系统.docx

上传人:b****9 文档编号:25624297 上传时间:2023-06-10 格式:DOCX 页数:49 大小:3.97MB
下载 相关 举报
毕业设计 毕业论文 KTV点歌系统 卡拉OK点歌系统.docx_第1页
第1页 / 共49页
毕业设计 毕业论文 KTV点歌系统 卡拉OK点歌系统.docx_第2页
第2页 / 共49页
毕业设计 毕业论文 KTV点歌系统 卡拉OK点歌系统.docx_第3页
第3页 / 共49页
毕业设计 毕业论文 KTV点歌系统 卡拉OK点歌系统.docx_第4页
第4页 / 共49页
毕业设计 毕业论文 KTV点歌系统 卡拉OK点歌系统.docx_第5页
第5页 / 共49页
点击查看更多>>
下载资源
资源描述

毕业设计 毕业论文 KTV点歌系统 卡拉OK点歌系统.docx

《毕业设计 毕业论文 KTV点歌系统 卡拉OK点歌系统.docx》由会员分享,可在线阅读,更多相关《毕业设计 毕业论文 KTV点歌系统 卡拉OK点歌系统.docx(49页珍藏版)》请在冰豆网上搜索。

毕业设计 毕业论文 KTV点歌系统 卡拉OK点歌系统.docx

毕业设计毕业论文KTV点歌系统卡拉OK点歌系统

1引言

1.1课题来源

随着现如今经济文化水平的显著提高,人们对生活质量及工作环境的要求也越来越高。

同时,随着生活节奏的加快,每个人都处于忙碌繁乱的社会的那个当中,不论是在家庭,工作场所,或是学校中,无时无刻充满着生活和学习上的压力。

工作之余,找到一种能够换季压力,释放疲劳的娱乐方式,已成为大家共同的愿望。

然而,受到工作条件和时间的限制,越来越多的人们选择了去KTV厅唱K休闲娱乐。

唱歌,自然免不了点歌的繁琐。

传统的点歌设备主要是CD和固放设备组成,虽然基本满足了人们的需求,但是也带来了设备成本高,点歌过程繁琐,更新麻烦等不少问题。

随着科学的发展和信息时代的到来,点歌系统应运而生,卡拉OK点歌系统已经成为了娱乐场所必不可少的一部分。

卡拉OK点歌系统不仅简化了用户操作,而且极大化满足了人们的需求和使用习惯。

1.2课题研究主要内容

卡拉OK点歌系统是娱乐场所的一项管理措施,因此开发卡拉OK点歌系统具有较大的社会意义,同时点歌系统是一娱乐软件的开端,它具有简单的软件特征,系统结构与现实生活紧密结合,具体直观,具有典范的便捷软件特点。

卡拉OK点歌系统主要用于对音乐的各项查找,操作简单,直观。

用起来极为方便。

减少了手工操对工作人员带来的不便和繁琐,使每个用户都能根据自己爱好选择自己喜欢的音乐。

因此,卡拉OK点歌系统是企业化、智能化、科学化、正规化不可缺少的管理软件。

该设计文档主要介绍点歌系统的数据库设计内容。

建立数据库和相关表和SQL语言的使用和用例图的设计和设计综述。

然而,设计出一个让用户满意的点歌系统并不是那么容易,本次课程设计将利用Eclipse和SQLSERVER2008等工具进行开发实践工作。

1.3主要工作

本次课程设计个人独立完成。

包括界面模块,需求分析,概念设计,系统设计,数据库实现等设计。

本次卡拉OK系统的开发主要前台点歌系统和后台管理系统模块的开发。

前台点歌系统包含了拼音点歌、歌星点歌、分类点歌、语种点歌,全部歌曲,每个点歌模块都可以查询想要点的歌曲。

用户点歌完毕之后,可进入歌曲管理,查看自己的歌曲和收藏自己喜欢的歌曲,也可以按照金曲排行来点播想要的歌曲。

管理员可登录后台管理系统对歌曲、歌星、用户进行管理和维护。

进入后台管理系统后,显示的是歌曲管理、歌星管理、用户管理大三模块。

2需求分析

2.1信息要求分析

经过对卡拉OK点歌系统的结构化分析,得出信息要求如下:

1.、歌星信息:

包括了歌星编号、歌星姓名、歌星性别、国籍、歌星类型、地区、拼音缩写。

2、歌曲信息:

包括了歌曲编号、歌曲名称、歌星编号、语种、歌曲类型、路径、歌曲拼音缩写、歌曲时长

3、金曲排行信息:

包括了歌曲编号、歌曲名称、歌星姓名、周点击率、月点击率、总点击率

4、后台日志信息:

包括了操作编号、操作内容、操作时间、操作人员、备注

5、管理员信息:

包括了管理员用户名管理员密码

6、用户信息:

包括了用户编号、用户登录名、用户密码、用户姓名、用户性别、出生日期注册日期

2.2处理要求分析

卡拉OK点歌系统主要分为歌曲的查询与管理,管理主要包括歌曲的查询,增添,修改,删除;查询可以按照歌星查询,歌曲类型查询,歌曲名称查询等方式查询。

系统功能需求:

2.2.1点播歌曲

点歌是最基本也是最重要的功能,重在快捷方便。

比如拼音点歌、指定歌星点歌,只需输入相应的拼音简写然后点击,就能检索到想要点播的歌曲。

2.2.2添加歌曲

音乐是滚动的时尚元素,明天都可能有新的创作,所以添加新歌也是必不可少的功能。

当然,经典老歌也是不可或缺的元素,适当添加经典老歌,增添怀旧的气氛。

2.2.3歌曲管理

歌曲库十分庞大,给歌曲管理带来一定的难度。

对歌曲信息的增添和删改同样需要相应的子功能模块管理。

2.2.4后台记录

系统在运行当中难免出现故障,对数据库的部分重要更新操作可记录入库,作为系统故障时恢复的依据。

2.3数据字典及安全性、完整性要求分析

名称

描述

定义

位置

歌星信息

主要用于存储歌星歌手的基本信息

包括:

歌星编号、歌星姓名、歌星性别、国籍、歌星类型、地区、拼音缩写

数据库的歌星信息表

歌曲信息

记录歌曲的基本信息

包括:

歌曲编号、歌曲名称、歌星编号、语种、歌曲类型、文件路径、歌曲拼音缩写、歌曲时长

数据库的歌曲信息表

金曲排行

记录歌曲热度信息

包括:

歌曲编号、歌曲名称、歌星姓名、周点击率、月点击率,总点击率

数据库的歌曲排行榜信息表

后台日志

记录后台操作日志记录

包括:

操作编号、操作内容、操作时间、操作人员、备注

数据库的后台操作记录表

管理员信息

记录管理员相关信息

包括:

管理员编号、管理员用户名、管理员密码

数据库的管理员信息表

用户信息

记录用户资料和歌曲收藏信息

包括:

用户编号、用户登录名、用户密码、收藏歌曲编号、用户姓名、用户性别、出生日期、注册日期

数据库的用户信息表

3概念结构设计

3.1数据实体描述及分ER图

3.1.1歌星信息实体

3.1.2歌曲信息实体

3.1.3金曲排行实体

3.1.4后台日志实体

3.1.5管理员信息实体

3.1.6用户信息实体

3.2整体ER图

 

分ER图向整体ER图合并,合并过程中出现的问题和解决方案。

(1)结构冲突。

歌星在歌星信息这个分E—R图中作为主体,而在歌曲信息分E—R图中则作为属性。

歌星包含自己的属性,不能放在歌曲信息表的属性里,此时把歌曲表里面的歌星字段用歌星编号取代,而歌星表和歌曲表为一对多关系。

(2)命名冲突。

歌曲信息与歌星信息都包含编号及名称,起名时需要区分开。

分别命名为歌曲编号和歌星编号。

4系统概要设计

4.1数据库逻辑结构设计

为了完成需求分析中确定的基本功能和概念设计中模块的划分,通过基于3NF的数据库设计方法(通过分析,各数据表已达第三范式),构造了7张基本表。

现在对这7张基本表划分基本关系,在已设计好的数据库中初步建立各表,用于存储歌曲信息和歌星信息等基本信息。

此外,在基本表上定义了一些约束条件,包括基本表上数据类型和数据长度的限制以及是否允许为空或表内是否取值唯一的限定。

根据E-R图,可转化为如下关系模式:

关系的主码用下划线标出,外码用删除线标出。

实体:

歌星(歌星编号,歌星姓名,歌星性别,国籍,歌星类型,地区,拼音缩写)

歌曲(歌曲编号,歌曲名称,歌星编号,语种,歌曲类型,路径,歌曲拼音缩写,歌曲时长)

金曲排行(歌曲编号,歌曲名称,歌星姓名,周点击率,月点击率,总点击率)

后台日志(操作编号,操作内容,操作时间,操作人员,备注)

管理员(管理员用户名,管理员密码)

用户(用户编号,用户登录名,用户密码,用户姓名,用户性别,出生日期,注册日期)

联系:

收藏(用户编号,歌曲编号,日期)

歌星表

列名

数据类型

能否取空

约束性

歌星编号

int

Notnull

主键

歌星姓名

Char(10)

Notnull

歌星性别

char

(2)

男或女

国籍

Char(20)

歌星类型

Char(10)

地区

Char(20)

拼音缩写

Char(20)

Notnull

字母

歌曲表

列名

数据类型

能否取空

约束性

歌曲编号

int

Notnull

主键

歌曲名称

Char(20)

Notnull

歌星编号

int

Notnull

外键

语种

Char(10)

歌曲类型

Char(10)

路径

Char(20)

歌曲拼音缩写

Char(20)

Notnull

字母

歌曲时长

datetime

金曲排行表

列名

数据类型

能否取空

约束性

歌曲编号

int

Notnull

主键

歌曲名称

Char(20)

Notnull

歌星姓名

Char(10)

Notnull

周点击率

int

月点击率

int

总点击率

int

后台日志表

列名

数据类型

能否取空

约束性

操作编号

int

Notnull

主键

操作内容

Char(40)

Notnull

操作时间

datetime

Notnull

操作人员

Char(20)

Notnull

外键

备注

Char(20)

管理员表

列名

数据类型

能否取空

约束性

管理员用户名

Char(20)

Notnull

主键

管理员密码

Char(20)

Notnull

用户表

列名

数据类型

能否取空

约束性

用户编号

int

Notnull

主键

用户登录名

Char(20)

Notnull

唯一

用户密码

Char(20)

Notnull

用户姓名

Char(20)

Notnull

用户性别

Char

(2)

Notnull

男或女

出生日期

datetime

Notnull

注册日期

datetime

Notnull

收藏表

列名

数据类型

能否取空

约束性

用户编号

int

Notnull

主属性、外键

歌曲编号

int

Notnull

主属性、外键

日期

datetime

4.2数据库物理设计

4.2.1介绍

数据库的物理设计就是为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程。

物理结构设计阶段实现的是数据库系统的内模式,它的质量直接决定了整个系统的性能。

因此在确定数据库的存储结构和存取方法之前,对数据库系统所支持的事务要进行仔细分析,获得优化数据库物理设计的参数。

数据库的物理设计通常分为两步:

一:

确定数据库的物理结构,在关系数据库中主要指存取方法和存取结构;

二:

对物理结构进行评价,评价的重点是时间和空间效率。

4.2.2索引设计

(1)建立一个聚集索引,在热门歌手视图建立的索引。

createclusteredindex热门歌手索引

onVIEW_热门歌手(歌星姓名)

 

(2)建立四个唯一索引,分别由各表组成。

1.歌星表索引

createuniqueindex歌星索引on歌星表(歌星姓名)

2.歌曲表索引

createuniqueindex歌曲索引on歌曲表(歌曲名称)

3.金曲排行表索引

createuniqueindex排行索引on金曲排行表(歌曲编号)

4.用户索引

createuniqueindex用户索引on用户表(用户姓名)

4.3系统总体框架

根据系统功能的需求分析和卡拉OK点歌系统的特点,经过模块化的分析得出系统功能模块结构图。

系统结构图:

5系统详细设计

5.1数据库实施

完成数据库的物理设计之后,设计人员就要用RDBMS提供的数据定义语言和其他实用程序将数据库逻辑设计和物理设计结果严格描述出来,成为DBMS可以接受的源代码,再经过调试产生目标模式。

然后就可以组织数据入库了,这就是数据库实施阶段。

5.1.1数据库的实施

数据库的实施主要是根据逻辑结构设计和物理结构设计的结果,在计算机系统上建立实际的数据库结构、导入数据并进行程序的调试。

它相当于软件工程中的代码编写和程序调试的阶段。

创建数据库主要通过T-SQL语句来实现,在查询分析器分别输入以下语句来

执行:

createdatabase点歌系统数据库

(1)

createtable歌星表

(歌星编号intprimarykey,

歌星姓名char(10)notnull,

歌星性别char

(2)check(歌星性别in('男','女')),

国籍char(20),

歌星类型char(10),

拼音缩写char(20)notnull,

地区char(20)

insertinto歌星表values('001','李伟','男','中国','流行','lw','大陆')

insertinto歌星表values('002','周杰伦','男','中国','流行','zjl','港台')

insertinto歌星表values('003','许嵩','男','中国','摇滚','xs','港台')

insertinto歌星表values('004','陈音','女','中国','流行','cy','港台')

insertinto歌星表values('005','王力宏','男','中国','摇滚','wlh','大陆')

insertinto歌星表values('006','paul','女','美国','流行','pau','外国')

insertinto歌星表values('007','李晓','男','中国','流行','lx','港台')

 

(2)

createtable歌曲表

(歌曲编号intprimarykey,

歌曲名称Char(20)notnull,

歌星编号intnotnull

foreignkey(歌星编号)references歌星表(歌星编号),

语种Char(10),

歌曲类型Char(10),

路径Char(20),

歌曲拼音缩写Char(20)notnull,

歌曲时长datetime

insertinto歌曲表

values('1','七里香','2','国语','爱情','D盘DB文件夹','qlx','06:

35')

insertinto歌曲表

values('2','千里之外','2','粤语','悲伤','D盘DB文件夹','qlzw','03:

51')

insertinto歌曲表

values('3','忐忑','7','英语','欢乐','D盘DB文件夹','tt','04:

55')

insertinto歌曲表

values('4','千里之外','3','国语','悲伤','D盘DB文件夹','qlzw','04:

12')

insertinto歌曲表

values('5','月亮之光','5','粤语','悲伤','D盘DB文件夹','ylzg','06:

53')

(3)

createtable金曲排行表

歌曲编号intprimarykey,

歌曲名称Char(20)Notnull,

歌星姓名Char(10)Notnull,

周点击率Char(10),

月点击率Char(10),

总点击率Char(10)

insertinto金曲排行表values('1','七里香','周杰伦','11','99','220')

insertinto金曲排行表values('2','千里之外','周杰伦','31','199','550')

insertinto金曲排行表values('3','忐忑','李晓','22','124','330')

insertinto金曲排行表values('4','千里之外','许嵩','38','77','220')

insertinto金曲排行表values('5','月亮之光','王力宏','51','64','180')

(4)

createtable后台日志表

操作编号intprimarykey,

操作内容Char(40)Notnull,

操作时间datetimeNotnull,

操作人员char(20)Notnull

foreignkey(操作人员)references管理员表(管理员用户名),

备注Char(20)

(5)

createtable管理员表

管理员用户名Char(20)primarykey,

管理员密码Char(20)Notnull

insertinto管理员表

values('admin','admin')

(6)

createtable用户表

用户编号intprimarykey,

用户登录名Char(20)Notnullunique,

用户密码Char(20)Notnull,

用户姓名Char(20)Notnull,

用户性别Char

(2)Notnullcheck(用户性别in('男','女')),

出生日期datetimeNotnull,

注册日期datetimeNotnull

insertinto用户表

values('801','chenfeng','chen92','陈峰','男','1992-02-12','2013-01-08')

insertinto用户表

values('802','lm2013','linming20','林敏','女','1995-04-21','2013-01-01')

insertinto用户表

values('803','tingting9527','2581521','谢婷婷','女','1990-06-18','2013-01-03')

insertinto用户表

values('804','wbqlinhao88','s20081212','王宝强','男','1993-02-09','2013-01-06')

(7)

createtable收藏表

用户编号int,

歌曲编号int,

primarykey(用户编号,歌曲编号),

foreignkey(用户编号)references用户表(用户编号)

ondeletecascade/*当删除用户表的元组时,级连删除收藏表中相应的元组*/

onupdatecascade,/*当更新用户表的用户编号时,级连更新收藏表中相应的元组*/

foreignkey(歌曲编号)references歌曲表(歌曲编号)

ondeletenoaction/*当删除歌曲表的元组时造成了与收藏表不一致时拒绝删除*/

onupdatecascade,/*当更新歌曲表的歌曲编号时,级连级连更新收藏表中相应的元组*/

日期datetime

insertinto收藏表values('801','1','2013-01-01')

insertinto收藏表values('801','2','2013-01-01')

insertinto收藏表values('801','3','2013-01-01')

insertinto收藏表values('801','4','2013-01-03')

insertinto收藏表values('801','5','2013-01-03')

insertinto收藏表values('802','1','2013-01-02')

insertinto收藏表values('802','2','2013-01-02')

insertinto收藏表values('802','5','2013-02-03')

insertinto收藏表values('803','2','2013-01-02')

insertinto收藏表values('803','4','2013-01-02')

insertinto收藏表values('803','5','2013-02-03')

insertinto收藏表values('804','1','2013-01-02')

insertinto收藏表values('804','2','2013-01-02')

insertinto收藏表values('804','5','2013-02-03')

insertinto收藏表values('804','4','2013-03-11')

insertinto收藏表values('804','5','2013-03-11')

数据库关系图:

5.1.2视图设计

为了便于浏览经常查询的信息,提高查询效率,可以考虑建立相关视图,因为它不仅可提供了数据库安全性,还可以节省系统资源开销。

(1)用户表、收藏表,歌星表,歌曲表之间,建立一个歌曲总点击率超过一百的视图

createviewVIEW_用户喜爱歌曲

as

select用户表.用户编号,用户登录名,用户姓名,收藏表.歌曲编号,歌曲表.歌曲名称,金曲排行表.歌星姓名,总点击率

from用户表,收藏表,歌星表,歌曲表,金曲排行表

where用户表.用户编号=收藏表.用户编号--用户表连接收藏表

and收藏表.歌曲编号=歌曲表.歌曲编号--收藏表连接歌曲表

and歌曲表.歌星编号=歌星表.歌星编号--歌曲表连接歌星表

and歌曲表.歌曲编号=金曲排行表.歌曲编号--歌曲表连接金曲排行表

and总点击率>100

(2)根据金曲排行表,建立周点击率,月点击率,总点击率的平均点击率的视图

createviewVIEW_平均点击率

as

selectAVG(周点击率)周平均,AVG(月点击率)月平均,AVG(总点击率)总平均

from金曲排行表

(3)根据金曲排行表和平均点击率视图分别建立歌曲的周排行榜、月排行榜、总排行榜视图

createviewVIEW_周排行榜

as

select歌曲名称,歌星姓名,周点击率

from金曲排行表,VIEW_平均点击率

where周点击率>周平均

createviewVIEW_月排行榜

as

select歌曲名称,歌星姓名,月点击率

from金曲排行表,VIEW_平均点击率

where月点击率>月平均

createviewVIEW_总排行榜

as

select歌曲名称,歌星姓名,总点击率

from金曲排行表,VIEW_平均点击率

where总点击率>总平均

(4)根据歌曲表和排行榜视图建立热门歌手视图,要求歌星在周、月和总排行榜三个排行榜至少有一次榜上有名。

createviewVIEW_热门歌手

as

select歌曲名称,歌星姓名

from金曲排行表,VIEW_平均点击率

where总点击率>总平均or月点击率>月平均or周点击率>周平均

5.1.3存储过程设计

1、--本存储过程是对排行表进行一定的数据结构的设计,在用户表是通过

--对总点击率进行设计的,分别设计两个变量进

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

当前位置:首页 > 自然科学 > 物理

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

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