迷你DVD管理系统

import java.util.*;
import java.text.*;

class DvdSet {

 //定义三个属性
 String[] name = new String[50]; // 为保证数组足够大
 String[] date = new String[50];// 借书的时间 
 int[]    state = new int[50];  // 借书的状态 , 0表示借出 ,1.表示可以借。
 int[]    count = new int[50]; // 借书的次数
}


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("******欢迎进入查看页面*****");
  //\t Tap
  System.out.println("序号\t名称\t\t状态\t借出时间\t");
  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+"\t"+"<<"+dvd.name[i]+">>\t已借出\t"+dvd.date[i]);
   }else if(dvd.state[i] == 1){

    //代没有借出
    System.out.println(i+1+"\t"+"<<"+dvd.name[i]+">>\t可借\t");
   }
  }

  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("序号\t名称\t\t状态\t借出时间\t");
  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+"\t"+"<<"+dvd.name[i]+">>\t已借出\t"+dvd.date[i]);
   }else if(dvd.state[i] == 1){

    //代没有借出
    System.out.println(i+1+"\t"+"<<"+dvd.name[i]+">>\t可借\t");
   }
  }

  System.out.println("**************************************");
   
 }

 
}

class DvdMain{

 public static void main (String[] args){

  DvdMgr dvd = new DvdMgr();
  //初始化dvd
  dvd.initial();

  //开始进入切换菜单
  dvd.startMenu();
 }
}

 

posted @ 2016-11-25 09:54  彬之华666  阅读(638)  评论(0编辑  收藏  举报