目 录
序 言 1
第一章 绪论 2
1.1 系统开发背景 2
1.2 系统说明书的结构 2
第二章 系统可行性分析 3
2.1 技术可行性 3
2.1.1 开发技术 3
2.1.2 开发环境 5
2.2 经济可行性 5
2.3 操作可行性 5
2.4 法律可行性 5
第三章 系统需求分析 6
3.1 功能概况描述 6
3.2性能需求分析 9
3.3系统流程分析 9
3.3.1登录流程图 9
3.3.2用户操作流程图 10
3.3.3管理员操作流程图 11
3.4系统功能用例图 12
第四章 系统概要设计 15
4.1系统工作原理 15
4.2 系统结构设计 15
4.3 数据库设计 17
4.3.1数据库概念结构设计 17
4.3.2数据库逻辑结构设计 20
第五章 系统的实现 23
5.1 用户功能模块的实现 23
5.1.1系统注册界面 23
5.1.2用户登录界面 24
5.1.3用户信息界面 26
5.1.4歌曲推荐界面 27
5.1.5在线播放界面 28
5.1.6我的歌曲界面 29
5.1.7发布歌曲界面 30
5.2 管理员功能模块的实现 33
5.2.1用户管理界面 33
5.2.2音乐类别管理界面 35
5.2.3音乐管理界面 38
第六章 系统测试 41
6.1系统测试描述 41
6.2系统功能测试 42
6.2.1登录注册测试 42
6.2.2身份权限测试 42
6.2.3用户更新测试 44
6.2.4歌曲管理测试 44
6.2.5用户管理测试 44
6.2.6音乐类别测试 45
6.2.7在线播放测试 45
6.2.8歌曲播放测试 46
6.2.9评论格式测试 46
6.3测试结论 47
结束语 48
参考文献 49
致 谢 51
第三章 系统需求分析
3.1 功能概况描述
本系统的主要任务是:根据不同权限的角色身份登入系统后,每个身份的可操作功能也不同。本系统需要完成的基本功能是用户注册功能(验证信息)、歌曲管理功能、用户管理功能、音乐类别管理功能、在线播放模块、歌曲评论功能以及歌曲信息、用户信息的管理功能。下面具体来了解本系统的各个功能模块。

1.登录注册模块
主要包括两个子模块:
(1)注册用户模块:用户进入系统主页后,这时用户的初始身份是游客身份,只能欣赏歌曲,查看歌曲评论的简单操作。点击注册后,输入要注册的用户名和密码,用户名字没有限制,但是此处的密码应该是暗码,然后实现系统用户的注册功能。此时就是系统的普通用户,对于普通用户,在以上功能基础上,用户可以发布歌曲,对歌曲进行编辑,编辑包括修改歌曲信息、删除此条记录,还可以听歌评论。
(2)登录系统模块:登录系统就可以进一步获取相对应的身份权限,登录密码格式为暗码,进入系统后,如果是管理员,那么在用户功能的基础上要有对用户的操作功能、歌曲类别操作功能。

2.用户管理功能模块
此功能模块主要包括两个子模块:
(1)创建用户模块:进入创建用户,输入账号、密码、头像、姓名、年龄等信息。比如,用户名为Lt,年龄为23,还有签名档。通过这些信息,可以对此用户做一个简单的信息记录。在用户类型选择方面,分为用户和管理员,不同的选择,用户的身份权限不同,可以操作的功能也就有所区别,这个性能需求在第一模块中已经描述。
(2)用户管理模块:此模块分为四个子功能:①用户信息列表查看:对用户的简要信息列表,管理员此时可以看到创建用户的简单信息。例如,查看账号,电话,邮箱,联系地址,QQ,用户类型,这些都应该让管理员一目了然。②用户资料查询模块:对当前用户所有信息查看,这个查看比列表查看更加详细,比如增加查看当前用户的性别,身份证,展现自己个性的头像和签名档。③用户密码重置:对当前用户的登录密码进行重置,这个重置应该对密码直接修改,不需要输入以前的密码。④用户记录删除模块:管理员从系统中删除此用户的所有信息。比如,用户删除了用户名为aaa的用户,那么用户信息不再展现在信息列表,此用户也不能在登录系统。

3.音乐类别管理模块
此功能模块主要包括两个子模块:
(1)创建音乐类别模块:管理员通过此模块创建一个新的音乐类别并能展现在系统主页中,其他用户进行向此类别中添加歌曲,比如管理员添加一个类别“电子”,那么主页中会出现“电子”这一类别,并且用户可以向“电子”类别中添加歌曲。
(2)类别管理模块:这个大模块又分为三个子功能:①进入管理界面,列出所有的音乐类别,显示出类别名称以及对应的创建此类别的时间。②编辑类别:对类别进行重新编辑,编辑后可以看到主页中此类别已经改变。③删除功能:删除当前创建的类别,删除后,类别列表和主页中此类别都会消失。

4.歌曲管理功能模块
此功能模块主要包括两个子模块:
(1)发布歌曲模块:用户通过编辑歌曲名字,选择音乐类别,对歌曲封面、源文件进行上传,歌曲和歌手简介,歌词编辑等信息,通过这些用户可以充分了解此歌曲的详细信息,以此来判断是否这首歌曲符合自己的需要。
(2)歌曲管理模块:此模块分为四个子功能:①对歌曲查询,用户可以查询自己上传的歌曲信息,包括歌曲名字,创立时间等信息。②封面查看:用户可以查看当前歌曲所对应封面,此处是新窗口大图。③歌曲编辑功能:用户对歌曲的名称,歌曲简介,歌曲歌词进行编辑,另外应该可以重新设置歌曲的封面图。④歌曲信息的删除功能:用户通过此功能删除当前自己发布的歌曲的所有信息,删除后用户在歌曲列表看不到此歌曲记录,在主页中也看不到此歌曲。

5.在线播放功能模块
此模块主要是在线放歌曲功能。用户通过此功能,在联网的状态下在线播放歌曲,用户在此页面可以看到歌手名字和歌名,不需要看到其他额外的信息,方便刷歌来寻找对应自身口味的音乐,刷新此功能可以刷新播放列表。

6.歌曲评论功能模块
此模块主要包括三个子模块:
(1)标签“收藏”和“取消收藏”的跳转:用户通过此功能对歌曲进行标志,标记自己感兴趣的歌曲,这样,本文转载自http://www.biyezuopin.vip/onews.asp?id=14230用户下次播放时就可以发现这个歌曲是自己以前关注过的歌。
(2)歌曲上传模块:用户通过此功能进行评论,通过评论记录自己听歌的感受。这样在以后听歌看到评论时就可以想起自己当时听歌的心情,满满的回忆之情会让人很享受。
(3)评论格式模块:通过此功能,用户能够对要写的评论进行趣味编辑。比如字体设为“微软雅黑”,字的大小可设为“28”,颜色可为“红色”,另外也可以增加表情,这样就会使得评论更加丰富。

7.系统的其他功能
此模块主要包括三个子功能:
(1)主页侧面伸张和缩放功能:进入系统后,在管理员界面,可以看到左侧的操作菜单,操作菜单最下方有个指向左的箭头,点击箭头,左侧菜单栏收起,只能显示右侧详细的操作界面。点击“泡泡云音乐”右侧的区域可以展开操作菜单,这时可以选择其他的操作选项。
(2)主页全屏和评论全屏功能:进入系统主页后,点击用户旁边的全屏按钮,系统主页显示全屏,这时页面会占据整个屏幕,浏览器其他栏都不会出现。点击评论全屏按钮,评论区占据整个屏幕,最上方是评论可选择的格式。

package com.app.controller;import java.io.File;
import java.util.LinkedList;
import java.util.List;
import java.util.Random;
import java.util.UUID;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.xml.registry.infomodel.User;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
import com.app.entity.*;
import com.app.service.*;
import com.app.utils.MD5;
import com.app.utils.MainUtils;@Controller
@RequestMapping("/home")
public class HomeController {@ResourceUsersService userService;@ResourceCategoryService caService;@ResourceArticleService articleService;@Resource CommentService cService;@RequestMapping("/index")public String index(HttpSession session,Model model) {       model.addAttribute("clist",caService.getAllCategory());model.addAttribute("list",articleService.getAllArticle());return "home/index";}@RequestMapping("/addpost")public String addpost(String content,HttpSession session,Model model,int id) {Comment m = new Comment();m.uid = session.getAttribute("userid")+"";m.mid = id+"";m.content = content;m.setCreated(MainUtils.getTime());m.setType("2");cService.insert(m);return "redirect:play?id="+id;}@Resource FavService fService;@RequestMapping("/cancelFav")public String cancelFav(HttpSession session,Model model,int id) {fService.delete(id);     return "redirect:play?id="+id;}@RequestMapping("/join")public String join(HttpSession session,Model model) {model.addAttribute("clist",caService.getAllCategory());    return "home/join";}@RequestMapping("/addFav")public String addFav(HttpSession session,Model model,int id) {Object uid =session.getAttribute("userid");Fav md = new Fav();md.created = MainUtils.getTime();md.mid = id+"";md.uid = uid.toString();fService.insert(md);return "redirect:play?id="+id;}@RequestMapping("/play")public String play(HttpSession session,Model model,int id) {model.addAttribute("clist",caService.getAllCategory());Article art = articleService.getArticleById(id);model.addAttribute("art", art);List<Comment> list2 = cService.getAllComment();List<Comment> list1 = new LinkedList<Comment>();if(list2.size()>0){for (Comment c:list2) {if(c.getMid().equals(id+"")&&c.getType().equals("2")){c.setU( userService.getUsersById(Integer.parseInt(c.getUid())));list1.add(c);}}}model.addAttribute("list2", list1);Object uid =session.getAttribute("userid");Fav check = null;if(uid==null){}else{Fav checkIt = new Fav();checkIt.mid =id+"";checkIt.uid = uid.toString();List<Fav> lists = fService.checkFav(checkIt);if(lists.size()>0)check = lists.get(0);}model.addAttribute("check", check);return "home/play";}@RequestMapping("/foryou")public String foryou(HttpSession session,Model model,String type) {       model.addAttribute("clist",caService.getAllCategory());model.addAttribute("lists",articleService.getRandom());return "home/foryou";}@RequestMapping("/mlist")public String mlist(HttpSession session,Model model,String type) {        model.addAttribute("clist",caService.getAllCategory());List<Article> list1 =  articleService.getAllArticle();List<Article> list2 =  new LinkedList<Article>();if(list1.size()>0){for (Article article : list1) {if(type!=null){if(article.getTags().equals(type)){list2.add(article);}}else{list2.add(article);}}}model.addAttribute("list",list2);return "home/mlist";}}























基于SSM框架的音乐网站系统设计与实现相关推荐

  1. 基于SSM的在线音乐网站开发与实现

    基于SSM的在线音乐网站开发与实现 本人的毕业设计,因为没有系统的学习过HTML和CSS,所以页面想不出什么设计元素,都是基于框架搭建而成的.前台页面为Bootstrap实现,后台页面为LayUI实现 ...

  2. 基于SSM框架的旅游网站的设计与实现

    1 简介 今天向大家介绍一个帮助往届学生完成的毕业设计项目,*基于SSM框架的旅游网站的设计与实现 *. 计算机毕业生设计,课程设计需要帮助的可以找我 2 设计概要 1.1.研究背景 随着互联网技术的 ...

  3. 基于ssm框架的校园订餐系统设计与实现毕业设计源码270912

    校园订餐系统的设计与实现 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题. ...

  4. 基于ssm框架的校园订餐系统设计与实现 毕业设计-附源码270912

    校园订餐系统的设计与实现                                                                       摘 要 信息化社会内需要与之针对性 ...

  5. 基于SSM的在线音乐网站(毕设课设)附论文和答辩PPT,手把手教搭建

    本网站基于SSM框架搭建 技术实现如下: 后台框架:Spring.SpringMVC.MyBatis UI界面:JSP.jQuery .H-ui 数据库:MySQL 本在线音乐网站采用JSP动态网页开 ...

  6. 基于SSM框架的医院挂号系统设计与实现

    本文是SSM框架的医院挂号系统设计与实现,可为毕业设计做参考. 1.摘要 随着21世纪互联网经济时代的到来,互联网+的使用也在各个领域中发挥了非同凡响的作用,已经成为了现今人们不可分割的一部分.为了避 ...

  7. 基于SSM框架的智能物流管理系统设计与实现

    摘  要 近些年,互联网行业的发展带给了很多人在生活上的便利,互联网能够改变人们的生活和工作的模式.很多企业都在将普通的工作模式结合了互联网,利用互联网的优势提高管理员的工作效率.目前不少智能物流管理 ...

  8. 基于SSM框架的投票管理系统设计与实现

    目 录 摘 要 I ABSTRACT II 1 绪论 1 1.1 选题的背景和意义 1 1.2 国内外研究现状 2 1.2.1 国内的研究现状 2 1.2.2 国外的研究现状 2 1.3 论文组织结构 ...

  9. JSP+MySQL基于SSM框架的教室管理系统设计与实现

    本教室管理系统主要包括系统用户管理模块.楼层信息管理模块.校内新闻管理.教室信息管理.登录模块.和退出模块等多个模块.它帮助教室管理实现了信息化.网络化,通过测试,实现了系统设计目标,相比传统的管理模 ...

最新文章

  1. 利用ngxtop实时监控nginx的访问情况
  2. SNMP、MIB、OID概念的理解
  3. android内存碎片化怎么处理,安卓越用越卡毛病有解了!ColorOS内存反碎片化引擎让手机久用不卡...
  4. Atom CSScomb 增强版
  5. TypeScript--泛型
  6. 电信运营商Three已在伦敦推出5G服务 并开始销售华为5G手机
  7. 江苏大学考研885程序设计 - 编程题笔记
  8. java 鼠标拖拽_JavaScript DOM 鼠标拖拽
  9. 使用IIS实现反向代理
  10. javascript创建对象的几种方式
  11. 暴风影音5【版本:5.36.0428.1111】---给您影院般的“极致”体验
  12. python :tushare 唐奇安通道
  13. 计算离散点线性相关系数
  14. 一款熊猫游戏java_狂热的熊猫_JAVA游戏免费版下载_7723手机游戏[www.7723.cn]
  15. 武汉市公积金提取流程
  16. 私有云Openstack介绍及搭建
  17. Meraki X84+ FortiGate 100F映射内网地址到外网
  18. 关于PE4259等各类射频开关选型对比分析
  19. 一周开发的成果,你说牛不牛,点个赞吧
  20. 基于Springboot的休闲娱乐代理售票系统

热门文章

  1. Java多线程入门(狂神说)
  2. 【大学生必备神器网站】免费论文下载、免费2T网盘、各类免费课程、在线高数引擎...收藏了4年的宝藏学习网站最全の整理推荐!
  3. 以前的java单机游戏过关长剑,玩过这些经典单机游戏_就说明你已经老了
  4. 【Writeup】第六季极客大挑战(部分题目)
  5. EASEUS Partition Master 调整Windows 7分区
  6. (手机自适应)成人高考自考资讯网源码 织梦dedecms模板
  7. P1149 火柴棒等式
  8. HG30-3交直流校准源
  9. Ubuntu_ROS 学习
  10. java毕业设计springboot框架 java二手交易网站系统毕业设计开题报告功能参考