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();
        }
    
    }
    

    运行图
    这里写图片描述

  • 相关阅读:
    Nim or not Nim? hdu3032 SG值打表找规律
    Maximum 贪心
    The Super Powers
    LCM Cardinality 暴力
    Longge's problem poj2480 欧拉函数,gcd
    GCD hdu2588
    Perfect Pth Powers poj1730
    6656 Watching the Kangaroo
    yield 小用
    wpf DropDownButton 源码
  • 原文地址:https://www.cnblogs.com/wangqilong/p/8279809.html
Copyright © 2011-2022 走看看