【用Java模拟KTV点歌系统】

发布时间:2023-11-23 09:00

目录

模拟KTV点歌系统

任务描述

运行结果

任务目标

实现思路

实现代码


模拟KTV点歌系统

任务描述

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

运行结果

\"【用Java模拟KTV点歌系统】_第1张图片\"  

任务目标

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

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

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

实现思路

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

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

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

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

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

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

实现代码

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

 package 集合类;
 import java.util.LinkedList;
 import java.util.Scanner;
 public class KTVByLinkedList {
     public static void main(String[] args) {
         System.out.println(\"-----欢迎来到点歌系统-------\");
         System.out.println(\"0.添加歌曲至列表\");
         System.out.println(\"1.将歌曲置顶\");
         System.out.println(\"2.将歌曲前移一位\");
         System.out.println(\"3.退出\");
         //创建歌曲列表
         LinkedList lineUpList=new LinkedList();
         //添加一部分歌曲到歌曲列表
         addMusicList(lineUpList);
         while(true){
             System.out.println(\"请输入要执行的操作序号\");
             //接收键盘输入的功能选项序号
             Scanner scan=new Scanner(System.in);
             int command=scan.nextInt();
             //执行序号对应的功能
             switch (command){
                 case 0://添加歌曲到列表
                     addMusic(lineUpList);
                     break;
                 case 1://将歌曲置顶
                     setTop(lineUpList);
                     break;
                 case 2://将歌曲前移一位
                     setBefore(lineUpList);
                     break;
                 case 3://退出
                     exit();
                     break;
                 default:
                     System.out.println(\"---------------\");
                     System.out.println(\"功能选择错误,请输入正确的功能序号!\");
             }
             System.out.println(\"当前歌曲列表: \"+lineUpList);
         }
     }
     //初始时添加歌曲名称
     private static void addMusicList(LinkedList lineUpList){
         lineUpList.add(\"稻香\");
         lineUpList.add(\"夜曲\");
         lineUpList.add(\"夜上海\");
         lineUpList.add(\"好运来\");
         System.out.println(\"初始歌曲列表\"+lineUpList);
     }
     //执行添加歌曲
     private static void addMusic(LinkedList lineUpList){
         System.out.print(\"请输入要添加的歌曲名称: \");
         String musicName=new Scanner(System.in).nextLine();
         //添加歌曲到列表的最后
         lineUpList.addLast(musicName);
         System.out.println(\"已添加歌曲:\"+musicName);
     }
     //执行将歌曲置顶
     private static void setTop(LinkedList lineUpList){
         System.out.print(\"请输入要置顶的歌曲名称: \");
         String musicName=new Scanner(System.in).nextLine();
         //查找指定歌曲的位置
         int position=lineUpList.indexOf(musicName);
         //判断输入的歌曲是否存在
         if(position<0){
             System.out.println(\"当前列表没有输入的歌曲!\");
         }else{
             //移除指定的歌曲
             lineUpList.remove(musicName);
             //将指定的歌曲放到第一位
             lineUpList.addFirst(musicName);
         }
         System.out.println(\"已将歌曲\"+musicName+\"置顶\");
     }
     //执行将歌曲置前一位
     private static void setBefore(LinkedList lineUpList){
         System.out.print(\"请输入要置前的歌曲名称: \");
         String musicName=new Scanner(System.in).nextLine();
         //查找指定歌曲的位置
         int position=lineUpList.indexOf(musicName);
         if(position<0){
             System.out.println(\"当前列表中没有输入的歌曲!\");
             //判断歌曲是否已在第一位
         }else if (position==0){
             System.out.println(\"当前歌曲已在最底部\");
         }else{
             //移除指定的歌曲
             lineUpList.remove(musicName);
             //将指定的歌曲放到前一位
             lineUpList.add(position-1,musicName);
         }
         System.out.println(\"已将歌曲\"+musicName+\"置在第一位\");
     }
     //退出
     private static void exit(){
         System.out.println(\"-----------退出---------------\");
         System.out.println(\"你已退出系统\");
         System.exit(0);
     }
 }

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

package 集合类;
 import java.util.ArrayList;
 import java.util.LinkedList;
 import java.util.Scanner;
 public class KTVByArrayList {
     public static void main(String[] args) {
         System.out.println(\"-----欢迎来到点歌系统-------\");
         System.out.println(\"0.添加歌曲至列表\");
         System.out.println(\"1.将歌曲置顶\");
         System.out.println(\"2.将歌曲前移一位\");
         System.out.println(\"3.退出\");
         //创建歌曲列表
         ArrayList lineUpList = new ArrayList();
         //添加一部分歌曲至歌曲列表
         addMusicList(lineUpList);
         while(true){
             System.out.println(\"请输入要执行的操作序号\");
             Scanner scan=new Scanner(System.in);
             int command=scan.nextInt();
             switch (command){
                 case 0://添加歌曲
                     addMusic(lineUpList);
                     break;
                 case 1://将歌曲置顶
                     setTop(lineUpList);
                     break;
                 case 2://将歌曲前移一位
                     setBefore(lineUpList);
                     break;
                 case 3://退出
                     exit();
                     break;
                 default:
                     System.out.println(\"---------------\");
                     System.out.println(\"功能选择错误,请输入正确的功能序号!\");
             }
             System.out.println(\"当前歌曲列表: \"+lineUpList);
         }
     }
     //添加歌曲名称
     private static void addMusicList(ArrayList lineUpList){
         lineUpList.add(\"稻香\");
         lineUpList.add(\"夜曲\");
         lineUpList.add(\"夜上海\");
         lineUpList.add(\"好运来\");
         System.out.println(\"初始歌曲列表\"+lineUpList);
     }
     //执行添加歌曲
     private static void addMusic(ArrayList lineUpList){
         System.out.print(\"请输入要添加的歌曲名称: \");
         String musicName=new Scanner(System.in).nextLine();
         lineUpList.add(musicName);//添加歌曲到列表最后
         System.out.println(\"已添加歌曲:\"+musicName);
     }
     //执行将歌曲置顶
     private static void setTop(ArrayList lineUpList){
         System.out.print(\"请输入要置顶的歌曲名称: \");
         String musicName=new Scanner(System.in).nextLine();
         //查找指定歌曲位置
         int position=lineUpList.indexOf(musicName);
         //判断歌曲是否存在
         if(position<0){
             System.out.println(\"当前列表没有输入的歌曲!\");
         }else{
             //移除指定歌曲
             lineUpList.remove(musicName);
             //将指定歌曲放到第一位
             lineUpList.add(0,musicName);
         }
         System.out.println(\"已将歌曲\"+musicName+\"置顶\");
     }
     //执行将歌曲前置一位
     private static void setBefore(ArrayList lineUpList){
         System.out.print(\"请输入要置前的歌曲名称: \");
         String musicName=new Scanner(System.in).nextLine();
         int position=lineUpList.indexOf(musicName);
         if(position<0){
             System.out.println(\"当前列表中没有输入的歌曲!\");
         }else if (position==0){
             System.out.println(\"当前歌曲已在最底部\");
 ​
         }else{
             lineUpList.remove(musicName);
             lineUpList.add(position-1,musicName);
         }
         System.out.println(\"已将歌曲\"+musicName+\"置在第一位\");
     }
     private static void exit(){
         System.out.println(\"-----------退出---------------\");
         System.out.println(\"你已退出系统\");
         System.exit(0);
     }
 }

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

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

 

\0\0\0\0\0\0\0\0\0\0\0\0

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号