练习打卡,麻烦老师检查~
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版
- 参与学习 人
- 提交作业 9393 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星