java学习:模拟KTV点歌系统
【目标】
- 学会分析“模拟KTV点歌系统”程序设计的实现思路。
- 根据思路独立完成“模拟KTV点歌系统”程序设计的源代码编写、编译及运行。
- 掌握ArrayList集合和LinkedList集合中方法的使用。
【思路】
- 为了指引用户操作,首先要将各个指令所表示的含义打印到控制台。
- 程序中需要创建一个集合作为歌曲列表,并向其添加一部分歌曲。
- 由于控制台需要实时等待用户输入命令,所以可以使用while(true)来使程序一直处于等待用户输入指令的状态。
- 可以通过Scanner类的nextInt()方法来接受控制台的信息。
- 可以使用switch语句,根据控制台传入的指令,判断应该执行的操作。
- 通过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点歌系统相关推荐
- Java实现模拟KTV点歌系统
模拟KTV点歌系统 分别使用LinkedList和ArrayList集合,实现编写一个模拟KTV点歌系统的程序 KTVByArrayList.java import java.util.ArrayLi ...
- Java 使用LinkedList模拟KTV点歌系统,首先先添加若干歌曲,如果歌曲列表中已有该歌曲,则不加入,否则追加。`然后选择列表中的其中一首置顶,最后选择列表中一首歌曲前置一位。
使用LinkedList模拟KTV点歌系统 该系统的任务是执行3个操作:首先先添加若干歌曲,如果歌曲列表中已有该歌曲,则不加入,否则追加.`然后选择列表中的其中一首置顶,最后选择列表中一首歌曲前置一位 ...
- java点歌系统代码_ktv 一个用java写的ktv点歌系统,用ACCESS数据库 Develop 238万源代码下载- www.pudn.com...
文件名称: ktv下载 收藏√ [ 5 4 3 2 1 ] 开发工具: Java 文件大小: 25661 KB 上传时间: 2014-04-10 下载次数: 1 提 供 者: 成俊杰 详细说 ...
- java模拟KTV点歌系统
上面的案例启示是对集合类的一个巩固,代码如下: package cn.csdn.ktv;import java.util.LinkedList; import java.util.Scanner;pu ...
- 基于Java窗体的KTV点歌系统在线点歌系统源码Java课程设计
- KTV点歌系统(java)
用LinkedList集合实现编写一个模拟KTV点歌系统的程序.在程序中,指令0代表添加歌曲,指令1代表将所选歌曲置顶,指令2代表将所选哥曲提前一位,指令3代表退出该系统.要求根据用户输入的指令和歌曲 ...
- Java Swing Mysql实现的Ktv点歌系统项目源码附带视频运行教
Java swing实现的一款ktv点歌系统, 数据库采用的是mysql,主要有管理员管理房间.歌曲信息功能,登录房间点歌.切歌等功能,设计采用的是mvc的模式,层次结构非常清晰,很适合Java初学者 ...
- java毕业设计KTV点歌系统mybatis+源码+调试部署+系统+数据库+lw
java毕业设计KTV点歌系统mybatis+源码+调试部署+系统+数据库+lw java毕业设计KTV点歌系统mybatis+源码+调试部署+系统+数据库+lw 本源码技术栈: 项目架构:B/S架构 ...
- java swing(GUI) MySQL实现的KTV点歌系统源码附带视频指导教程
大家好,今天给大家演示一下由Java swing实现的一款ktv点歌系统,数据库采用的是mysql,主要有管理员管理房间.歌曲信息功能,登录房间点歌.切歌等功能,设计采用的是mvc的模式,层次结构非常 ...
最新文章
- netty-客户端.group()方法 源码分析.md
- distinct aggregation
- 【noiOJ】P1996
- toolbar.netcraft.com查询域名等信息
- unity3d v5.1.1 ugui 带垂直滚动条的文本框
- Java FlatMapFunction in Spark: error: is not abstract and does not override abstract method解决方案
- python语法学习_python语法学习笔记
- 【深度优先搜索】计蒜客:中国象棋
- [译]ASP.NET 5 Configuration
- FFmpeg学习(9)—— 调整播放速度
- Winform控件开发(4)——Textbox(史上最全)
- 程序员健身了6个月,瘦了 30 斤,怎么做到的?
- Android 点击键盘外 非输入框 关闭软键盘
- Openjudge:数字统计
- 数组元素两两组合 php,js多个数组元素两两组合三三组合
- 如何用laragon框架运行php文件
- Frida:一款可以绕过越狱检测的工具
- javascript 代码中的use strict是什么意思
- 基于Android新能源电动汽车充电服务导航
- has been blocked by CORS policy: Response to preflight request doesn‘t pass access control check
热门文章
- 入门-EdgeBoard赛事专用卡 2023年智能车竞赛完全模型组赛事专用卡
- 联发科的10核Helio X20处理器
- Invalid bound statement (not found): shopping_whith_payment.pay.dataobject.PayInfoMapper.insertSelec
- 卷积神经网络权重,特征图计算
- NYOJ - 找点【贪心】
- Luat实现uart串口通信
- 我发布在Steam的两款游戏
- XML文件处理——XML文件简介
- C语言字符意思 char,c语言中char* 代表什么
- 使用免费小图标(趣味)