DVD管理器

本文介绍了一个简易DVD租赁管理系统的设计与实现,包括新增、查询、删除DVD信息及处理借出归还等业务功能。系统通过DVD信息设置类和管理类实现基本操作,并提供了用户交互界面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求实现:
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();
    }

}

运行图
这里写图片描述

转载于:https://www.cnblogs.com/wangqilong/p/9417575.html

package 第三章; import java.util.Scanner; public class DVD管理器 { public static void main(String[] args) { Scanner input = new Scanner(System.in); int end=0; //名称,状态,借出日期,借出次数, String name[] =new String[50]; name[0]="三国演义"; name[1]="盗墓笔记"; name[2]="傻子上学"; boolean state[] = new boolean[50]; state[0]=true; state[1]=false; state[2]=true; int date [] = new int[50]; date[0]=0; date[1]=5; date[2]=0; int count[] = new int[50]; count[0]=12; count[1]=0; count[2]=1; String zeng; int dates; do{ 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.退出DVD"); System.out.println("-------------------------"); System.out.print("请选择:"); int index=-1; switch(input.nextInt()){ case 1: System.out.println("-->新增DVD"); System.out.print("请输入书名:"); for(int i=0;i<name.length-1;i++){ if(name[i]==null){ index=i; break; } } if(index!=-1){ name[index]=input.next(); state[index]=true; count[index]=0; date[index]=0; System.out.println("新增《"+name[index]+"》成功"); } System.out.println("**************************"); System.out.println("输入0返回"); break; case 2: System.out.println("-->查看DVD"); System.out.println("序号"+"\t"+"状态"+"\t"+" "+"名称"+"\t"+" "+"借出日期"+"\t"+" "+"借出次数"); for(int i=0;i<name.length-1;i++){ if(name[i]==null)break; System.out.print(+(i+1)+"\t"); System.out.print(state[i]==true?"可借阅"+" ":"已借阅"+" "); System.out.print("《"+name[i]+"》"+"\t"); System.out.print(" "+date[i]+"日"+"\t"); System.out.print(count[i]+"次"+"\t"+"\n"); } System.out.println("**************************"); System.out.println("输入0返回"); break; case 3: System.out.println("-->删除DVD"); System.out.print("请输入书名:"); zeng=input.next(); for(int i=0;i<name.length-1;i++){ if(name[i]==null){ System.out.println("这本本书不是我们的,无法删除"); break; } else if(name[i].equals(zeng) && state[i]==false){ System.out.println("找到您要找的书了,但是已借阅无法删除"); break; } else if(name[i].equals(zeng) && state[i]==true){ index=i; System.out.println("删除《"+zeng+"》成功"); break; } } if(index!=-1){ for(int i=index;i<name.length-1;i++){ name[i]=name[i+1]; } name[name.length-1]=null; } else System.out.println("没有您要找的书"); System.out.println("**************************"); System.out.println("输入0返回"); break; case 4: System.out.println("-->借出DVD"); System.out.print("请输入书名:"); zeng=input.next(); for(int i=0;i<name.length-1;i++){ if(name[i]==null){ System.out.println("没有找到您要找的书无法借出"); break; }else if(name[i].equals(zeng) && state[i]==false){ System.out.println("找到您要找的书了,但是库存只有一本已借阅"); break; }else if(name[i].equals(zeng) && state[i]==true){ System.out.print("借出日期:"); dates=input.nextInt(); while(dates<1 || dates>31){ if(dates<1 ||dates>31) System.out.println("请重新输入一月为1~31"); dates=input.nextInt(); } System.out.println("借阅《"+zeng+"》成功"); state[i]=false; date[i]=dates; count[i]++; break; } } System.out.println("**************************"); System.out.println("输入0返回"); break; case 5: System.out.println("-->归还DVD"); System.out.print("请输入书名:"); zeng=input.next(); int jing=0; for(int i=0;i<name.length-1;i++){ if(name[i]==null){ System.out.println("这不是我们的书无需归还"); break; }else if(name[i].equals(zeng) && state[i]==true){ System.out.println("找到您要找的书了,但是未借阅不需要归还"); break; }else if(name[i].equals(zeng) && state[i]==false){ System.out.print("归还日期:"); dates=input.nextInt(); while(dates<1 || dates>31 || dates<date[i]){ if(dates<1 ||dates>31){ System.out.println("输入格式有问题请重新输入一月为1~31"); dates=input.nextInt(); } else if(dates<date[i]){ System.out.println("归还日期必须大于借出日期"); dates=input.nextInt(); } } state[i]=true; jing=(dates-date[i])*1; System.out.println("借阅时间为:"+date[i]); System.out.println("归还时间为:"+dates); System.out.println("借阅租金为:"+jing); System.out.println("归还《"+zeng+"》成功"); date[i]=0; break; } } System.out.println("**************************"); System.out.println("输入0返回"); break; case 6: System.out.println("谢谢使用"); return; } end =input.nextInt(); }while(end==0); } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值