DVD管理器

来源:互联网 发布:raft算法 编辑:程序博客网 时间:2024/04/30 16:21

需求实现:
1.新增DVD信息
2.查询DVD信息
3.删除DVD信息
4.处理借出归还业务

DVD信息设置类

/** * DVD信息设置类 *  * @author wql * */public class DVDSet {    String[] name = new String[50];// 名称    int[] state = new int[50]; // 借出状态:0已借出/1可借    String[] date = new String[50];// 借出时间    int[] count = new int[50];// 借出次数}

DVD管理类

import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Scanner;/** * DVD管理类 *  * @author wql * */public class DVDMgr {    DVDSet dvd = new DVDSet();    /**     * 初始化     */    public void initial() {        dvd.name[0] = "罗马假日";        dvd.state[0] = 0;        dvd.date[0] = "2017-7-1";        dvd.count[0] = 1;        dvd.name[1] = "风声鹤唳";        dvd.state[1] = 1;        dvd.name[2] = "浪漫满屋";        dvd.state[2] = 1;    }    /**     * 菜单切换     */    public void startMenu() {        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("7.退出");        Scanner sc = new Scanner(System.in);        System.out.print("请选择:  ");        int choice = sc.nextInt();        switch (choice) {        case 1: // 新增DVD            System.out.println("新增DVD-->");            System.out.println("请输入新增DVD名称:");            sc.nextLine();            String name = sc.next();            if (addDVD(name)) {                System.out.println("新增DVD成功");            } else {                System.out.println("新增DVD失败");            }            System.out.println("\n***********************************");            returnMain();// 没查看完一个内容都可以选择回主菜单            break;        case 2: // 查看DVD            System.out.println("查看DVD-->");            showDVD();            System.out.println("\n***********************************");            returnMain();// 没查看完一个内容都可以选择回主菜单            break;        case 3: // 删除DVD            System.out.println("删除DVD-->");            System.out.println("请输入要删除的DVD名称:");            sc.nextLine();            String name3 = sc.next();            deleteDVD(name3);            System.out.println("\n***********************************");            returnMain();// 没查看完一个内容都可以选择回主菜单            break;        case 4: // 借出DVD            System.out.println("借出DVD-->");            System.out.println("请输入借出DVD名称:");            sc.nextLine();            String name4 = sc.next();            lend(name4);            System.out.println("\n***********************************");            returnMain();// 没查看完一个内容都可以选择回主菜单            break;        case 5: // 归还DVD            System.out.println("归还DVD-->");            System.out.println("请输入归还DVD名称:");            sc.nextLine();            String name5 = sc.next();            returnDVD(name5);            System.out.println("\n***********************************");            returnMain();// 没查看完一个内容都可以选择回主菜单            break;        case 6: // 排行榜            System.out.println("排行榜-->");            list(dvd.count);            System.out.println("\n***********************************");            returnMain();// 没查看完一个内容都可以选择回主菜单            break;        case 7:            System.out.println("退出系统!");            break;        default:            System.out.println("输入错误!");            returnMain();        }    }    /**     * 返回主菜单     */    public void returnMain() {        Scanner input = new Scanner(System.in);        System.out.print("输入0返回:");        if (input.nextInt() == 0) {            startMenu();        } else {            System.out.println("输入错误,异常终止!");        }    }    /**     * 查看DVD信息     */    public void showDVD() {        System.out                .println("----------------------------------------------------------");        System.out.println("num\t\t" + "state\t\t" + "name\t\t" + "date");        System.out                .println("----------------------------------------------------------");        for (int i = 0; i < dvd.name.length; i++) {            if (dvd.name[i] == null) {                continue;// break;********            }            if (dvd.state[i] == 0) {                System.out.println((i + 1) + "\t\t已借出\t\t" + "<<" + dvd.name[i]                        + ">>\t" + dvd.date[i]);            } else {                System.out.println((i + 1) + "\t\t可借\t\t" + "<<" + dvd.name[i]                        + ">>");            }        }        System.out                .println("----------------------------------------------------------");    }    /**     * 新增DVD     *      * @param nameDVD名称     *      */    public boolean addDVD(String name) {        boolean flag = false;        for (int i = 0; i < dvd.name.length; i++) {            if (dvd.name[i] == null) {                dvd.name[i] = name;                dvd.state[i] = 1;                flag = true;                break;            }        }        return flag;    }    /**     * 删除DVD业务     *      * @param i第i     *            -1张DVD     */    public void deleteDVD(String name) {        for (int i = 0; i < dvd.name.length; i++) {            if (dvd.name[i].equals(name)) {                if (dvd.state[i] == 1) {                    int j = i;                    boolean flag = false;                    while ((dvd.name[j] != null) && !flag) {                        dvd.name[j] = dvd.name[j + 1];                        dvd.state[j] = dvd.state[j + 1];                        dvd.date[j] = dvd.date[j + 1];                        if (j == dvd.name.length - 1) {                            flag = true;                        }                        j++;                    }                    System.out.println("删除<<" + name + ">>成功!");                    break;                } else {                    System.out.println("此DVD己借出,不可删除");                    break;                }            }        }    }    /***     * 借出DVD业务处理     *      * @param name     */    public void lend(String name) {        for (int i = 0; i < dvd.name.length; i++) {            if (!dvd.name[i].equals(name)) {                if (i == dvd.name.length - 1) {                    System.out.println("没有匹配信息!");                }                continue;// ******break;            } else if (dvd.state[i] == 1) {                dvd.count[i]++; // 借出次数加1                dvd.state[i] = 0;                SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");                dvd.date[i] = sd.format(new Date()); // 标记借出时间                System.out.println("<<" + name + ">>" + "可借");                break;            } else {                System.out.println("<<" + name + ">>" + "已被借出");                break;            }        }    }    /**     * 冒泡排行     *      * @param arr     */    public void list(int[] arr) {        for (int i = 0; i < dvd.count.length - 1; i++) {            for (int j = 0; j < dvd.count.length - i - 1; j++) {                if (dvd.count[j] < dvd.count[j + 1]) {                    int countTemp = dvd.count[j];                    dvd.count[j] = dvd.count[j + 1];                    dvd.count[j + 1] = countTemp;                    String nameTemp = dvd.name[j];                    dvd.name[j] = dvd.name[j + 1];                    dvd.name[j + 1] = nameTemp;                    int stateTemp = dvd.state[j];                    dvd.state[j] = dvd.state[j + 1];                    dvd.state[j + 1] = stateTemp;                    String dateTemp = dvd.date[j];                    dvd.date[j] = dvd.date[j + 1];                    dvd.date[j + 1] = dateTemp;                }            }        }        System.out.println("****************************");        System.out.println("次数\t" + "名称");        for (int i = 0; i < arr.length; i++) {            if (dvd.name[i] != null) {                System.out.println(dvd.count[i] + "\t" + dvd.name[i]);            }        }    }    /**     * 归还DVD业务     *      * @param name归还DVD名称     *      */    public void returnDVD(String name) {        String dstr1 = null;        String dstr2;        boolean flag = false;        SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");        for (int i = 0; i < dvd.name.length; i++) {            if (dvd.name[i].equals(name) && dvd.state[i] == 0) {                dstr1 = dvd.date[i]; // 先获取借出时间                dvd.state[i] = 1; // 借出状态归1                dvd.date[i] = null; // 借出时间归空                flag = true;                break;            }        }        if (flag) {            dstr2 = sd.format(new Date()); // 获取当前时间            long time = charge(dstr1, dstr2);            int money = (int) time * 1;            System.out.println("应付租金(元):" + money);        } else {            System.out.println("此书未曾借出!");        }    }    /**     * 日期差算法     *      * @param dstr1借出日期     * @param dstr2归还日期     * @return     */    public long charge(String dstr1, String dstr2) {        long charge = 0;        SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");        try {            Date d1 = sd.parse(dstr1);            Date d2 = sd.parse(dstr2);            charge = (d2.getTime() - d1.getTime()) / (24 * 60 * 60 * 1000);        } catch (ParseException e) {            e.printStackTrace();        }        return charge;    }}

主类,程序入口

/** * 主类,程序入口 *  * @author wql * */public class Start {    public static void main(String[] args) {        // TODO 自动生成的方法存根        DVDMgr dm = new DVDMgr();        dm.initial();        dm.startMenu();    }}

运行图
这里写图片描述

原创粉丝点击