小白学java日记——第一个小项目

分析:

将DVD看成一个对象

需要用到:

数组

面对对象

import java.util.Calendar;
import java.util.Scanner;

public class DVDshop {
    public static void main(String[] args) {
        DVDStore dvdStore = new DVDStore();
        dvdStore.store();
    }
}

class DVD {
    private String name;
    private int state;
    private int count;
    private int date;

    public String getName() {
        return name;
    }

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

    public int getState() {
        return state;
    }

    public void setState(int state) {
        this.state = state;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    public int getDate() {
        return date;
    }

    public void setDate(int date) {
        this.date = date;
    }

    public DVD(String name, int state, int count, int date) {
        this.name = name;
        this.state = state;
        this.count = count;
        this.date = date;
    }
}

class DVDStore {
    private final String[] select = {"新增DVD", "查看DVD", "删除DVD", "借出 DVD", "归还DVD", "退出DVD"};
    private DVD[] dvdStore = new DVD[10];
    private int num = 0;
    public DVDStore(){}
    public void store() {
        while (true) {
            System.out.println("欢迎使用迷你DVD管理器");
            System.out.println("-------------------------------------");
            for (int i = 0; i < select.length; i++) {
                System.out.println(i + 1 + ". " + select[i]);
            }
            System.out.println("请选择数字:");
            Scanner sca = new Scanner(System.in);
            int index;
            while (true) {
                index = sca.nextInt();
                if (index >= 1 && index <= 6) {
                    break;
                } else {
                    System.out.println("--------请输入有效的序号--------- ");
                }
            }
            System.out.println("--->" + select[index - 1]);
            switch (index) {
                case 1:
                    System.out.println("请输入新增DVD名字:");
                    String addDVDName = sca.next();
                    boolean isSuccess = addDVD(addDVDName);
                    if (isSuccess) {
                        System.out.println("成功新增dvd《" + addDVDName + "》");
                    }
                    break;
                case 2:
                    showDVD();
                    break;
                case 3:
                    showDVD();
                    System.out.println("==========请输入删除DVD的名称 ========");
                    String deleteDVDName = sca.next();
                    deleteDVD(deleteDVDName);
                    showDVD();
                    break;
                case 4:
                    showDVD();
                    System.out.println("==========请输入需要借的DVD的名称 ========");
                    String borrowDVDname = sca.next();
                    borrowDVD(borrowDVDname);
                    break;
                case 5:
                    showDVD();
                    System.out.println("==========请输入需要归还DVD的名称 ========");
                    String rturnDVDName = sca.next();
                    returnDVD(rturnDVDName);
                    break;
                case 6:
                    return;
            }
        }
    }

    /***
     *  新增dvd
     *  @param dvdName 新增dvd名字
     *  @return
     *  */
    public boolean addDVD(String dvdName) {
        if (num != 0) {
            for (int i = 0; i < num; i++) {
                if (dvdStore[i].getName().equals(dvdName)) {
                    System.out.println("您添加的DVD已存在");
                    return false;
                }
            }
        }
        DVD dvd = new DVD(dvdName, 0, 0, 0);
        dvdStore[num] = dvd;
        this.num++;
        return true;
    }

    /***
     * 展示所有的dvd
     * */
    public void showDVD() {
        if (num == 0)
            System.out.println("暂无DVD! 请去快速添加dvd");
        else {
            System.out.println("序号\t状态\t名称\t\t借出日期\t\t借出次数");
        }
        for (int i = 0; i < num; i++) {
            System.out.print(i + 1 + "\t");
            if (dvdStore[i].getState() == 0)
                System.out.print("可借\t");
            else System.out.print("已借出\t");
            System.out.print("《" + dvdStore[i].getName() + "》\t");
            if (dvdStore[i].getDate() == 0)
                System.out.print(" \t");
            else System.out.print(dvdStore[i].getDate() + "日\t");
            System.out.println(dvdStore[i].getCount() + "次");
        }
    }

    /***
     *  删除dvd(通过名字)
     *  */
    public void deleteDVD(String name) {
        int index = 0;
        for (int i = 0; i < num; i++) {
            if (dvdStore[i].getName().equals(name)) {
                if (dvdStore[i].getState() == 0) {
                    index = i;
                    dvdStore[i] = null;
                    for (int j = index; j < num - 1; j++) {
                        dvdStore[j] = dvdStore[j + 1];
                    }
                    dvdStore[num - 1] = null;
                    num--;
                    System.out.println("《" + name + "》删除成功");
                    return;
                } else {
                    System.out.println("《" + dvdStore[i].getName() + "》" + "dvd已经被借出 暂无法删除");
                    return;
                }
            }
        }
    }

    /***
     * 租借dvd
     */
    public void borrowDVD(String name) {
        for (int i = 0; i < num; i++) {
            if (dvdStore[i].getName().equals(name)) {
                if (dvdStore[i].getState() == 0) {
                    Calendar cal = Calendar.getInstance();
                    int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
                    dvdStore[i].setState(1);
                    dvdStore[i].setCount(dvdStore[i].getCount() + 1);
                    dvdStore[i].setDate(dayOfMonth);
                    System.out.println("《" + name + "》dvd租借成功");
                    return;
                } else {
                    System.out.println("抱歉《" + name + "》dvd已借出");
                    return;
                }
            }
        }
        System.out.println("抱歉《" + name + "》dvd暂无!!!");
    }

    /***
     *  归还dvd
     */
    public void returnDVD(String name) {
        for (int i = 0; i < num; i++) {
            if (dvdStore[i].getName().equals(name) && dvdStore[i].getState() == 1) {
                Calendar cal = Calendar.getInstance();
                int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
                dvdStore[i].setState(0);
                int money;
                if (dayOfMonth == dvdStore[i].getDate()) {
                    money = 1;
                } else {
                    money = (dayOfMonth - dvdStore[i].getDate()) + 1;
                }
                System.out.println("《" + name + "》归还成功");
                System.out.println("本次租借DVD共计" + money + "元");
                return;
            }
        }
    }
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值