《音乐网站设计与实现.doc》由会员分享,可在线阅读,更多相关《音乐网站设计与实现.doc(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date音乐网站设计与实现【过程名称】目 录第1章 绪论11.1选题背景11.2编写目的11.3编写意义1第2章 需求分析22.1功能需求描述22.2可行性分析22.3统性能需求描述2第3章 总体设计33.1功能框图33.2 数据字典7第4章 页面设计114.1最爱音乐网前台设计114.2最爱音乐网后台设计12第 5章 编码实现145.1 B/S模式145.2 C#语言145
2、.3 SQL Server数据库155.4 ASP.NET技术165.5功能实现17第6章 软件部署及测试分析236.1软件配置236.2测试分析23总结27致谢27参考文献28-第1章 绪论1.1选题背景随着Internet网正在向全世界各大洲延伸和扩散,Internet是一个国际性的通信网络集合体,它集现代通信技术和现代计算机技术于一体, 是计算机之间进行国际信息交流和实现资源共享的良好手段。Internet也是人类历史发展中的一个伟大的里程碑,它是未来信息高速公路的雏形,人类正由此进入一个前所未有的信息化社会。人们用各种名称来称呼Internet,如国际互联网络、因特网、交互网络、网际网
3、等等,已经成为世界上覆盖面最广、规模最大、信息资源最丰富的计算机信息网络。音乐网站目前最常见的音乐发烧友网站行业呈现出的旺盛生命力和巨大的市场潜力。音乐网站信息系统采用了/开发框架,先进的管理构思,完善的业务管理功能,整个产品在管理功能、易用性、实用性、数据容量、数据安全性、网络稳定性方面都有了很大的提高1.2编写目的 研究网站的开发技术,重点是IIS, HTML,ASP.Net。开发一个音乐欣赏网站。该网站使用SQL Server保存数据,用ASP.Net设计动态网页。1.3编写意义计算机和计算机网络的飞速发展,人们对计算机网络的依赖是越来越大。人们在网上聊天交友,在网上请教问题,查阅资料,
4、还在网上玩游戏。除此之外,人们还会在网上进行商务交易、下载信息,有着众多的使用者。而我想设计一个全新的音乐综合网站,这个网站有别于其他音乐网站的常规设计,将给人一种全新的感觉,使之浏览,搜索音乐更加方便和快捷。这也就是毕业设计的编写意义。第2章 需求分析2.1功能需求描述音乐专辑,音乐动向,音乐故事,音乐留言。音乐专辑:是本网站功能最强的网页。介绍了音乐的专辑。专辑是按专辑类别分页,点击某个人的专辑,连接到详细专辑页面。音乐动向:按歌手分类,显示歌手的最新动向。如最近的行期安排。音乐故事:按歌手分类,显示歌手的个人介绍。如身高,家人等信息。音乐留言:给本网站留言。可以是对网站的评价,意见等您想
5、说的话。专辑增加与维护,歌曲类别增加与维护,歌曲增加与维护,音乐动向增加与维护,音乐故事增加与维护,留言版维护。2.2可行性分析技术可行性:使用ASP.NET,SQL Server, 合理设计技术方案,并与其他音乐网站进行比选和评价。经济可行性:本网站可进行网上销售,卖家可以购买唱片,图片等与音乐有关的商品。有效配置经济资源、增加供应、创造就业、改善环境、提高人民生活等方面的效益。社会可行性:本网站对社会完全没有不良影响。2.3统性能需求描述开发环境:ASP.NET 2005,SQL Server 2000运行环境:ASP.NET 2005软件硬件配置要求:Microsoft Windows
6、XP Home Edition AMD Turion(tm) 64*2 1.81 GHz,960MB NVIDIA GeForce Go 6150第3章 总体设计3.1功能框图3.1.1功能框图这是本网站总体的功能框图。网站的名称是最爱音乐网,它可以分为六大块功能,分别为:注册、登录、音乐专辑、音乐动向、音乐故事、音乐留言。3.1.2注册功能说明图3-1 注册功能是新用户的注册。注册用户名时需要调用两次校验 一次是客户端的非空验证,还有一次是服务器端的用户名是否存在的数据库检索。注册成功时自动跳转到登录界面。3.1.3.登录功能说明图3-2 登录功能是登录。在用户名和密码都正确的情况下可以登录
7、。一种是普通用户登录:进入主界面,可以浏览本网站。另一种是管理员登录:进入网站维护界面,可以对网站进行维护。3.1.4音乐专辑功能说明图3-3 音乐专辑功能是浏览音乐专辑。普通用户进入后可以根据专辑的类别浏览专辑列表。专辑类别分为流行歌曲、日韩歌曲、欧美歌曲、儿童歌曲等。点击专辑列表可以进入这个专辑的详细信息。详细信息包括专辑名称、歌手名称、发行日期、专辑介绍专辑歌曲列表等信息。点击歌曲可以免费下载歌曲。本网站共收集上百种专辑供用户随意浏览与下载。3.1.5音乐动向功能说明图3-4 音乐动向功能是浏览音乐动向。动向列表是按歌手排列的。点击进入歌手的最新动向,最新动向包括歌手的最新行程安排等信息
8、。3.1.6音乐故事功能说明图3-5 音乐故事功能是浏览音乐故事。故事列表是按歌手排列的。点击进入歌手的个人故事,个人故事包括歌手的个人介绍和故事。个人介绍:出生地、生日、身高等信息。故事:个人的经历、专辑、唱片的介绍等信息。3.1.7音乐留言功能说明图3-6 音乐留言功能是发表留言。普通用户进入音乐留言界面后可以随意对本网站进行留言。留言可以是对本网站的建议、评论,还可以是对自己喜欢的歌手,专辑发表评论等。3.2 数据字典表31 歌曲表表 名Music用途用于输入音乐详细信息中文字段名英文字段名类型长度备注歌曲编号M_Id数值主键 歌曲名称M_Name字符10歌曲歌手编号M_SingerId
9、数值歌曲歌手名称M_SingerName字符10歌曲类型编号M_ClassId数值歌曲类型名称M_ClassName字符10歌曲专辑编号M_AlbumId数值歌曲专辑名称M_AlbumName字符10表32 专辑表表 名Album用途用于输入专辑详细信息中文字段名英文字段名类型长度备注专辑编号A_Id数值主键 专辑名称A_Name字符20专辑歌手编号A_SingerId数值专辑歌手名称A_SingerName字符10专辑类型编号A_ClassId数值专辑类型名称A_ClassName字符10发行日期A_Date日期发行公司A_Company字符20专辑语言A_Language字符10专辑介绍A
10、_Intro字符1000专辑图片A_Pic字符50表33 音乐动向表表 名音乐动向用途用于输入音乐动向详细信息中文字段名英文字段名类型长度备注动向编号P_Id数值主键 动向图片P_Pic字符50音乐动向P_Pulse字符1000动向名称P_Name字符50表34 音乐故事表表 名音乐故事用途用于输入音乐故事详细信息中文字段名英文字段名类型长度备注故事编号S_Id数值主键 故事图片S_Pic字符50音乐故事S_Pulse字符1000故事名称S_Name字符50故事介绍S_Intro字符500表35 歌曲类别表表 名歌曲类别用途用于输入歌曲类别详细信息中文字段名英文字段名类型长度备注类别编号Cla
11、ssId数值主键 类别名称ClassName字符10表36 留言表表 名留言表用途用于输入留言详细信息中文字段名英文字段名类型长度备注时间M_Time字符100主键 标题M_Title字符100名称M_Name字符100留言M_News字符1000表37 注册表表 名注册用途用于输入注册详细信息中文字段名英文字段名类型长度备注用户编号UserID十进制10主键 用户名UserName字符30密码UserPwd字符20邮箱Email字符50性别UserSex字符2生日Birthday字符20身份证IdentityCard字符18自我介绍ZiWoJieShao字符100用户类别Type字符10第4
12、章 页面设计4.1最爱音乐网前台设计图41 音乐专辑界面图42 音乐专辑界面图43登录界面4.2最爱音乐网后台设计图44维护界面图45专辑维护界面第 5章 编码实现本网站在模式上采用B/S,语言运用(C#),利用数据库(SQL Server),在技术上以ASP.NET为主导,充分运用在学校所学的各方面知识 。5.1 B/S模式B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。浏览器通过eb Se
13、rver 同数据库进行数据交互。(1) B/S模式是一种三层结构的系统。第一层客户机是用户与整个系统的接口。客户的应用程序精简到一个通用的浏览器软件,如Netscape Navigator,微软公司的IE等。浏览器将HTML代码转化成图文并茂的网页。网页还具备一定的交互功能,允许用户在网页提供的申请表上输入信息提交给后台,并提出处理请求。这个后台就是第二层的Web服务器。第二层Web服务器将启动相应的进程来响应这一请求,并动态生成一串HTML代码,其中嵌入处理的结果,返回给客户机的浏览器。如果客户机提交的请求包括数据的存取,Web服务器还需与数据库服务器协同完成这一处理工作。第三层数据库服务器
14、的任务类似于C/S模式,负责协调不同的Web服务器发出的SQ请求,管理数据库。 (2) B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件。只要有一台能上网的电脑就能使用,客户端零维护。系统的扩展非常容易,只要能上网,再由系统管理员分配一个用户名和密码,就可以使用了。甚至可以在线申请,通过公司内部的安全认证(如证书)后,不需要人的参与,系统可以自动分配给用户一个账号进入系统。5.2 C#语言C#是Microsoft在推出.NET Framework的第1版时提供的一种全新语言。它是为生成运行在 .NET Framework 上的、广泛的企业级应用程序而设计的。C# 从 Micr
15、osoft C 和 Microsoft C+ 演变而来,它是一种简单、现代、类型安全和面向对象的语言。C# 代码被作为托管代码编译,这意味着它能够从公共语言运行库的服务中受益。这些服务包括:语言互操作性、垃圾回收、增强的安全性以及改进的版本支持。C#的快速流行,使之成为使用.NET的Windows和Web开发人员无可争议的语言选择。他们喜欢C#的一个原因是其派生于C/C+的简洁语法,这种语法简化了以前困扰一些程序员的问题。尽管做了这些简化,但C#仍保持了C+原来的功能,所以现在没有理由不从C+转向C#。这种语言并不难,也非常适合于学习基本编程技术。易于学习、再加上.NET Framework的
16、功能,是使C#成为开始您编程生涯的绝佳方式。C#的最新版本是.NET 2.0的一部分,它建立在已有的成功基础之上,还添加了一些更吸引人的功能。其中一些功能取自于C+(至少从表面上看是这样),而另外一些功能是全新的。Visual Studio的最新版本也有许多变化和改进,这大大简化了编程,显著提高了效率。本书将全面介绍C#编程的所有知识,从该语言本身一直到Windows和Web编程,再到数据源的使用,最后是一些高级技术,例如图形编程。5.3 SQL Server数据库SQLServer是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统,实现了与WindowsNT的有机结合
17、,提供了基于事务的企业级信息管理系统方案。SQL(STructured Query Language)是一种资料库查询和程式设计语言,用于存取资料以及查询、更新和管理关联式资料库系统。美国国家标准局(ANSI)与国际标准化组织(ISO)已经制定了 SQL 标准。ANSI 是一个美国工业和商业集团组织,发展美国的商务和通讯标准。ANSI 同时也是ISO和International Electrotechnical Commission(IEC)的成员之一。ANSI 发布与国际标准组织相应的美国标准。1992年,ISO 和 IEC 发布了 SQL 的国际标准,称为 SQL-92ANSI 随之发布的
18、相应标准是 ANSI SQL-92。ANSI SQL-92 有时被称为 ANSI SQL。尽管不同的关联式资料库使用的 SQL 版本有一些差异,但大多数都遵循 ANSI SQL 标准。SQL Server 使用 ANSI SQL-92 的扩展集,称为 T-SQL,其遵循 ANSI 制定的 SQL-92 标准。Microsoft SQL Server 2000 是一个高性能的客户端/服务器结构的关系数据库管理系统(RDBMS,Relational Database Management System).SQL Server 2000 是为支持高容量的事务处理(比如在线订购录入、存货目录、记帐或制
19、造)以及数据仓库和决策支持系统(比如销售分析应用)而设计的。SQLServer以其内置的数据复制功能、强大的管理工具、与Internet的紧密集成和开放的系统结构为广大的用户、开发人员和系统集成商提供了一个出众的数据库平台。通过新数据库镜像方法,将记录档案传送性能进行延伸。您将可以使用数据库镜像,通过将自动失效转移建立到一个待用服务器上,增强您SQL服务器系统的可用性。5.4 ASP.NET技术A是建立在通用语言运行时刻库(CLR)上的应用程序框架。它提供了一个生产率高且基于标准的多语言环境,用于将现有投资与下一代应用程序和服务集成,同时提供了解决 Internet 规模应用程序的部署和操作难
20、题的灵活性。他用来在服务器端构建功能强大的web应用程序。ASP.net不仅仅是 Active Server Page (ASP) 的下一个版本,而且是一种建立在通用语言上的程序构架,能被用于一台Web服务器来建立强大的Web应用程序。ASP.net提供许多比现在的Web开发模式强大的的优势。执行效率大幅提高ASP.net是把基于通用语言的程序在服务器上运行。不像以前的ASP即时解释程序,而是将程序在服务器端首次运行时进行编译,这样的执行效果,当然比一条一条的解释强很多。世界级的工具支持ASP.net构架是可以用Microsoft(R)公司最新的产品 Visual S开发环境进行开发,WYSI
21、WYG(What You See Is What You Get所见即为所得)的编辑。这些仅是ASP.net强大化软件支持的一小部分。强大性和适应性因为ASP.net是基于通用语言的编译运行的程序,所以它的强大性和适应性,可以使它运行在Web应用软件开发者的几乎全部的平台上(笔者到现在为止只知道它只能用在Windows 2000 Server上)。通用语言的基本库,消息机制,数据接口的处理都能无缝的整合到ASP.net的Web应用中。ASP.net同时也是language-independent语言独立化的,所以,你可以选择一种最适合你的语言来编写你的程序,或者把你的程序用很多种语言来写,现在
22、已经支持的有C#(C+和Java的结合体),VB,Jscript。将来,这样的多种程序语言协同工作的能力保护您现在的基于COM+开发的程序,能够完整的移植向ASP.net5.5功能实现5.5.1登录流程图5.5.2登录代码实现/*开发人:于炳煜*开发时间:1014-12-12*模块名称:登录页面*功能简述:输入正确的用户名密码时即可进入主页面*/protected void Button1_Click(object sender, EventArgs e) SqlCommand cmd = new SqlCommand(select *from Register where UserName=
23、 + TextBox1.Text + and UserPwd= + TextBox2.Text + , clsCon.DBOpen(); SqlDataReader dt = cmd.ExecuteReader(); string type = ; if (dt.Read() type = Convert.ToString(dt.GetValue(8); dt.Close(); clsCon.DBClose(); if (type = 1) Response.Redirect(Manager.aspx); SqlCommand cmd1 = new SqlCommand(select coun
24、t(*) from Register where UserName= + TextBox1.Text + and UserPwd= + TextBox2.Text + , clsCon.DBOpen(); int i = (int)cmd1.ExecuteScalar(); if (i 0) SessionName = TextBox1.Text; Response.Redirect(Main.aspx); else Response.Write(alert(用户名或密码错误);location=javascript:history.go(-1); clsCon.DBClose();5.5.3
25、注册流程图5.5.4注册代码实现/*开发人:于炳煜*开发时间:1014-12-12*模块名称:注册页面*功能简述:注册成功后即可进入登录界面*/protected void Button1_Click(object sender, EventArgs e) if (Page.IsValid) try SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStringsGraduateConnectionString.ConnectionString); con.Open(); string sex = 男; i
26、f (RadioButton3.Checked = true) sex = 女 ; SqlCommand cmd = new SqlCommand(insert into register values ( + TextBox1.Text.Trim() + , + TextBox3.Text.Trim() + , + TextBox4.Text.Trim() + , + sex + , + TextBox7.Text.Trim() + , + TextBox5.Text.Trim() + , + TextBox6.Text.Trim() + , + + ) , clsCon.DBOpen();
27、 cmd.ExecuteNonQuery(); clsCon.DBClose(); Response.Redirect(CG.aspx); catch (Exception ee) Response.Write(); Response.Write(alert(提交失败!); Response.Write(); protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args) SqlCommand cmd1 = new SqlCommand(select count(*) fro
28、m Register where UserName= + TextBox1.Text + , clsCon.DBOpen(); int i = (int)cmd1.ExecuteScalar(); if (i 0) args.IsValid = false; else args.IsValid = true; 5.5.5歌曲下载流程图5.5.6歌曲下载代码实现/*开发人:于炳煜*开发时间:1014-12-12*模块名称:下载页面*功能简述:当点击下载歌曲时即可下载歌曲*/protected void GridView1_SelectedIndexChanged(object sender, E
29、ventArgs e) if (GridView1.SelectedIndex != -1) string M_Id = GridView1.DataKeysGridView1.SelectedIndex.Value .ToString (); string M_FileName = ; if (M_Id != ) SqlConnection con = new SqlConnection(); con.ConnectionString = ConfigurationManager.ConnectionStringsgraduateConnectionString.ConnectionStri
30、ng; con.Open (); SqlCommand cmd=new SqlCommand (select M_LuJing from Music where M_id=+M_Id+,con ); M_FileName=cmd.ExecuteScalar().ToString (); con.Close (); if(M_FileName!=) Response.TransmitFile(Server.MapPath(Music) + + M_FileName); string FileName = M_FileName; string filePath = Server .MapPath(
31、Music)+M_FileName ; if (System.IO.File.Exists(filePath) = false) return; FileName = new FileInfo(filePath).Name; HttpContext.Current.Response.Clear(); HttpContext.Current.Response.AddHeader(Content-Disposition, attachment; filename= + FileName); HttpContext.Current.Response.WriteFile(filePath); Http
32、Context.Current.Response.End(); 第6章 软件部署及测试分析6.1软件配置建议服务器操作系统为: Windows 2000 Server 数据库为:Microsoft SQL Server 2000 工作站:所有的Windows平台。例如:WindowsXP6.2测试分析6.2.1 单元测试单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。例如,你可能把一个很大的值放入一个有序list 中去,然后确认该值出现在list 的尾部。或者,你可能
33、会从字符串中删除匹配某种模式的字符,然后确认字符串确实不再包含这些字符了。 单元测试(模块测试)是由程序员自己来完成,最终受益的也是程序员自己。可以这么说,程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试。执行单元测试,就是为了证明这段代码的行为和我们期望的一致。工厂在组装一台电视机之前,会对每个元件都进行测试,这,就是单元测试。单元测试的优点:1、它是一种验证行为。 程序中的每一项功能都是测试来验证它的正确性。它为以后的开发提供支缓。就算是开发后期,我们也可以轻松的增加功能或更改程序结构,而不用担心这个过程中会破坏重要的东西。而且它为代码的重构提供了保障。这样,我们就可以更自
34、由的对程序进行改进。2、它是一种设计行为。 编写单元测试将使我们从调用者观察、思考。特别是先写测试(test-first),迫使我们把程序设计成易于调用和可测试的,即迫使我们解除软件中的耦合。3、它是一种编写文档的行为。 单元测试是一种无价的文档,它是展示函数或类如何使用的最佳文档。这份文档是可编译、可运行的,并且它保持最新,永远与代码同步。4、它具有回归性。自动化的单元测试避免了代码出现回归,编写完成之后,可以随时随地的快速运行测试。6.2.2 黑盒测试黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的
35、黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。黑盒测试方法主要有等价类划分、边值分析、因果图、错误推测等,主要用于软件确认测试。“黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。“黑盒”法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试。6.2.
36、3 白盒测试白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。“白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。“白盒”法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。但即使每条路径都测试了仍然可能有错误。第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程
37、序。第二,穷举路径测试不可能查出程序中因遗漏路径而出错。第三,穷举路径测试可能发现不了一些与数据相关的错误。6.2.4 集成测试集成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展。它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。从这一层意义上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。此外,如果程序由多个进程组成,应该成对测试它们,而不是同时测试所有进程。 集成测试识别组合单元时出现的问题。通过使
38、用要求在组合单元前测试每个单元并确保每个单元的生存能力的测试计划,可以知道在组合单元时所发现的任何错误很可能与单元之间的接口有关。这种方法将可能发生的情况数量减少到更简单的分析级别。 集成测试是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动。也就是说,在集成测试之前,单元测试应该已经完成,集成测试中所使用的对象应该是已经经过单元测试的软件单元。这一点很重要,因为如果不经过单元测试,那么集成测试的效果将会受到很大影响,并且会大幅增加软件单元代码纠错的代价。 集成测试是单元测试的逻辑扩展。在现实方
39、案中,集成是指多个单元的聚合,许多单元组合成模块,而这些模块又聚合成程序的更大部分,如分系统或系统。集成测试采用的方法是测试软件单元的组合能否正常工作,以及与其他组的模块能否集成起来工作。最后,还要测试构成系统的所有模块组合能否正常工作。集成测试所持的主要标准是软件概要设计规格说明,任何不符合该说明的程序模块行为都应该加以记载并上报。 所有的软件项目都不能摆脱系统集成这个阶段。不管采用什么开发模式,具体的开发工作总得从一个一个的软件单元做起,软件单元只有经过集成才能形成一个有机的整体。具体的集成过程可能是显性的也可能是隐性的。只要有集成,总是会出现一些常见问题,工程实践中,几乎不存在软件单元组装过程中不出任何问题的情况。从图1可以看出,集成测试需要花费的时间远远超过单元测试,直接从单元测试过渡到系统测试是极不妥当的做法。集成测试的必要性还在于一些模块虽然能够单独地工作,但并不能保证连接起来也能正常工作。程序在某些局部反映不出来的问题,有可能在全局上会暴露出来,影响功能的实现。此外,在某些开发模式中,如
限制150内