Java-模拟KTV点歌(控制台程序)

简介: Java-模拟KTV点歌(控制台程序)

一:程序框架


在这里插入图片描述

①:添加歌曲流程图
在这里插入图片描述

②:歌曲置顶
在这里插入图片描述
③:歌曲前移
在这里插入图片描述
④:退出系统
在这里插入图片描述


二:程序代码


public class KTVByLinkedList {
    //创建用户存储歌曲列表的集合
    private static LinkedList<String> linkedList=new LinkedList<String>();
    //获取用户输入信息
    private static  int acceptnum;
            public static void main(String[] args) {
                //提示面板
                System.out.println("------------欢迎来到点歌系统--------------");
                testview();
                //添加一部分歌曲列表中
                   InintMusicList(linkedList);
                //获取用户输入符合要求的数字
                 acceptnum=getScannernum(0,3);
                if (acceptnum==-1) {
                    acceptnum=getScannernum(0,3);
                }
                //接受用户输入数字,并进行相应操作
                inpuuserInfo();
            }
            
            //系统核心部分,接受用户输入数字,并进行相应操作
            private static void inpuuserInfo() {
                // TODO Auto-generated method stub
                while (true) {
                    switch (acceptnum) {
                    case 0:
                        //添加歌曲
                        addMusic();
                        break;
                    case 1:
                        //将歌曲置顶
                        setTop();
                        break;
                    case 2:
                        //将歌曲前移一位
                       setBefore();
                        break;
                    case 3:
                        exit();
                         break;
                    default:
                        //返回错误提示信息,一般不会引发;
                        System.out.println("用户系统出现异常");
                        break;
                    }
                    System.out.println("------------------------");
                    testview();
                    //再次获取用户输入
                     acceptnum=getScannernum(0,3);
                         if (acceptnum==-1) {
                             acceptnum=getScannernum(0,3);
                         }
                }
            }
            
            //置顶歌曲
             private static void setTop() {
                // TODO Auto-generated method stub
                boolean signtop=true;
                int position;
                while(signtop){
                    System.out.println("当前歌曲信息:"+linkedList);
                    System.out.println("请输入,你想将那一首歌曲置顶");    
                    @SuppressWarnings("resource")
                    String input=new Scanner(System.in).nextLine();
                    position=linkedList.indexOf(input);
                    //判断当前歌曲是否存在
                    if (position==-1) {
                        System.out.println("当前歌曲不存在!");
                    }else{
                        //判断当前歌曲是否在首位
                        if (position==0) {
                            System.out.println("当前歌曲已置顶!");    
                        } else {
                            //移除当前歌曲
                            linkedList.remove(input);
                            //将歌曲置顶
                            linkedList.add(0,input);
                            System.out.println("已将歌曲置顶:"+linkedList);
                            System.out.println("你想继续置顶歌曲吗?");
                            System.out.println("0:是 1:不是");
                            if(getScannernum(0,1)==1)
                            {
                                 System.out.println("你已经返回主界面");
                                 signtop=false;
                                 break;
                            }
                        }
                    }
                    
                }
            }

            //前移歌曲
            private static void setBefore() {
                // TODO Auto-generated method stub
                boolean  signbefore=true;
                int position;
                while(signbefore){
                System.out.println("当前歌曲信息:"+linkedList);
                System.out.println("请输入,你想将那一首歌曲前移");    
                @SuppressWarnings("resource")
                String input=new Scanner(System.in).nextLine();
                position=linkedList.indexOf(input);
                if (position==-1) {
                //判断当前歌曲是否存在
                 System.out.println("当前歌曲不存在!");
                }else
                {
                    //判断当前歌曲是否在首位
                    if (position==0) {
                        System.out.println("当前歌曲已经置顶!");
                    }else {
                        //移除当前歌曲
                        linkedList.remove(input);
                        //将歌曲前移
                        linkedList.add(position-1,input);
                        System.out.println("已将歌曲前移:"+linkedList);
                        System.out.println("你想继续前移歌曲吗?");
                        System.out.println("0:是 1:不是");
                        if(getScannernum(0,1)==1)
                        {
                             System.out.println("你已经返回主界面");
                             signbefore=false;
                             break;
                        }
                    }
                }
                }
            }

            //添加歌曲
            private static void addMusic() {
                // TODO Auto-generated method stub
                System.out.println("当前歌曲信息:"+linkedList);
                String inputstr;
                boolean addsign=true;
                while (addsign) {
                     System.out.println("请输入歌曲名称:");
                       @SuppressWarnings("resource")
                    String input1=new Scanner(System.in).nextLine();
                        inputstr=input1;
                    //判断用户输入歌曲是否在当前歌曲中已经存在
                    if (linkedList.indexOf(inputstr)!=-1) {
                        //存在
                        System.out.println("当前歌曲已经存在!");
                        System.out.println("请重新输入歌曲名称:");
                        @SuppressWarnings("resource")
                        String input2=new Scanner(System.in).nextLine();
                        inputstr=input2;
                    }
                    linkedList.add(inputstr);
                    System.out.println("歌曲  ["+inputstr+"] 添加成功!");
                    System.out.println("当前歌曲信息:");
                    System.out.println(linkedList);
                    System.out.println("你是否继续添加歌曲");
                    System.out.println("0:是  1:不是");
                    if(getScannernum(0,1)==1)
                    {
                        addsign=false;
                    }
                }
                System.out.println("你已经返回主界面");
            }
            
            //提示面板
            private static void testview() {
                // TODO Auto-generated method stub
                //提示面板            
                System.out.println("0:添加歌曲至列表");
                System.out.println("1:将歌曲置顶");
                System.out.println("2:将歌曲前移一位");
                System.out.println("3:退出");
            }

            //初始时添加歌曲名称
            private static void InintMusicList(LinkedList<String> linkedList) {
                // TODO Auto-generated method stub
                linkedList.add("稻香");
                linkedList.add("夜曲");
                linkedList.add("夜的第七章");
                linkedList.add("听妈妈的话");
                linkedList.add("龙卷风");
                System.out.println("初始歌曲列表:"+linkedList);
            }
            
            //退出系统
            private static void exit() {
                // TODO Auto-generated method stub
                System.out.println("你是否要退出系统?");
                System.out.println("0:退出  1:不退出");
                if(getScannernum(0,1)==1)
                {
                     System.out.println("你已经返回主界面");
                }else{
                    System.out.println("你已经退出系统,拜拜!");
                    System.exit(0);    
                }
            }

            //获取用户输入指定数字
            private static int  getScannernum(int min,int max) {
                //获取用户输入信息
                System.out.println("请输入选项数字!");
                try{
                    @SuppressWarnings("resource")
                    int acceptnum=new Scanner(System.in).nextInt();
                    //判断用户输入情况,是否满足系统要求
                    while (!(acceptnum>=min&&acceptnum<=max)) {
                         System.out.println("请重新输入选项数字!");
                         acceptnum=new Scanner(System.in).nextInt();
                    }
                    return acceptnum;
                }catch(Exception exception)
                {
                    //用户没有按要求输入信息
                    System.out.println("请按要求输入信息");
                    //返回错误标识
                    return -1;
                }
            }
}

三:程序调试


①:添加歌曲效果
在这里插入图片描述
②:歌曲置顶
在这里插入图片描述
③:歌曲前移
在这里插入图片描述
④:退出
在这里插入图片描述


⑤:四个模块的相互切换


在这里插入图片描述
在这里插入图片描述


相关API
LinkedList 集合API

相关文章
|
1月前
|
Java 流计算
利用java8 的 CompletableFuture 优化 Flink 程序
本文探讨了Flink使用avatorscript脚本语言时遇到的性能瓶颈,并通过CompletableFuture优化代码,显著提升了Flink的QPS。文中详细介绍了avatorscript的使用方法,包括自定义函数、从Map中取值、使用Java工具类及AviatorScript函数等,帮助读者更好地理解和应用avatorscript。
利用java8 的 CompletableFuture 优化 Flink 程序
|
2月前
|
XML 存储 JSON
Java程序部署
Java程序部署
|
1月前
|
Java Maven 数据安全/隐私保护
如何实现Java打包程序的加密代码混淆,避免被反编译?
【10月更文挑战第15天】如何实现Java打包程序的加密代码混淆,避免被反编译?
45 2
|
1月前
|
安全 Java Linux
java程序设置开机自启
java程序设置开机自启
101 1
|
1月前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
38 1
|
1月前
|
Web App开发 Shell Linux
MacOS环境-手写操作系统-41-mem 第一个控制台程序
MacOS环境-手写操作系统-41-mem 第一个控制台程序
17 1
|
2月前
|
消息中间件 分布式计算 Java
Linux环境下 java程序提交spark任务到Yarn报错
Linux环境下 java程序提交spark任务到Yarn报错
43 5
|
2月前
|
Java 编译器 数据库连接
探索Java中的异常处理:提升程序的鲁棒性
【9月更文挑战第25天】在Java的世界里,异常是那些不请自来、令人头疼的“客人”。它们悄无声息地潜入我们的代码,一旦出现,便可能导致程序崩溃或行为异常。但是,如果能够妥善管理这些异常,我们就能将潜在的灾难转变为增强程序鲁棒性和用户体验的机会。本文将通过深入浅出的方式,带领读者理解Java异常处理的重要性,并提供实用的策略来优雅地处理这些意外情况。让我们一起学习如何在Java中捕捉、处理和预防异常,确保我们的程序即使在面对不可预见的错误时也能保持稳健运行。
|
1月前
|
Java Python
如何通过Java程序调用python脚本
如何通过Java程序调用python脚本
30 0
|
2月前
|
监控 Java 数据库
Java程序如何进行不停机更新?
Java程序如何进行不停机更新?
100 1

热门文章

最新文章

下一篇
无影云桌面