资料来源:https://www.bilibili.com/video/BV1zB4y1T7Mx?p=2

    1. package cn.tx.KTV;
    2. import java.util.LinkedList;
    3. import java.util.Scanner;
    4. public class ktvMain {
    5. // 已点歌曲列表集合
    6. static LinkedList<String> songList = new LinkedList<>();
    7. static {
    8. songList.add("一千个伤心的理由");
    9. songList.add("天意");
    10. songList.add("双节棍");
    11. songList.add("直到世界尽头");
    12. songList.add("水手");
    13. songList.add("一路平安");
    14. }
    15. public static void main(String[] args) {
    16. showMain();
    17. // 创建扫描器对象
    18. Scanner scanner = new Scanner(System.in);
    19. System.out.println("提示:请输入要操作的选项!");
    20. // 定义一个退出的标志位
    21. boolean flag = true;
    22. while (flag){
    23. int op = scanner.nextInt();
    24. switch(op){
    25. case 1:
    26. addSong();
    27. break;
    28. case 2:
    29. showSong();
    30. break;
    31. case 3:
    32. setTop();
    33. break;
    34. case 4:
    35. setForward();
    36. break;
    37. case 5:
    38. jumpSong();
    39. break;
    40. case 6:
    41. System.out.println(6);
    42. break;
    43. case 7:
    44. flag = false;
    45. System.out.println("系统已退出。拜拜");
    46. break;
    47. }
    48. }
    49. }
    50. /**
    51. * 切歌
    52. */
    53. private static void jumpSong() {
    54. songList.remove(0);
    55. System.out.println("切歌成功");
    56. showSong();
    57. }
    58. /**
    59. * 歌曲前移
    60. */
    61. private static void setForward() {
    62. System.out.println("点歌系统 >> 歌曲前移");
    63. System.out.println("提示:输入歌曲");
    64. Scanner scanner = new Scanner(System.in);
    65. String songName = scanner.nextLine();
    66. // 获取要前移歌曲的索引
    67. int index = songList.indexOf(songName);
    68. // 删除当前这个首歌
    69. songList.remove(songName);
    70. // 把这首歌插入到索引是1处的地方
    71. songList.add(index - 1, songName);
    72. System.out.println("歌曲前移成功");
    73. showSong();
    74. }
    75. /**
    76. * 置顶歌曲
    77. */
    78. private static void setTop() {
    79. System.out.println("点歌系统 >> 歌曲置顶");
    80. System.out.println("提示:输入歌曲");
    81. Scanner scanner = new Scanner(System.in);
    82. String songName = scanner.nextLine();
    83. // 删除当前这个首歌
    84. songList.remove(songName);
    85. // 把这首歌插入到索引是1处的地方
    86. songList.add(1, songName);
    87. System.out.println("歌曲置顶成功");
    88. showSong();
    89. }
    90. /**
    91. * 展示已点歌曲列表
    92. */
    93. private static void showSong() {
    94. System.out.println("点歌系统 >> 查看已点");
    95. System.out.println("---------已点歌曲--------------------");
    96. for (int i = 0; i < songList.size(); i++) {
    97. String s = songList.get(i);
    98. System.out.println((i+1) + "\t" + s + "\t\t\t" + (i == 0 ? "正在播放" : ""));
    99. }
    100. System.out.println("------------------------------------");
    101. }
    102. /**
    103. * 点歌操作
    104. */
    105. private static void addSong(){
    106. System.out.println("点歌系统 >> 点歌");
    107. System.out.println("提示:输入歌曲");
    108. Scanner scanner = new Scanner(System.in);
    109. String s = scanner.nextLine();
    110. // 将歌曲添加到已点歌曲的列表
    111. songList.add(s);
    112. System.out.println("点歌成功");
    113. showSong();
    114. }
    115. /**
    116. * 展示主菜单
    117. */
    118. private static void showMain(){
    119. System.out.println("----------------欢迎来到KTV欢唱系统---------------");
    120. System.out.println("| |");
    121. System.out.println("| 1----------点歌 |");
    122. System.out.println("| 2----------查看已点歌曲列表 |");
    123. System.out.println("| 3----------将歌曲置顶 |");
    124. System.out.println("| 4----------将歌曲前移 |");
    125. System.out.println("| 5----------切歌 |");
    126. System.out.println("| 6----------点公主陪唱 |");
    127. System.out.println("| 7----------退出系统 |");
    128. }
    129. }