目录

模拟KTV点歌系统

任务描述

运行结果

任务目标

实现思路

实现代码


模拟KTV点歌系统

任务描述

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

运行结果

任务目标

  • 学会分析"模拟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模拟KTV点歌系统】相关推荐

  1. java模拟KTV点歌系统

    上面的案例启示是对集合类的一个巩固,代码如下: package cn.csdn.ktv;import java.util.LinkedList; import java.util.Scanner;pu ...

  2. java学习:模拟KTV点歌系统

    [目标] 学会分析"模拟KTV点歌系统"程序设计的实现思路. 根据思路独立完成"模拟KTV点歌系统"程序设计的源代码编写.编译及运行. 掌握ArrayList集 ...

  3. Java 使用LinkedList模拟KTV点歌系统,首先先添加若干歌曲,如果歌曲列表中已有该歌曲,则不加入,否则追加。`然后选择列表中的其中一首置顶,最后选择列表中一首歌曲前置一位。

    使用LinkedList模拟KTV点歌系统 该系统的任务是执行3个操作:首先先添加若干歌曲,如果歌曲列表中已有该歌曲,则不加入,否则追加.`然后选择列表中的其中一首置顶,最后选择列表中一首歌曲前置一位 ...

  4. Java实现模拟KTV点歌系统

    模拟KTV点歌系统 分别使用LinkedList和ArrayList集合,实现编写一个模拟KTV点歌系统的程序 KTVByArrayList.java import java.util.ArrayLi ...

  5. java毕业设计KTV点歌系统mybatis+源码+调试部署+系统+数据库+lw

    java毕业设计KTV点歌系统mybatis+源码+调试部署+系统+数据库+lw java毕业设计KTV点歌系统mybatis+源码+调试部署+系统+数据库+lw 本源码技术栈: 项目架构:B/S架构 ...

  6. 基于JAVA的KTV点歌系统,管理系统。

    开发环境,语言,工具 本系统的采用的开发语言是JAVA,主要使用到的框架是Swing框架,数据库使用的是Mysql5.7.开发工具使用的是Eclipse 主要功能与身份 身份:管理员,客户 客户主要功 ...

  7. java毕业设计KTV点歌系统(附源码、数据库)

    项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  8. KTV点歌系统(java)

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

  9. Java Swing Mysql实现的Ktv点歌系统项目源码附带视频运行教

    Java swing实现的一款ktv点歌系统, 数据库采用的是mysql,主要有管理员管理房间.歌曲信息功能,登录房间点歌.切歌等功能,设计采用的是mvc的模式,层次结构非常清晰,很适合Java初学者 ...

  10. java点歌系统代码_ktv 一个用java写的ktv点歌系统,用ACCESS数据库 Develop 238万源代码下载- www.pudn.com...

    文件名称: ktv下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 25661 KB 上传时间: 2014-04-10 下载次数: 1 提 供 者: 成俊杰 详细说 ...

最新文章

  1. GitHub年度报告:Python首次击败Java,中国成第二大开源贡献国
  2. svn错误:Two top-level reports with no target
  3. 【DND图形库】二、创建控制台窗口和游戏循环
  4. 【算法】N Queens Problem
  5. java 正则匹配 sql星号,正则表达式匹配星号和换行符之间的字符串
  6. 山东2021高考成绩查询时间二本,山东二本录取结果什么时候出来,2021年高考山东二本录取结果查询时间...
  7. ora-12154问题处理
  8. 电气计算机基础知识,电气基础知识
  9. PhpStorm中如何使用Xdebug工具,入门级操作方法
  10. C语言程序设计(第2版)课后答案
  11. Lingo 的基本使用入门
  12. 相册制作软件--4月精选婚纱相册模板{H1.爱的天空}样片
  13. BUUCTF---死亡之Ping详解
  14. 线性定常系统的离散化
  15. iOS10 适配汇总
  16. Numpy中outer的应用
  17. Redis 设计与实现 5:压缩列表 ziplist
  18. CityMaker研修之路 02 伟景行(CityMaker)的倾斜之路
  19. 第二题:编写程序,将华氏度转换为摄氏度
  20. 《数字图像处理》题库5:计算题 ②

热门文章

  1. python 操作excel 表格
  2. Autojs之QQ 群发消息(是QQ 群发,不是QQ群 发)
  3. .NET 开发从入门到精通
  4. HTTPS 加密、证书、签名与握手
  5. YTU oj 3272: 公民身份号码
  6. 淘宝数据魔方技术架构解析
  7. 英文网站排名优化 谷歌SEO优化技巧方法
  8. A。资源库和运行时表结构(5)---JBPM4.4数据库表解释
  9. 《OpenGL ES 3.x游戏开发(下卷)》一2.3 风吹椰林场景的开发
  10. 计算机存储密码的方式,WinRAR常用的密码存储起来的方法