【目标】

  1. 学会分析“模拟KTV点歌系统”程序设计的实现思路。
  2. 根据思路独立完成“模拟KTV点歌系统”程序设计的源代码编写、编译及运行。
  3. 掌握ArrayList集合和LinkedList集合中方法的使用。

【思路】

  1. 为了指引用户操作,首先要将各个指令所表示的含义打印到控制台。
  2. 程序中需要创建一个集合作为歌曲列表,并向其添加一部分歌曲。
  3. 由于控制台需要实时等待用户输入命令,所以可以使用while(true)来使程序一直处于等待用户输入指令的状态。
  4. 可以通过Scanner类的nextInt()方法来接受控制台的信息。
  5. 可以使用switch语句,根据控制台传入的指令,判断应该执行的操作。
  6. 通过LinkedList集合或ArrayList集合定义的方法操作歌曲列表。

使用LinkedList集合模拟点歌系统的实现代码。

文件KTVByLinkedList.java

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.print("请输入要执行的操作序号:");

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("功能选择有误,请输入正确的功能序号!");

break;

}

System.out.println("当前歌曲列表:" + lineUpList);

}

}

// 初始时添加歌曲名称

private static void addMusicList(LinkedList lineUpList) {

lineUpList.add("稻香");

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);

}

}

在文件KTVByLinkedList.java中,第6-10行代码用于提示用户输入信息的格式。

第11行代码创建了歌曲列表,然后执行addMusicList()方法,即第40~47行代码,进行了歌曲初始化,添加了一部分歌曲至列表,初始化列表结果,进入while循环。

其中,第14~16行提示并接收用户发出的命令,之后通过switch判断接收到的命令,根据LinkedList集合中的方法对歌曲列表进行操作。

java学习:模拟KTV点歌系统相关推荐

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

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

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

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

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

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

  4. java模拟KTV点歌系统

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

  5. 基于Java窗体的KTV点歌系统在线点歌系统源码Java课程设计

  6. KTV点歌系统(java)

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

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

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

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

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

  9. java swing(GUI) MySQL实现的KTV点歌系统源码附带视频指导教程

    大家好,今天给大家演示一下由Java swing实现的一款ktv点歌系统,数据库采用的是mysql,主要有管理员管理房间.歌曲信息功能,登录房间点歌.切歌等功能,设计采用的是mvc的模式,层次结构非常 ...

最新文章

  1. netty-客户端.group()方法 源码分析.md
  2. distinct aggregation
  3. 【noiOJ】P1996
  4. toolbar.netcraft.com查询域名等信息
  5. unity3d v5.1.1 ugui 带垂直滚动条的文本框
  6. Java FlatMapFunction in Spark: error: is not abstract and does not override abstract method解决方案
  7. python语法学习_python语法学习笔记
  8. 【深度优先搜索】计蒜客:中国象棋
  9. [译]ASP.NET 5 Configuration
  10. FFmpeg学习(9)—— 调整播放速度
  11. Winform控件开发(4)——Textbox(史上最全)
  12. 程序员健身了6个月,瘦了 30 斤,怎么做到的?
  13. Android 点击键盘外 非输入框 关闭软键盘
  14. Openjudge:数字统计
  15. 数组元素两两组合 php,js多个数组元素两两组合三三组合
  16. 如何用laragon框架运行php文件
  17. Frida:一款可以绕过越狱检测的工具
  18. javascript 代码中的use strict是什么意思
  19. 基于Android新能源电动汽车充电服务导航
  20. has been blocked by CORS policy: Response to preflight request doesn‘t pass access control check

热门文章

  1. 入门-EdgeBoard赛事专用卡 2023年智能车竞赛完全模型组赛事专用卡
  2. 联发科的10核Helio X20处理器
  3. Invalid bound statement (not found): shopping_whith_payment.pay.dataobject.PayInfoMapper.insertSelec
  4. 卷积神经网络权重,特征图计算
  5. NYOJ - 找点【贪心】
  6. Luat实现uart串口通信
  7. 我发布在Steam的两款游戏
  8. XML文件处理——XML文件简介
  9. C语言字符意思 char,c语言中char* 代表什么
  10. 使用免费小图标(趣味)