欢迎添加微信互相交流学习哦!

项目源码:https://gitee.com/oklongmm/biye

音乐分享网站的设计与实现
摘  要
随着社会的发展时代的前进,IT行业的发展也是日新月异,对人类的生产和生活方式产生了很大影响。网络传播以其特有的快速、高效、便捷的传输方式被人们所接受,越来越多的走进了千家万户。并且在当今音乐浪潮的影响下,随着音乐事业逐渐走向高峰,音乐已无处不在,音乐已与我们密不可分。
本文阐述了音乐分享网站的设计与实现,本系统采用Microsoft Visual Studio 2010 作为开发工具。前台主要实现歌曲的分类显示及分类查询、歌曲的在线试听、会员注册、登录以及最新音乐的介绍,并且还为用户提供了在线分享的平台等功能;后台主要用于数据库的管理,管理员对影视歌曲的添加、删除、更新及对注册会员和音乐新闻的管理、系统的维护等功能。本系统操作简单,界面友好。

关键字:ASP.NET;音乐分享网站 ;C# 
Designing and Implementation of Music Website
Abstract
As the following ages of the society developing, IT filed develop so quickly that it has affected our life and living ways. Net spread is accepted as a fast, efficacious and convenient way, and is welcomed by more and more families. Because of being affected by pop music nowadays, Music is so much everywhere that our life really needs it.
The designing and implementation with Microsoft Visual Studio 2010 of music website is discussed in this paper. The functions of classification display and inquiring, listening songs on line and downloading, user registering, the latest news about music introduction have been finished in Foreground. The online Communication platform is also workable. The database manage is operated in the Background. The function of songs add, delete and upgrade user information are also operated in the background. Easy operation and good interface are also typical features of the system.

Keywords: ASP .NET;Music website;C#

目  录

1    概论    1
1.1    课题背景    1
1.2    本课题研究的意义    1
1.3    本课题研究的方法    1
2    网站开发技术及相关工具    1
2.1    开发语言    1
2.1.1    ASP.NET语言    1
2.1.2    SQL介绍    2
2.2   B/S模式介绍    3
3    需求分析    3
3.1   系统主要工作流程图    4
3.1.1  后台管理模块程序流程    4
3.1.2  前台管理模块程序流程    4
3.2   系统实现采用环境    5
3.3   系统功能需求    5
4    音乐分享网站功能的设计与实现    5
4.1    系统主要设计    5
4.1.1  系统主要功能    5
4.1.2  主要功能模块    6
4.2   数据库的分析与设计    7
4.2.1  数据库的需求分析    7
4.2.2  数据库结构设计    7
4.3   系统主要功能实现    10
4.3.1  主页的实现    10
4.3.2  歌曲试听排行页面    14
4.3.3  用户注册    17
4.3.4  后台页面    19
5 系统测试    22
5.1   测试方法    22
5.2   预期测试结果    22
5.3   测试结果    22
结    论    22
参考文献    23
致    谢    24
声    明    25 
1    概论
1.1    课题背景
随着Internet的快速发展,人们已经进入了信息时代,Web已经对商业、工业、银行、财政、教育、政府、娱乐和信息产业及人们的工作、生活产生了深远的影响。许多传统的信息和数据库系统正在被移植到互联网上,人们获得信息的来源已经不再只是报纸、电视、广播等传统媒体,一个新的信息传送媒体逐渐被人们所青睐。范围广泛的,复杂的分布式应用正在Web环境中出现。音乐分享网站作为一个新时代传媒的产物,早已超过了国界,使听音乐变的如此便捷,它摒弃了传统听音乐媒体的不足,正在快速向前发展。
1.2    本课题研究的意义
当今时代是一个互联网络告诉发展和发达的时代,本课题的研究意义就在于构造一个网络音乐视听和分享的平台,使人们在纷繁的网络中也能够找到一个休憩的天地。同时也是对四年学习的一个总结和提高。
1.3    本课题研究的方法
本课题的开发采用ASP.NET实现,前期主要运用所学相关知识、查询资料、学习其他优秀管理系统开发方法,结合相关要求写出需求分析;后期,进行本课题的设计与开发。课题的页面主要采用C#语言对数据库进行操作,通过对数据库的查询搜索来实现,对表单以及数据的校验采用java script脚本语言,控制页面的正确显示和对用户类型的权限设计。采用sql数据库,包含几张表,实现整个系统的操作。在整个设计过程中以需求分析为基础,写出系统实现流程及相关问题的实现方法;系统开发完成后,进行调试和运行,做好调试和试运行的相关记录。
2    网站开发技术及相关工具
2.1    开发语言
2.1.1     ASP.NET
ASP.NET是ASP的下一代版本,然而ASP.NET又并非从ASP3.0自然演化而来,在许多方面,ASP.NET与ASP有着本质的不同。ASP.NET完全基于模块与组件,具有更好的可扩展性与可定制性,数据处理方面更是引入了许多激动人心的新技术,正是这些具有革新意义的新特性,让ASP.NET远远超越了ASP,同时也提供给web开发人员更好的灵活性,有效缩短了web应用程序的开发周期。ASP.NET与Windows 2000 Server/Advanced Server的完美组合,为中小型乃至企业级的web商业模型提供了一个更为稳定,高效,安全的运行环境。
ASP.NET 是统一的 Web 应用程序平台,它提供了为建立和部署企业级 Web 应用程序所必需的服务。ASP.NET 为能够面向任何浏览器或设备的更安全的、更强的可升级性、更稳定的应用程序提供了新的编程模型和基础结构。
ASP.NET 是 Microsoft .NET Framework 的一部分,是一种可以在高度分布的 Internet 环境中简化应用程序开发的计算环境。.NET Framework 包含公共语言运行库,它提供了各种核心服务,如内存管理、线程管理和代码安全。它也包含 .NET Framework 类库,这是一个开发人员用于创建应用程序的综合的、面向对象的类型集合。
。 
2.1.2     SQL介绍
SQL全称是“结构化查询语言(Structured Query Language)”。SQL语言结构简洁,功能强大,简单易学。 SQL是高级的非过程化编程语言,允许用户在高层数据结构上工作。SQL是一种用于数据库查询和编程的语言,已经成为关系型数据库普遍使用的标准,使用这种标准数据库语言对程序设计和数据库的维护都带来了极大的方便,广泛地应用于各种数据查询。他不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的SQL语言作为数据输入与管理的接口。它以记录集合作为操纵对象,所有SQL语句接受集合作为输入,返回集合作为输出,这种集合特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语言可以嵌套,这使他具有极大的灵活性和强大的功能,在多数情况下,在其他语言中需要一大段程序实现的一个单独事件只需要一个SQL语句就可以达到目的,这也意味着用SQL语言可以写出非常复杂的语句。SQL同时也是数据库文件格式的扩展名。
数据库,顾名思义,是存入数据的仓库。只不过这个仓库是在计算机存储设备上的,而且数据是按一定格式存放的。 要是下定义的话,就应该是:指长期储存在计算机内的、有组织的、可共享的数据集合。数据库管理是有关建立、存储、修改和存取数据库中信息的技术,是指为保证数据库系统的正常运行和服务质量,有关人员须进行的技术管理工作。数据库管理的主要内容有:数据库的建立、数据库的调整、数据库的重组、数据库的重构、数据库的安全控制、数据的完整性控制和对用户提供技术支持。 
介于SQL的优点,本系统采用SQL Server2008,作为数据库工具。
2.2 B/S模式介绍
B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN, WAN, Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全 。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。
目前,软件系统的改进和升级越来越频繁,B/S架构的产品明显体现着更为方便的特性。对一个稍微大一点单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的,惊人的。因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。
由于B/S架构管理软件只安装在服务器端(Server)上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。因此,许多单位都备有数据库存储服务器,以防万一。
3    需求分析
在数字化的网络环境下,人们希望在忙碌工作后能有闲暇时间听音乐放松一下心情,根据自己的情况听到想听的音乐,而不会再为了能听一首歌翻箱倒柜或者四处奔波找寻;服务企业也希望能给人们提供全面的灵活的服务,同时希望人们能在网站上找到自己喜欢的音乐。所以音乐分享网站正是迎合这一市场需求而开发的,它旨在探索一种以互联网为基础的音乐交流平台。通过这种模式,为网民创造一种享受音乐的环境,使音乐突破时空限制,让音乐更加贴近,充实生活。本课题设计实现了用户在线收听,分享,搜索音乐及提供交流平台等功能,具有操作简便,界面友好等特性。贴近现实需求。
3.1系统主要工作流程图
3.1.1 后台管理模块程序流程
该流程图描述了后台管理员对网站的管理,普通用户可以上传分享音乐,管理员可以对歌曲进行添加,修改,删除。具体的添加功能是通过本地浏览把歌曲上传到网站;修改歌曲信息或者删除点击率低的歌曲等功能。如图3.1所示。

图3.1 后台管理程序主要流程图
3.1.2 前台管理模块程序流程
本系统设计的初衷是会员可以享受网站的功能,未注册的游客只能浏览网站,不能进行其他操作。因此当用户在进入网站的一开始便会对用户的身份和权限进行验证,反馈不同的页面给不痛的用户而用户,从而实现对权限的划分功能。注册后成为会员,就可在网站上在线视听音乐、分享网站、搜索歌曲、享受专辑的在线视听以及实现分享歌曲等功能。管理员身份除了享有普通会员的权限以外,还可以对歌曲的添加、删除、修改以及上传文件、管理个人资料、修改登陆账号和密码等操作。该流程图描述了音乐分享网站的整个流程,如图3.2所示。

图3.2 前台管理程序主要流程图
3.2 系统实现采用环境
1.    操作系统:Microsoft Windows XP Professional。
2.    运行环境:IIS。
3.    数据库系统:SQL Sever 2008。
4.    开发平台:Microsoft Visual Studio 2010。
3.3 系统功能需求    
音乐分享网站是一个非常实用的网站且并是需要一个过于复杂的工运行环境。课题设计必须符合实际的需要,从目前市场这个情况来看,该系统主要是为了满足音乐爱好者对音乐追求时提供一个更为方便的环境,也为人们闲暇是提供一个休闲的场所,实现音乐、电影的在线试听及收看,同时实现歌曲的分享及歌曲的搜索,会员之间的交流等功能。
4    网站设计
4.1    系统主要设计
4.1.1 系统主要功能
1.    用户注册登录功能:只有登录注册后才能使用本网站功能;
2.    在线收听:会员能在线收听音乐;
3.    音乐分享:会员分享自己的音乐;
4.    网站对歌曲进行分类,使会员根据自己喜爱试听或下载歌曲;
5.    网站提供新歌推荐和音乐排行榜项目,使会员能第一时间找到热门歌曲;
6.    搜索功能:会员能通过输入歌手或者歌曲名找到自己想听的音乐;
7.    管理员对歌曲的添加,修改,删除;
8.    系统支持多种格式的音乐上传;
9.    管理员账号管理。
4.1.2主要功能模块
1.    后台管理模块
该模块只对管理员开放,管理员可以对歌曲进行添加,修改,删除。具体的添加功能是通过浏览把歌曲上传到网站;修改歌曲信息或者删除点击率的歌曲等功能。如图4.1所示。
 
图4.1 后台管理模块
2.    前台管理模块
该模块用户注册后即成为会员,就可在网站上在线试听音乐,搜索歌曲以及下载歌曲。也可以在论坛上和其他会员进行交流。在线试听主要采用在用户端调用windows默认播放器media player从服务器数据库查询播放歌曲的路径,赋予播放器来实现的.而下载的功能是利用stream组件的读写操作,从服务器端打开并读取文件向浏览器端的stream写入数据,用户端再保存文件到本地计算机来实现的.搜索功能,主要采取的三模糊查询和精确查询两种.在搜索歌手的时候三用的精确查询,换句话说就是必须要正确输入想要查询的歌手的名字才能够查询到相应的歌曲,而对歌曲名称的搜索三模糊查询,用户可以输入相关的字段便可以从数据库里面找到相近或相似的歌曲.音乐论坛用到的计算就相对较简单一点,主要是对数据库执行插入、更新和查询的操作。详细模块的介绍如图4.2所示。

图4.2 前台管理模块图
4.2数据库的分析与设计
4.2.1数据库的需求分析    
本课题开发的数据库包括三个方面。
1.    论坛信息数据表:存储论坛有关数据及论坛留言,即论坛基本参数信息数据、论坛留言主题信息数据表。
2.    歌曲数据表:存储歌曲基本参数信息,包括歌曲单曲存储表及歌曲专集存储表。
3.    用户数据表:存储注册用户有关数据,包括注册用户信息数据表、用户登录账号管理存储表。
4.2.2数据库结构设计
本课题使用SQL Sever 2008作为数据库管理系统,现将数据库中包含的数据表及相应功能如下表4.1所示:
表4.1 数据库包含的数据库表及其功能
数据表    功能
BBS    存放用户论坛留言基本信息
information    存放歌曲的基本信息
movie    存放电影的基本信息
vip    存放用户注册基本信息
zhuanji    存放歌曲专集信息
zhuce    存放用户登录的基本信息
    数据库包含的数据表的关系视图:

1.    注册用户信息表vip
注册用户信息表用于存放注册用户的基本信息,包括用户名(name)、个人密码(pass)、邮箱地址(mail)、用户性别(sex)、注册时间(date)、用户类型(admin)。其中,name(用户姓名)字段作为该表的主关键字(primary key)。如表4.2所示:
表4.2 vip表设计
字段名    数据类型及长度    说明    备注
name    char(100)    用户姓名    主关键字
pass    char(100)    用户密码    not null
mail    char(200)    电子邮件    null
sex    char(50)    用户性别    null
[date]    datetime(8)    注册时间    not null
admin    text(16)    用户类型    null
2.    用户登录信息表 zhuce
该表用于记录用户登录的基本信息,包括用户名(name)、密码(password)及注册时间([date])。其中,name(用户姓名)做为该表的主关键字。如表4.3所示:

表4.3zhuce表设计
字段名    数据类型及长度    说明    备注
name    char    用户姓名    主关键字
password    char    用户密码    not null
[date]    datetime    注册时间    not null
3.    歌曲基本信息表 information
该表存放歌曲的基本信息,包括歌曲ID(id)、歌手名字(singer)、歌曲名(song)、歌曲类型(type)、新歌推荐(class)、歌曲介绍(introduce)、点击率(hit)、歌曲URL(url)。其中id字段作为该表的主关键字,标识为“是”,标识种子为“1”,标识增量为“1”,惟一标识了一个歌曲基本信息。如表4.4所示:
表4.4 information表设计
字段名    数据类型及长度    说明    备注
id    int(4)    歌曲ID    主关键字
singer    char(100)    歌手姓名    null
song    char(500)    歌曲名字    null
type    char(100)    歌曲类型    null
class    char(100)    新歌推荐    null
introduce    char(1000)    歌曲介绍    null
hit    int(4)    点击率    null
url    char(3000)    歌曲url    null
4. 电影基本信息表 movie
该表存放电影的基本信息,包括主要电影ID(id)、演员姓名(name)、电影名字(moviename)、电影图片(moviephoto)、电影URL(movieurl)、电影简介(movieinform)、电影类型(type)、上传时间([date])。其中电影ID为主关键字。如下表所示:

表4.5 movie表设计
字段名    数据类型及长度    说明    备注
id    int(4)    电影ID    主关键字
name    char(1000)    演员姓名    null
moviename    char(1000)    电影名字    null
moviephoto    char(1500)    电影图片    null
moveurl    char(2000)    电影URL    null
movieinform    char(1000)    电影简介    null
type    char(500)    电影类型    null
[date]    int(8)    上传时间    null
5. 专集基本信息表 zhuanji
该表存放歌曲专集的基本信息,包括专集ID(id)、专集类型(type)、专集名称(song)、点击率(hit)、专集介绍(introduce)、专集URL(url)、专集图片(photo)。其中专集ID为主关键字。如下4.6表所示:
表4.6zhuanji表设计
字段名    数据类型及长度    说明    备注
id    int(4)    专集ID    主关键字
type    char(100)    专集类型    null
song    char(700)    专集名称    null
hit    char(100)    点击率    null
introduce    char(5000)    专集介绍    null
url    char(1000)    专集URL    null
photo    char(1000)    专集图片    null

1.    论坛数据信息表BBS
该表存放论坛留言功能具体信息。包括论坛ID(id)、用户名(username)、留言(message)和留言时间([date])。其中论坛ID为主关键字。
表4.7 BBS表设计
字段名    数据类型及长度    说明    备注
id    int(4)    论坛ID    主关键字
username    char(50)    用户名    null
message    varchar(5000)    留言    null
[date]    int(8)    留言时间    not null
4.3系统主要功能实现
4.3.1网站主页的实现
用户注册后登录网站,便进入主页,即可在首页上点相应导航链接,进行所需操作。未经注册的会员也能登录主页,但不能进行试听歌曲等其他操作。
主页是通过对其他页面进行链接实现的,本系统还实现各种分类功能,如:流行歌曲、原创歌曲、翻唱歌曲、音乐排行榜、新歌推荐等,还提供搜索功能,根据歌曲或歌手来实现搜索功能,主页页面如下图所示。
 
图4.4登录页面
登录功能的实现我们采用第一个表单页面让用户输入自己的会员账号和密码,然后发送到login.aspx页面上查询数据库中保存的账号和密码进行身份验证,因为每一个用户登录系统都会自动分配一个session,所以我们把验证后的信息存储到session里面,方便后续页面的调用和认证:
 protected void btnLogin_Click(object sender, EventArgs e)
    {
        string userName = txtUserName.Text.Trim();
        string userPwd = txtUserPwd.Text.Trim();
        if (!string.IsNullOrEmpty(userName) && !string.IsNullOrEmpty(userPwd))
        {
            Student s = new Student();
            s.StuNo = userName;
            s.StuPwd = userPwd;
            bool b = s.Login();
            if (b)
            {
                //使用Session保存用户
                s = s.GetModel(userName);
                Session["STUDENT_ME"] = s;
                if (s.Role)
                {
                    //管理员
                    Response.Redirect("adminSpace.aspx");
                }
                else
                {
                    //普通会员
                    Response.Redirect("mySpace.aspx");
                }

//使用Cookies保存用户名
                //HttpCookie cookieStuNo = new HttpCookie("STUDENT_NO", userName);
                //cookieStuNo.Path = "/";
                //cookieStuNo.Expires = DateTime.Now.AddDays(15);
                //Response.Cookies.Add(cookieStuNo);

//s = s.GetModel(userName);
                //if (s.Role)
                //{
                //    //管理员
                //    Response.Redirect("adminSpace.aspx");
                //}
                //else
                //{
                //    //普通会员
                //    Response.Redirect("mySpace.aspx");
                //}
            }
            else
            {
                //Response.Write("<script language='javascript'>alert('登陆失败,请重试!');</script>");
            }

}

图4.5 主页页面
前台主页面显示了几个大块:一,导航 二,音乐排行 三,新进会员 四,会员登录信息 五,音乐搜索 六,新歌推荐 七,歌曲排行榜以及合作伙伴的链接。
主要代码如下:
<form id="form1" runat="server">
    <div align="center">
       
        <uc1:Header ID="Header1" runat="server" />
        <table width="760" border="0" cellpadding="0" cellspacing="0">
          <tr>
            <td valign="top"><!-- InstanceBeginEditable name="Body" -->
              <table width="100%" border="0" cellspacing="0" cellpadding="0">
                <tr>
                  <td background="Images/spliter2.jpg" height="10px"></td>
                </tr>
                <tr>
                  <td background="Images/bg1.jpg" ><table width="100%" border="0" cellspacing="0" cellpadding="0">
                    <tr>
                      <td width="75%" valign="middle">
                          <asp:DataList ID="dlNewUsers" runat="server" Width="100%" RepeatColumns="5" RepeatDirection="Horizontal">
                              <ItemTemplate>
                                <table width="100%" border="0" cellspacing="0" cellpadding="0">
                                    <tr >                                      
                                      <td align="center">
                                        <a href='showUserBasicInfo.aspx?stuno=<%# Eval("StuNo")%>'><img src='<%# Eval("stuPhotoUrl") %>' alt="photo"  width="108" height="108" border="0" /></a>
                                      </td>                                      
                                    </tr>
                                     <tr> 
                                      <td align="center">
                                        <a href='showUserBasicInfo.aspx?stuno=<%# Eval("StuNo")%>'><%# Eval("StuName")%></a>
                                      </td>
                                    </tr>
                                  </table>                                      
                              </ItemTemplate>
                          </asp:DataList>
                      
                      
                      </td>
                      <td width="23%"><table width="100%" border="0" cellspacing="0" cellpadding="0" class="box1">
                        <tr>
                          <td width="31%">&nbsp;</td>
                          <td class="style1">&nbsp;</td>
                        </tr>
                        <tr>
                          <td>用户名:</td>
                          <td class="style1">
                              <asp:TextBox ID="txtUserName" runat="server" CssClass="big"  Width="80"  ></asp:TextBox>
                              </td>
                        </tr>
                        <tr>
                          <td>密 码:</td>
                          <td class="style1">
                              <asp:TextBox ID="txtUserPwd" runat="server" CssClass="big" Width="80" TextMode="Password"></asp:TextBox></td>
                        </tr>
                        <tr>
                          <td>&nbsp;</td>
                          <td class="style1">
                              <asp:Button ID="btnLogin" runat="server" OnClick="btnLogin_Click" Text="Login" />&nbsp;</td>
                        </tr>
                        <tr>
                          <td><div align="center">•<a href="reg.aspx">注册</a></div></td>
                          <td class="style1"><div align="center">•<a href="getpassword.aspx">忘记密码</a></div></td>
                        </tr>
                      </table>
                        </td>
                    </tr>
                  </table></td>
                </tr>
                <tr>
                  <td  background="Images/spliter2.jpg" height="10px"></td>
                </tr>
              </table>
              <table width="100%" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="50%" valign="top" ><table border="0" width="100%"  cellspacing="0" cellpadding="0">
              <tr>
                <td height="25" valign="middle" class="subtitle">
                <table width="100%" border="0" cellspacing="0" cellpadding="5">
          <tr class="nav">
            <td align="left">歌曲排行榜</td>
            <td align="right"><a href="moreHotMusic.aspx">More</a>...</td>
          </tr>
        </table>

</td>
              </tr>
              <tr>
                <td style="height: 288px" valign="top" align="left">          
4.3.2歌曲欣赏
1.    音乐欣赏
  
图4.6音乐欣赏
会员根据喜好选择歌曲,点击即可在线试听歌曲。在线视听功能采取的原理是在页面上嵌入一个windowns自带的播放器,获取上个页面请求的歌曲路径加入播放列表然后进行播放,页面代码如下:
<tr>
          <td><table width="100%" border="0" cellspacing="0" cellpadding="2">
            <tr>
              <td width="9%">&nbsp;</td>
              <td width="30%" valign="top"><object classid=clsid:22d6f312-b0f6-11d0-94ab-0080c74c7e95 width="100%" height="160">
                <param name=showstatusbar value=1 />
                <param name="filename" value="<%= getMusic() %>">" />
                <embed src="<%= getMusic() %>" width="100%" height="100%"> </embed>
              </object></td>
              <td width="55%" align="left" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="2">
                <tr>
                  <td width="23%">歌曲名称:</td>
                  <td width="77%">
                      <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
                    </td>
                </tr>
                <tr>
                  <td>歌手名称:</td>
                  <td>
                      <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
                    </td>
                </tr>
                <tr>
                  <td>上载人:</td>
                  <td>
                      <asp:Label ID="Label3" runat="server" Text="Label"></asp:Label>
                    </td>
                </tr>
                <tr>
                  <td>上载时间:</td>
                  <td>
                      <asp:Label ID="Label4" runat="server" Text="Label"></asp:Label>
                    </td>
                </tr>
                 <tr>
                  <td>点播次数:</td>
                  <td>
                      <asp:Label ID="Label5" runat="server" Text="Label"></asp:Label>
                     </td>
                </tr>
              </table> 
              </td>
              <td width="12%">&nbsp;</td>
            </tr>
             <tr>
              <td width="9%">&nbsp;</td>
              <td colspan="2" align="left" class="title"><p>歌曲歌词</p></td>
              <td width="12%">&nbsp;</td>
            </tr>
             <tr>
              <td width="9%">&nbsp;</td>
              <td colspan="2" align="left" valign="top">
                  <asp:Label ID="Label6" runat="server" Text="Label"></asp:Label>
                 </td>
              <td width="12%">&nbsp;</td>
            </tr>
          </table></td>
        </tr>

2.    音乐排行榜
 
        图4.7 歌曲排行榜
音乐排行是本系统的最关键的模块,我们根据用户的收听情况运行排行。代码如下:
 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
                  Width="100%" AllowPaging="True" 
                  onpageindexchanging="GridView1_PageIndexChanging" PageSize="10">
                  <Columns>
                      <asp:BoundField DataField="musicName" HeaderText="歌曲名称" />
                      <asp:BoundField DataField="singer" HeaderText="歌手" />
                      <asp:BoundField DataField="uploaderStuNo" HeaderText="上传人" />
                      <asp:BoundField DataField="addDate" HeaderText="上载日期" />
                      <asp:BoundField DataField="clicks" HeaderText="欣赏次数" />
                      <asp:TemplateField>
                        <ItemTemplate>
                            <a href='playmusic.aspx?id=<%# Eval("musicId") %>' target="_blank"><img src="Images/listen.gif" alt="Listen" width="20" height="20" border="0" longdesc="#" /></a>
                        </ItemTemplate>
                      </asp:TemplateField>
                  </Columns>
              </asp:GridView>
 protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            LoadMusic();
        }
    }

protected void LoadMusic()
    {
        Music m = new Music();
        DataSet ds = m.GetHotMusics();
        GridView1.DataSource = ds;
        GridView1.DataBind();
    }

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView1.PageIndex = e.NewPageIndex;
        LoadMusic();
    }
4.3.3用户注册
游客可以通过注册成为会员,分享自己的音乐。
   
图4.8 注册页面
页面代码如下:
<asp:Wizard ID="Wizard1" runat="server" ActiveStepIndex="0" Width="100%" 
                  onfinishbuttοnclick="Wizard1_FinishButtonClick" 
                  onnextbuttοnclick="Wizard1_NextButtonClick" 
                  onsidebarbuttοnclick="Wizard1_SideBarButtonClick" 
                  onactivestepchanged="Wizard1_ActiveStepChanged">
                      <WizardSteps>
                          <asp:WizardStep ID="WizardStep1" runat="server" Title="第一步:填写登陆信息">
                             <table class="box1" width="100%" border="0" cellspacing="0" cellpadding="0">
                                <tr>
                                  <td width="21%" align="right">学号:</td>
                                  <td width="48%" align="left">
                                     <asp:TextBox ID="txtStuNo" runat="server"></asp:TextBox></td>
                                  <td width="31%">
                                      <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtStuNo"
                                          ErrorMessage="*请输入学号"></asp:RequiredFieldValidator>
                                      &nbsp;</td>
                                </tr>
                                <tr>
                                  <td align="right">密码:</td>
                                  <td align="left">
                                      <asp:TextBox ID="txtPwd" runat="server" TextMode="Password"></asp:TextBox></td>
                                  <td>
                                      <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="txtPwd"
                                          ErrorMessage="*请输入密码"></asp:RequiredFieldValidator>
                                      &nbsp;</td>
                                </tr>
                                <tr>
                                  <td align="right">确认密码:</td>
                                  <td align="left">
                                      <asp:TextBox ID="txtPwd2" runat="server" TextMode="Password"></asp:TextBox></td>
                                  <td>
                                      <asp:CompareValidator ID="CompareValidator1" runat="server" ControlToCompare="txtPwd2"
                                          ControlToValidate="txtPwd" ErrorMessage="两次输入的密码不正确"></asp:CompareValidator>
                                      &nbsp;</td>
                                </tr>
                                <tr>
                                  <td colspan="2" align="center"><label>
                                      &nbsp;
                                  </label></td>
                                  <td>&nbsp;</td>
                                </tr>
                              </table>
                              
                              </asp:WizardStep>
                          <asp:WizardStep ID="WizardStep2" runat="server" Title="第二步:填写基本信息">
                             <table class="box1" width="100%" border="2" cellspacing="0" cellpadding="0">
                <tr>
                  <td  width="16%">姓名:</td>
                  <td align="left" >
                      <asp:TextBox ID="txtStuName" runat="server"></asp:TextBox>
                      <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" 
                          ControlToValidate="txtStuName" ErrorMessage="*请填写姓名"></asp:RequiredFieldValidator>
                  </td>
                  <td  width="10%">&nbsp;</td>
                </tr>
                <tr>
                  <td align="right" style="width: 97px">性别:</td>
                  <td align="left"><label>
                      <asp:RadioButton ID="rbMan" runat="server" Checked="True" Text="男" />
                      &nbsp; &nbsp;
                      <asp:RadioButton ID="rbWoman" runat="server" Text="女" /></label></td>
                  <td style="width: 312px">&nbsp;</td>
                </tr>
                <tr>
                  <td align="right" style="width: 97px">出生日期:</td>
                  <td align="left">
                      &nbsp;<asp:TextBox ID="txtBirthday" runat="server"></asp:TextBox>
                      <asp:CompareValidator ID="CompareValidator2" runat="server" ControlToValidate="txtBirthday"
                          ErrorMessage="日期格式不正确" Operator="DataTypeCheck" Type="Date"></asp:CompareValidator>
                      <asp:Calendar ID="calBirthday" runat="server" Height="68px" OnSelectionChanged="calBirthday_SelectionChanged"
                          Width="231px" Visible="false"></asp:Calendar>
                  </td>
                  <td style="width: 312px">&nbsp;</td>
                </tr>
                 <tr>
                  <td align="right" style="width: 97px">通信地址:</td>
                  <td align="left">
                      &nbsp;<asp:TextBox ID="txtAddress" runat="server" Width="206px"></asp:TextBox></td>
                  <td style="width: 312px">&nbsp;</td>
                </tr>
                 <tr>
                  <td align="right" style="height: 24px; width: 97px;">邮编:</td>
                  <td align="left" class="style6">
                      <asp:TextBox ID="txtPost" runat="server"></asp:TextBox>
                      <asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" ControlToValidate="txtPost"
                          ErrorMessage="邮编格式不正确" ValidationExpression="\d{6}"></asp:RegularExpressionValidator>
                  </td>
                  <td style="width: 312px; height: 24px;">&nbsp;</td>
                </tr>
                 <tr>
                  <td align="right" style="width: 97px">Email:</td>
                  <td align="left">
                      <asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
                      <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="txtEmail"
                          ErrorMessage="Email格式不正确" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>
                  </td>
                  <td style="width: 312px">&nbsp;</td>
                </tr>
                 <tr>
                  <td align="right" style="height: 24px; width: 97px;">电话:</td>
                  <td align="left" class="style6">
                      <asp:TextBox ID="txtTel" runat="server"></asp:TextBox>
                  
                  </td>
                  <td style="width: 312px; height: 24px;">&nbsp;</td>
                </tr>
                 <tr>
                  <td align="right" style="height: 24px; width: 97px;">手机:</td>
                  <td align="left" class="style6">
                      <asp:TextBox ID="txtMobile" runat="server"></asp:TextBox></td>
                  <td style="width: 312px; height: 24px">&nbsp;</td>
                </tr>
                 <tr>
                  <td align="right" style="width: 97px">兴趣爱好:</td>
                  <td align="left">                     
                      <asp:CheckBox ID="cbPhisical" runat="server" Text="体育"  />
                      <asp:CheckBox ID="cbTravel" runat="server" Text="旅游" />
                      <asp:CheckBox ID="cbReading"
                          runat="server" Text="读书" />
                          <asp:CheckBox ID="cbNetwork" runat="server" Text="网络" />
                          <asp:CheckBox
                              ID="cbOther" runat="server" Text="其它" /></td>
                  <td style="width: 312px">&nbsp;</td>
                </tr>
                 <tr>
                  <td align="right" style="width: 97px; height: 27px">主题皮肤:</td>
                  <td align="left" class="style7">
                      <asp:RadioButtonList ID="rblSkin" runat="server" RepeatDirection="Horizontal">
                          <asp:ListItem Selected="True" Value="Blue">蓝色天空</asp:ListItem>
                          <asp:ListItem Value="Green">绿色大地</asp:ListItem>
                          <asp:ListItem Value="Pink">粉色含蓄</asp:ListItem>
                      </asp:RadioButtonList></td>
                  <td style="width: 312px; height: 27px;"></td>
                </tr>
                
                 <tr>
                  <td align="right" class="style3">主要消费领域:</td>
                  <td align="left" class="style4">
                      <asp:CheckBoxList ID="cblExpenseArea" runat="server" RepeatDirection="Horizontal">
                          <asp:ListItem>健身</asp:ListItem>
                          <asp:ListItem>旅游</asp:ListItem>
                          <asp:ListItem>书籍</asp:ListItem>
                          <asp:ListItem>游戏</asp:ListItem>
                          <asp:ListItem>购物</asp:ListItem>
                          <asp:ListItem>饮食</asp:ListItem>
                          <asp:ListItem>其它</asp:ListItem>
                      </asp:CheckBoxList></td>
                  <td class="style5"></td>
                </tr>
                 
                <tr>
                  <td colspan="2" align="center"><label>
                      &nbsp;
                  </label></td>
                  <td style="width: 312px">&nbsp;</td>
                </tr>
              </table>
                              &nbsp; &nbsp;
              
              
                              
                              </asp:WizardStep>
                          <asp:WizardStep ID="WizardStep4" runat="server" Title="第三步:上传个人照片">
                          
                            <table class="box1" width="100%" border="0" cellspacing="0" cellpadding="0">
                                <tr>
                                  <td width="21%" align="right">选择个人照片:</td>
                                  <td width="48%"><label>
                                      <asp:FileUpload ID="fuPhoto" runat="server"  />
                                     
                                      <img src="Images/1.gif" width="108" height="108" id="ImgPhoto" /></label></td>
                                  <td width="31%" ><p>* 建议图像宽度和高度为:</p>
                                    <p>108*108</p></td>
                                </tr>
                                
                                <tr>
                                  <td colspan="2" align="center"><label>
                                      &nbsp;
                                  </label></td>
                                  <td>&nbsp;</td>
                                </tr>
                              </table>
                          </asp:WizardStep>
                          <asp:WizardStep ID="WizardStep5" runat="server" Title="完成">
                                
                              
                               <table class="box1" width="100%" border="0" cellspacing="0" cellpadding="0">
                              
                                 <tr>
                                  <td align="left">
                                  <asp:BulletedList ID="blSummary" runat="server">
                              </asp:BulletedList>   
                                  </td>                                  
                                </tr>
                              </table>                     
                          </asp:WizardStep>
                      </WizardSteps>
                  </asp:Wizard>
4.3.4会员后台个人专区
会员在后台进行对歌曲的添加、修改、删除等功能。在添加歌曲时通过本地浏览将歌曲上传到网站,并对歌曲进行分类。如下图。

图4.9 后台管理
 
图4.10后台添加歌曲页面
其具体代码如下:
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td class="nav" height="30">上载音乐</td>
  </tr>
  <tr>
    <td><table width="100%" border="0" cellspacing="0" cellpadding="2">
      <tr>
        <td width="1%">&nbsp;</td>
        <td width="17%" align="right">歌曲名称:</td>
        <td width="57%">
            &nbsp;<asp:TextBox ID="txtMusicName" runat="server" CssClass="large"></asp:TextBox></td>
        <td width="25%">&nbsp;</td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td align="right">歌手姓名:</td>
        <td>
            <asp:TextBox ID="txtSinger" runat="server" CssClass="large"></asp:TextBox></td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td style="height: 40px">&nbsp;</td>
        <td align="right" style="height: 40px">歌词内容:</td>
        <td style="height: 40px">
          <label>
              &nbsp;<asp:TextBox ID="txtContent" runat="server"  Height="143px" EnableTheming="false"
                  TextMode="MultiLine" Width="310px"></asp:TextBox></label></td>
        <td style="height: 40px">&nbsp;</td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td align="right">所属类别:</td>
        <td><label>
            &nbsp;<asp:DropDownList ID="ddlMusicCategory" runat="server">
            </asp:DropDownList>
        </label></td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td align="right">音乐文件:</td>
        <td><label>
            &nbsp;<asp:FileUpload ID="fuMusicFile" runat="server" /></label></td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td><label>
            &nbsp;
            <asp:Button ID="btnUpload" runat="server" OnClick="btnUpload_Click" Text="上载" />
          <input type="reset" name="Submit2" value="清空" />
            <asp:Label ID="lblMsg" runat="server"></asp:Label></label></td>
        <td>&nbsp;</td>
      </tr>
     
图4.11用户密码修改
用户密码修改,是本系统在安全的一个重要保障。如果用户发觉自己的密码有被盗窃的情况,可以输入旧密码确认,然后更改为其他的密码!实现主要用到数据库的更新操作。

5 系统测试
5.1 测试方法
1.    首先在IIS里建立虚拟目录,建个网站;
2.    在浏览器上对网站进行浏览;
3.    对系统里的各个部分进行测试。
5.2 预期测试结果
1.    实现会员注册登录进行歌曲的试听、下载、搜索及新歌推荐等功能;
2.    实现后台管理员对歌曲的添加、删除、修改等功能。
5.3 测试结果
1.    能实现会员注册登录;
2.    会员能进行歌曲的试听、下载、搜索及新歌推荐等功能;
3.    并实现了电影的在线收看;
4.    实现了论坛,提供会员在线交流平台;
5.    实现了后台管理员对歌曲的添加、修改、删除及账号管理等功能。

结  论
本项目开发的过程,是一个学习和进步的过程。这样的实践项目对曾经学过知识与课程都是一次重要的挑战和提高。在此期间我查阅了相关大量的书籍和资料,综合完成了本次毕业设计,实现了歌曲的试听、下载、搜索及新歌推荐等功能,得到了老师们的认可,自己也很高兴。与此同时我更加深入的进一步研究,发现系统还存在一定的不足。比如下载虽然是实现了,但是还不能够向世面上大多数下载软件那样支持断点续传。还有就是系统和人一样,要随着时代的变化不断地充实,不断地完善。本系统的代码的优化程度还不是很高,需要在以后的时间里面进一步的完善。
经过这次设计,我学到很多,也成熟许多,考虑事情的逻辑也没以前那么简单了。在这次设计过程中指导老师和同学都帮助我很多,特别是指导老师,对我们尽心尽责,为我们操了不少心,真的很感激他。

参考文献
[1].瀚文工作室.Java/Javascript网页设计活学活用300问[M].北京:机械工业出版社. 2005。
[2].风火轮小组.Asp.net建站编程高手指南[M].北京:大恒电子出版社.2002。
[3].石志国,王志良.ASP.net 精解案例教程[M].北京:清华大学出版社/北方交通大学出版社. 2004。
[4].方睿,刁仁宏.网络数据库原理及应用[M].成都:四川大学出版社.2005。
[5].黄明,梁旭.Asp.net 信息系统设计与开发实例[M].北京:机械工业出版社.2005。
[6].马凡.Javascript实例应用[M].北京:中国铁道出版社.2005。
[7].李蟠.Asp高级编程[M].北京:清华大学出版社.2004。

致  谢
本文是在老师的热情关心和指导下完成的,他渊博的知识和严谨的治学作风使我受益匪浅,对顺利完成本课题起到了极大的作用。在此向他表示我最衷心的感谢!
与此同时特别致谢 老师在课题研究初期给予的帮助,在她的帮助下课题才得以很好的展开,有了一个很好的开端!感谢同学给予的帮助,因为他们的协助,才得以高效率的完成了系统测试,获取了珍贵的数据资料!
最后向在百忙之中评审本文的各位专家、老师表示衷心的感谢!

基于asp.net的音乐分享网站的设计与实现(含源文件)相关推荐

  1. 基于web的音乐分享网站的设计与实现

    欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye2 音乐分享网站的设计与实现 摘  要 随着社会的发展时代的前进,IT行业的发展也是日新月异,对人 ...

  2. 基于asp.net在线音乐播放网站设计

    获取项目源文件,学习交流联系Q:1415736481,可指导毕设,课设 摘  要 随着社会的发展时代的前进,IT行业的发展也是日新月异,对人类的生产和生活方式产生了很大影响.网络传播以其特有的快速.高 ...

  3. Java毕业设计_基于SSM的美食食谱分享网站的设计与实现

    基于SSM的美食食谱分享网站的设计与实现 基于SSM的美食食谱分享网站的设计与实现mysql数据库创建语句 基于SSM的美食食谱分享网站的设计与实现oracle数据库创建语句 基于SSM的美食食谱分享 ...

  4. 基于ASP.NET大学生校园招聘网站的设计与开发

    开发工具(eclipse/idea/vscode等):vs2017 数据库(sqlite/mysql/sqlserver):sqlserver 功能模块(请用文字描述,至少200字):基于ASP.NE ...

  5. 音乐相册源码php,基于PHP的DIY音乐相册网站的设计与实现(MySQL)(含录像)

    基于PHP的DIY音乐相册网站的设计与实现(MySQL)(含录像)(开题报告,毕业论文8000字,程序代码,MySQL数据库) 本网站运用MYSQL作为后台数据库,以PHP为前端开发工具,实现了音乐相 ...

  6. java美食网站设计与实现_毕业设计 基于JAVA的美食娱乐分享网站的设计与实现

    毕业设计-基于JAVA的美食娱乐分享网站的设计与实现 相关表格 7 孙骎骅--答辩记录表.doc  [33.00KB] 6 孙骎骅--中期检查表.doc  [33.50KB] 5 孙骎骅--开题论证审 ...

  7. 基于asp.net742自驾游旅游服务网站的设计

    近年来,由于电脑网络技术的飞速发展及其逐步普及,利用电脑网络来对旅游服务信息进行网络化管理的条件已经日趋成熟,而传统的通过电话和传真来处理信息的传统方式已经越来越难以满足电脑网络的需求.建立基于网络的 ...

  8. 基于ssm的在线音乐播放网站的设计与实现

    摘要 随着计算机网络技术的高速发展,很多校园网.街道网络和公司网络都能很好的提供给人们快速的网络,正好能满足热爱音乐的网友在网上播放音乐和分享音乐的需要.依据网友的需求,在线音乐播放网站正式开始发展. ...

  9. 基于java的校园网站论坛设计与实现(含源文件)

    欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye2 摘 要 本系统系采用基于J2EE平台的Struts.Hibernate和Spring框架开发. ...

最新文章

  1. CodeVs 1059 汽车装油
  2. RUNOOB python练习题10
  3. vue13过滤器 debounce延迟、limitBy、filterBy、orderBy
  4. 每日集成Tip: CruiseControl.Net 提示DLL文见找不到的解决方法
  5. linux基线核查脚本
  6. Linux Shell获取系统资源使用百分比(CentOS)
  7. 如何使用vSphere Client 将文件上传到EXSI服务器的方法步骤
  8. 从键盘上输入一个正整数n,请按照以下五行杨辉三角形的显示方式, 输出杨辉三角形的前n行。请采用循环控制语句来实现。...
  9. 做咨询以来,从来坚守一个词——“系统”
  10. 双路电机驱动模块-RZ7899.PDF
  11. iOS 自动化——技术方案、环境配置
  12. WinCC数据报表控件
  13. Echarts-实现3D柱状图显示,并单个柱子变色
  14. “野味消费”演变趋势洞察
  15. amcharts嵌入到flex中
  16. js中常见的Json解析
  17. 快速傅里叶变换使用方法
  18. 我的北漂之路 北漂如饮水,冷暖自知
  19. python中的结束用语_python结束语句
  20. 【万人千题】社区,算法零基础抱团养成,我命由我不由天

热门文章

  1. 使用R完成决策树分类
  2. java的System.getProperty()方法可以获取的值
  3. mmap函数用法及示例程序
  4. 基于智能卡的嵌入式网络加密安全系统设计
  5. ELT和ETL分不清楚?2张图就能理解透彻
  6. 宏锦软件 Android 的 ListView 使用详解
  7. 深入探讨MFC消息循环和消息泵(一)
  8. 在公司拿了奖,发了点奖金
  9. 第 2 节:前端面试指南 — HTML篇
  10. 强烈推荐:大神总结的超系统的前端提升路径