图书管理系统

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Scanner;


class SetDvd{
    //书名
    List<String> name =new ArrayList<String>();
    //时间
    List<String> date =new ArrayList<String>();
    //状态//借书的状态 , 0表示借出 ,1.表示可以借。
    List<Integer> state =new ArrayList<Integer>();
    //次数
    List<Integer> count =new ArrayList<Integer>();
}
class MgrDvd {
     String inn;
    SetDvd dvd =new SetDvd();
    
    //1.第一个方法初始化三个DVD数据
    public void initial(){
        //初始化三个Dvd
         dvd.name.add("我本坏蛋");
         dvd.date.add("2016-11-18");
           dvd.state.add(0);
         dvd.count.add(30);
         
          dvd.name.add("吞噬星空"); 
          dvd.date.add("yyyy-MM-dd");
         dvd.state.add(1);
         dvd.count.add(2);
               
         dvd.name.add("英雄联盟");
         dvd.date.add("yyyy-MM-dd");
         dvd.state.add(1); 
         dvd.count.add(10);
    }
    //是否进入dvd管理器
    public void inDvd(){
        Scanner str =new Scanner(System.in);
        String inn =str.next();
        if(inn.equals("YES") ||(inn.equals("yes"))){
            startDvd();
        }else{
            System.out.println("谢谢使用,欢迎再次的尝试");
            inDvd();
        }
        
    }
    //dvd 管理器界面
    public void startDvd(){
        
        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("******       7.退出                     ******");
        System.out.println("********************************");
        System.out.println("您好!需要什么帮助请输入以上需求对应的数字。谢谢!");
        selectDvd();
    }
  
    
    // dvd管理器选择表
    public void selectDvd(){
        System.out.println("您好! 我是0001智能服务员,很高兴为您服务。请选择:");
        System.out.print("-------> ");
        Scanner cou = new Scanner(System.in);
        int option = cou.nextInt();
        
        switch(option){
        case 1:
            System.out.println("******       新增DVD     ******");
          System.out.println("你想添加几个,请输入要添加的个数");
          Scanner sc = new Scanner(System.in);
          int  sca = sc.nextInt();
          for(int i=0; i<sca;i++){
            addDvd();
          }
            returnDvd();
            System.out.println("********************************");
            break;
        case 2:
            System.out.println("******       查看DVD     ******");
            lookDvd();
            returnDvd();
            System.out.println("********************************");
            break;
        case 3:
            System.out.println("******       删除DVD     ******");
             System.out.println("你想要删除几个,请输入要删除的个数");
              Scanner sc1 = new Scanner(System.in);
              int  sca1 = sc1.nextInt();
              for(int i=0; i<sca1;i++){
                  removeDvd();
              }
            
            returnDvd();
            System.out.println("********************************");
            break;
        case 4:
            System.out.println("******       借出DVD     ******");
             System.out.println("你想要借几个,请输入要借出的个数");
              Scanner sc2 = new Scanner(System.in);
              int  sca2 = sc2.nextInt();
              for(int i=0; i<sca2;i++){
                  lendDvd();
              }
           
            returnDvd();
            System.out.println("********************************");
            break;
        case 5:
            System.out.println("******       归还DVD     ******");
             System.out.println("你想归还几个,请输入要归还的个数");
              Scanner sc3 = new Scanner(System.in);
              int  sca3 = sc3.nextInt();
              for(int i=0; i<sca3;i++){
        bringDvd();
              }
        
            returnDvd();
            System.out.println("********************************");
            break;
        case 6:
            System.out.println("******       DVD排行榜         ******");
            list();
            returnDvd();
            System.out.println("********************************");
            break;
        case 7:
            System.out.println("******       退出                     ******");
            System.out.println("亲~ 谢谢使用迷你DVD管理器。");
            System.out.println("********************************");
            break;
        default:
            System.out.println("         你好,请输入正确的指令:  " );
            startDvd();
            System.out.println("********************************");
        }
    }
    //dvd管理器 返回界面
      public void returnDvd(){
          System.out.println("*********  输入0 返回    **********" );
             Scanner c = new Scanner(System.in);
             int option =c.nextInt();
             if(option==0){
                 startDvd();
             }else{
                 System.out.println("sb 你输错了,哈哈 ...yes 再试一下");
                 returnDvd();
             }    
          }
      // 新增DVD
      public  void addDvd(){
          System.out.println(" 输入你要新增的DVD名");
          Scanner input = new Scanner(System.in);
          String n =input.next();
         dvd.name.add(n);
         dvd.state.add(1);
         dvd.date.add("yyyy-MM-dd");
         dvd.count.add(0);//新增的DVD 次数为0
         System.out.println( "<<"+n+">>添加成功");
          }
      //查看DVD
      public void lookDvd(){
        System.out.println("序号	名称			状态		借出时间		借出的次数");
        for(int i=0; i<dvd.state.size();i++){
            if(dvd.state.get(i)==0){
                System.out.println((i+1)+"	"+"<<"+dvd.name.get(i)+">>"+"	"+"	"+"已借出	"+"	"+dvd.date.get(i)+"	"+dvd.count.get(i));
            }else if(dvd.state.get(i)==1){
                System.out.println((i+1)+"	"+"<<"+dvd.name.get(i)+">>"+"	"+"	"+"未借出	"+"	"+dvd.date.get(i)+"	"+dvd.count.get(i));
            } 
        }
        
      }
        //删除DVD    
     public void removeDvd(){
         System.out.println("输入你要删除的名字:");
         Scanner c =new Scanner(System.in);
         String input = c.next();
         int num = dvd.name.indexOf(input);
         if(num>=0){
            if(dvd.state.get(num).intValue() !=0){
                dvd.name.remove(num);
                dvd.state.remove(num);
                dvd.date.remove(num);
                dvd.count.remove(num);
                System.out.println("<<"+input+">>删除成功");
            } else{
                System.out.println("DvD已被借出 ,不能删除");
            }
         }else {
             System.out.println("请确认DVD的名字");
         } 
         
     } 
     
     //借出Dvd
     public void lendDvd(){
         System.out.println("输入要借的DVD的名字");
         Scanner c =new Scanner(System.in);
         String input = c.next();
         int num = dvd.name.indexOf(input);
         if(num>=0){
            if(dvd.state.get(num).intValue()!=0){
                System.out.println("输入借DVD的时间");
                String times = c.next();
                dvd.state.set(num,0);
                dvd.date.set(num, times);
                dvd.count.set(num, dvd.count.get(num)+1);//次数+1
                System.out.println("借DVD<<"+input+">>成功,祝你看的愉快!");
            }else{
                System.out.println("DVD已被借出,不能再借");
            }
         }else {
             System.out.println("不好意思,没有此dvd");
         }
          
     }
     //归还DVD
     public void bringDvd(){
         System.out.println("输入你要还的DVD");
         Scanner c =new Scanner(System.in);
         String input = c.next();
         int num = dvd.name.indexOf(input);
         if(num>=0){
             if(dvd.state.get(num).intValue()==0){
                 System.out.println("输入还DVD的时间");
                 String times = c.next();
             long  money=charge(dvd.date.get(num),times);
                 dvd.state.set(num,1);
                 dvd.date.set(num,"yyyy-MM-dd");
                 System.out.println("你的借DVD<<"+input+">>的天数为"+money+"要交的钱为"+(money*2));
                 System.out.println("归还DVD成功,谢谢使用  您还有别的需要吗");
             }else{
                 System.out.println("此DVD你没有借");
             }
          }else {
              System.out.println("不好意思,没有此dvd");
          }
         
     } 
     
     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(){
         Object[] ocCount =dvd.count.toArray();
         Object[] ocName = dvd.name.toArray();
         System.out.println(dvd.count.size()+" "+dvd.name.size());
         int temp=0;
         String str=null;
         for(int i = 0;i<dvd.count.size()-1;i++){
             for(int j =0 ; j<dvd.count.size()-1-i;j++){
                 if((int)ocCount[j]<(int)ocCount[j+1]){
                     
                     temp =(int)ocCount[j];
                     ocCount[j]=ocCount[j+1];
                     ocCount[j+1]=temp;
                     
                     str =(String)ocName[j];
                     ocName[j] = (String)ocName[j+1];
                     ocName[j+1] =str;
                 }
             }
         }
        // System.out.println("序号	"+"DVD		"+"	"+"借出的次数");
         for(int i =0 ;i<dvd.count.size();i++){
             System.out.println((i+1) + "	" + "<<"+ocName[i]+">>" + "		" + ocCount[i]);

             
         }
     }
    
}
public class demo1 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
       //初始化dvd
        System.out.println("******  欢迎使用迷你DVD管理器    ******");
         System.out.println("您是否要进入迷你DVD管理器:YES ? NO");  
        MgrDvd dvd = new MgrDvd();
        dvd.initial();
        dvd.inDvd();
        //调用存入的内容
        
        
        
    }

}
原文地址:https://www.cnblogs.com/zhv5/p/6124394.html