毕业设计(论文)
题 目: 基于ASP的在线点歌系统的设计与实现
院 系: 计算机与通信学院
专 业: 计算机科学与技术
学生姓名: 学 号:
指导教师:
一 应用背景
在线点歌是近年来新兴的传媒方式,该技术是计算机技术,网络通信技术,多媒体技术等多学科,多领域融合交叉结合的产物。在线点歌系统使人们可以根据自己的兴趣在计算机或者电视上自由的点播节目库中的歌曲和信息。也可以将自己点播的歌曲送给自己的朋友。
在线点歌系统主要有以下功能:
1,歌曲做到分类显示
2,歌曲分类查询
3,歌曲在线试听及下载
4,将喜欢的歌曲直接发送给好友
5,系统支持尽量多的音乐格式
二 系统设计
1,系统构架
在点歌系统采用从数据层到应用层,最后到用户接口层进行设计。系统总体构架如下图所示。
2,系统功能模块设计
系统主要功能如下:
1:歌曲在线试听及下载
2:将喜欢的歌曲直接发送给好友
3:系统支持多种音乐格式
系统主要分为两大模块,如下图
1. 用户类型
系统用户分为两类:普通类用户和管理类用户。普通类用户可以对歌曲进行查询,试听,点播等操作。可以为别人在线点播歌曲。管理员用户在普通类用户权限上增加后台歌曲管理功能,可以对歌曲进行添加,删除,修改等操作。
2. 后台论坛管理模块
此模块只对超级管理员用户开放。管理员用户可以对后台歌曲管理进行修改,可以对歌曲的名称,分类,歌手名称,地址等信息进行修改,也可以对歌曲进行增加和删除。
3.前台论坛管理模块
此模块对所有用户开放。可以按照分类对歌曲进行各项权限范围内的操作。
3 系统主要工作流程
1.在线点歌系统前台管理模块
在线点歌系统前台管理程序流程图,如下:
2. 在线点歌系统后台模块
在线点歌系统后台管理程序流程图,如下:
4 数据库的分析与设计
本次开发的数据库包括5个数据表:点歌信息数据表,点歌网站基本信息,管理员基本信息,歌曲基本信息,歌曲分类基本信息。
本系统将使用SQL Server2000作为数据库管理系统。安装SQL Server2000,打开企业管理器,新建一个数据库,将其命名为dg。dg数据库中包含的数据表及其相应功能如下表:
| 数据表 | 功能 |
| Data | 存放点歌信息 |
| Home | 存放网站基本信息 |
| Password | 存放管理员基本信息 |
| Learning | 存放歌曲基本信息 |
| Type | 存放歌曲分类信息 |
dg数据库包含的数据表及其功能
1.点歌信息表data
点歌信息表用于存放校友录内设置的班级信息,包括点歌编号(id),点歌人姓名(name),歌曲地址(picture),收歌人姓名(toname),收歌人Email地址(mail),点歌人地址(replyto),加入时间(addtime),密码(pass),祝福(message)9个字段,在已创建的SQL Server数据库中,右击表创建一个表,名为data,向表中添加字段。其中,id(点歌编号)字段作为该表的主关键字,标识为“是”,标识种子为“1”,标识增量为“1”,唯一标识了一个点歌信息。点歌信息表结构如下表:
| 字段名 | 数据类型及长度 | 说 明 | 备 注 |
| id | int | 点歌编号 | 允许为空 |
| myname | nvarchar(50) | 点歌人姓名 | 允许为空 |
| picture | nvarchar(100) | 歌曲地址 | 允许为空 |
| toname | nvarchar(50) | 收歌人姓名 | 允许为空 |
| nvarchar(50) | 收歌人Email地址 | 允许为空 | |
| replyto | nvarchar(50) | 点歌人Email地址 | 允许为空 |
| addtime | smalldatetime | 加入时间 | 允许为空 |
| pass | nvarchar(50) | 密码 | 允许为空 |
| message | ntext | 祝福 | 允许为空 |
网站基本信息表用于存放网站基本信息,包括网站名称(home),每页最多歌曲数(duo)两个字段。网站基本信息表结构如下:
home
| 字段名 | 数据类型及长度 | 说 明 | 备 注 |
| home | nvarchar(255) | 网站名称 | 主关键字 |
| duo | int | 每页最多歌曲数 | 允许为空 |
管理员信息表用于存放管理员账号,密码信息,包括编号(id),账号(adminname),密码(password),3个字段。其中,id(编号)字段作为该表的主关键字,标识为“是”,标识种子为“1”,标识增量为“1”,唯一标识了一个管理员的信息。管理员信息表结构如下:
| 字段名 | 数据类型及长度 | 说 明 | 备 注 |
| id | int | 编号 | 主关键字 |
| adminname | nvarchar(50) | 账号 | 不能为空 |
| password | nvarchar(50) | 密码 | 不能为空 |
歌曲基本信息表用于存放歌曲名称,地址等基本信息,包括歌曲编号,点击数,歌曲地址,加入时间,歌曲名称,歌手6个字段。其中,歌曲编号作为主关键字,标识为“是”,标识种子为“1”,标识增量为“1”,唯一标识了一个歌曲信息。点击数字段默认值为“0”。歌曲基本信息表如下:
learning
| 字段名 | 数据类型及长度 | 说 明 | 备 注 |
| articleid | int | 歌曲编号 | 主关键字 |
| hits | int | 点击数 | 允许为空 |
| images1 | nvarchar(255) | 歌曲地址 | 允许为空 |
| dateandtime | smalldatetime | 加入时间 | 允许为空 |
| title | nvarchar(255) | 歌曲名称 | 允许为空 |
| singer | nvarchar(50) | 歌手 | 允许为空 |
歌曲分类信息表主要用于存放歌曲分类信息,包括分类编号,歌曲分类名称两个字段,其中分类编号作为主关键字,标识为“是”,标识种子为“1”,标识增量为“1”,
唯一标识了一个歌曲分类信息,歌曲分类信息表结构如下:
type
| 字 段 名 | 数据类型及长度 | 说 明 | 备 注 |
| typeid | int | 分类编号 | 主关键字 |
| type | nvarchar(255) | 歌曲分类名称 | 允许为空 |
点歌信息表data中的歌曲地址字段picture与歌曲基本信息表learning歌曲地址字段存在着对应关系。即picture字段的值必定在歌曲基本信息表learning中images1字段中存在。反之,歌曲基本信息表learning中images1字段中的值不一定在picture字段中存在。
4 IIS配置与SQL Server数据库连接
1.IIS配置
IIS是internet information server的缩写,是微软提供的internet服务器软件,包括web,FTP,Mail等服务器。
IIS是Windows操作系统自带的组件,如果在安装操作系统时没有安装IIS,则应手动安装,安装步骤如下:
(1)打开控制面板窗口,双击添加或删除程序图标,运行添加或删除程序窗口。
(2)选择添加或删除程序窗口内添加/删除Windows组件选项,弹出Windows组件向导对话框。
(3)选中internet信息服务(IIS)复选框,单击下一步,执行操作。IIS安装完毕,接下来就是要对系统进行新建虚拟目录操作:
a:打开控制面板,双击管理工具图标,进入管理工具窗口。
b:双击internet服务管理器,进入internet信息服务窗口。
c:单击操作目录,选择下拉菜单新建虚拟目录命令。
d:弹出欢迎窗口,单击下一步按钮。
e:在别名文本框中输入映射后的名字,单击下一步。
f:在目录文本框中输入要映射的目录,单击下一步,进入设置访问权限设置窗口。
g:在这里选择正确的访问权限,再单击下一步,即完成设置。
(4)删除映射的方法:打开internet信息服务窗口,在虚拟目录别名上单击鼠标右键,选择删除命令即可。
2.创建SQL Server数据库
打开SQLServer的企业管理器窗口,右击数据库分支,弹出右击目录,选择新建数据库命令,弹出数据库属性窗口,在名称文本框内输入zxdg,单击确定按钮,完成创建。
按照要求建好数据库后,需要建立网站页面与后台服务器的链接,页面名称为articleconn.asp。以后当需要对程序中的数据库进行操作时,只需要用命令就可以直接调用该程序打开数据库,提高程序可读性,同时也提高了程序的便捷性。代码如下:
<%
Set conn=Server.CreateObject(“ADODB.Connection”)
connstr=”Provider=SQLOLEDB;DataSource=byd;InitialCatalog=dg;UserID=sa;Password=sa;”
conn.Open connstr
%>
5 在线点歌系统前台
1.系统首页页面
系统首页页面分为上下两部分组成。顶部为图片,中间显示网站主要信息。中间分左右两部分:左侧上部为歌曲查询,提供查询入口,中间为歌曲类别按钮,单击按钮右侧歌曲名称根据类别分类显示,下方点播歌曲公告栏,循环显示已经发送的歌曲信息,最下方为试听歌曲软件下载。右侧为歌曲名称列表。
系统首页页面代码如下:
<%调用artcleconn.asp链接数据库%>
<%调用home1.asp查询网站基本信息表%>
a:创建过程检查是否输入查询内容
创建过程checkinput检查检查是否输入查询内容。代码如下:
2.判断跳转页面
判断输入跳转页面是否为空,如果为空,则默认跳转到第一页。代码如下:
<%
dim rs ‘定义变量
MaxPerPage=rs(”duo”) ‘定义每页最大歌曲数
dim totalPut
dim CurrentPage
dim TotalPages
dim i,j
dim typename
dim ty
‘如果提交page返回变量不为空,则当前页变量currentPage等于提交变量page的值。否则当前页变量currentPage等于1
if not isempty(request(“page”))then
currentPage=cint(request(“page”))
else
currentPage=1
end if
dim rstype
dim typesql
dim typeid typename1
3.查询歌曲
按照歌曲类型查询不同类型的歌曲。代码如下:
‘如果提交变量typeid不为空,则歌曲类型变量typeid等于下拉列表框typeid的值,否则等于0
if not isEmpty(request(“typeid”))then
typeid=request(“typeid”)
else
typeid=0
end if
dim sql
‘如果变量typeid等于0即显示全部歌曲,则变量等于查询歌曲信息表learning中歌曲类型编号字段typeid与歌曲类信息表type中歌曲类型编号字段typeid值相等的记录行,并按照歌曲编号降序排列
if typeid=0 then
sql=”selectlearning.*,type.typefromlearning,typewherelearning.typeid=type.typeid
order by learning.articleid desc”
else
‘如果变量typeid不为0,则查询歌曲信息表learning中歌曲类型编号字段typeid与歌曲类信息表type中歌曲类型编号字段typeid的值相等,且等于变量typeid,并按照歌曲编号降序排列
sql=”selectlearning.*,type.typefrom learning,type where learning.typeid=type.typeid and learning.typeid=”&typeid&”oder by learning.articleid desc”
end if
Set rs=Server.CreateObiect(“adodb.recordset”) 定义一个recordset
Rs.open sql,conn,1,1
4.分页显示歌曲曲目
如果查询歌曲记录为空,则输出提示,不为空则分页显示歌曲曲目。代码如下:
if rs.eof and rs.bof then
response.write”
还没有任何歌曲
”else
‘变量totalPut等于记录总数
totalPut=rs.recordcount
‘如果当前页数小于1,则变量currentpage等于1
if currentpage<1 then
currentpage=1
end if
‘判断当前显示歌曲数量是否大于记录总数,大于判断总歌曲数量是否可以被每页最大歌曲数量整除,当前页等于最后页
if(currentpage-1)*MaxPerPage>totalput then
if(totalPut mod MaxPerPage)=0 then
currentpage=totalPut\\MaxPerPage
else
currentpage=totalPut\\MaxPerPage+1
end if
end if
‘调用过程showContent,showpage1显示当前页面的歌曲数目
if currentPage=1 then
showpage totalput,MaxPerPage,”index.asp”
showContent
showpage1 totalput,MaxPerPage,”index.asp”
else
if(currentPage-1)*MaxPerPage dim bookmark showpage totalput,MaxPerPage,”index.asp” showContent showpage1 totalput,MaxPerPage,”index.asp” else currentPage=1 showpage totalput,MaxPerPage,”index.asp” showContent showpage1 totalput,MaxPerPage,”index.asp” end if end if rs.close end if set rs=nothing conn.close set conn=nothing 5.创建过程显示歌曲数目 创建过程showContent,页面内显示歌曲曲目,代码如下: sub showContent dim i i=0 %> …