*
7.1 实验目的
1. 综合本课程 Java SE 部分的内容,集成运用 GUI、多线程、文件 IO、高级类特性、异常处理等知识和技术实现软件的设计和开发。
2. 练习使用 Eclipse 进行 Java 编程和调试。
7.2 实验要求
本实验要求设计的软件名称为:音乐播放器。
界面如图 7.1 所示(仅作参考,可以优化设计方案),基于该界面草图,学生需要对软件给出具体的功能规格描述,并完全的实现所描述的功能。
功能性要求
*
1. 实现音乐播放器的图形界面。界面元素参考设计草图,编程采用Swing GUI 库。
2. 实现歌单管理功能。点击歌单管理按钮,实现歌单管理对话框,要求能够创建歌单,设置歌单封面,将音乐添加至歌单。
3. 实现我的歌单功能。要求能够列表显示所创建的歌单,能够删除所创建的歌单。歌单信息需要使用本地轻量级数据库 SQLite进行管理,数据库需要至少维护 2 张表,说明如下:
sheet 表 歌单表,需要记录歌单 ID、歌单名称、创建日期、拥有者(用学号标识)、歌单封
面图路径。
music 表 音乐表,需要记录的信息包括音乐文件名、音乐所属的歌单 ID、音乐文件的 MD5 值(Hash 值)、音乐文件所在的目录路径。
4. 实现别人都在听歌单功能。相关信息存储参考我的歌单。该功能需要配合音乐服务器完成歌单的获取和音乐文件的下载,该服务器由教师实现并提供上传下载接口。
4. 实现歌单显示区功能,参考界面草图设计进行实现,要求实现歌单基本信息显示(包括歌单封面、名称、创建者等)、歌单歌曲列表、歌曲双击播放、播放全部、下载全部等功能,其中下载全部功能针对的是别人都在听里面显示的歌单,要求能够下载歌单里所有的歌曲到本地。
5. 实现播放控制区功能,支持对歌单中歌曲进行播放控制,包括播放/停止、上一首、下一首、随机/顺序/单曲循环控制。对于音乐文件的类型,当前仅要求支持 MP3类型文件的解码播放即可。
6. 如果软件功能设计、交互方式有不完善的地方,需要给出新设计,并尽可能给出实现。
非功能性要求
*
1. 界面设计美观,人机交互合理。
2. 设计开发文档完整、可读。
7.3 学时和分组要求
学时要求 6 实验学时 + 6 课外学时。
分组要求 2 人一组或 1 人一组,分组独立完成。