java控制台 DVD管理器小项目

实验课项目,代码有不好的地方欢迎指正


程序入口:

package DVDController;

public class Main {
    public static void main(String[] args) {
        DVDController dvdController = new DVDController();
        dvdController.Initial();
        dvdController.StartMenu();

    }
}

DVD类:

package DVDController;

public class DVD {

    private String name;
    private int state;
    private String date;

    public DVD(String name){
        this.name = name;
        this.state = 1;
        this.date = "";

    }
    public String getName() {
        return name;
    }

    public int getState() {
        return state;
    }

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

    public String getDate() {
        return date;
    }

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


控制器类:

package DVDController;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Scanner;

public class DVDController {

    private static boolean bool = true;
    private static int num = 0;
    private static ArrayList<DVD> dvdArray = new ArrayList<DVD>();

    public void Initial() {
        dvdArray.add(new DVD("权力的游戏"));
        dvdArray.add(new DVD("某爱情动作记录片"));
        dvdArray.add(new DVD(""));
    }

    private void Add() {
        System.out.print("请输入DVD名称:");
        Scanner input = new Scanner(System.in);
        String str = input.next();
        DVD dvd = new DVD(str);
        dvdArray.add(dvd);
        ReturnMenu();
    }

    private void Delete(int i) {
        i--;
        if (dvdArray.get(i).getState() == 1) {
            dvdArray.remove(i);
        } else {
            System.out.println(dvdArray.get(i).getName() + "正在借出中,不可删除。");
        }
        ReturnMenu();

    }

    private void Search() {
        System.out.println("--------------------------------------------");
        System.out.println("序号\t\t\t状态\t\t名称\t\t\t\t\t\t借出日期");
        for (int i = 0; i < dvdArray.size(); i++) {
            DVD d = dvdArray.get(i);
            System.out.print(i + 1 + "\t\t\t");
            if (d.getState() == 1) {
                System.out.print("可借\t\t" + d.getName() + "\t\t\t\t\t\t" + d.getDate() + "\n");
            } else {
                System.out.print("已借出\t" + d.getName() + "\t\t\t\t\t\t" + d.getDate() + "\n");
            }
        }
        System.out.println("--------------------------------------------");
        ReturnMenu();
    }

    private void Lend(int i) {
        i--;
        if (dvdArray.get(i).getState() != 1) {
            System.out.println("DVD没有库存,不可借");
        } else {
            SimpleDateFormat dareFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            dvdArray.get(i).setState(0);
            dvdArray.get(i).setDate(dareFormat.format(new Date()));
            System.out.println(dvdArray.get(i).getName() + " 在 " + dareFormat.format(new Date()) + "借出");
        }
        ReturnMenu();
    }

    private void SendBack() {
        System.out.println("--------------------------------------------");
        System.out.println("序号\t\t\t状态\t\t名称\t\t\t\t\t\t借出日期");
        for (int i = 0; i < dvdArray.size(); i++) {
            if (dvdArray.get(i).getState() == 0) {
                System.out.print(i + 1 + "\t\t\t");
                System.out.println("已借出\t" + dvdArray.get(i).getName() + "\t\t\t\t\t\t" + dvdArray.get(i).getDate());
            }
        }
        System.out.print("请输入要归还图书的编号:");
        Scanner input = new Scanner(System.in);
        num = input.nextInt()-1;

        long diff;
        String nowDate;
        SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            nowDate = sd.format(new Date());
            Date d1 = sd.parse(dvdArray.get(num).getDate());
            Date d2 = sd.parse(nowDate);
            diff = ((d2.getTime())-(d1.getTime()))/(24*60*60*1000)*100;
            System.out.println("您需支付的租金为:"+diff+"");
        } catch (ParseException e) {
            e.printStackTrace();
        }
        dvdArray.get(num).setState(1);
        dvdArray.get(num).setDate("");
        ReturnMenu();

    }

    public void StartMenu() {
        System.out.println("\t\t\t\t\t欢迎使用IKUN 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("0.重选");
        System.out.println("--------------------------------------------");
        bool =true;
        Scanner input = new Scanner(System.in);
        System.out.print("请选择输入数字:");
        while (bool) {
            try {
                num = input.nextInt();
            } catch (Exception ex) {
                System.out.println("输入错误,请正确输入!");
                input = new Scanner(System.in);     //重置输入流清空缓存区!
            } finally {
                switch (num) {
                    case 1:
                        bool = false;
                        System.out.println("-->新增DVD");
                        Add();
                        break;
                    case 2:
                        bool = false;
                        System.out.println("-->查看DVD");
                        Search();
                        break;
                    case 3:
                        bool = false;
                        System.out.println("删除DVD");
                        System.out.print("请输入DVD编号:");
                        num = input.nextInt();
                        Delete(num);
                        break;
                    case 4:
                        bool = false;
                        System.out.println("-->借出DVD");
                        System.out.print("请输入要借的DVD编号:");
                        num = input.nextInt();
                        Lend(num);

                        break;
                    case 5:
                        bool = false;
                        System.out.println("-->归还DVD");
                        SendBack();
                        break;
                    case 6:
                        bool = false;
                        System.out.println("程序结束!");
                        break;
                    case 0:
                        bool = false;
                        ReturnMenu();
                        break;
                    default:
                        System.out.println("输入错误,重新输入。");
                }

            }
        }

    }

    private void ReturnMenu(){

        bool = true;
        Scanner input = new Scanner(System.in);
        System.out.print("输入0返回主菜单,");
        System.out.print("输入1返回主菜单退出程序");
        System.out.print("请输入选项:");
        while (bool) {
            try {
                num = input.nextInt();
            } catch (Exception ex) {
                System.out.println("输入错误,请正确输入!");
                input = new Scanner(System.in);     //重置输入流清空缓存区!
            } finally {
                switch (num) {
                    case 0:
                        bool = false;
                        StartMenu();
                        break;
                    case 1:
                        bool = false;
                        System.out.println("程序结束");
                        break;
                    default:
                        System.out.println("输入错误,重新输入。");
                }

            }
        }

    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值