模拟KTV点歌系统的程序

欢迎来到点歌系统

0.添加歌曲

1.将歌曲置顶

2.将歌曲前移一位

3.退出

当前歌单为:【我是一个粉刷匠 卖报歌 拔萝卜 小兔子乖乖 小跳蛙】

请输入要执行的操作序号:

0

请输入要添加的歌曲名称:

快乐的一天

已添加歌曲:快乐的一天

当前歌单为:【我是一个粉剧匠 卖报歌 拔萝卜 小兔子乖乖 小跳蛙 快乐的一天】

请输入要执行的操作序号:

1

请输入要置顶的歌曲名称:

小跳蛙

当前歌单为:【小跳蛙 我是一个粉剧匠 卖报歌 拔萝卜 小兔子乖乖 快乐的一天】

请输入要执行的操作序号:

2

请输入要置前的歌曲名称:

快乐的一天

【小跳蛙 我是一个粉剧匠 卖报歌 拔萝卜 快乐的一天 小兔子乖乖】

请输入要执行的操作序号:

3

退出

java 复制代码
import java.util.Scanner;
import java.util.LinkedList;
public class Ktv {
    public Ktv(){}
    public static void menu(){
        System.out.println("欢迎来到点歌系统:");
        System.out.println("0.添加歌曲");
        System.out.println("1.将歌曲置顶");
        System.out.println("2.将歌曲前移一位");
        System.out.println("3.退出");
    }
    public static void addSong(LinkedList<String>list, Scanner sc) {
        System.out.println("请输入要添加的歌曲名称:");
        list.add(sc.next());
    }
    public static void setTop(LinkedList<String>list,Scanner sc){
        System.out.println("请输入要置顶的歌曲名称:");
        String name = sc.next();
        int index = list.indexOf(name);
        if(index==0){
            System.out.println("本来就是第一首!");
        }else if(index ==-1){
            System.out.println("该歌曲不存在!");
        }else{
            list.remove(index);
            list.addFirst(name);
        }
    }
    public static void setBefore(LinkedList<String>list,Scanner sc){
        System.out.println("请输入要前移的歌曲名称:");
        String name = sc.next();
        int index = list.indexOf(name);
        if(index==0){
            System.out.println("本来就是第一首!");
        }else if(index ==-1){
            System.out.println("该歌曲不存在!");
        }else{
            list.remove(index);
            list.add(index-1,name);
        }
    }
}

package Ahomework.Task01;
import java.util.LinkedList;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
    LinkedList <String> list = new LinkedList();
    list.add("我是一个粉刷匠");
    list.add("卖报歌");
    list.add("拔萝卜");
    list.add("小兔子乖乖");
    list.add("小跳蛙");
    System.out.println(list);
    Scanner sc = new Scanner(System.in);
    while(true){
        Ktv.menu();
        System.out.println("请输入要执行的操作序号");
        int choice = sc.nextInt();
        switch(choice){
            case 0:
                Ktv.addSong(list,sc);
                break;
            case 1:
                Ktv.setTop(list,sc);
                break;
            case 2:
                    Ktv.setBefore(list,sc);
                break;
            case 3:
                sc.close();
                System.exit(0);
            default:
                System.out.println("功能选择错误,请重新输入:");
        }
        System.out.print("当前歌单为:");
        System.out.println(list);
        }
    }
}
相关推荐
暮色妖娆丶3 小时前
不过是吃了几年互联网红利罢了,我高估了自己
java·后端·面试
NE_STOP4 小时前
MyBatis-参数处理与查询结果映射
java
狂奔小菜鸡4 小时前
Day40 | Java中的ReadWriteLock读写锁
java·后端·java ee
SimonKing5 小时前
JetBrains 用户狂喜!这个 AI 插件让 IDE 原地进化成「智能编码助手」
java·后端·程序员
狂奔小菜鸡6 小时前
Day39 | Java中更灵活的锁ReentrantLock
java·后端·java ee
NE_STOP18 小时前
MyBatis-配置文件解读及MyBatis为何不用编写Mapper接口的实现类
java
后端AI实验室1 天前
用AI写代码,我差点把漏洞发上线:血泪总结的10个教训
java·ai
程序员清风1 天前
小红书二面:Spring Boot的单例模式是如何实现的?
java·后端·面试
belhomme1 天前
(面试题)Redis实现 IP 维度滑动窗口限流实践
java·面试