练习打卡,麻烦老师检查~
package com.imooc.player;
import java.util.Scanner;
public class TestDemo {
// 对歌曲Song类进行测试
public void testSong() {
Song song1 = new Song("s001", "两只老虎", "小太阳");
Song song2 = new Song("s002", "小燕子", "风车");
Song song3 = new Song("s003", "茉莉花", "彩虹");
Song song4 = new Song("s003", "茉莉花", "彩虹");
System.out.println(song1);
// 测试song1和song3这两个对象是否相等
System.out.println("song1==song3?" + song1.equals(song3));
System.out.println("song1==song3?" + song4.equals(song3));
}
// 对播放列表类PlayList进行测试
public void testPlayList() {
// 定义几个Song类对象,添加到播放列表当中
Song song1 = new Song("s001", "两只老虎", "小太阳");
Song song2 = new Song("s002", "小燕子", "风车");
Song song3 = new Song("s003", "茉莉花", "彩虹");
// Song song4 = new Song("s003", "茉莉花", "彩虹");
// 创建一个PlayList对象
PlayList mainPlayList = new PlayList("");
mainPlayList.addToPlayList(song1);
mainPlayList.addToPlayList(song2);
mainPlayList.addToPlayList(song3);
// mainPlayList.addToPlayList(song4);
// 显示播放列表内容
mainPlayList.displayAllSong();
// 通过id查询歌曲信息
Song song = mainPlayList.searchSongById("s005");
if (song != null) {
System.out.println("通过id查询歌曲信息:");
System.out.println(song);
} else {
System.out.println("该歌曲不存在!");
}
//
song = null;
song = mainPlayList.searchSongByName("小燕子");
if (song != null) {
System.out.println("通过name查询歌曲信息:");
System.out.println(song);
} else {
System.out.println("该歌曲不存在!");
}
// 修改歌曲信息
Song songUpdate = new Song("s005", "蜗牛与黄鹂鸟", "小太阳");
mainPlayList.updatedSong("s003", songUpdate);
mainPlayList.displayAllSong();
// 删除歌曲信息
mainPlayList.deleteSong("s005");
mainPlayList.displayAllSong();
}
// 测试播放列表集合类
public void testPlayListCollection() {
Song song1 = new Song("s001", "两只老虎", "小太阳");
Song song2 = new Song("s002", "小燕子", "风车");
Song song3 = new Song("s003", "茉莉花", "彩虹");
// 创建主播放列表
PlayList mainPlayList = new PlayList("主播放列表");
// 将歌曲添加到主播放列表中
mainPlayList.addToPlayList(song1);
mainPlayList.addToPlayList(song2);
mainPlayList.addToPlayList(song3);
// 定义一个新的播放列表,从主播放列表中添加歌曲进来
PlayList favouritePlayList = new PlayList("最喜欢的歌曲");
favouritePlayList.addToPlayList(mainPlayList.getMusicList().get(0));
favouritePlayList.addToPlayList(mainPlayList.getMusicList().get(1));
favouritePlayList.displayAllSong();
// 将两个播放列表添加到播放列表集合中(播放器)
PlayListCollection plc = new PlayListCollection();
plc.addPlayList(mainPlayList);
plc.addPlayList(favouritePlayList);
plc.displayPlayListName();
// 根据播放列表名字查询播放列表信息,并显示所有歌曲
PlayList playList = plc.searchPlayListByName("最喜欢的歌曲");
playList.displayAllSong();
// 删除播放列表信息
System.out.println("删除前:");
plc.displayPlayListName();
plc.deletePlayList(favouritePlayList);
System.out.println("删除后:");
plc.displayPlayListName();
}
// 主菜单
public void mainMenu() {
System.out.println("*************************************");
System.out.println(" **主菜单*** ");
System.out.println(" 1--播放列表管理 ");
System.out.println(" 2--播放器管理 ");
System.out.println(" 0--退出 ");
System.out.println("*************************************");
}
// 播放列表管理菜单
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 input = 0;
int input1 = 0;
int input2 = 0;
// 创建一个播放列表容器(播放器)
PlayListCollection plc = new PlayListCollection();
// 创建主播放列表
PlayList mainPlayList = new PlayList("主播放列表");
// 将主播放列表添加到播放器
plc.addPlayList(mainPlayList);
PlayList favouritePlayList = null;
while (true) {
td.mainMenu();
System.out.println("请输入相应的数字进行操作:");
input = sc.nextInt();
if (input == 0) {
break;
}
switch (input) {
case 1:
// 播放列表管理
while (true) {
td.playListMenu();
System.out.println("请输入相应的数字对播放列表进行管理:");
input1 = sc.nextInt();
if (input1 == 9) {
break;
}
switch (input1) {
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;
case 3:
System.out.println("通过歌曲id查询播放列表中的歌曲");
System.out.println("请输入要查询的播放列表名称:");
String strPlayListName1 = sc.next();
// 查询播放列表是否存在
PlayList pl1 = plc.searchPlayListByName(strPlayListName1);
if (pl1 == null) {
System.out.println("该播放列表不存在!");
break;
} else {
System.out.println("请输入要查询的歌曲id:");
String strId1 = sc.next();
Song s = pl1.searchSongById(strId1);
if (s == null) {
System.out.println("该歌曲在播放列表" + strPlayListName1 + "中不存在!");
} else {
System.out.println("该歌曲的信息为:");
System.out.println(s);
}
}
break;
case 4:
System.out.println("通过歌曲名称查询播放列表中的歌曲");
System.out.println("请输入要查询的播放列表名称:");
String strPlayListName2 = sc.next();
PlayList pl2 = plc.searchPlayListByName(strPlayListName2);
if (pl2 == null) {
System.out.println("该播放列表不存在!");
break;
} else {
System.out.println("请输入要查询的歌曲name:");
String strName1 = sc.next();
Song s = pl2.searchSongByName(strName1);
if (s == null) {
System.out.println("该歌曲不存在!");
} else {
System.out.println("该歌曲的信息为:");
System.out.println(s);
}
}
break;
case 5: // 通过id改演唱者和名称
System.out.println("修改播放列表中的歌曲");
System.out.println("请输入要修改的歌曲id:");
String strId = sc.next();
// // 首先判断该id的歌曲是否存在于主播放列表存在
Song song = mainPlayList.searchSongById(strId);
if (song == null) {
// 如果歌曲不存在
System.out.println("该歌曲在主播放列表不存在,请重新输入要修改的歌曲id");
} else {
System.out.println("请输入新的歌曲名称:");
String strName = sc.next();
System.out.println("请输入新的歌曲演唱者:");
String strSinger = sc.next();
// 创建一个Song类对象
song = new Song(strId, strName, strSinger);
// 把更新的歌曲信息加入主播放列表
System.out.println("歌曲信息修改前的播放列表歌曲:");
mainPlayList.updatedSong(strId, song);
System.out.println("歌曲信息修改后的播放列表歌曲");
mainPlayList.displayAllSong();
}
break;
case 6:
System.out.println("删除播放列表中的歌曲");
System.out.println("请输入要修改的歌曲id:");
String strId1 = sc.next();
mainPlayList.deleteSong(strId1);
break;
case 7:
System.out.println("请输入要查询的播放列表名称:");
String strPlayListName = sc.next();
// 查询播放列表是否存在
PlayList pl3 = plc.searchPlayListByName(strPlayListName);
if (pl3 == null) {
System.out.println("该播放列表不存在!");
break;
} else {
if (pl3.equals(mainPlayList)) {
System.out.println("显示播放列表中的所有歌曲");
mainPlayList.displayAllSong();
} else {
if (favouritePlayList != null) {
System.out.println("显示播放列表中的所有歌曲");
favouritePlayList.displayAllSong();
} else {
System.out.println("该列表尚未添加歌曲!");
}
}
}
break;
default:
System.out.println("该数字没有相应的操作!");
break;
}
}
break;
case 2:
// 播放器管理
while (true) {
td.playerMenu();
System.out.println("请输入相应的数字对播放器进行管理:");
input2 = sc.nextInt();
if (input2 == 9) {
System.out.println("返回上级菜单");
break;
}
switch (input2) {
case 1:
System.out.println("向播放器添加播放列表");
System.out.println("输入要添加的播放列表名称:");
String playerName = sc.next();
// 创建一个新的播放列表对象
favouritePlayList = new PlayList(playerName);
// 将播放列表添加到播放器Map
plc.addPlayList(favouritePlayList);
break;
case 2:
System.out.println("从播放器删除播放列表");
System.out.println("请输入要删除的播放列表名称:");
String strPlayListName = sc.next();
if (strPlayListName.equals("主播放列表")) {
System.out.println("主播放列表不能删除!");
break;
}
// 查询播放列表是否存在
PlayList playList1 = plc.searchPlayListByName(strPlayListName);
if (playList1 == null) {
System.out.println("该播放列表不存在!");
} else {
// 存在则删除
plc.deletePlayList(playList1);
}
break;
case 3:
System.out.println("通过名字查询播放列表");
System.out.println("请输入要查询的播放列表名称:");
String strPlayList1 = sc.next();
PlayList playList2 = plc.searchPlayListByName(strPlayList1);
if (playList2 == null) {
System.out.println("该播放列表不存在!");
} else {
// 显示该播放列表名称及其中的所有歌曲
System.out.println("该播放列表存在!");
System.out.println("该播放列表的名称为:" + strPlayList1);
playList2.displayAllSong();
}
break;
case 4:
System.out.println("显示所有播放列表名称");
plc.displayPlayListName();
break;
default:
System.out.println("该数字没有相应的操作!");
break;
}
}
default:
System.out.println("该数字没有相应的操作!");
}
}
}
public static void main(String[] args) {
TestDemo td = new TestDemo();
// td.testSong();
// td.testPlayList();
// td.testPlayListCollection();
td.test();
}
}51
收起
正在回答 回答被采纳积分+1
2回答
wangstudyvc
2020-07-05 11:56:28
package com.imooc.player;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
public class TestDemo {
// 主菜单
public void mainMenu() {
System.out.println("***************************************");
System.out.println(" **主菜单** ");
System.out.println(" 1--播放列表管理 ");
System.out.println(" 2--播放器管理 ");
System.out.println(" 0--退出 ");
System.out.println("***************************************");
}
// 播放列表管理菜单
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(" 8--导出歌单 ");
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 input = 0, input1 = 0, input2 = 0;
// 创建一个播放列表容器(播放器)
PlayListCollection plc = new PlayListCollection();
// 创建主播放列表
PlayList mainPlayList = new PlayList("主播放列表");
// 将主播放列表添加到播放器
plc.addPlayList(mainPlayList);
PlayList favouritePlayList = null;
while (true) {
td.mainMenu();
System.out.println("请输入对应数字进行操作:");
input = sc.nextInt();
if (input == 0) {
break;
}
switch (input) {
case 4:
System.out.println("通过歌曲名称查询播放列表中的歌曲");
System.out.println("请输入要查询的播放列表名称:");
String strPlayListName2 = sc.next();
// 查询播放列表是否存在
PlayList p2 = plc.searchPlayListByName(strPlayListName2);
if (p2 == null) {
System.out.println("该播放列表不存在!");
break;
} else {
System.out.println("请输入要查询的歌曲名称:");
String strName2 = sc.next();
Song s2 = p2.searchSongByName(strName2);
if (s2 == null) {
System.out.println("该歌曲在播放列表" + strPlayListName2 + "中不存在!");
} else {
System.out.println("该歌曲的信息为:");
System.out.println(s2);
}
}
break;
case 5:
System.out.println("修改播放列表中的歌曲");
System.out.println("请输入要修改歌曲的播放列表名称:");
String strPlayListName3 = sc.next();
PlayList p3 = plc.searchPlayListByName(strPlayListName3);
if (p3 == null) {
System.out.println("该播放列表不存在!");
} else {
System.out.println("请输入要修改的歌曲ID:");
String strId3 = sc.next();
// 是否在给定的播放列表中存在此歌曲
if (p3.searchSongById(strId3) != null) {
System.out.println("请输入歌曲名称:");
String strName3 = sc.next();
System.out.println("请输入演唱者:");
String strSinger3 = sc.next();
// 创建一个Song类的对象
Song newSong = new Song(strId3, strName3, strSinger3);
p3.updateSong(strId3, newSong);
// 判断给定的播放列表是否为主播放列表
if ("主播放列表".equals(p3.getPlayListName())) {
// 同步更新到其他播放列表
Map<String, PlayList> playListMap = plc.getPlayListMap();
Iterator<Entry<String, PlayList>> it = playListMap.entrySet().iterator();
while (it.hasNext()) {
Entry<String, PlayList> entry = it.next();
if (!entry.getKey().equals("主播放列表")
&& null != entry.getValue().searchSongById(strId3)) {
entry.getValue().updateSong(strId3, newSong);
}
}
} else {
// 同步更新主播放列表
mainPlayList.updateSong(strId3, newSong);
}
} else {
System.out.println("待修改的歌曲在该播放列表中不存在!");
break;
}
}
break;
case 6:
System.out.println("删除播放列表中的歌曲");
System.out.println("请输入要删除的歌曲ID:");
String strId6 = sc.next();
Map<String, PlayList> playListMap = plc.getPlayListMap();
Iterator<Entry<String, PlayList>> it = playListMap.entrySet().iterator();
while (it.hasNext()) {
Entry<String, PlayList> entry = it.next();
if (null != entry.getValue().searchSongById(strId6)) {
entry.getValue().deleteSong(strId6);
}
}
break;
case 7:
System.out.println("显示播放列表中的所有歌曲");
System.out.println("请输入要显示所有歌曲的播放列表名称:");
String strPlayListName7 = sc.next();
// 查询播放列表是否存在
PlayList p7 = plc.searchPlayListByName(strPlayListName7);
if (p7 == null) {
System.out.println("该播放列表不存在!");
} else {
p7.displayAllSong();
}
break;
case 8:
// 导出歌单信息
System.out.println("导出歌单");
System.out.println("请输入播放列表名称:");
String strPlayListName8 = sc.next();
PlayList p8 = plc.searchPlayListByName(strPlayListName8);
if (p8 == null) {
System.out.println("该播放列表不存在!");
} else {
System.out.println("请输入需要导出的歌曲名称:");
String songName = sc.next();
Song song = p8.searchSongByName(songName);
if (null != song) {
try {
FileOutputStream fos = new FileOutputStream(songName + ".txt");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(song);
oos.flush();
oos.close();
fos.close();
// 从文件反序列表显示进行验证
FileInputStream fis = new FileInputStream(songName + ".txt");
ObjectInputStream ois = new ObjectInputStream(fis);
Song song2 = (Song) ois.readObject();
System.out.println("导出的歌曲信息为:" + song2);
ois.close();
fis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} else {
System.out.println("歌曲" + songName + "在该播放列表中不存在!");
}
}
break;
default:
System.out.println("该歌曲没有对应的操作!");
break;
}
}
break;
case 2:
// 播放器管理
while (true) {
td.playerMenu();
System.out.println("请输入对应的数字对播放器进行管理:");
input2 = sc.nextInt();
if (input2 == 9)
break;
switch (input2) {
case 1:
System.out.println("向播放器添加播放列表");
System.out.println("输入要添加的播放列表名称:");
String playerName = sc.next();
// 创建一个新的播放列表对象
favouritePlayList = new PlayList(playerName);
// 将播放列表添加到播放器Map
plc.addPlayList(favouritePlayList);
break;
case 2:
System.out.println("从播放器删除播放列表");
System.out.println("请输入要删除的播放列表名称:");
String strPlayListName = sc.next();
if (strPlayListName.equals("主播放列表")) {
System.out.println("主播放列表不能删除!");
break;
}
// 查询播放列表是否存在
PlayList playList1 = plc.searchPlayListByName(strPlayListName);
if (playList1 == null) {
System.out.println("该播放列表不存在!");
} else {
// 存在则删除
plc.deletePlayList(playList1);
}
break;
case 3:
System.out.println("通过名字查询播放列表信息");
System.out.println("请输入要查询的播放列表名称:");
String strPlayList1 = sc.next();
PlayList playList2 = plc.searchPlayListByName(strPlayList1);
if (playList2 == null) {
System.out.println("该播放列表不存在!");
} else {
// 显示该播放列表名称及其中的所有歌曲
System.out.println("该播放列表存在!");
System.out.println("该播放列表的名称为:" + strPlayList1);
playList2.displayAllSong();
}
break;
case 4:
System.out.println("显示所有播放列表名称");
plc.displayListName();
break;
default:
System.out.println("该歌曲没有对应的操作!");
break;
}
}
break;
default:
System.out.println("该歌曲没有对应的操作!");
break;
}
}
}
}
java工程师2020版
- 参与学习 人
- 提交作业 9410 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星