标题播放器管理系统
- 需求分析
- 项目演示
- 详细设计
- 代码实现
需求分析
1.播放列表管理
-将歌曲添加到主播放列表
- 将歌曲添加到普通播放列表
- 通过歌曲id查询播放列表中的歌曲
- 通过歌曲名称查询播放列表中的歌曲
- 修改播放列表中的歌曲
- 删除播放列表中的歌曲
- 显示播放列表中的所有歌曲
2.播放器管理
- 向播放器添加列表
- 从播放器删除播放列表
- 通过名字查询播放列表信息
- 显示所有播放列表名称
项目演示
主界面:
主菜单包括(1,2,0)三种选项
选择数字1进入到播放列表管理
选择数字2进入到播放器管理
详细设计
歌曲类:
public class Song {
private String id;
private String name;
private String singer;
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 int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
result = prime * result + ((name == null) ? 0 : name.hashCode());
result = prime * result + ((singer == null) ? 0 : singer.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if(this==obj) {
return true;
}
if(obj.getClass()==Song.class) {
Song song = (Song)obj;
return (song.getId().equals(id))
&&(song.getName().equals(name))
&&(song.getSinger().equals(singer));
}
return false;
}
@Override
public String toString() {
return "歌曲信息为:id=" + id + ", 歌曲名称为:name=" + name + ", 演唱者为:singer=" + singer;
}
}
播放列表类:
import java.util.ArrayList;
import java.util.List;
public class PlayList {
private String playListName;
List<Song> musicList;
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;
}
// 将歌曲添加到播放列表
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);
System.out.println("添加成功!");
}
}
// 通过id查询歌曲
public Song searchSongById(String id) {
Song song = null;
for (Song song1 : musicList) {
if (song1.getId().equals(id)) {
song = song1;
break;
}
}
return song;
}
// 通过名称查询歌曲
public Song searchSongByName(String name) {
Song song = null;
for (Song song1 : musicList) {
if (song1.getName().equals(name)) {
song = song1;
break;
}
}
return song;
}
// 修改歌曲
public void updateSong(String id, Song song) {
Song song1 = searchSongById(id);
if (song1 == null) {
System.out.println("没有找到您输入的id所对应的歌曲,修改失败!");
} else {
System.out.println("修改前的歌曲信息为:");
System.out.println(song1);
musicList.remove(song1);
musicList.add(song);
System.out.println("修改后的歌曲信息为:");
System.out.println(song);
System.out.println("修改成功!");
}
}
// 从播放列表删除歌曲
public void deleteSong(String id) {
Song song = searchSongById(id);
if (song == null) {
System.out.println("没有找到您要删除的歌曲的信息,删除失败!");
} else {
System.out.println("找到了");
musicList.remove(song);
System.out.println("删除成功!");
}
}
public void sortBySongName() {
}
// 显示播放列表中所有歌曲
public void displayAllSong() {
System.out.println("播放列表中的所有歌曲为:");
for (Song song : musicList) {
System.out.println(song);
}
}
}
播放器类:
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class PlayListCollection {
Map<String,PlayList> playListMap;
public PlayListCollection() {
playListMap = new HashMap<String,PlayList>();
}
public Map<String,PlayList> getPlayListMap(){
return playListMap;
}
public void setPlayListMap(Map<String,PlayList> playListMap) {
this.playListMap=playListMap;
}
public void addPlayList(PlayList playList) {
playListMap.put(playList.getPlayListName(), playList);
}
public void deletePlayList(PlayList playList) {
playListMap.remove(playList.getPlayListName());
}
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);
}
}
return playList;
}
// public PlayList searchPlayListByName(String playListName) {
// PlayList playList = null;
// Iterator<PlayList> it = playListMap.values().iterator();
// while(it.hasNext()) {
// System.out.println(it.next()+" ");
// }
// return playList;
//}
public void disPlayListName() {
Set<String> playListSet = playListMap.keySet();
System.out.println("所有播放列表的名称为:");
for(String s:playListSet) {
System.out.println(s);
}
}
}
主流程
public void test() {
TestDemo td = new TestDemo();
Scanner input = new Scanner(System.in);
int choice = 0,choice1 = 0,choice2 = 0;
//创建一个播放列表容器
PlayListCollection plc = new PlayListCollection();
//创建主播放列表
PlayList mainPlayList = new PlayList("主播放列表");
//将主播放列表添加到播放器
plc.addPlayList(mainPlayList);
// PlayList favouritePlayList = null;
while(true) {
td.mainMenu();
System.out.println("请输入相应的数字进行操作");
choice = input.nextInt();
if(choice == 0) {
break;
}
switch(choice) {
case 1:
//播放列表管理
while(true) {
td.playListMenu();
System.out.println("请输入相应的数字进行操作");
choice1 = input.nextInt();
if(choice1 == 9) {
break;
}
switch(choice1) {
case 1:
//将歌曲添加到主播放列表
System.out.println("将歌曲添加到主播放列表");
System.out.println("请输入要添加的歌曲的数量:");
int count = 0;
count = input.nextInt();
for(int i = 1;i <= count;i++) {
System.out.println("请输入第"+i+"个添加的的歌曲的id:");
String songId = input.next();
System.out.println("请输入第"+i+"个添加的的歌曲的名称:");
String songName = input.next();
System.out.println("请输入第"+i+"个添加的的歌曲的演唱者:");
String songSinger = input.next();
Song song = new Song(songId,songName,songSinger);
mainPlayList.addToPlayList(song);
mainPlayList.displayAllSong();
}
break;
case 2:
//将歌曲添加到普通播放列表
System.out.println("将歌曲添加到普通播放列表");
System.out.println("请输入要添加的播放列表名称:");
String simplePlayList = input.next();
PlayList simplePlayList1 = plc.searchPlayListByName(simplePlayList);
if(simplePlayList1 == null) {
System.out.println("该播放列表不存在,请先将播放列表添加到播放器中!");
}else {
System.out.println("请输入要添加的歌曲的数量:");
int count1 = 0;
count1 = input.nextInt();
for(int i=1;i<=count1;i++) {
System.out.println("请输入第"+i+"个添加的的歌曲的id:");
String simpleSongId = input.next();
System.out.println("请输入第"+i+"个添加的的歌曲的名称:");
String simpleSongName = input.next();
System.out.println("请输入第"+i+"个添加的的歌曲的演唱者:");
String simpleSongSinger = input.next();
Song song = new Song(simpleSongId,simpleSongName,simpleSongSinger);
simplePlayList1.addToPlayList(song);
}
System.out.println("普通播放列表中的歌曲信息为:");
simplePlayList1.displayAllSong();
}
break;
case 3:
//通过歌曲id查询播放列表中的歌曲
System.out.println("通过歌曲id查询播放列表中的歌曲:");
System.out.println("请输入要查询的播放列表的名称");
String playListName = input.next();
PlayList pl = plc.searchPlayListByName(playListName);
if(pl == null) {
System.out.println("播放列表不存在");
}else {
System.out.println("请输入要查询的歌曲的id:");
String songId = input.next();
Song song = pl.searchSongById(songId);
if(song == null) {
System.out.println("您输入的歌曲的id不存在!");
}else {
System.out.println("您要查询的歌曲的信息为:");
System.out.println(song);
}
}
break;
case 4:
//通过歌曲名称查询播放列表中的歌曲
System.out.println("通过歌曲名称查询播放列表中的歌曲");
System.out.println("请输入要查询的播放列表的名称");
String PlayListName1 = input.next();
PlayList pl1 = plc.searchPlayListByName(PlayListName1);
if(pl1 == null) {
System.out.println("播放列表不存在");
}else {
System.out.println("请输入要查询的歌曲的名称:");
String SongName1 = input.next();
Song song1 = pl1.searchSongByName(SongName1);
if(song1 == null) {
System.out.println("您输入的歌曲的名称不存在!");
}else {
System.out.println("您要查询的歌曲的信息为:");
System.out.println(song1);
}
}
break;
case 5:
//修改播放列表中的歌曲
System.out.println("修改播放列表中的歌曲");
System.out.println("请输入要修改歌曲的播放列表名称:");
String playListName3 = input.next();
PlayList pl3 = plc.searchPlayListByName(playListName3);
if(pl3 == null) {
System.out.println("您要修改的播放列表不存在!");
}else {
System.out.println("请输入您要修改前的歌曲的id:");
String updateSongId = input.next();
System.out.println("请输入您要修改后的歌曲的id:");
String updateSongId1 = input.next();
System.out.println("请输入您要修改后的歌曲的姓名:");
String updateSongName = input.next();
System.out.println("请输入您要修改后的歌曲的歌手:");
String updateSongSinger = input.next();
Song song = new Song(updateSongId1,updateSongName,updateSongSinger);
pl3.updateSong(updateSongId, song);
}
break;
case 6:
//删除播放列表中的歌曲
System.out.println("删除播放列表中的歌曲");
System.out.println("请输入要删除歌曲的播放列表名称:");
String deletePlayListName = input.next();
PlayList pl4 = plc.searchPlayListByName(deletePlayListName);
if(pl4 == null) {
System.out.println("您要删的播放列表不存在!");
}else {
System.out.println("请输入您要删除的歌曲的id");
String deleteSongId = input.next();
pl4.deleteSong(deleteSongId);
}
break;
case 7:
//显示播放列表中的所有歌曲
System.out.println("显示播放列表中的所有歌曲");
System.out.println("请输入要查询的播放列表");
String searchPlayListName = input.next();
PlayList pl5 = plc.searchPlayListByName(searchPlayListName);
if(pl5 == null) {
System.out.println("您要查询的播放列表不存在");
}else {
pl5.displayAllSong();
}
break;
default:
System.out.println("该歌曲没有对应的操作!");
break;
}
}
break;
case 2:
//播放器管理
while(true) {
td.playerMenu();
System.out.println("请输入相应的数字进行操作");
choice2 = input.nextInt();
if(choice2 == 9) {
break;
}
switch(choice2) {
case 1:
//向播放器添加列表
System.out.println("向播放器添加列表");
System.out.println("请输入要添加的播放列表名称:");
String playListName = input.next();
PlayList favouritePlayList = new PlayList(playListName);
plc.addPlayList(favouritePlayList);
break;
case 2:
//从播放器删除播放列表
System.out.println("从播放器删除播放列表");
System.out.println("请输入要删除的播放列表的名称:");
String playListName1 = input.next();
// PlayList pl2 = new PlayList(playListName1);
PlayList pl2 = plc.searchPlayListByName(playListName1);
if(playListName1.equals("主播放列表")) {
System.out.println("删除失败,主播放列表不能删除!");
break;
}
if(pl2 == null) {
System.out.println("您要删除的播放列表不存在!");
}else {
plc.deletePlayList(pl2);
System.out.println("删除成功!");
}
break;
case 3:
//通过名字查询播放列表信息
System.out.println("请输入您要查询的播放列表的名字:");
String PlayListName2 = input.next();
PlayList pl3 = plc.searchPlayListByName(PlayListName2);
if(pl3 == null) {
System.out.println("您要查询的播放列表不存在!");
}else {
System.out.println("该播放列表存在!");
System.out.println("该播放列表的名称为:"+PlayListName2);
pl3.displayAllSong();
}
break;
case 4:
//显示所有播放列表名称
System.out.println("显示所有播放列表名称:");
plc.displayListName();
break;
default:
System.out.println("该歌曲没有对应的操作!");
break;
}
}
break;
}
}
}
代码设计
播放列表源代码
- 将歌曲添加到主播放列表
// 将歌曲添加到播放列表
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);
System.out.println("添加成功!");
}
}
- 通过id查询歌曲
public Song searchSongById(String id) {
Song song = null;
for (Song song1 : musicList) {
if (song1.getId().equals(id)) {
song = song1;
break;
}
}
return song;
}
- 通过名称查询歌曲
public Song searchSongByName(String name) {
Song song = null;
for (Song song1 : musicList) {
if (song1.getName().equals(name)) {
song = song1;
break;
}
}
return song;
}
- 修改歌曲
public void updateSong(String id, Song song) {
Song song1 = searchSongById(id);
if (song1 == null) {
System.out.println("没有找到您输入的id所对应的歌曲,修改失败!");
} else {
System.out.println("修改前的歌曲信息为:");
System.out.println(song1);
musicList.remove(song1);
musicList.add(song);
System.out.println("修改后的歌曲信息为:");
System.out.println(song);
System.out.println("修改成功!");
}
}
- 从播放列表删除歌曲
public void deleteSong(String id) {
Song song = searchSongById(id);
if (song == null) {
System.out.println("没有找到您要删除的歌曲的信息,删除失败!");
} else {
System.out.println("找到了");
musicList.remove(song);
System.out.println("删除成功!");
}
}
6.显示播放列表中所有歌曲
public void displayAllSong() {
System.out.println("播放列表中的所有歌曲为:");
for (Song song : musicList) {
System.out.println(song);
}
}
播放器源代码
- 向播放列表集合(播放器)添加播放列表
public void addPlayList(PlayList playList) {
//播放列表名称作为key值
playListMap.put(playList.getPlayListName(), playList);
}
- 删除播放列表
public void deletePlayList(PlayList playList) {
playListMap.remove(playList.getPlayListName());
System.out.println("删除成功!");
}
- 通过播放列表的名称查询播放列表
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 displayListName() {
Set<String> playListSet = playListMap.keySet();
System.out.println("播放列表名称为:");
for (String s : playListSet) {
System.out.println(s);
}
}
以上为播放器管理系统,系统还可以优化实现其它的功能。有兴趣的小伙伴可以试试哟。