DVD迷你管理系统

功能菜单
功能菜单
思路:

  • 首先得有一个放置DVD专辑的容器。(创建DVD对象类放置DVD专辑)
  • 创建菜单
  • 实现6大功能
  • 新增功能
  • 查看功能(遍历)
  • 删除功能
  • 借出功能
  • 归还功能
  • 查看热榜

第一步,创建DVD对象类

public class Dvd {
    private String dvdname;//dvd名字
    private String state ;dvd的状态
    private String date ; //借出的日期
    private int time ;  //借出的次数
    public Dvd()
    {
        super();
    }
    public Dvd(String dvdname, String state, String date, int time) {
        super();
        this.dvdname = dvdname;
        this.state = state;
        this.date = date;
        this.time = time;
    }
    /*
     *加\t是为了打印时整齐
     */
    @Override
    public String toString() {
        return state+"\t"+dvdname+"\t"+date+"\t"+time+"次";
    }

    public String getDvdname() {
        return dvdname;
    }
    public void setDvdname(String dvdname) {
        this.dvdname = dvdname;
    }
    public String getState() {
        return state;
    }
    public void setState(String state) {
        this.state = state;
    }
    public String getDate() {
        return date;
    }
    public void setDate(String date) {
        this.date = date;
    }
    public int getTime() {
        return time;
    }
    public void setTime(int time) {
        this.time = time;
    }
}

第二步、创建对象数组(容器)

//需要使用的包
//使用Shift+Alt+o快速导包
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.Scanner;
/*
 *也可以这样调包
     import java.util.*;
     import java.text.*;
 */
//以下代码均写在同一类内
//我的类名是
public class DvdDX{
    Dvd [] dvd = new Dvd [6]; //新建对象数组总共有6张DVD
    ......//后续

最多能够存储6张DVD

//初始化数组 null值时加\t为了打印时能够对其,后续判断是也需要+"\t"
public void init ()
    {
        dvd[0]= new Dvd ("西游记","可借",null+"\t",0);
        dvd[1]= new Dvd ("亮剑","已借出","2018-01-02",2);
        dvd[2]= new Dvd ("封神榜","已借出","2018-07-01",1);
    }

第三步、创建菜单方法

/*
     * 菜单
     */ 
    public void menu()
    {
        while (true)
        {
            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("0.退出");
            System.out.println("---------------------------------");
            System.out.print("请选择:");
            if (input.hasNextInt())
            {
                int check = input.nextInt();
                switch (check)
                {
                case 1:
                    System.out.println("---------->新增DVD");
                    add();
                     fanhui();
                    break;
                case 2:
                    System.out.println("---------->查看DVD");
                    see ();
                     fanhui();
                    break;
                case 3:
                    System.out.println("---------->删除DVD");
                    del();
                    fanhui();
                    break;
                case 4:
                    System.out.println("---------->借出DVD");
                    borrow();
                    fanhui();
                    break;
                case 5:
                    System.out.println("---------->归还DVD");
                    still ();   
                    fanhui();
                    break;
                case 6:
                    System.out.println("---------->排行榜");
                    rankings();
                    fanhui();
                    break;
                case 0:
                    exit();
                    break;
                default :
                    System.out.println("输入的项目不存在,请重新输入!");
                }
            }
            else 
            {
                System.out.println("输入错误,请重新输入10以内的整数!");
                input =  new Scanner(System.in);
            }           
        }       
    }
    /*
     * 返回方法
     * 让用户使用时更加人性化
     */
    public void fanhui()
    {   
        System.out.println("*****************");
        System.out.println("请输入任意字符返回");
        input.next();
    }

第四步 、实现各个功能

    /*
     * 1.新增DVD
     * (无法添加重复DVD)
     * (最多存在6张DVD)
     */
    public void add ()
    {
        /*
         * 查询空位
         */
        boolean check = false;
        int ceek = 0;
        for (int i=0 ;i<dvd.length;i++)
        {
            if (dvd[i]==null)
            {
                check = true;
                break;
            }
            ceek ++;
        }
        if(check)
        {
            System.out.print("请输入您需要添加的DVD名字:");
            String name = input.next();
            /*
             * 防止重名DVD添加
             */
            boolean repeat = true; 
            for (int i = 0 ; i<dvd.length ;i++)
            {
                if(dvd[i]==null)
                {
                    break;
                }
                if(name.equals(dvd[i].getDvdname()))
                {
                    repeat = false;
                    break;
                }
            }
            if(repeat)
            {
                dvd[ceek] = new Dvd(name,"可借",null+"\t",0);
                System.out.println("新增《"+name+"》DVD成功!!");
            }
            else
            {
                System.out.println("已存在该DVD,请勿重复添加。");
            }   
        }
        else 
        {
            System.out.println("无法添加,DVD空间不足!!!");
        }       
    }

    /*
     * 2.查看DVD
     * (列出所有DVD)
     */
    public void see ()
    {
        for(int i=0;i<menu.length;i++)
        {
            System.out.print(menu[i]);
        }
        System.out.println();
        for (int i = 0 ; i <dvd.length ; i++    )
        {
            if(dvd[i]!=null)
            {
                System.out.println((i+1)+"\t"+dvd[i]);
            }

        }
    }

    /*
     * 3.删除DVD
     * (无法删除已借出DVD)
     */
    public void del()
    {
        System.out.println("请输入您需要删除DVD的名字:");
        String name = input.next();

        boolean check = false;
        int ceek = 0;
        for (int i=0 ;i<dvd.length;i++)
        {
            if (dvd[i] != null && name.equals(dvd[i].getDvdname()))
            {
                check = true;
                break;
            }
            ceek ++;
        }
        if(check == true && (dvd[ceek].getState() ).equals("可借"))
        {
            if (ceek <dvd.length-1)
            {
                for (int i = ceek ;i<dvd.length-1 ;i++)
                {
                    dvd[i]=dvd[i+1];
                }
                dvd[dvd.length-1 ]=null;
            }
            else 
            {
                dvd[ceek]=null;
            }
            System.out.println("删除《"+name+"》成功!!");
        }
        else if(check == false)
        {
            System.out.println("删除失败,未找到DVD!!!");
        }
        else 
        {
            System.out.println("删除失败,该DVD已借出!");
        }
    }

    /*
     * 4.借出DVD
     * (已借出DVD无法再借)
     */
    public void borrow()
    {

        System.out.println("请输入您需要借出DVD的名字:");
        String name = input.next();

        boolean check = false;
        int ceek = 0;
        for (int i=0 ;i<dvd.length;i++)
        {
            if (dvd[i] != null && name.equals(dvd[i].getDvdname()))
            {
                check = true;
                break;
            }
            ceek ++;
        }

        if(check == true && (dvd[ceek].getState() ).equals("可借") )
        {
            dvd[ceek].setState("已借出");
            /*
             * 记录当前日期
             */
            Date now = new Date();
            SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd");
            String time = sdf.format(now);
            dvd[ceek].setDate(time);
            dvd[ceek].setTime(dvd[ceek].getTime()+1);
            System.out.println("借出《"+name+"》DVD成功!\n每天收费1元");
        }
        else if(check == false)
        {
            System.out.println("租借失败,未找到DVD!!!");
        }
        else 
        {
            System.out.println("租借失败,该DVD已借出!请归还后再借。");
        }
    }

    /*
     * 5.归还DVD
     * (无法归还未借出的DVD)
     * (金额最低为1元)
     */
    public void still ()
    {
        System.out.println("请输入您需要归还DVD的名字:");
        String name = input.next();

        boolean check = false;
        int ceek = 0;
        for (int i=0 ;i<dvd.length;i++)
        {
            if (dvd[i] != null && name.equals(dvd[i].getDvdname()))
            {
                check = true;
                break;
            }
            ceek ++;
        }
        if(check == true && (dvd[ceek].getState() ).equals("已借出"))
        {
            dvd[ceek].setState("可借");
            int day =0;
            Date now = new Date();
            SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd");
            String time = sdf.format(now);

            String date1 =dvd[ceek].getDate(); //借出时间
            String date2 =time; //现在的时间
            //对日期时间进行格式化的类
            SimpleDateFormat asd =new SimpleDateFormat("yyyy-MM-dd");
            //将String转成Date类型
            try {
                Date time1 = asd.parse(date1); //需要计算的日期
                Date time2 = asd.parse(date2); //今天日期
                long haoMiao1 = time1.getTime(); //转成毫秒
                long haoMiao2 = time2.getTime();
                long jianGeHM = haoMiao2-haoMiao1;
                day = (int)(jianGeHM/(24*60*60*1000)+1);
//              System.out.println("共借出:"+day+"天");             
            } catch (ParseException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            dvd[ceek].setDate(null+"\t");
            System.out.println("归还《"+name+"》成功!!");
            System.out.println("共借出"+day+"天");
            System.out.println("借书费用为:"+Arrays.asList(day)+"元");
        }
        else if(check == false)
        {
            System.out.println("归还失败,未找到DVD!!!");
        }
        else 
        {
            System.out.println("归还失败,该DVD未借出!");
        }
    }

    /*
     * 6.查看排行
     * (按借出次数来降序,并更新顺序)
     */
    public void rankings()
    {
        for (int i = 0 ; i< dvd.length-1 ; i++) 
        {
            if(dvd[i+1]!= null &&dvd[i]!= null && (dvd[i].getTime() < dvd[i+1].getTime()))
            {
                Dvd d = new Dvd(); 
                d = dvd[i];
                dvd[i] =  dvd[i+1];
                dvd[i+1] = d;
            }
        }
        see();
    }

    /*
     * 0.退出DVD
     */
    public void exit()
    {
        System.out.println("*********************************");
        System.out.println("------------感谢您的使用-------------");
        System.out.println("*********************************");
        System.exit(0);//让JVM停止运行,结束程序。
    }
}//结束DvdDX类

最后一步、编写测试类调用菜单

public class Test{
    public static void main(String[] args) {
        DvdDX  st = new DvdDX ();
        st.init(); //调用初始化
        st.menu(); //进入菜单
    }
}
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值