zoukankan      html  css  js  c++  java
  • DVD管理器

    需求实现:
    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("
    ***********************************");
                returnMain();// 没查看完一个内容都可以选择回主菜单
                break;
            case 2: // 查看DVD
                System.out.println("查看DVD-->");
                showDVD();
                System.out.println("
    ***********************************");
                returnMain();// 没查看完一个内容都可以选择回主菜单
                break;
            case 3: // 删除DVD
                System.out.println("删除DVD-->");
                System.out.println("请输入要删除的DVD名称:");
                sc.nextLine();
                String name3 = sc.next();
                deleteDVD(name3);
                System.out.println("
    ***********************************");
                returnMain();// 没查看完一个内容都可以选择回主菜单
                break;
            case 4: // 借出DVD
                System.out.println("借出DVD-->");
                System.out.println("请输入借出DVD名称:");
                sc.nextLine();
                String name4 = sc.next();
                lend(name4);
                System.out.println("
    ***********************************");
                returnMain();// 没查看完一个内容都可以选择回主菜单
                break;
            case 5: // 归还DVD
                System.out.println("归还DVD-->");
                System.out.println("请输入归还DVD名称:");
                sc.nextLine();
                String name5 = sc.next();
                returnDVD(name5);
                System.out.println("
    ***********************************");
                returnMain();// 没查看完一个内容都可以选择回主菜单
                break;
            case 6: // 排行榜
                System.out.println("排行榜-->");
                list(dvd.count);
                System.out.println("
    ***********************************");
                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		" + "state		" + "name		" + "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) + "		已借出		" + "<<" + dvd.name[i]
                            + ">>	" + dvd.date[i]);
                } else {
                    System.out.println((i + 1) + "		可借		" + "<<" + 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("次数	" + "名称");
            for (int i = 0; i < arr.length; i++) {
                if (dvd.name[i] != null) {
                    System.out.println(dvd.count[i] + "	" + 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();
        }
    
    }
    

    运行图
    这里写图片描述

  • 相关阅读:
    c++ 函数中的部分代码执行一次
    如何限制对象只能建立在堆上或者栈上
    FFMPEG Qt视频播放器
    C/C++中带可变参数的函数
    柔性数组
    压缩图片网站
    vscode存盘时格式化
    两个i标签之间有缝隙
    node 中process进程argv,argv0,execArgv,execPath
    chalk插件 使终端输出的字带颜色
  • 原文地址:https://www.cnblogs.com/wangqilong/p/8279809.html
Copyright © 2011-2022 走看看