概述
Java播放器管理
文章目录
- Java播放器管理
- @[TOC](文章目录)
- 需求分析
- 详细设计
- 代码实现
文章目录
- Java播放器管理
- @[TOC](文章目录)
- 需求分析
- 详细设计
- 代码实现
需求分析
- 播放列表管理
- 将歌曲添加到主播放列表
- 将歌曲添加到普通播放列表
- 通过歌曲id查询播放列表中的歌曲
- 通过歌曲名称查询播放列表中的歌曲
- 修改播放列表中的歌曲
- 删除播放列表中的歌曲
- 显示播放列表中的所有歌曲
- 播放器管理
- 向播放器添加播放列表
- 从播放器删除播放列表
- 通过名字查询播放列表信息
详细设计
-
类:
-
歌曲类( Song )
- 属性:歌曲id ( id )、歌曲名(name)、演唱者(singer) , 均为字符串类型
- 方法:
- 构造方法
- getter和setter方法
- hashCode()和equals()方法
- toString(方法
-
播放列表类( PlayList )
- 属性:
- 播放列表名称( playListName ) : 字符串类型
- 播放列表中的歌曲集合( musicList ) : List类型
- 方法:
- 构造方法
- getter和setter方法
- 将歌曲添加到播放列表: public void addToPlayList(Song song);
- 显示播放列表中所有歌曲: public void displayAllSong0;
- 通过id查询歌曲: public Song searchSongById(String id);
- 通过歌曲名称查询歌曲: public Song searchSongById(String n);
- 修改歌曲: public void updateSong(Stirng id,Song song);
- 从播放列表删除歌曲: public void deleteSong(String id);
- 按歌曲名进行排序: public void sortBySongName0;
- 属性:
-
播放器类( PlayListCollection )
- 属性
- 存放播放列表的集合(playListMap):Map
- 方法
- 构造方法
- getter与setter
- 添加播放列表: public void addPlayList(PlayList playList);
- 删除播放列表: public void deletePlayList(PlayList playList);
- 通过名字查询: public PlayList searchPlayListByName(String playListName);
- 显示所有播放列表名称: public void displayPlayListName();
- 属性
-
测试类( TestDemo )
代码实现
- PlayList
package may11.player;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* 播放列表类
* @author zzh
*/
public class PlayList {
// 属性
private String playListName;
private List<Song> musicList;
//方法
public PlayList(){}
/**
* 构造方法
* @param playListName
*/
public PlayList(String playListName) {
this.playListName = playListName;
musicList=new ArrayList<Song>();
}
public String getPlayListName() {
return playListName;
}
public void setPlayListName(String playListName) {
this.playListName = playListName;
}
public List<Song> getMusicList() {
return musicList;
}
public void setMusicList(List<Song> musicList) {
this.musicList = musicList;
}
/**
* 将歌曲添加到列表
* @param song
*/
public void addToPlayList(Song song){
boolean flag=false;
for (Song song1:musicList){
if (song1.equals(song)){
flag=true;
break;
}
}
if (flag){
System.out.println("该歌曲已经存在!");
}else {
musicList.add(song);
}
}
/**
* 显示列表所有歌曲
*/
public void displayAllSong(){
System.out.println("播放列表所有歌曲:");
for (Song song:musicList){
System.out.println(song);
}
}
/**
* 提高Id查询
* @param id
* @return
*/
public Song searchSongById(String id){
for (Song song:musicList){
// id唯一
if (song.getId().equals(id)){
return song;
}
}
return null;
}
public Song searchSongByName(String name){
for (Song song:musicList){
if (song.getName().equals(name)){
return song;
}
}
return null;
}
/**
* 修改歌曲信息
* @param id
* @param song
*/
public void updateSong(String id,Song song){
Song song1=searchSongById(id);
if (song1==null){
System.out.println("not find");
}else {
musicList.remove(song1);
musicList.add(song);
System.out.println("modify success");
}
}
public void deleteSong(String id){
Song song=searchSongById(id);
if (song==null){
System.out.println("not find music");
}else {
musicList.remove(song);
System.out.println("delete success");
}
}
public void sortBySongName(){
}
}
- Song
package may11.player;
import java.util.Objects;
/**
* 歌曲类
* @author zzh
*/
public class Song {
// 属性
private String id;
private String name;
private String singer;
//方法
public Song(){}
public Song(String id, String name, String singer) {
this.id = id;
this.name = name;
this.singer = singer;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSinger() {
return singer;
}
public void setSinger(String singer) {
this.singer = singer;
}
@Override
public String toString() {
return "Song{" +
"id='" + id + ''' +
", name='" + name + ''' +
", singer='" + singer + ''' +
'}';
}
@Override
public boolean equals(Object o) {
// 判断对象是否相等
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
// 强制转换
Song song = (Song) o;
return Objects.equals(id, song.id) && Objects.equals(name, song.name) && Objects.equals(singer, song.singer);
}
@Override
public int hashCode() {
return Objects.hash(id, name, singer);
}
}
- PlayListCollection 未完成,只做了部分功能。
package may11.player;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/**
* 播放列表集合
* @author zzh
*/
public class PlayListCollection {
// 属性
private Map<String,PlayList> playListMap; // 存放播放列表集合
//method
public PlayListCollection(){
playListMap=new HashMap<String,PlayList>();
}
public Map<String, PlayList> getPlayListMap() {
return playListMap;
}
public void setPlayListMap(Map<String, PlayList> playListMap) {
this.playListMap = playListMap;
}
/**
* 添加播放列表
* @param playList
*/
public void addPlayList(PlayList playList) {
// 播放列表名称作为Key
playListMap.put(playList.getPlayListName(),playList);
}
/**
* delete 播放列表
* @param playList
*/
public void deletePlayList(PlayList playList) {
playListMap.remove(playList.getPlayListName());
System.out.println("delete success!");
}
/**
* 通过名称查询列表
* @param playListName
* @return
*/
public PlayList searchPlayListByName(String playListName) {
PlayList playList=null;
Set<String> playListSet=playListMap.keySet();
for (String s:playListSet){
if (s.equals(playListName)){
playList=playListMap.get(s);
break;
}
}
return playList;
}
/**
* 显示列表信息
*/
public void displayPlayListName(){
System.out.println("播放列表集合");
Set<String> listSet=playListMap.keySet();
for (String s:listSet){
System.out.println(s);
}
}
}
- TestDemo
package may11.player;
import java.util.Scanner;
public class TestDemo {
// 对歌曲类进行测试
public void testSong() {
Song song = new Song("s001", "hello", "adaier");
Song song2 = new Song("s002", "hello2", "adaier2");
Song song3 = new Song("s003", "hello3", "adaier3");
Song song4 = new Song("s003", "hello3", "adaier3");
System.out.println(song);
System.out.println("song1==song3:" + (song.equals(song3)));
System.out.println("song3==song4:" + (song3.equals(song4)));
}
// 对播放列表PlayList测试
public void testPlayList() {
Song song = new Song("s001", "hello", "adaier");
Song song2 = new Song("s002", "hello2", "adaier2");
Song song3 = new Song("s003", "hello3", "adaier3");
PlayList mainPlatList = new PlayList("主播放列表");
mainPlatList.addToPlayList(song);
mainPlatList.addToPlayList(song2);
mainPlatList.addToPlayList(song3);
mainPlatList.addToPlayList(song3);
mainPlatList.displayAllSong();
// 通过ID查询
System.out.println("***********************************************");
Song song1 = mainPlatList.searchSongById("s002");
if (song1 != null) {
System.out.println(song1);
} else {
System.out.println("歌曲不存在");
}
// 通过名称查询
System.out.println("***********************************************");
song1 = mainPlatList.searchSongByName("hello5");
if (song1 != null) {
System.out.println(song1);
} else {
System.out.println("歌曲不存在");
}
// 修改歌曲
System.out.println("************************************************");
Song song4 = new Song("s004", "hello4", "adaier4");
mainPlatList.updateSong("s003", song4);
mainPlatList.displayAllSong();
// delete song
System.out.println("************************************************");
mainPlatList.deleteSong("s004");
mainPlatList.displayAllSong();
System.out.println("************************************************");
}
// 测试播放列表集合
public void testPlayListCollection() {
Song song = new Song("s001", "hello", "adaier");
Song song2 = new Song("s002", "hello2", "adaier2");
Song song3 = new Song("s003", "hello3", "adaier3");
// 创建主播放列表
PlayList mainPlayList = new PlayList("主播放列表");
mainPlayList.addToPlayList(song);
mainPlayList.addToPlayList(song2);
mainPlayList.addToPlayList(song3);
// 定义新的播放列表
PlayList favouritePlayList = new PlayList("favourite");
favouritePlayList.addToPlayList(mainPlayList.getMusicList().get(0));
favouritePlayList.addToPlayList(mainPlayList.getMusicList().get(1));
favouritePlayList.displayAllSong();
System.out.println("************************************************");
// 将2个播放列表添加进集合中
PlayListCollection plc = new PlayListCollection();
plc.addPlayList(mainPlayList);
plc.addPlayList(favouritePlayList);
plc.displayPlayListName();
System.out.println("************************************************");
PlayList pl = plc.searchPlayListByName("favourite");
pl.displayAllSong();
System.out.println("************************************************");
// 删除
plc.deletePlayList(favouritePlayList);
plc.displayPlayListName();
}
// 主菜单
public void mianMenu() {
System.out.println("*********************************************");
System.out.println("
** main **
");
System.out.println("
1--播放列表管理");
System.out.println("
2--播放器管理");
System.out.println("
0--退出");
}
// 播放列表管理菜单
public void playListMenu() {
System.out.println("*******************************************************");
System.out.println("
**播放列表管理**
");
System.out.println("
1--将歌曲添加到主播放列表
");
System.out.println("
2--将歌曲添加到普通播放列表
");
System.out.println("
3--通过歌曲id查询播放列表中的歌曲
");
System.out.println("
4--通过歌曲名称查询播放列表中的歌曲
");
System.out.println("
5--修改播放列表中的歌曲
");
System.out.println("
6--删除播放列表中的歌曲
");
System.out.println("
7--显示播放列表中的所有歌曲
");
System.out.println("
9--返回上一级菜单
");
System.out.println("*******************************************************");
}
// 播放器菜单
public void playerMenu() {
System.out.println("*******************************************************");
System.out.println("
**播放器管理**
");
System.out.println("
1--向播放器添加播放列表
");
System.out.println("
2--从播放器删除播放列表
");
System.out.println("
3--通过名字查询播放列表信息
");
System.out.println("
4--显示所有播放列表名称
");
System.out.println("
9--返回上一级菜单
");
System.out.println("*******************************************************");
}
// 主流程
public void test() {
TestDemo td = new TestDemo();
Scanner sc = new Scanner(System.in);
int input1, input2, input3;
// 创建播放列表容器
PlayListCollection plc = new PlayListCollection();
//创建主播放列表
PlayList mainPlayList = new PlayList("主播放列表");
PlayList favouritePlayList = null;
plc.addPlayList(mainPlayList);
while (true) {
td.mianMenu();
System.out.println("请输入对应数字进行操作:");
input1 = sc.nextInt();
if (input1 == 0) {
break;
}
switch (input1) {
case 1:
while (true) {
td.playListMenu();
System.out.println("请输入对应数字进行操作:");
input2 = sc.nextInt();
if (input2 == 9)
break;
switch (input2) {
case 1:
System.out.println("将歌曲添加到主播放列表");
System.out.println("请输入要添加的歌曲的数量:");
int count = sc.nextInt();
for (int i = 1; i <= count; i++) {
System.out.println("请输入第" + i + "首歌曲:");
System.out.println("请输入歌曲的id:");
String strId = sc.next();
System.out.println("请输入歌曲的名称:");
String strName = sc.next();
System.out.println("请输入演唱者:");
String strSinger = sc.next();
//创建歌曲类的对象
Song song = new Song(strId, strName, strSinger);
mainPlayList.addToPlayList(song);
mainPlayList.displayAllSong();
}
break;
case 2:
System.out.println("将歌曲添加到普通播放列表");
System.out.println("请输入要添加的播放列表名称:");
String sName = sc.next();
//根据名称判断播放列表是否在播放器中存在
favouritePlayList = plc.searchPlayListByName(sName);
if (favouritePlayList == null) {
System.out.println("该播放列表不存在,请先将播放列表添加到播放器中!");
} else {
System.out.println("请输入要添加的歌曲的数量:");
int count1 = sc.nextInt();
for (int i = 1; i <= count1; i++) {
System.out.println("请输入第" + i + "首歌曲:");
System.out.println("请输入歌曲id:");
String strId = sc.next();
//首先判断该id的歌曲是否在主播放列表存在
Song song = mainPlayList.searchSongById(strId);
if (song == null) {
//如果歌曲不存在,则创建新的添加,并且添加到主播放列表
System.out.println("该歌曲在主播放列表不存在,继续输入歌曲的其他信息!");
System.out.println("请输入歌曲名称:");
String strName = sc.next();
System.out.println("请输入演唱者:");
String strSinger = sc.next();
//创建一个Song类的对象
song = new Song(strId, strName, strSinger);
//分别将歌曲添加到普通播放列表和主播放列表
favouritePlayList.addToPlayList(song);
mainPlayList.addToPlayList(song);
} else {
//如果歌曲存在于主播放列表,则直接添加到现在的播放列表
favouritePlayList.addToPlayList(song);
}
}
//显示播放列表中的歌曲信息
System.out.println("主播放列表:");
mainPlayList.displayAllSong();
System.out.println("普通播放列表:");
favouritePlayList.displayAllSong();
}
break;
}
}
break;
case 2:
while (true) {
td.playerMenu();
System.out.println("请输入对应数字进行操作:");
input3 = sc.nextInt();
if (input3 == 9)
break;
switch (input3) {
case 1:
}
}
break;
default:
System.out.println("没有对应的操作!");
}
}
}
public static void main(String[] args) {
TestDemo testDemo = new TestDemo();
//
testDemo.testSong();
//
testDemo.testPlayList();
//
testDemo.testPlayListCollection();
testDemo.test();
}
}
最后
以上就是甜蜜早晨为你收集整理的Java播放器管理 基础作业Java播放器管理需求分析详细设计代码实现的全部内容,希望文章能够帮你解决Java播放器管理 基础作业Java播放器管理需求分析详细设计代码实现所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复