模拟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);
        }
    }
}
相关推荐
code2cat6 分钟前
【随笔】RAG语义缓存:问题很相似,答案就能直接复用吗
java·缓存·知识库·rag
Rain的Java大神之路28 分钟前
面了 50 个候选人,90% 都挂在 LeetCode 3 无重复字符的最长子串:滑动窗口的 5 个致命坑
java·后端·leetcode
西凉的悲伤30 分钟前
Jsoup 库 HTML 解析详解
java·前端·html·jsoup
qq_4017004135 分钟前
Qt Modbus 源码剖析:从 QModbusClient 到工业级通信框架
开发语言·qt·系统架构
星夜离尘5637 分钟前
MATLAB 角度解缠遇到丢样:先分段,再说明圈数为什么不可恢复
开发语言·matlab
十碗饭吃不饱41 分钟前
Apache POI 踩坑:setFontFamily 二次设置字体不生效、样式残留问题深度解析
java·word·apache
我命由我123451 小时前
6-2.Python 异常处理 - 异常捕获(捕获指定异常、常见异常类型、异常信息)
java·运维·开发语言·python·http·https·java-ee
ZoeLandia1 小时前
React08:自定义 Hook
开发语言·前端·react.js·typescript
zaizai10071 小时前
STL深度剖析2
java·c++·算法
染指11101 小时前
157.Agent-LangGraph-工具(实现ReAct Agent模式)
开发语言·人工智能·python·langchain·agents