java实战项目音乐管理系统
发布日期:2021-05-14 13:25:00 浏览次数:16 分类:精选文章

本文共 7325 字,大约阅读时间需要 24 分钟。

概述

本系统可用来练习面向对象思想,java语言的基础,包括java数组等,eclipse中运行的结果如下图

系统文件结构如下

代码如下

Music类代码如下:

package com.lph.musicmanager.model;/*歌曲类 *属性: *    歌名 歌手 歌曲时长 *方法: *    toString打印信息方法 *    以及set get访问方法 *    方便实例化的构造方法 *     */public class Music {    //歌名    private String name;    //歌手    private String musicPlayer;    //歌长    private double musicTime;    //标记歌曲的状态变量(由于数组定长 ,打标记的方法实现删除false默认正常true删除)    private boolean isDelete;    public Music() {        this("","",0);    }    //带参数的构造方法    public Music(String name,String player,double time) {        this.name = name;        this.musicPlayer = player;        this.musicTime = time;    }    //set get方法    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getMusicPlayer() {        return musicPlayer;    }    public void setMusicPlayer(String musicPlayer) {        this.musicPlayer = musicPlayer;    }    public double getMusicTime() {        return musicTime;    }    public void setMusicTime(double musicTime) {        this.musicTime = musicTime;    }        public boolean isDelete() {        return isDelete;    }    public void setDelete(boolean isDelete) {        this.isDelete = isDelete;    }    //打印方法(歌名 歌手 歌长)    @Override    public String toString() {        return "Music [name=" + name + ", musicPlayer=" + musicPlayer + ", musicTime=" + musicTime + "]";    }    }

MusiList如下

package com.lph.musicmanager.model;import java.util.Scanner;/*歌单类 *属性:歌曲数组 *功能:查看歌单 查询歌曲 删除歌曲 添加歌曲 */public class MusicList {    // 定义歌曲数组    Music[] musicsArray;    public MusicList() {        // 实例化歌曲数组        musicsArray = new Music[5];        // 调用初始化方法        initMusicArray();    }    // 私有的方法初始化歌单    private void initMusicArray() {        // 构造方法实例化一个对象,然后添加到数组        Music music1 = new Music("平凡的一天", "毛不易", 240.0);        musicsArray[0] = music1;        Music music2 = new Music("北京欢迎你", "群星", 345.0);        musicsArray[1] = music2;    }    // 歌单打印    public void musicPrint() {        // 遍历数组        for (int i = 0; i < musicsArray.length; i++) {            Music music = musicsArray[i];            if (music != null) {                System.out.println(music);            }        }    }    // 删除歌曲    public void delete(String name) {        // 遍历数组        for (int i = 0; i < musicsArray.length; i++) {            // 当前位置对象            Music music = musicsArray[i];            // 判断当前歌曲对象不为空并且歌名等于输入的歌名            if (music != null && music.getName().equals(name)) {                // 将状态设置为true                music.setDelete(true);                // 清空当前位置的                musicsArray[i] = null;                System.out.println("歌曲:" + music.getName() + "删除成功");                return;            }        }        System.out.println("不存在此歌曲信息");    }    // 添加歌曲    public void musicAdd() {        System.out.println("请输入歌曲名称");        String musicName = new Scanner(System.in).next();        System.out.println("请输入演唱者");        String musicPlayer = new Scanner(System.in).next();        System.out.println("请输入歌曲时长");        double musicPayer = new Scanner(System.in).nextDouble();        // 封装对象        Music music = new Music(musicName, musicPlayer, musicPayer);        // 调用对象添加方法        boolean b = add(music);        // 判断b        if (b) {            System.out.println("添加成功");        } else {            System.out.println("添加失败");        }    }    // 添加歌曲对象    public boolean add(Music music) {        // 调用索引方法查看空索引        int index = searchEmptyIndex();        // 找到空索引        if (index != -1) {            musicsArray[index] = music;            return true;        }        return false;    }    // 搜索歌曲    public void searchMusic() {        System.out.println("输入要查寻的歌名");        String songName  = new Scanner(System.in).next();        // 遍历数组        for (int i = 0; i < musicsArray.length; i++) {            // 获得数组当前位置元素            Music music = musicsArray[i];            // 不为空并且歌曲名字想同就返回            if (music != null && music.getName().equals(songName)) {                //打印歌曲信息                System.out.println(music);                return;            }        }        System.out.println("歌曲搜索失败");    }    // 查询索引    private int searchEmptyIndex() {        for (int i = 0; i < musicsArray.length; i++) {            Music music = musicsArray[i];            // 当前位置为空,返回当前下标,用来把保存新的歌曲对象            if (music == null) {                return i;            }        }        return -1;    }}

MainFrame代码如下

package com.lph.musicmanager.view;import java.util.Scanner;import com.lph.musicmanager.model.MusicList;/*系统界面类的实现 *功能:启动该类,为用户提供五个选项,通过选择不同的选项进行相应的操作 *    1:查看歌单 *    2:添加歌去 *    3:搜索歌曲 *    4:删除歌曲 *    0:退出系统 */public class MainFrame {    //创建歌单对象    MusicList musicList;    //构造器    public MainFrame() {        musicList = new MusicList();        initFrame();    }    //初始化界面    public void initFrame() {        System.out.println("=================欢迎使用MUSIC系统=================");        System.out.println();        //while循环系统一直可以操作,知道输入0        while(true) {            System.out.print("1:查看歌单"+"  ");            System.out.print("2:添加歌曲"+"  ");            System.out.print("3:查询歌曲"+"  ");            System.out.print("4:删除歌曲"+"  ");            System.out.println("0:退出    ");                System.out.println();            System.out.println("请选择你要执行的操作");            //匿名类创建键盘输入对象 ,获取键盘输入            int input = new  Scanner(System.in).nextInt();            switch(input) {            case 1:                //调用查看歌单方法                System.out.println("*********************查看歌单*********************");                musicList.musicPrint();                System.out.println("================================================");                break;            case 2:                //调用添加歌曲方法                System.out.println("*********************添加歌曲*********************");                musicList.musicAdd();                System.out.println("================================================");                break;            case 3:                //调用查询歌曲方法                System.out.println("*********************查询歌曲*********************");                musicList.searchMusic();                System.out.println("================================================");                break;            case 4:                //调用删除歌曲方法                System.out.println("*********************删除歌曲*********************");                System.out.println("输入要删除的歌曲名称");                //匿名类和创建键盘输入对象                String name = new Scanner(System.in).next();                musicList.delete(name);                System.out.println("================================================");                break;            case 0:                System.out.println("******************欢迎下次使用,再见!****************");                return;            default :                System.out.println("!!!!!!!输入序号有误,重新选择!!!!!!");                break;            }        }    }}

Test类如下

package com.lph.musicmanager.test;import com.lph.musicmanager.view.MainFrame;/*测试系统类 *功能:实例化系统界面对象即可 */public class Test {    public static void main(String[] args) {        MainFrame mainFrame = new MainFrame();    }}

目前系统存储数据是用数组实现的,但是数组有一个特点是定长的。对于这个问题了,通过在歌曲对象里面设置标记变量的思想,如果标记变量为false就记当前歌曲没删除,如果等于true就删除,这个也许是系统中最难的一点,也就是最难搞定的一点啦

更多java实战项目关注公众号  java一号

上一篇:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,并存到磁盘中
下一篇:java超市管理系统

发表评论

最新留言

感谢大佬
[***.8.128.20]2025年04月30日 22时55分20秒