package music; import java.util.Scanner; /*测试系统类 *功能:实例化系统界面对象即可 */ public class Test2 { static class Music { //歌名 private String name; //歌手 private String musicPlayer; //歌长 private double musicTime; //标记歌曲的状态变量(由于数组定长 ,打标记的方法实现删除false默认正常true删除) private boolean isDelete; public Music() { this("","",0); } //带参数的构造方法 public Music(String name,String player,double time) { this.name = name; this.musicPlayer = player; this.musicTime = time; } //set get方法 public String getName() { return name; } public void setName(String name) { this.name = name; } public String getMusicPlayer() { return musicPlayer; } public void setMusicPlayer(String musicPlayer) { this.musicPlayer = musicPlayer; } public double getMusicTime() { return musicTime; } public void setMusicTime(double musicTime) { this.musicTime = musicTime; } public boolean isDelete() { return isDelete; } public void setDelete(boolean isDelete) { this.isDelete = isDelete; } //打印方法(歌名 歌手 歌长) @Override public String toString() { return "Music [name=" + name + ", musicPlayer=" + musicPlayer + ", musicTime=" + musicTime + "]"; } } static class MusicList { // 定义歌曲数组 Music[] musicsArray; public MusicList() { // 实例化歌曲数组 musicsArray = new Music[5]; // 调用初始化方法 initMusicArray(); } // 私有的方法初始化歌单 private void initMusicArray() { // 构造方法实例化一个对象,然后添加到数组 Music music1 = new Music("平凡的一天", "毛不易", 240.0); musicsArray[0] = music1; Music music2 = new Music("北京欢迎你", "群星", 345.0); musicsArray[1] = music2; } // 歌单打印 public void musicPrint() { // 遍历数组 for (int i = 0; i < musicsArray.length; i++) { Music music = musicsArray[i]; if (music != null) { System.out.println(music); } } } // 删除歌曲 public void delete(String name) { // 遍历数组 for (int i = 0; i < musicsArray.length; i++) { // 当前位置对象 Music music = musicsArray[i]; // 判断当前歌曲对象不为空并且歌名等于输入的歌名 if (music != null && music.getName().equals(name)) { // 将状态设置为true music.setDelete(true); // 清空当前位置的 musicsArray[i] = null; System.out.println("歌曲:" + music.getName() + "删除成功"); return; } } System.out.println("不存在此歌曲信息"); } // 添加歌曲 public void musicAdd() { System.out.println("请输入歌曲名称"); String musicName = new Scanner(System.in).next(); System.out.println("请输入演唱者"); String musicPlayer = new Scanner(System.in).next(); System.out.println("请输入歌曲时长"); double musicPayer = new Scanner(System.in).nextDouble(); // 封装对象 Music music = new Music(musicName, musicPlayer, musicPayer); // 调用对象添加方法 boolean b = add(music); // 判断b if (b) { System.out.println("添加成功"); } else { System.out.println("添加失败"); } } // 添加歌曲对象 public boolean add(Music music) { // 调用索引方法查看空索引 int index = searchEmptyIndex(); // 找到空索引 if (index != -1) { musicsArray[index] = music; return true; } return false; } // 搜索歌曲 public void searchMusic() { System.out.println("输入要查寻的歌名"); String songName = new Scanner(System.in).next(); // 遍历数组 for (int i = 0; i < musicsArray.length; i++) { // 获得数组当前位置元素 Music music = musicsArray[i]; // 不为空并且歌曲名字想同就返回 if (music != null && music.getName().equals(songName)) { //打印歌曲信息 System.out.println(music); return; } } System.out.println("歌曲搜索失败"); } // 查询索引 private int searchEmptyIndex() { for (int i = 0; i < musicsArray.length; i++) { Music music = musicsArray[i]; // 当前位置为空,返回当前下标,用来把保存新的歌曲对象 if (music == null) { return i; } } return -1; } } static class MainFrame { //创建歌单对象 MusicList musicList; //构造器 public MainFrame() { musicList = new MusicList(); initFrame(); } //初始化界面 public void initFrame() { System.out.println("=================欢迎使用MUSIC系统================="); System.out.println(); //while循环系统一直可以操作,知道输入0 while(true) { System.out.print("1:查看歌单"+" "); System.out.print("2:添加歌曲"+" "); System.out.print("3:查询歌曲"+" "); System.out.print("4:删除歌曲"+" "); System.out.println("0:退出 "); System.out.println(); System.out.println("请选择你要执行的操作"); //匿名类创建键盘输入对象 ,获取键盘输入 int input = new Scanner(System.in).nextInt(); switch(input) { case 1: //调用查看歌单方法 System.out.println("*********************查看歌单*********************"); musicList.musicPrint(); System.out.println("================================================"); break; case 2: //调用添加歌曲方法 System.out.println("*********************添加歌曲*********************"); musicList.musicAdd(); System.out.println("================================================"); break; case 3: //调用查询歌曲方法 System.out.println("*********************查询歌曲*********************"); musicList.searchMusic(); System.out.println("================================================"); break; case 4: //调用删除歌曲方法 System.out.println("*********************删除歌曲*********************"); System.out.println("输入要删除的歌曲名称"); //匿名类和创建键盘输入对象 String name = new Scanner(System.in).next(); musicList.delete(name); System.out.println("================================================"); break; case 0: System.out.println("******************欢迎下次使用,再见!****************"); return; default : System.out.println("!!!!!!!输入序号有误,重新选择!!!!!!"); break; } } } } public static void main(String[] args) { MainFrame mainFrame = new MainFrame(); } }
最近下载更多
huangtian LV3
2023年6月24日
微信网友_6297217905807360 LV2
2023年1月9日
15342201772 LV9
2022年12月4日
18871201024 LV4
2022年12月2日
微信网友_6013389878005760 LV3
2022年9月19日
sxgszx LV1
2022年6月17日
Rommel LV27
2021年6月26日
最代码官方 LV168
2021年6月19日
最近浏览更多
zolscy LV24
11月28日
张泽帅 LV6
10月21日
glennwei LV2
4月28日
WBelong LV8
3月29日
sssszz
3月22日
暂无贡献等级
1203093322
2023年12月31日
暂无贡献等级
Kaiaahh LV2
2023年12月30日
asddwh LV13
2023年12月26日
1790759671
2023年11月1日
暂无贡献等级
Chuiwaitim LV2
2023年10月18日