java播放器管理系统

本文详细介绍了音乐播放器管理系统,包括需求分析、项目演示和详细设计。核心功能涵盖了播放列表管理(添加、查询、修改和删除歌曲),以及播放器管理(添加列表、删除和查询)。展示了Song、PlayList和PlayListCollection类的实现。
摘要由CSDN通过智能技术生成

标题播放器管理系统

  • 需求分析
  • 项目演示
  • 详细设计
  • 代码实现

需求分析

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;
    		}
    	}
    }

代码设计

播放列表源代码

  1. 将歌曲添加到主播放列表
// 将歌曲添加到播放列表
	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("添加成功!");
		}
	}
  1. 通过id查询歌曲
public Song searchSongById(String id) {
		Song song = null;
		for (Song song1 : musicList) {
			if (song1.getId().equals(id)) {
				song = song1;
				break;
			}
		}
		return song;
	}
  1. 通过名称查询歌曲
public Song searchSongByName(String name) {
		Song song = null;
		for (Song song1 : musicList) {
			if (song1.getName().equals(name)) {
				song = song1;
				break;
			}
		}
		return song;
	}
  1. 修改歌曲
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("修改成功!");
		}
	}
  1. 从播放列表删除歌曲
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);
		}
	}

播放器源代码

  1. 向播放列表集合(播放器)添加播放列表
public void addPlayList(PlayList playList) {
        //播放列表名称作为key值
        playListMap.put(playList.getPlayListName(), playList);
    }
  1. 删除播放列表
 public void deletePlayList(PlayList playList) {
        playListMap.remove(playList.getPlayListName());
        System.out.println("删除成功!");
    }

  1. 通过播放列表的名称查询播放列表
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;
    }
  1. 显示所有播放列表的名称
public void displayListName() {
        Set<String> playListSet = playListMap.keySet();
        System.out.println("播放列表名称为:");
        for (String s : playListSet) {
            System.out.println(s);
        }
    }

以上为播放器管理系统,系统还可以优化实现其它的功能。有兴趣的小伙伴可以试试哟。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值