迷你Dvd管理系统

Dvd类

package com.neusoft;
/**
 * dvd类
 *
 */
public class Dvd {
    public String dvdName;//dvd名称
    public int dvdState;//租借状态(0:可借 1:已借)
    public String outTime;//借出日期
    public int price;//租金
    public int count;//租借次数
}

DvdManage类

package com.neusoft;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

/**
 * dvd系统管理类
 * 
 * @author Administrator
 * 
 */
public class DvdManage {

    Dvd[] dvds = null;// 声明dvd对象数组
    // 声明DVD对象
    Dvd dvd = null;
    Scanner input = new Scanner(System.in);

    /**
     * dvd信息初始化
     */
    private void init() {
        dvds = new Dvd[10];

        dvds[0] = new Dvd();
        dvds[0].dvdName = "ccccc";
        dvds[0].dvdState = 0;
        dvds[0].outTime = "";
        dvds[0].price = 1;
        dvds[0].count = 1;

        dvds[1] = new Dvd();
        dvds[1].dvdName = "aaaaa";
        dvds[1].dvdState = 0;
        dvds[1].outTime = "";
        dvds[1].price = 2;
        dvds[1].count = 2;

        dvds[2] = new Dvd();
        dvds[2].dvdName = "bbbbb";
        dvds[2].dvdState = 0;
        dvds[2].outTime = "";
        dvds[2].price = 2;
        dvds[2].count = 3;
    }

    /**
     * 查看dvd信息
     */
    private void showDvdInfo() {
        // 在循环中变量对象数组查询dvd信息
        System.out.println("名称\t租借状态\t租借日期\t租金\t次数");
        for (int i = 0; i < dvds.length; i++) {
            if (dvds[i] != null) {
                System.out.println(dvds[i].dvdName + "\t"
                        + (dvds[i].dvdState == 0 ? "可借" : "已借") + "\t"
                        + dvds[i].outTime + "\t" + dvds[i].price + "\t"
                        + dvds[0].count);
            }
        }
    }

    /**
     * 系统主菜单
     */
    private void menu() {
        System.out.println("欢迎使用XXX迷你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("0、退出");
        System.out.print("请输入选择功能:");
    }

    /**
     * 根据名称查询dvd是否存在
     * 
     * @param name
     * @return
     */
    private boolean isExist(String name) {
        boolean isFind = false;
        for (int i = 0; i < dvds.length; i++) {
            // 判断dvd是否存在
            if (dvds[i] != null) {
                if (dvds[i].dvdName.equals(name)) {
                    isFind = true;
                }
            }
        }
        return isFind;
    }

    /**
     * 系统操作的方法
     */
    public void operation() {
        String name = "";
        // 定义用户选择变量
        int choice = 0;
        // 调用初始化
        this.init();
        // 显示系统菜单
        // 只要用户不输入0.操作功能后自动回到主菜单,进行下一步操作
        do {
            this.menu();
            choice = input.nextInt();
            switch (choice) {
            case 1:
                System.out.println("请输入要添加的dvd名称:");
                name = input.next();
                boolean isFlag = this.isExist(name);
                if (!isFlag) {
                    // 创建DVD对象
                    dvd = new Dvd();
                    dvd.dvdName = name;
                    dvd.price = 2;
                    dvd.count = 0;
                    dvd.dvdState = 0;
                    dvd.outTime = "";
                    addDvd(dvd);
                } else {
                    System.out.println("您输入的碟片已存在!~");
                }
                break;
            case 2:
                showDvdList();
                break;
            case 3:
                // 调用借出DVD的方法
                System.out.println("请输入要借出的DVD名称:");
                name = input.next();
                isFlag = this.isExist(name);
                if (isFlag) {
                    dvdOut(name);
                } else {
                    System.out.println("您要借出的DVD不存在!~");
                }
                break;
            case 4:
                System.out.println("请输入要借出的DVD名称:");
                name = input.next();
                isFlag = this.isExist(name);
                if (isFlag) {
                    returnDvd(name);
                } else {
                    System.out.println("您要归还的DVD不存在!~");
                }
                break;
            case 5:
                System.out.println("请输入要借出的DVD名称:");
                name = input.next();
                isFlag = this.isExist(name);
                if (isFlag) {
                    delDvd(name);
                }
                break;
            case 6:
                break;
            case 0:
                System.out.println("谢谢使用");
                return;
            }
        } while (choice != 0);

    }

    /**
     * 删除DVD
     * 
     * @param name
     */
    private void delDvd(String name) {
        for (int i = 0; i < dvds.length; i++) {
            if (dvds[i] != null) {
                if (dvds[i].dvdName.equals(name)) {
                    dvds[i] = null;
                    break;
                }
            }
        }
        for (int i = 0; i < dvds.length; i++) {
            if (dvds[i] == null) {
                if (dvds[i + 1] != null) {
                    dvds[i] = dvds[i + 1];
                    dvds[i + 1] = null;
                } else {
                    break;
                }
            }
        }
    }

    /**
     * 归还DVD
     * 
     * @param name
     */
    private void returnDvd(String name) {
        for (int i = 0; i < dvds.length; i++) {
            if (dvds[i] != null) {
                if (dvds[i].dvdName.equals(name)) {
                    dvd = dvds[i];
                    break;
                }
            }
        }
        // 计算租金
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String curDate = sdf.format(date);
        try {
            Date date1 = sdf.parse(curDate);
            Date date2 = sdf.parse(dvd.outTime);
            long diff = (date1.getTime() - date2.getTime())
                    / (1000 * 60 * 60 * 24);
            System.out.println("您需要付的租金为:" + (diff * dvd.price));
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        dvd.outTime = "";
        dvd.dvdState = 0;
        System.out.println(dvd.dvdName + "归还成功!~");
    }

    /**
     * 根据DVD名称判断该DVD是否可借
     * 
     * @param name
     * @return
     */
    private void dvdOut(String name) {
        for (int i = 0; i < dvds.length; i++) {
            if (dvds[i] != null) {
                if (dvds[i].dvdName.equals(name)) {
                    dvd = dvds[i];
                    break;
                }
            }
        }
        if (dvd.dvdState == 0) {
            Date date = new Date();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            String curDate = sdf.format(date);
            dvd.outTime = curDate;
            dvd.dvdState = 1;
            dvd.count += 1;
        } else {
            System.out.println("您要借出的DVD尚未归还!~");
        }
    }

    private void showDvdList() {
        System.out.println("DVD名称\t状态\t出租日期\t租金\t租借次数");
        for (Dvd dvd : dvds) {
            if (dvd != null) {
                System.out.println(dvd.dvdName + "\t"
                        + (dvd.dvdState == 0 ? "未借" : "已借") + "\t"
                        + dvd.outTime + "\t" + dvd.price + "\t" + dvd.count);
            }
        }
    }

    private void addDvd(Dvd newDvd) {
        for (int i = 0; i < dvds.length; i++) {
            if (dvds[i] == null) {
                dvds[i] = newDvd;
                break;
            }
        }

    }

}

DvdTest类

package com.neusoft;
/**
 * dvd系统测试类
 *
 */
public class DvdTest {


    public static void main(String[] args) {
//      //获取当前计算机系统时间
//      Date curDate = new Date();
//      System.out.println(curDate);
//      //常用的日期格式。也是很多系统中承认的格式:yyyy-MM-dd HH:mm:dd或者:yyyy/MM/dd HH:mm:dd
//      //格式化时间
//      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//      String newDate = sdf.format(curDate);
//      System.out.println(newDate);
//      
//      String outTime = "2016-07-29";
//      try {
//          Date date1 = sdf.parse(newDate);
//          Date date2 = sdf.parse(outTime);
//          long diff = (date1.getTime()-date2.getTime())/(1000*60*60*24);
//          System.out.println(diff);
//      } catch (ParseException e) {
//          // TODO Auto-generated catch block
//          e.printStackTrace();
//      }

        DvdManage manage = new DvdManage();
        manage.operation();
    }

}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值