zoukankan      html  css  js  c++  java
  • java简易DVD影片管理系统—面向对象


    public
    class DvdSet { String name [] =new String[15]; // DVD电影名称 String date [] =new String[15]; //DVD电影借出时间 int num [] =new int[15]; //DVD的借出次数 int state[] =new int[15]; //DVD的借出状态 0.没有借出 1.借出去了 }
    import java.text.*;
    import java.util.*;
    import java.util.Scanner;
    
    public class DvdMgr {
    
        DvdSet dvdSet = new DvdSet();
    
        //把初始影片的信息传给数组保存
        public void initial() {
            //第一个影片
            dvdSet.name[0] = "羞羞的铁拳";
            dvdSet.state[0] = 1;
            dvdSet.num[0] = 82;
            dvdSet.date[0] = "2017-10-1";
            //第二个影片
            dvdSet.name[1] = "大鱼海棠";
            dvdSet.state[1] = 1;
            dvdSet.num[1] = 189;
            dvdSet.date[1] = "2017-10-7";
    
            //第三个影片
            dvdSet.name[2] = "缝纫机乐队";
            dvdSet.state[2] = 0;
            dvdSet.date[2] = "暂无";
        }
    
        public void show() {
            System.out.println("***********************************");
            System.out.println("****** 欢迎使用益达DVD管理器 ******");
            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.println("请输入你需要选择的编号:(1~6)");
            Scanner input = new Scanner(System.in);
            switch (input.nextInt()) {
                case 1:
                    AddMovies();
                    backshwo();
                    break;
                case 2:
                    looklist();
                    backshwo();
                    break;
                case 3:
                    remove();
                    backshwo();
                    break;
                case 4:
                    lend();
                    backshwo();
                    break;
                case 5:
                    backDVD();
                    backshwo();
                    break;
                case 6:
                    System.out.println("感谢使用,我们下次再见!");
                    break;
                default:
                    System.out.println("输入有误,本系统都吓奔溃了~");
            }
        }
    
    
        //返回主菜单
    
        public void backshwo() {
            System.out.println("请输入0返回主菜单");
            Scanner input = new Scanner(System.in);
            if (input.nextInt() == 0) {
                show();
            } else {
                System.out.println("非常抱歉大爷,你输入有误,请重新输入!");
                backshwo();
            }
    
        }
    
        //新增加DVD影片----case 1:
        public void AddMovies() {
            System.out.println("**** 欢迎进入增加影片系统!****");
            System.out.println("请输入你的要增加的影片名称:(拒绝添加黄堵毒等不良内容!)");
            Scanner input = new Scanner(System.in);
            String name = input.next();       //输入要增加的电影名称
            for (int i = 0; i < dvdSet.name.length; i++) {
                if (dvdSet.name[i] == null) {    //if 如果数字的i位置为空,
                    dvdSet.name[i] = name;      //那么把输入的name赋值给数组i位置
                    dvdSet.state[i] = 0;       //所以i位置的借出状态为 未借出  也就是0;
                    dvdSet.date[i]="暂无";     //所以i位置的借出日期为暂无
                    break;                  //这里加上break结束循环 否贼会把所有数组中空位置都赋值上
                }
            }
            System.out.println("添加" + name + "影片成功!恭喜你没有搞事情!");
        }
    
        //查看影片功能-----case 2:
        public void looklist() {
            System.out.println("********************************* 影片列表 ********************************");
            System.out.println("*\t序号\t\t状态\t\t\t名称\t\t\t借出日期\t\t借出次数  *");
            for (int i = 0; i < dvdSet.name.length; i++) {
                if (dvdSet.name[i] == null) {      //如果数组i位置没有影片,那么我们不输出他
                    break;
                } else if (dvdSet.state[i] == 0) {   //如果该位置有影片,但是借出状态为0,输出可借出
                    System.out.println("*\t" + (i + 1) + "\t\t\t可借出\t" + "\t\t" + dvdSet.name[i] + "\t\t" + dvdSet.date[i] + "\t\t\t" + dvdSet.num[i] + "次\t\t  *");
                } else if (dvdSet.state[i] == 1) {  //如果该位置有影片,但是借出状态为1,输出已经借出
                    System.out.println("*\t" + (i + 1) + "\t\t\t已经借出" + "\t\t" + dvdSet.name[i] + "\t\t" + dvdSet.date[i] + "\t\t" + dvdSet.num[i] + "次\t  *");
                }
            }
            System.out.println("***************************************************************************");
        }
    
    
        //删除影片功能----case 3:
        public void remove() {
            System.out.println("******欢迎进入删除页面*****");
            looklist();
            System.out.println("请输入您要删除的DVD名称:");
            Scanner input = new Scanner(System.in);
            String name = input.next();
    
            //没有借出就可以删除
            //1.判断需要删除的电影位置后面是否为空,如果为空就把删除的电影每个属性赋值为空
            //因为显示列表设定如果电影名称为null空的话就不会显示他,所以我们简单点把name赋值为空即可
            //如果后面的位置不为null,那么我们需要把后面的全部数据向前覆盖,即可完成删除操作。
    
            for (int i = 0; i < dvdSet.name.length; i++) {
                //查找是否存在
                if (dvdSet.name[i] != null) {
    
                    if (dvdSet.name[i].equalsIgnoreCase(name)) { //已经找到
    
                        //是否已经被借出
                        if (dvdSet.state[i] == 1) { // 借出
                            System.out.println("《" + name + "》已经被借出");
                            break;
                        } else if (dvdSet.state[i] == 0) {
    
                            //没有借出需要删除
                            //思路 : 1.用后面一个替换前面的。
                            //2.把最后面多余的地方赋值为null.
    
    
                            for (int j = i; j < dvdSet.name.length; j++) {
    
                                //做交换
                                if (dvdSet.name[j + 1] != null) {
                                    dvdSet.name[j] = dvdSet.name[j + 1];
                                    dvdSet.state[j] = dvdSet.state[j + 1];
    
                                } else {
                                    //清空最后一个值
                                    dvdSet.name[j] = null;
                                    dvdSet.date[j] = null;
                                    break;
                                }
    
                            }
    
                            System.out.println("删除《" + name + "》成功");
                            break;
                        }
                    }
    
                } else {
    
                    System.out.println("没有您要删除的dvd");
                    System.out.println("***********************************************");
                    break;
                }
            }
    
        }
    
    
        //借出DVD----case 4:
    
        public void lend() {
            System.out.println("欢迎来到借影片系统!");
    
            //显示影片列表
            looklist();
    
            //输入要借的影片名
            System.out.println("请输入要借的影片名:");
            Scanner input = new Scanner(System.in);
            String name = input.next();
            for (int i = 0; i < dvdSet.name.length; i++) {
                //只对比数值不为空的数组里的数据
                if (dvdSet.name[i] != null) {
                    //检查影片是否存在并且检查有没有被借出,没有就可以借。
                    if (dvdSet.name[i].equals(name) && dvdSet.state[i] == 0) {
                        //找到匹配电影名并且状态为未借出,所以开始输入借书时间,并传给数组
                        System.out.println("请输入借DVD的时间(年-月-日):");
                        //把借影片时间传给数组对应位置
                        Scanner Datainput = new Scanner(System.in);
                        dvdSet.date[i] = Datainput.next();
                        //把对应的借影片状态改为已经借出
                        dvdSet.state[i] = 1;
                        //借出次数加1
                        dvdSet.num[i]++;
                        break;
                        //检查影片是否存在并且检查有没有被借出,已经借出,则输出已经借出。
                    } else if (dvdSet.name[i].equals(name) && dvdSet.state[i] == 1) {
                        //找到匹配电影名并且状态为已经借出,所以输出已经借出
                        System.out.println("非常抱歉,影片已经被借出!");
                        break;
                    }
                } else {
                    //如果上面两个条件都不满足,则说明没有找到匹配的影片,输出没有此影片
                    System.out.println("抱歉没有找到你要借的影片");
                    break;
                }
            }
        }
    
        //归还DVD-----case 5:
    
        public void backDVD() {
            //显示影片列表,可以知道影片的借出状态
            looklist();
    
            System.out.println("请输入你要归还的影片名称:");
            Scanner input = new Scanner(System.in);
            String name = input.next();
            for (int i = 0; i < dvdSet.name.length; i++) {
                //对比名称数组里不为空的值
                if (dvdSet.name[i] != null) {
                    //如果我们输入的name电影名称和数组里面有相匹配的并且状态为没有借出,那么输出这部电影还在我们影院
                    if (dvdSet.name[i].equals(name) && dvdSet.state[i] == 0) {
                        System.out.println("这部影片还在我们影院啊!您拿来的是盗版吗?");
                        break;
                        //如果我们输入的name电影名称和数组里面有相匹配的并且状态为已经借出,那么输出我们归还影片成功
                    } else if (dvdSet.name[i].equals(name) && dvdSet.state[i] == 1) {
    
                        //添加获取时间差时间差--(若要删除此功能,注释或删除以下三行代码,并注释或删除整个获取时间差的方法)
                        System.out.println("请输入归还书籍的时间(年-月-日):");
                        Scanner inputDate = new Scanner(System.in);
                        //获取时间差,把括号里的参数传给获取时间差的方法里,得到charge时间差,时间差的方法写在了结尾
                        long charge = charge(dvdSet.date[i], inputDate.next());
    
                        //修改这部影片的状态为---可借出
                        dvdSet.state[i] = 0;
                        //修改这部影片的借出日期为----暂无
                        dvdSet.date[i] = "暂无";
                        //这部影片的借出次数加1
                        dvdSet.num[i]++;
                        System.out.println("归还《" + name + "》影片成功!一共借该影片" + charge + "天!");
                        System.out.println("您借该影片价格为每天2元钱,所以您需要付费"+(charge*2)+"元!");
                        break;
                    }
                } else {
                    //以上条件都不符合,说明列表无输出的影片,则输出-输入有误
                    System.out.println("输入有误,我们影院没有这种三观不正的影片!");
                    break;
                }
            }
        }
    
        //获取时间差的方法----附加
        public long charge(String date1, String date2) {
    
            //做时间差
            //将String转为Date做计算
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
            //初始化时间差为0
            long charge = 0;
            try {
                //借出影片的时间
                Date lendData = simpleDateFormat.parse(date1);
                //归还影片的时间
                Date backData = simpleDateFormat.parse(date2);
                //时间以毫秒为单位,所以乘以1000
                charge = (backData.getTime() - lendData.getTime()) / (1000 * 24 * 60 * 60);
            } catch (ParseException e) {
                System.out.println(e);
            }
    
            return charge;
        }
    public class TestDVD {
        public static void main(String[] args) {
            DvdMgr dvdMgr = new DvdMgr();
            //把原本有的三个电影运行传递给数组
            dvdMgr.initial();
    
            //开始运行菜单
            dvdMgr.show();
        }
    }
  • 相关阅读:
    成功更容易光顾磨难和艰辛,正如只有经过泥泞的道路才会留下脚印
    只要信心在,勇气就在,努力在,成功就在!
    不积跬步无以至千里,不积小流无以成江海
    你给自己留的退路越多,你失败的可能性就越大
    不要质疑你的付出,这些都会是一种累积一种沉淀,它们会默默铺路,只为让你成为更优秀的人
    生活的一大乐趣便是完成别人认为你不能做到的事情
    优于别人,并不高贵,真正的高贵,是优于过去的自己
    再长的路 ,一步步也能走完,再短的路,不迈开双脚也不无法到达!
    09SpringAopAdvice
    java中接口(interface)和虚基类(abstract class)的区别
  • 原文地址:https://www.cnblogs.com/ichimoku/p/7662113.html
Copyright © 2011-2022 走看看