Java基础案例教程 第六章集合类———【任务6-1】一、运行结果:模拟KTV点歌系统(LinkedList,Scanner)

 

一、运行结果:

 

二、实现思路:

1、存放歌曲列表增删操作比较多,适合用LinkedList 集合

2、添加歌曲方法 addMusicList (LinkedList  list)

3、不知道会输入多少次 操作序号,用 while(true) 死循环

4、添加歌曲的方法 addMusic(String musicName)

5、判断某元素在集合中是否存在 indexOf()

6、键盘输入

Scanner scanner = new Scanner(System.in);
int chooseNum = scanner.nextInt();



String musicName = new Scanner(System.in).nextLine();

 

 

三、实现代码:

package cn.itcast.task01;

import java.util.LinkedList;
import java.util.Scanner;

/**
 * @author wangyue
 * @version 1.0
 * @date 2019/6/25 10:05
 * @describe: 使用LinkedList  实现KTV点歌系统
 */
public class KTVByLinkedList {
    public static void main(String[] args) {
        welcomeUser();  //打印开头的简介
        LinkedList list = new LinkedList();//创建用来存储歌曲列表的集合
        addMusicList(list);

        while (true) {
            System.out.println();
            System.out.print("请输入要执行的操作:");
            Scanner scanner = new Scanner(System.in);
            int chooseNum = scanner.nextInt();
            switch (chooseNum) {
                case 0://添加歌曲至列表
                    addMusic(list);
                    break;
                case 1://将歌曲置顶
                    setTop(list);
                    break;
                case 2://将歌曲前移一位
                    setBefore(list);
                    break;
                case 3://退出
                    exit();
                    break;
                default://不合法的输入
                    System.out.println("您的输入不合法,请按照说明输入!");
                    break;
            }
        }
    }

    //开始的欢迎语句
    private static void welcomeUser() {
        System.out.println("-------------欢迎来到点歌系统-------------");
        System.out.println("0.添加歌曲到列表");
        System.out.println("1.将歌曲置顶");
        System.out.println("2.将歌曲前移一位");
        System.out.println("3.推出");

    }

    //初始化歌曲列表
    private static void addMusicList(LinkedList list) {
        list.add("C++");
        list.add("JAVA");
        list.add("Go");
        System.out.println("初始化歌曲列表" + list);

    }


    //添加歌曲至列表
    private static void addMusic(LinkedList list) {
        System.out.print("请输入要添加的歌曲:");
        String musicName = new Scanner(System.in).nextLine();
        list.add(musicName);
        System.out.println("已添加歌曲:" + musicName);
        System.out.println("当前歌曲列表" + list);

    }

    //将歌曲置顶
    private static void setTop(LinkedList list) {
        System.out.print("请输入置顶歌曲:");
        String musicName = new Scanner(System.in).nextLine();
        int position = list.indexOf(musicName);
        if (position < 0) {
            System.out.println("不存在该歌曲,请重新输入");
        } else {
            list.remove(musicName);
            list.addFirst(musicName);
            System.out.println("已将歌曲《" + musicName + "》置顶");
            System.out.println("当前歌曲列表:" + list);
        }

    }


    //将歌曲前移一位
    private static void setBefore(LinkedList list) {
        System.out.print("请输入前移歌曲:");
        String musicName = new Scanner(System.in).nextLine();
        int position = list.indexOf(musicName);
        if (position < 0) {
            System.out.println("不存在该歌曲,请重新输入");
        } else if (position == 0) {
            System.out.println("已位于首位,不需要前移");
        } else {
            list.remove(musicName);
            list.add(position - 1, musicName);
            System.out.println("已将歌曲《" + musicName + "》前移一位");
            System.out.println("当前歌曲列表:" + list);
        }
    }


    //退出
    private static void exit() {
        System.out.println("--------------- 退出 -----------------");
        System.out.println("您已退出该系统");
        System.exit(0);//结束正在运行的java程序
    }

}

 

  • 4
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值