基本信息
源码名称:Java DVD管理器 基础示例代码下载
源码大小:3.31KB
文件格式:.zip
开发语言:Java
更新时间:2017-04-03
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 3 元 
   源码介绍



import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
public class DVDMgr {
	/**
	 * 创建DVD对象
	 */
	DVDSet dvd = new DVDSet();
	/**
	 * 初始三个DVD	 
	 */
    public void initial() {
    	
    	dvd.name[0] = "罗马假日";
    	dvd.state[0] = 0; 
    	dvd.date[0]="2010-7-1";
    	dvd.count[0]=15;
    	
    	dvd.name[1] = "风声鹤唳";
    	dvd.state[1] = 1;  
    	dvd.count[1]=12;
    	
    	dvd.name[2] = "浪漫满屋";
    	dvd.state[2] = 1;
    	dvd.count[2]=30;
    }	
	/**
	 * 开始菜单
	 */
	public void startMenu(){
		 System.out.println("欢 迎 使 用 迷 你 DVD 管 理 器");
	   	 System.out.println("-------------------------------------");
	   	 System.out.println("0. 借出排行榜");
	   	 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.print("--------------------------------------\n");
	
	   	 System.out.print("请选择: ");
	   	 Scanner input = new Scanner(System.in);
	   	 int choice = input.nextInt();
	   	 switch(choice){
	   	 	case 0:
	   	    	list();
	   	    	break;
	   	 	case 1:
	   	    	add();
	   	    	break;
	   	    case 2: 
	   	    	search();
	   	    	break;
	   	    case 3:
	   	    	delete();
	   	    	break;
	   	    case 4:
	   	    	lend();
	   	    	break;
	   	    case 5:
	   	    	returnDvd();
	   	    	break;
	   	    case 6:
	   	    	System.out.println("\n谢谢 使 用!");
	   	    	break;
	   	 }
    }
	/**
     * 返回主菜单
     */
    public void returnMain(){
   	 Scanner input = new Scanner(System.in); 
   	 System.out.print("输入0返回:");
        if(input.nextInt() == 0){
       	 startMenu();
        }else{
       	 System.out.println("输入错误, 异常终止!");
        }
    }
    /**
     * 查看DVD
     */
    public void search(){
    	System.out.println("---> 查看DVD\n");
    	System.out.println("序号\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已借出\t" "<<"  dvd.name[i]  ">>\t"   dvd.date[i]);
   		    }else if(dvd.state[i] == 1){
   			    System.out.println((i 1) "\t可 借\t" "<<" dvd.name[i] ">>");
   		    }
   	    }
    	System.out.println("**************************");
    	returnMain(); 	 
    }
    /**
     * 新增DVD
     */
    public void add(){
     Scanner input = new Scanner(System.in);
   	 System.out.println("---> 新增DVD\n");    	
   	 System.out.print("请输入DVD名称: ");
   	 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;//置新增的DVD可借状态
   			 System.out.println("新增《" name "》成功!");
   			 break;
   		 }
   	 }
   	 System.out.println("**************************");
   	 returnMain();   
    }    
    /**
     * 删除DVD
     */
    public void delete(){
    	Scanner input = new Scanner(System.in);
    	boolean flag=false;//标识删除成功与否
    	System.out.println("---> 删除DVD\n");
    	System.out.print("请输入DVD名称: ");
      	String name = input.next();  
      	//遍历数组,查找匹配信息
      	for(int i = 0 ; i < dvd.name.length; i  ){
      		//查找到,每个元素前移一位
      		if(dvd.name[i]!=null &&dvd.name[i].equalsIgnoreCase(name)&&dvd.state[i]==1){
      			int j=i;
      			while(dvd.name[j 1]!=null){
      				dvd.name[j]=dvd.name[j 1];
      				dvd.state[j]=dvd.state[j 1];
      				dvd.date[j]=dvd.date[j 1];
      				j  ;
      			}
      			//最后一个不为空的元素置空
   				dvd.name[j]=null;   				
   				dvd.date[j]=null; 
   			 System.out.println("删除《" name "》成功!");
   			 flag=true;//置位,表示删除成功
   			 break;
      		}else if(dvd.name[i]!=null &&dvd.name[i].equalsIgnoreCase(name)&&dvd.state[i]==0){
      			System.out.println("《" name "》为借出状态,不能删除!"); 
      			flag=true;//置位
      			break;
      		}
      	}
      	if(!flag){
      		System.out.println("没有找到匹配信息!");
      	}
      	System.out.println("**************************");
      	returnMain(); 	 
    }
    /**
     * 借出DVD
     */
    public void lend(){
   	 System.out.println("---> 借出DVD\n");
   	 
   	 Scanner input = new Scanner(System.in);
   	 System.out.print("请输入DVD名称: ");
   	 String want = input.next();  //要借出的DVD名称 
   	 for(int i = 0; i < dvd.name.length; i  ){   		 
   		 if(dvd.name[i] == null){    //无匹配
   			 System.out.println("没有找到匹配信息!");
   			 break;
   		 }else if(dvd.name[i].equals(want)&& dvd.state[i]==1){  //找到匹配可借	 
   			 dvd.state[i] = 0;
   			 System.out.print("请输入借出日期(年-月-日):");
   			 dvd.date[i]=input.next();
   			 System.out.println("借出《" want "》成功!");   			
   			 dvd.count[i]  ;
   			 break;
   		 }else if(dvd.name[i].equals(want)&& dvd.state[i]==0){  //找到匹配已被借出 			
   			 System.out.println("《" want "》已被借出!");
   			 break;
   		 }   		 
   	 }
   	 System.out.println("**************************");
   	 returnMain();
    }
    /**
     * 归还DVD并计算租金
     */
    public void returnDvd(){
   	 System.out.println("---> 归还DVD\n");
   	 
   	 Scanner input = new Scanner(System.in);
   	 long loan=0;//租金
   	 System.out.print("请输入DVD名称: ");
   	 String want = input.next();
   	 for(int i = 0; i < dvd.name.length; i  ){   		 
   		 if(dvd.name[i] == null){    //无匹配
   			 System.out.println("没有找到匹配信息!");
   			 break;
   		 }else if(dvd.name[i].equals(want) && dvd.state[i]==0){  //找到匹配	 
   			 dvd.state[i] = 1;
   			 System.out.print("请输入归还日期(年-月-日):");
   			 String redate=input.next();
   			 //计算租金
   			 loan=charge(dvd.date[i],redate);
   			 System.out.println("\n归还《" want "》成功!");
   			 System.out.println("借出日期为:" dvd.date[i]);
   			 System.out.println("归还日期为:" redate);
   			 System.out.println("应付租金(元):" loan);
   			 break;
   		 }  else if(dvd.name[i].equals(want) && dvd.state[i]==1){ //找到匹配但没有借出
   			System.out.println("该DVD没有被借出!无法进行归还操作。");
   			break;
   		 }
   	 }
   	 System.out.println("**************************");
   	 returnMain();
    }
    /**
     * 计算日期差
     * @param dstr1 第一个日期
     * @param dstr2 第二个日期
     * 
     */
    public long charge(String dstr1,String dstr2){
    	long charge=0;
    	SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM-dd");
    	try {
			Date d1=sd.parse(dstr1);
			Date d2=sd.parse(dstr2);
			charge=(d2.getTime()-d1.getTime())/(24*60*60*1000);
		} catch (ParseException e) {			
			e.printStackTrace();			
		}    	
    	return charge;
    }
    /**
     * 借出排行榜
     */
    public void list(){
    	//定义新数组,用来存放排序后DVD信息
    	String[] newname = new String[50];   //       
        int[] newcount=new int[50];  
        for(int k=0;k<dvd.name .length;k  ){
        	 newname[k]=dvd.name[k];
             newcount[k]=dvd.count[k];
        }
          	
    	//利用冒泡排序算法进行排序
    		for(int i=0;i<newname.length-1;i  ){
	    		for(int j=0;j<newname.length-i-1;j  ){
	    			if(newcount[j]>newcount[j 1]){
	    				int tempc=newcount[j];
	    				newcount[j]=newcount[j 1];
	    				newcount[j 1]=tempc;
	    				
	    				String tempn=newname[j];
	    				newname[j]=newname[j 1];
	    				newname[j 1]=tempn;
	    			}    			
	    		}    		
	    	}
    	System.out.println("---> 排行榜\n");
    	System.out.println("**************************");
    	System.out.println("次数\t名称");
    	//显示排行榜信息
    	for(int i=newname.length-1;i>=0;i--){
    		if(newname[i]!=null){
    			System.out.println(newcount[i] "\t<<"  newname[i]  ">>" );
    		}
    	}      
      	 System.out.println("**************************");
      	 returnMain();
       }
}