java小练习

为某音像店开发一个迷你DVD管理器,实现DVD碟片的管理,
包括如下功能:新增DVD、查看DVD、删除DVD、借出DVD、归还DVD。(后台使用ArrayList来存放DVD对象。)
设计:
1) DVD类(属性:id ,name ,lendCount ,lendDate ,status)
(默认每张DVD都是唯一的) lendCount字段每借一次加1
2) DVDDB类(提供一个动态数组来保存多张DVD)
3) DVDManager类(提供操纵功能),
添加DVD、查看DVD、删除DVD、借出DVD、归还DVD、DVD排行榜(按借出次数降序排序),退出系统

————————————————————————————————
数据结构:
Dao
DVDDB 提供一个动态数组来保存多张DVD ArrayList<DVD对象>
Entity
Dvd (id ,name ,lendCount ,lendDate ,status)
Service
DVDManager类(提供操纵功能),
添加DVD、查看DVD、删除DVD、借出DVD、归还DVD、DVD排行榜(按借出次数降序排序),退出系统

DVD

package com.tsxy.DVD.Entity;

public class DVD {
    private int id = temp;//DVD的id
    private static int temp = 1;
    private String name;//DVD名字
    private int lendCount;//每借一次+1
    private String lendDate;//借书日期
    private boolean status = true;//状态,

    {
        temp++;
    }

    public DVD(int id, String name, boolean status, String lendDate) {
        this.id = id;
        this.name = name;
        this.lendDate = lendDate;
        this.status = status;
    }

    public DVD(int id, String name, int lendCount, boolean status, String lendDate) {
        this.id = id;
        this.name = name;
        this.lendCount = lendCount;
        this.lendDate = lendDate;
        this.status = status;
    }

    public DVD(int id, String name, boolean status) {
        this.id = id;
        this.name = name;
        this.status = status;
    }

    public DVD(String name) {
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getLendCount() {
        return lendCount;
    }

    public void setLendCount(int lendCount) {
        this.lendCount = lendCount;
    }

    public String getLendDate() {
        return lendDate;
    }

    public void setLendDate(String lendDate) {
        this.lendDate = lendDate;
    }

    public boolean isStatus() {
        return status;
    }

    public void setStatus(boolean status) {
        this.status = status;
    }

    public DVD() {
    }
}

DVDDB

package com.tsxy.DVD.Dao;

import com.tsxy.DVD.Entity.DVD;

import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;


public class DVDDB {
    private static ArrayList<DVD> dvds = new ArrayList<>();

    static {
        dvds.add(new DVD(1, "罗马假日", 1, false, "2010-7-1"));
        dvds.add(new DVD(2, "风声鹤唳", true));
        dvds.add(new DVD(3, "浪漫满屋", true));
    }


    public String add(String name) {

        String s = "";

        for (int i = 0; i < dvds.size(); i++) {
            if (dvds.get(i).getName().equals(name)) {
                s = "已经存在该DVD!";
                break;
            } else if (i == dvds.size() - 1) {
                dvds.add(new DVD(name));
                s = "添加成功!";
                break;
            }
        }
        return s;
    }

    public StringBuilder view(int i) {
        StringBuilder s = new StringBuilder();
        ArrayList<DVD> sortDvds;
        if (i == 1) {
            for (DVD dvd : dvds) {
                s.append(dvd.getId() + "\t\t" + (dvd.isStatus() ? "可借 " : "已借出") + "\t\t" + "《" + dvd.getName() + "》" + "\t\t" + (dvd.isStatus() ? "        " : dvd.getLendDate()) + "\t\t" + dvd.getLendCount() + "\n");
            }
        } else {
            sortDvds = dvds;
            Collections.sort(dvds, new Comparator<DVD>() {
                @Override
                public int compare(DVD o1, DVD o2) {
                    return o2.getLendCount() - o1.getLendCount();
                }
            });
            for (DVD dvd : sortDvds) {
                s.append(dvd.getId() + "\t\t" + (dvd.isStatus() ? "可借 " : "已借出") + "\t\t" + "《" + dvd.getName() + "》" + "\t\t" + (dvd.isStatus() ? "        " : dvd.getLendDate()) + "\t\t" + dvd.getLendCount() + "\n");
            }
        }
        return s;
    }

    public String del(String name) {
        String s = "没有找到这本书!";
        for (int i = 0; i < dvds.size(); i++) {
            if (dvds.get(i).getName().equals(name)) {
                if (dvds.get(i).isStatus() == true) {
                    dvds.remove(dvds.remove(i));
                    s = "删除成功!";
                } else {
                    s = "该书还未归还!";
                }
            }
        }
        return s;
    }

    public String lend(String name) {
        String s = "没有这本书!";
        for (DVD dvd : dvds) {
            if (dvd.getName().equals(name)) {
                if (dvd.isStatus() == true) {
                    //借出时间
                    String date = LocalDate.now().toString();
                    dvd.setStatus(false);
                    dvd.setLendDate(date);
                    dvd.setLendCount(dvd.getLendCount() + 1);
                    s = "借阅成功,祝你生活愉快!";
                } else {
                    s = "该书已被借出!";
                }
            }
        }
        return s;
    }

    public void revert(String name) {
        for (DVD dvd : dvds) {
            if (dvd.getName().equals(name)) {
                dvd.setStatus(true);
                dvd.setLendDate("");
            }
        }
    }
}

DVDManager

package com.tsxy.DVD.Service;

import com.tsxy.DVD.Dao.DVDDB;

import java.util.Scanner;

public class DVDManager {
    private DVDDB dvddb = new DVDDB();
    private String judge;
    private Scanner scanner = new Scanner(System.in);
    public void main() {
        while (true) {
            menu();
            System.out.print("请选择:");
            int i = scanner.nextInt();
            switch (i) {
                case 1:
                    add();
                    break;
                case 2:
                    view();
                    break;
                case 3:
                    del();
                    break;
                case 4:
                    lend();
                    break;
                case 5:
                    revert();
                    break;
                case 6:
                    return;
            }
        }
    }

    private void revert() {
        do {
            System.out.println("——————>归还DVD");
            System.out.println("请输入你要归还的DVD名:");
            String name = scanner.next();
            dvddb.revert(name);
            System.out.println("归还成功!");
            System.out.println("是否继续归还:(Y/N)");
            judge = scanner.next();
        } while (judge.equals("Y"));
    }

    private void lend() {
        do {
            System.out.println("——————>借出DVD");
            System.out.println("请输入你要借的DVD名:");
            String name = scanner.next();
            System.out.println(dvddb.lend(name));
            System.out.println("是否继续借阅:(Y/N)");
            judge = scanner.next();
        } while (judge.equals("Y"));
    }

    private void del() {
        System.out.println("——————>删除DVD");
        System.out.println("请输入DVD名称:");
        String name = scanner.next();
        System.out.println(dvddb.del(name));
    }

    private void view() {
        System.out.println("——————>查看DVD");
        System.out.println("1--按序号查看\n2--按排行榜查看");
        int i = scanner.nextInt();
        System.out.println("序号\t\t状态\t\t\t\t名称\t\t\t\t借出日期\t\t\t借阅次数");
        System.out.println(dvddb.view(i));
    }

    private void add() {
        do {
            System.out.println("——————>添加DVD");
            System.out.println("请输入DVD名称:");
            String name = scanner.next();
            System.out.println(dvddb.add(name));
            System.out.println("是否继续添加:(Y/N)");
            judge = scanner.next();
        } while (judge.equals("Y"));
    }

    public void menu() {
        System.out.println("欢迎使用迷你DVD管理器");
        System.out.println("___________________");
        System.out.println("1、新增DVD");
        System.out.println("2、查看DVD");
        System.out.println("3、删除DVD");
        System.out.println("4、借出DVD");
        System.out.println("5、归还DVD");
        System.out.println("6、退   出");
        System.out.println("___________________");
    }
}

DVDDemo

package com.tsxy.DVD.View;

import com.tsxy.DVD.Service.DVDManager;

public class DVD_Demo {
    public static void main(String[] args) {
        DVDManager manager = new DVDManager();
        manager.main();
    }
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

两年半的JAVA练习生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值