首页 > 代码库 > 迷你DVD管理器

迷你DVD管理器

import java.text.*;
import java.util.*;
 class DVDSet {
        String[] name=new String[50];        //定义一个DVD数组 
        boolean[] state=new boolean[50];                //定义DVD借出状态:true.已借出false.可借
        String[] date=new String[50];        //定义借出日期
        int[] count=new int[50];        //定义借出次数
}



class DVDMgr {
        Scanner input = new Scanner(System.in);
        DVDSet dvd = new DVDSet(); // 初始化对象
        boolean isJiechu = true; // 已借出是true 可借是false

        // 初始化三张DVD信息
        public void initial() {
                dvd.name[0] = "罗马假日";
                dvd.state[0] = true; // 已借出
                dvd.date[0] = "2007-7-1";
                dvd.name[1] = "风声鹤唳";
                dvd.state[1] = false; // 可借
                dvd.name[2] = "浪漫满屋";
                dvd.state[2] = false; // 可借
        }

        public void startMenu() {
                System.out.println("欢迎使用迷你DVD管理器");
                System.out.println("--------------------------");
                System.out.println("0.借出排行榜");
                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("---------------------------");
                System.out.print("请选择:");
                int choice = input.nextInt();
                switch (choice) {
                case 0:
                        list(); // 查看借出排行
                        break;
                case 1:
                        add(); // 新增DVD
                        break;
                case 2:
                        search(); // 查看DVD
                        break;
                case 3:
                        delete(); // 删除DVD
                        break;
                case 4:
                        lend(); // 借出DVD
                        break;
                case 5:
                        returnDvd(); // 归还DVD
                        break;
                case 6:
                        System.out.println("感谢您的使用!");
                        break;
                default:
                        System.out.println("你的输入有误,请重新输入");
                        returnMain();
                }
        }

        public void returnMain() {
                System.out.print("输入0返回:");
                if (input.nextInt() == 0) {
                        startMenu();
                } else {
                        System.out.println("输入错误,异常终止!");
                }
        }

        // 查看借出排行
        public void list() {
                String[] newname = new String[50]; // 定义新数组 显示DVD名称
                int[] newcount = new int[50]; // 定义新数组 显示借出次数
                for (int i = 0; i < dvd.name.length; i++) {
                        newname[i] = dvd.name[i];
                        newcount[i] = dvd.count[i];
                }
                for (int i = 0; i < newname.length; i++) { // 2层循环控制位置
                        for (int j = i + 1; j < newname.length; j++) {
                                if (newcount[i] > newcount[j]) {
                                        int temp = newcount[i]; // 2次交换实现次数和名字的替换
                                        newcount[i] = newcount[j];
                                        newcount[j] = temp;
                                        String temp1 = newname[i];
                                        newname[i] = newname[j];
                                        newname[j] = temp1;
                                }
                        }
                }
                System.out.println("---> 排行榜\n");
                System.out.println("**************************");
                System.out.println("次数\t名称");
                // 逆序打印排行榜
                for (int i = newname.length - 1; i >= 0; i--) {
                        if (newname[i] != null) {
                                System.out.println(newcount[i] + "\t《" + newname[i] + "》");
                        }
                }
                System.out.println("**************************");
                returnMain();
        }

        // 新增DVD
        public void add() {
                System.out.println("--->新增DVD\n");
                System.out.print("请输入DVD的名称:");
                String name = input.next();
                for (int i = 0; i < dvd.name.length; i++) {
                        if (dvd.name[i] == null) { // 判断位置是否为空
                                dvd.name[i] = name;
                                dvd.state[i] = false; // 新增的光盘是可借的
                                System.out.println("新增《" + name + "》成功");
                                break;
                        }
                }
                System.out.println("**************************");
                returnMain();
        }

        // 查看DVD
        public void search() {
                System.out.println("--->查看DVD\n");
                System.out.println("序号\t状态\t名称\t\t借出日期");
                for (int i = 0; i < dvd.name.length; i++) {
                        if (dvd.name[i] == null) {
                                break;
                        } else if (dvd.state[i] == true) {
                                System.out.println((i + 1) + "\t已借出\t《" + dvd.name[i] + "》\t"
                                                + dvd.date[i]);
                        } else if (dvd.state[i] == false) {
                                System.out.println((i + 1) + "\t可借\t《" + dvd.name[i] + "》");
                        }
                }
                System.out.println("**************************");
                returnMain();
        }

        // 删除DVD
        public void delete() {
                System.out.println("--->删除DVD\n");
                System.out.print("请输入DVD的名称:");
                String name = input.next();
                boolean flag = false;
                for (int i = 0; i < dvd.name.length; i++) {
                        if (dvd.name[i] != null && dvd.name[i].equalsIgnoreCase(name)
                                        && dvd.state[i] == false) {
                                int j = i;
                                while (dvd.name[j + 1] != null) {
                                        dvd.name[j] = dvd.name[j + 1]; // 删除元素,元素前移
                                        dvd.state[j] = dvd.state[j + 1];
                                        dvd.date[j] = dvd.date[j + 1];
                                        j++;
                                }
                                // 最后一个不为空的元素置空
                                dvd.name[j] = null;
                                dvd.date[j] = null;
                                System.out.println("删除《" + name + "》成功!");
                                flag = true; // 标识位
                                break;
                        } else if (dvd.name[i] != null
                                        && dvd.name[i].equalsIgnoreCase(name)
                                        && dvd.state[i] == true) {
                                System.out.println("《" + name + "》为借出状态,不能删除!");
                                flag = true;
                                break;
                        }
                        if (flag == true) {
                                System.out.println("没有找到匹配信息");
                        }
                }
                System.out.println("**************************");
                returnMain();
        }

        // 借出DVD
        public void lend() {
                System.out.println("--->借出DVD\n");
                System.out.print("请输入DVD的名称:");
                String name = input.next();
                for (int i = 0; i < dvd.name.length; i++) {
                        if (dvd.name[i] == null) {
                                System.out.println("没有找到匹配信息!");
                                break;
                        } else if (dvd.name[i].equals(name) && dvd.state[i] == false) {
                                System.out.print("请输入借出日期(年-月-日):");
                                dvd.date[i] = input.next();
                                System.out.println("《" + name + "》借出成功");
                                dvd.state[i] = true;
                                dvd.count[i]++;
                                break;
                        } else if (dvd.name[i].equals(name) && dvd.state[i] == true) {
                                System.out.println("不好意思,《" + name + "》已被借出!");
                                break;
                        }
                }
                System.out.println("**************************");
                returnMain();
        }

        // 归还DVD
        public void returnDvd() {
                System.out.println("--->归还DVD\n");
                System.out.print("请输入DVD名称:");
                String name = input.next();
                long loan = 0; // 租金
                for (int i = 0; i < dvd.name.length; i++) {
                        if (dvd.name[i] == null) {
                                System.out.println("没有找到匹配信息!");
                                break;
                        } else if (dvd.name[i].equals(name) && dvd.state[i] == true) {
                                System.out.print("请输入归还日期(年-月-日):");
                                String redate = input.next();
                                loan = charge(dvd.date[i], redate);
                                System.out.println("\n《" + name + "》归还成功");
                                dvd.state[i] = false;
                                System.out.println("借出日期为:" + dvd.date[i]);
                                System.out.println("归还日期为:" + redate);
                                System.out.println("应付租金(元):" + loan);
                                break;
                        } else if (dvd.name[i].equals(name) && dvd.state[i] == false) {
                                System.out.println("《" + name + "》没有被借出,无法进行归还操作!");
                                break;
                        }
                }
                System.out.println("**************************");
                returnMain();
        }

        // 计算日期差
        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;
        }
}


class Demo {

        public static void main(String[] args) {
             
                DVDMgr dm=new DVDMgr();
                dm.initial();
                dm.startMenu();
        }

}

 

迷你DVD管理器,实现DVD碟片的管理,主要包括如下功能。

  1.新增DVD 

    2.查看DVD 

    3.删除DVD 

    4借出DVD

    5.归还DVD

迷你DVD管理器