深圳幻海软件技术有限公司 欢迎您!

【用Java模拟KTV点歌系统】

2023-04-19

目录模拟KTV点歌系统任务描述运行结果任务目标实现思路实现代码模拟KTV点歌系统任务描述分别使用LinkedList和ArrayList集合,实现编写一个模拟KTV点歌系统的程序。在程序中,指令0代表添加歌曲,指令1代表将所选歌曲置顶,指令代表将所选歌曲提前一位,指令3代表退出该系统。要求根据用户输

目录

模拟KTV点歌系统

任务描述

运行结果

任务目标

实现思路

实现代码


模拟KTV点歌系统

任务描述

分别使用LinkedList和ArrayList集合,实现编写一个模拟KTV点歌系统的程序。在程序中,指令0代表添加歌曲,指令1代表将所选歌曲置顶,指令代表将所选歌曲提前一位,指令3代表退出该系统。要求根据用户输入的指令和歌曲名展现歌曲列表。

运行结果

  

任务目标

  • 学会分析"模拟KTV点歌系统"程序设计的实现思路。

  • 根据思路独立完成"模拟KTV点歌系统"程序设计的源代码编写,编译和运行。

  • 掌握ArrayList集合和LinkedList集合中方法的使用。

实现思路

①为了指引用户操作,首先要将各个指令所表示的含义打印到控制台。

②程序中需要创建一个集合作为歌曲列表,并且向其添加一部分歌曲。

③由于控制台需要实时等待用户输入命令,所以可以使用while(true)来使程序一直处于等待用户输入指令的状态。

④可以通过Scanner类的nextInt()方法来接收控制台的信息。

⑤可以使用switch语句,根据控制台传入的指令,判断应该执行的操作。

⑥通过LinkedList集合或ArrayList集合定义的方法操作歌曲列表。

实现代码

(1),使用LinkedList集合模拟点歌系统的实现代码

  1.  package 集合类;
  2.  import java.util.LinkedList;
  3.  import java.util.Scanner;
  4.  public class KTVByLinkedList {
  5.      public static void main(String[] args) {
  6.          System.out.println("-----欢迎来到点歌系统-------");
  7.          System.out.println("0.添加歌曲至列表");
  8.          System.out.println("1.将歌曲置顶");
  9.          System.out.println("2.将歌曲前移一位");
  10.          System.out.println("3.退出");
  11.          //创建歌曲列表
  12.          LinkedList lineUpList=new LinkedList();
  13.          //添加一部分歌曲到歌曲列表
  14.          addMusicList(lineUpList);
  15.          while(true){
  16.              System.out.println("请输入要执行的操作序号");
  17.              //接收键盘输入的功能选项序号
  18.              Scanner scan=new Scanner(System.in);
  19.              int command=scan.nextInt();
  20.              //执行序号对应的功能
  21.              switch (command){
  22.                  case 0://添加歌曲到列表
  23.                      addMusic(lineUpList);
  24.                      break;
  25.                  case 1://将歌曲置顶
  26.                      setTop(lineUpList);
  27.                      break;
  28.                  case 2://将歌曲前移一位
  29.                      setBefore(lineUpList);
  30.                      break;
  31.                  case 3://退出
  32.                      exit();
  33.                      break;
  34.                  default:
  35.                      System.out.println("---------------");
  36.                      System.out.println("功能选择错误,请输入正确的功能序号!");
  37.             }
  38.              System.out.println("当前歌曲列表: "+lineUpList);
  39.         }
  40.     }
  41.      //初始时添加歌曲名称
  42.      private static void addMusicList(LinkedList lineUpList){
  43.          lineUpList.add("稻香");
  44.          lineUpList.add("夜曲");
  45.          lineUpList.add("夜上海");
  46.          lineUpList.add("好运来");
  47.          System.out.println("初始歌曲列表"+lineUpList);
  48.     }
  49.      //执行添加歌曲
  50.      private static void addMusic(LinkedList lineUpList){
  51.          System.out.print("请输入要添加的歌曲名称: ");
  52.          String musicName=new Scanner(System.in).nextLine();
  53.          //添加歌曲到列表的最后
  54.          lineUpList.addLast(musicName);
  55.          System.out.println("已添加歌曲:"+musicName);
  56.     }
  57.      //执行将歌曲置顶
  58.      private static void setTop(LinkedList lineUpList){
  59.          System.out.print("请输入要置顶的歌曲名称: ");
  60.          String musicName=new Scanner(System.in).nextLine();
  61.          //查找指定歌曲的位置
  62.          int position=lineUpList.indexOf(musicName);
  63.          //判断输入的歌曲是否存在
  64.          if(position<0){
  65.              System.out.println("当前列表没有输入的歌曲!");
  66.         }else{
  67.              //移除指定的歌曲
  68.              lineUpList.remove(musicName);
  69.              //将指定的歌曲放到第一位
  70.              lineUpList.addFirst(musicName);
  71.         }
  72.          System.out.println("已将歌曲"+musicName+"置顶");
  73.     }
  74.      //执行将歌曲置前一位
  75.      private static void setBefore(LinkedList lineUpList){
  76.          System.out.print("请输入要置前的歌曲名称: ");
  77.          String musicName=new Scanner(System.in).nextLine();
  78.          //查找指定歌曲的位置
  79.          int position=lineUpList.indexOf(musicName);
  80.          if(position<0){
  81.              System.out.println("当前列表中没有输入的歌曲!");
  82.              //判断歌曲是否已在第一位
  83.         }else if (position==0){
  84.              System.out.println("当前歌曲已在最底部");
  85.         }else{
  86.              //移除指定的歌曲
  87.              lineUpList.remove(musicName);
  88.              //将指定的歌曲放到前一位
  89.              lineUpList.add(position-1,musicName);
  90.         }
  91.          System.out.println("已将歌曲"+musicName+"置在第一位");
  92.     }
  93.      //退出
  94.      private static void exit(){
  95.          System.out.println("-----------退出---------------");
  96.          System.out.println("你已退出系统");
  97.          System.exit(0);
  98.     }
  99.  }

(2),使用ArrayList集合模拟点歌系统的代码实现

  1. package 集合类;
  2.  import java.util.ArrayList;
  3.  import java.util.LinkedList;
  4.  import java.util.Scanner;
  5.  public class KTVByArrayList {
  6.      public static void main(String[] args) {
  7.          System.out.println("-----欢迎来到点歌系统-------");
  8.          System.out.println("0.添加歌曲至列表");
  9.          System.out.println("1.将歌曲置顶");
  10.          System.out.println("2.将歌曲前移一位");
  11.          System.out.println("3.退出");
  12.          //创建歌曲列表
  13.          ArrayList lineUpList = new ArrayList();
  14.          //添加一部分歌曲至歌曲列表
  15.          addMusicList(lineUpList);
  16.          while(true){
  17.              System.out.println("请输入要执行的操作序号");
  18.              Scanner scan=new Scanner(System.in);
  19.              int command=scan.nextInt();
  20.              switch (command){
  21.                  case 0://添加歌曲
  22.                      addMusic(lineUpList);
  23.                      break;
  24.                  case 1://将歌曲置顶
  25.                      setTop(lineUpList);
  26.                      break;
  27.                  case 2://将歌曲前移一位
  28.                      setBefore(lineUpList);
  29.                      break;
  30.                  case 3://退出
  31.                      exit();
  32.                      break;
  33.                  default:
  34.                      System.out.println("---------------");
  35.                      System.out.println("功能选择错误,请输入正确的功能序号!");
  36.             }
  37.              System.out.println("当前歌曲列表: "+lineUpList);
  38.         }
  39.     }
  40.      //添加歌曲名称
  41.      private static void addMusicList(ArrayList lineUpList){
  42.          lineUpList.add("稻香");
  43.          lineUpList.add("夜曲");
  44.          lineUpList.add("夜上海");
  45.          lineUpList.add("好运来");
  46.          System.out.println("初始歌曲列表"+lineUpList);
  47.     }
  48.      //执行添加歌曲
  49.      private static void addMusic(ArrayList lineUpList){
  50.          System.out.print("请输入要添加的歌曲名称: ");
  51.          String musicName=new Scanner(System.in).nextLine();
  52.          lineUpList.add(musicName);//添加歌曲到列表最后
  53.          System.out.println("已添加歌曲:"+musicName);
  54.     }
  55.      //执行将歌曲置顶
  56.      private static void setTop(ArrayList lineUpList){
  57.          System.out.print("请输入要置顶的歌曲名称: ");
  58.          String musicName=new Scanner(System.in).nextLine();
  59.          //查找指定歌曲位置
  60.          int position=lineUpList.indexOf(musicName);
  61.          //判断歌曲是否存在
  62.          if(position<0){
  63.              System.out.println("当前列表没有输入的歌曲!");
  64.         }else{
  65.              //移除指定歌曲
  66.              lineUpList.remove(musicName);
  67.              //将指定歌曲放到第一位
  68.              lineUpList.add(0,musicName);
  69.         }
  70.          System.out.println("已将歌曲"+musicName+"置顶");
  71.     }
  72.      //执行将歌曲前置一位
  73.      private static void setBefore(ArrayList lineUpList){
  74.          System.out.print("请输入要置前的歌曲名称: ");
  75.          String musicName=new Scanner(System.in).nextLine();
  76.          int position=lineUpList.indexOf(musicName);
  77.          if(position<0){
  78.              System.out.println("当前列表中没有输入的歌曲!");
  79.         }else if (position==0){
  80.              System.out.println("当前歌曲已在最底部");
  81.  ​
  82.         }else{
  83.              lineUpList.remove(musicName);
  84.              lineUpList.add(position-1,musicName);
  85.         }
  86.          System.out.println("已将歌曲"+musicName+"置在第一位");
  87.     }
  88.      private static void exit(){
  89.          System.out.println("-----------退出---------------");
  90.          System.out.println("你已退出系统");
  91.          System.exit(0);
  92.     }
  93.  }

⛵总结
通过这个小项目,可以掌握ArrayList集合和LinkedList集合中方法的使用,同时ArrayList集合和LinkedList集合的不同是进大厂面试经常涉及到的内容,

如果这篇【文章】有帮助到你,希望可以点个赞👍,创作不易,如果有对【Java基础】【后端技术】、【数据结构】【Linux操作系统】感兴趣的小可爱,也欢迎关注 【LNORA】,对【算法设计与分析】感兴趣的可以免费订阅【算法设计与分析】的专栏,如果我的文章有帮助到你,麻烦来个一键三连奥,这将是对我莫大的鼓励,我将为大家带来更加优质的文章!我们可以一起进步,每天进步一点点,我将会给你带来巨大的【收获与惊喜】💝💝!
 

 

文章知识点与官方知识档案匹配,可进一步学习相关知识
算法技能树首页概览44435 人正在系统学习中