一:程序框架
①:添加歌曲流程图
②:歌曲置顶
③:歌曲前移
④:退出系统
二:程序代码
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