• java .简易版的DVD管理系统


    class DvdSet {
    
        //定义三个属性
        String[] name = new String[50]; // 为保证数组足够大
        String[] date = new String[50];// 借书的时间  
        int[]    state = new int[50];  // 借书的状态 , 0表示借出 ,1.表示可以借。
        int[]    count = new int[50]; // 借书的次数
    }
    import java.util.*;
    import java.text.*;
    class DvdMgr {
        
        //创建一个DvdSet对象
        DvdSet dvd = new DvdSet();    
        
        //1.第一个方法初始化三个DVD数据
        public void initial(){
            //初始化三个Dvd
             dvd.name[0]= "罗马假日";
               dvd.state[0]=0;
             dvd.count[0] = 30;
              dvd.date[0]= "2016-11-18";
              dvd.name[1]="风声鹤唳"; 
                   dvd.state[1]=1;
                   dvd.name[2]= "浪漫满屋";
                   dvd.state[2]=1; 
             dvd.count[2] = 10;
        }
    
        //2.实现一个菜单切换
        public void startMenu() {
    
            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.DVD排行榜   ******");
            System.out.println("******       7.退出        ******");
            System.out.println("*********************************");
    
            Scanner input = new Scanner(System.in);
            System.out.println("请输入您的操纵:");
            int option = input.nextInt();
    
            switch(option){
    
                case 1 :
                    addDvd();
                    returnMenu();
                    break;
    
                case 2 :
                    searchDvd();
                    returnMenu();    
                    break;
                case 3 :
                    deleteDvd();
                    returnMenu();
                    break;
                case 4 :
                    lendDvd();
                    returnMenu();
                    break;
                case 5 :
                    returnDvd();
                    returnMenu();
                    break;
                case 6:
                    list();
                    returnMenu();
                    
                    break;
                case 7:
                    System.out.println("谢谢使用,欢迎下次在来");
                    break;
                default:
                    System.out.println("输入异常,程序已经吓崩溃,正在重启中...");
                    break;
    
            }
            
        }
    
        //3.返回菜单
        public void returnMenu() {
            System.out.println("输入0返回:");
            Scanner input = new Scanner(System.in);
    
            if(input.nextInt() == 0){
                
                //在此进入菜单切换
                startMenu();
            }else {
            
                System.out.println("输入异常,请从输入:");
                returnMenu();  // 递归调用。
            }
            
        }
    
        //4.查看的功能
        public void searchDvd(){
            System.out.println("******欢迎进入查看页面*****");
            //	 Tap
            System.out.println("序号	名称		状态	借出时间	");
            for(int i=0;i<dvd.name.length ; i++){
                if(dvd.name[i] == null){
                    
                    break;
                }else if (dvd.state[i] == 0){
                    //代表已经借出
                    System.out.println(i+1+"	"+"<<"+dvd.name[i]+">>	已借出	"+dvd.date[i]);
                }else if(dvd.state[i] == 1){
    
                    //代没有借出
                    System.out.println(i+1+"	"+"<<"+dvd.name[i]+">>	可借	");
                }
            }
    
            System.out.println("**************************************");
                
        }
    
        //5.新增Dvd
        public void addDvd(){
            System.out.println("******欢迎进入添加页面*****");
            System.out.println("请输入您要添加的Dvd:");
            Scanner input = new Scanner(System.in);
            String name = input.next();
            //将新增的内容放到最后
            for(int i = 0;i<dvd.name.length;i++){
                
                if(dvd.name[i] == null){ //到最后去了。
    
                    dvd.name[i] = name;
                    dvd.state[i] = 1;
                    System.out.println("<<"+name+">>dvd添加成功");
                    break;
                }
            }
            
        }
    
        //6.删除dvd
    
        public void deleteDvd(){
            System.out.println("******欢迎进入删除页面*****");
            System.out.println("请输入您要删除的Dvd名称:");
            Scanner input = new Scanner(System.in);
            String name = input.next();
    
            //1.没有找到  :  提示没有找到 请重新输入
            //2.找到 :
                //1.已经借出去 : 不能够删除
                //2.没有借出去 : 删除
    
            for(int i = 0;i<dvd.name.length;i++){
                //查找是否存在
                if(dvd.name[i] != null){
    
                    if(dvd.name[i].equalsIgnoreCase(name)){ //已经找到
    
                        //是否已经被借出
                        if(dvd.state[i] == 0){ // 借出
                            System.out.println("《"+name+"》已经被借出");
                            break;
                        }else if(dvd.state[i] == 1) {
    
                            //没有借出需要删除
                            //思路 : 1.用后面一个替换前面的。
                                //2.把最后面多余的地方赋值为null.
                            
    
                            for(int j = i ;j<dvd.name.length;j++){
                                
                                //做交换
                                if(dvd.name[j +1] != null){
                                    dvd.name[j] = dvd.name[j+1];
                                    dvd.state[j] = dvd.state[j+1];
    
                                }else{
                                    //清空最后一个值
                                    dvd.name[j] = null;
                                    dvd.date[j] = null;
                                    break;
                                }
                                
                            }
    
                            System.out.println("删除《"+name+"》成功");
                            break;
                        }
                    }
    
                }else {
                        
                        System.out.println("没有您要删除的dvd");
                        System.out.println("***********************************************");
                        break;
                    }    
            }
    
        }
    
    
        //7.借dvd的功能
        public void lendDvd(){
            System.out.println("********欢迎进入借书页面********");
            System.out.println("请输入您要借的dvd名称:");
            Scanner input = new  Scanner(System.in);
            String name = input.next();
            
            //1.判断有没有dvd
                //1.又没有被借出去。
            for(int i = 0;i<dvd.name.length;i++){
    
                if(dvd.name[i] != null){ // 有dvd
    
                    if(dvd.name[i].equalsIgnoreCase(name) && dvd.state[i] == 1){ //有书并且没有被借出去
                        
                        //借书
                        //1.修改状态
                        dvd.state[i] = 0;
                        System.out.println("请输入借书的时间(年-月-日):");
                        Scanner inputDate = new Scanner(System.in);
                        dvd.date[i] = inputDate.next();
                        System.out.println("借书成功");
                        dvd.count[i]++;
                        break;
    
                    }else if(dvd.name[i].equalsIgnoreCase(name) && dvd.state[i] == 0){
                        System.out.println("不好意思此借书已经被借出");
                        break;
                    }
    
                }else { // dvd
                    
                    System.out.println("没有您要找的DVD");
                    break;
                }
            }
    
        }
    
        //8.还Dvd 计算价格
        public void returnDvd(){
    
            System.out.println("********欢迎进入还DVD页面******************");
            System.out.println("请输入还dvd的名称:");
            Scanner input = new Scanner(System.in);
            double  price = 0.0;
            String name = input.next();
            for(int i = 0;i<dvd.name.length;i++){
    
                if(dvd.name[i]!=null){ //
    
                    if(dvd.name[i].equalsIgnoreCase(name) && dvd.state[i] == 0){ //以借出就可以归还
                        dvd.state[i] = 1;
                        System.out.println("请输入归还书籍的时间(年-月-日):");
                        Scanner inputDate = new Scanner(System.in);
                        //获取时间差
                        long charge = charge(dvd.date[i],inputDate.next());
                        price = charge * 1;
                        System.out.println("《"+dvd.name[i]+"》归还成功");
                        System.out.println("您应付"+price+"元");
                        //清空时间
                        dvd.date[i] = null;
                        break;
    
                    }
    
                }else{
                    System.out.println("没有找到匹配的信息");
                    break;
                }
            }
            System.out.println("************************************************");
    
        }
    
        public long charge(String date1,String date2){
            
            //做时间差
            //将String转为Date做计算
            SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
            long charge = 0;
            try{
                Date d1 = sd.parse(date1);  
                Date d2 = sd.parse(date2);
                //时间也是以毫秒为单位。
                charge = (d2.getTime() - d1.getTime()) / (1000*24*60*60);
            }catch(ParseException e){
                System.out.println(e);
            }
            
            return charge;
        }
    
    
        //排行榜
        public void list(){
    
            System.out.println("欢迎进入Dvd排行榜");
            //排序
            for(int i = 0 ; i <dvd.name.length-1;i++){
    
                if(dvd.name[i] != null){
                    
                    for(int j = 0; j<dvd.name.length-1-i;j++){
    
                        if(dvd.name[j] != null){
    
                            if(dvd.count[j] < dvd.count[j+1]){
    
                            int temp = dvd.count[j];
                            dvd.count[j] = dvd.count[j+1];
                            dvd.count[j+1]= temp;
                            
                            String name1 = dvd.name[j];
                            dvd.name[j] = dvd.name[j+1];
                            dvd.name[j+1] = name1;    
    
                            String date1= dvd.date[j];
                            dvd.date[j] = dvd.date[j+1];
                            dvd.date[j+1] = date1;    
                            
                            int state1= dvd.state[j];
                            dvd.state[j] = dvd.state[j+1];
                            dvd.state[j+1] = state1;
    
                            }
                        }else {
                            break;
                        }
                        
                        
                    }
    
                }else{
                    break;
                }
            }
            System.out.println("序号	名称		状态	借出时间	");
            for(int i=0;i<dvd.name.length ; i++){
                if(dvd.name[i] == null){
                    
                    break;
                }else if (dvd.state[i] == 0){
                    //代表已经借出
                    System.out.println(i+1+"	"+"<<"+dvd.name[i]+">>	已借出	"+dvd.date[i]);
                }else if(dvd.state[i] == 1){
    
                    //代没有借出
                    System.out.println(i+1+"	"+"<<"+dvd.name[i]+">>	可借	");
                }
            }
    
            System.out.println("**************************************");
                
        }
    
        
    
    
    }
    
    
    
    
    
    class DvdMain{
    
        public static void main (String[] args){
    
            DvdMgr dvd = new DvdMgr();
            //初始化dvd
            dvd.initial();
    
            //开始进入切换菜单
            dvd.startMenu();
        }
    }
  • 相关阅读:
    洛谷 P1195 口袋的天空
    洛谷 P3144 [USACO16OPEN]关闭农场Closing the Farm_Silver
    Bzoj3277 串
    Bzoj1312 / POJ3155 Neerc2006 Hard Life
    Bzoj2655 calc
    51Nod 1228 序列求和
    洛谷P2901 [USACO08MAR]牛慢跑Cow Jogging
    Bzoj1042 [HAOI2008]硬币购物
    Bzoj3884 上帝与集合的正确用法
    Bzoj4161 Shlw loves matrixI
  • 原文地址:https://www.cnblogs.com/chEnYoNg11/p/6077984.html
Copyright © 2020-2023  润新知