• jh_01_编程入门小案例练习


    用例1:数据初始化2-1

    需求说明

    初始化DVD信息

    思路分析

    创建项目MiniDvd

      创建类DVDSet,

        添加相应属性

    创建类DVDMgr,

        添加方法initial(),初始化三张DVD碟片信息

    1 public class DVDSet {
    2     String[] name = new String[50];   //数组1存储DVD名称数组
    3     int[] state = new int[50];        //数组2存储DVD借出状态:0已借出/1可借
    4     String[] date=new String[50];     //数组3存储DVD借出日期
    5    
    6 }
     1 public class DVDMgr {
     2     /**
     3      * 创建DVD对象
     4      */
     5     DVDSet dvd = new DVDSet();
     6     /**
     7      * 初始三个DVD     
     8      */
     9     public void initial() {
    10         
    11         dvd.name[0] = "罗马假日";
    12         dvd.state[0] = 0; 
    13         dvd.date[0]="2013-7-1";
    14         
    15         dvd.name[1] = "风声鹤唳";
    16         dvd.state[1] = 1;        
    17         dvd.name[2] = "浪漫满屋";
    18         dvd.state[2] = 1;
    19     }    
    20     
    21 }

    用例2:实现菜单切换2-1

    需求说明

    编写程序入口,实现菜单显示和切换

    思路分析

    创建方法startMenu(), 实现菜单切换

    创建方法returnMain() , 返回主菜单

    编写类Start,实现程序入口

    难点提示 使用switch语句实现菜单切换

    欢 迎 使 用 迷 你 DVD 管 理 器
    -------------------------------------
    1. 新 增 DVD
    2. 查 看 DVD
    3. 删 除 DVD
    4. 借 出 DVD
    5. 归 还 DVD
    6. 退         出 
    --------------------------------------
    请选择: 1
    此处实现新增DVD 
    **************************
    输入0返回:0
    欢 迎 使 用 迷 你 DVD 管 理 器
    -------------------------------------
    1. 新 增 DVD
    2. 查 看 DVD
    3. 删 除 DVD
    4. 借 出 DVD
    5. 归 还 DVD
    6. 退         出 
    --------------------------------------
    请选择: 6
    
    谢谢 使 用!
     1 /**
     2      * 开始菜单
     3      */
     4     public void startMenu(){
     5          System.out.println("欢 迎 使 用 迷 你 DVD 管 理 器");
     6             System.out.println("-------------------------------------");
     7             System.out.println("1. 新 增 DVD");
     8             System.out.println("2. 查 看 DVD");
     9             System.out.println("3. 删 除 DVD");
    10             System.out.println("4. 借 出 DVD");
    11          System.out.println("5. 归 还 DVD");
    12             System.out.println("6. 退         出 ");
    13             System.out.print("--------------------------------------
    ");
    14     
    15             System.out.print("请选择: ");
    16             Scanner input = new Scanner(System.in);
    17             int choice = input.nextInt();
    18             switch(choice){
    19                case 1:
    20                    System.out.println("此处实现新增DVD ");//add();
    21                    System.out.println("**************************");
    22                    returnMain();
    23                    break;
    24                case 2: 
    25                    System.out.println("此处实现查看DVD ");//search();
    26                    System.out.println("**************************");
    27                    returnMain();
    28                    break;
    29                case 3:
    30                    System.out.println("此处实现删除DVD ");//delete();
    31                    System.out.println("**************************");
    32                    returnMain();
    33                    break;
    34                case 4:
    35                    System.out.println("此处实现借出DVD ");//lend();
    36                    System.out.println("**************************");
    37                    returnMain();
    38                    break;
    39                case 5:
    40                    System.out.println("此处实现归还DVD ");//returnDvd();
    41                    System.out.println("**************************");
    42                    returnMain();
    43                    break;
    44                case 6:
    45                    System.out.println("
    谢谢 使 用!");
    46                    break;
    47             }
    48     }
    49     /**
    50      * 返回主菜单
    51      */
    52     public void returnMain(){
    53         Scanner input = new Scanner(System.in); 
    54         System.out.print("输入0返回:");
    55         if(input.nextInt() == 0){
    56             startMenu();
    57         }else{
    58             System.out.println("输入错误, 异常终止!");
    59         }
    60     }
     1 public class Start1 {
     2 
     3     /**
     4      * @param args
     5      */
     6     public static void main(String[] args) {
     7         DVDMgr1 dm=new DVDMgr1();    
     8         dm.initial();
     9         dm.startMenu();
    10 
    11     }
    12 
    13 }

    用例3:实现查看DVD信息2-1

    需求说明

      遍历dvd,获取数组元素信息,并进行显示

    思路分析

      在类DVDMgr中创建方法 search(),完成功能要求

      根据状态值输出“已借出” 或“可借”

    难点提示

      循环结束条件:

        dvd.name[i]==null

    欢 迎 使 用 迷 你 DVD 管 理 器
    -------------------------------------
    1. 新 增 DVD
    2. 查 看 DVD
    3. 删 除 DVD
    4. 借 出 DVD
    5. 归 还 DVD
    6. 退         出 
    --------------------------------------
    请选择: 2
    ---> 查看DVD
    
    序号    状 态    名称        借出日期
    1    已借出    <<罗马假日>>    2013-7-1
    2    可 借    <<风声鹤唳>>
    3    可 借    <<浪漫满屋>>
    **************************
    输入0返回:
    1           case 2: 
    2                    search();                   
    3                  break;
     1 /**
     2      * 查看DVD
     3      */
     4     public void search(){
     5         System.out.println("---> 查看DVD
    ");
     6         System.out.println("序号	状 态	名称		借出日期");
     7         for(int i = 0 ; i < dvd.name.length; i++){
     8                if(dvd.name[i]==null){
     9                    break;
    10                }else if(dvd.state[i] == 0){
    11                    System.out.println((i+1)+"	已借出	"+"<<"+ dvd.name[i]+ ">>	" + dvd.date[i]);
    12                }else if(dvd.state[i] == 1){
    13                    System.out.println((i+1)+"	可 借	"+"<<"+dvd.name[i]+">>");
    14                }
    15            }
    16         System.out.println("**************************");
    17         returnMain();      
    18     }

    用例4:实现新增DVD信息2-1

    需求说明:

      向dvd数组增加一条DVD信息, 实现新增DVD信息

    思路分析

      在类DVDMgr中创建方法add(),

      完成功能要求

        定位新增位置

        插入DVD信息,状态值为1

    难点提示

      定位新增位置:

        第一个name为 null的位置

    欢 迎 使 用 迷 你 DVD 管 理 器
    -------------------------------------
    1. 新 增 DVD
    2. 查 看 DVD
    3. 删 除 DVD
    4. 借 出 DVD
    5. 归 还 DVD
    6. 退         出 
    --------------------------------------
    请选择: 1
    ---> 新增DVD
    
    请输入DVD名称: xiaojiejie
    新增《xiaojiejie》成功!
    **************************
    输入0返回:0
    欢 迎 使 用 迷 你 DVD 管 理 器
    -------------------------------------
    1. 新 增 DVD
    2. 查 看 DVD
    3. 删 除 DVD
    4. 借 出 DVD
    5. 归 还 DVD
    6. 退         出 
    --------------------------------------
    请选择: 2
    ---> 查看DVD
    
    序号    状 态    名称        借出日期
    1    已借出    <<罗马假日>>    2013-7-1
    2    可 借    <<风声鹤唳>>
    3    可 借    <<浪漫满屋>>
    4    可 借    <<xiaojiejie>>
    **************************
    输入0返回:
    1 case 1:
    2     add();                   
    3 break;
     1 /**
     2      * 新增DVD
     3      */
     4     public void add(){
     5      Scanner input = new Scanner(System.in);
     6         System.out.println("---> 新增DVD
    ");        
     7         System.out.print("请输入DVD名称: ");
     8         String name = input.next();  
     9         for(int i = 0; i < dvd.name.length; i++){            
    10             if(dvd.name[i] == null){    //查询最后一个空位置插入
    11                dvd.name[i]=name;
    12                dvd.state[i]=1;//置新增的DVD可借状态
    13                 System.out.println("新增《"+name+"》成功!");
    14                 break;
    15             }
    16         }
    17         System.out.println("**************************");
    18         returnMain();   
    19     } 

    用例5:实现删除DVD信息2-1

    需求说明

      按照输入的名称,删除指定DVD 信息

    思路分析

      查找要删除元素

      通过把后面的元素依次前移 一位,实现删除;

      最后一个不为空元素置空

    难点提示

      不允许删除借出状态的DVD

      不存在指定DVD,给出提示

    欢 迎 使 用 迷 你 DVD 管 理 器
    -------------------------------------
    1. 新 增 DVD
    2. 查 看 DVD
    3. 删 除 DVD
    4. 借 出 DVD
    5. 归 还 DVD
    6. 退         出 
    --------------------------------------
    请选择: 3
    ---> 删除DVD
    
    请输入DVD名称: 罗马假日
    《罗马假日》为借出状态,不能删除!
    **************************
    输入0返回:
    请选择: 3
    ---> 删除DVD
    
    请输入DVD名称: 浪漫满屋
    删除《浪漫满屋》成功!
    **************************
    输入0返回:
    1 case 3:
    2     delete();                   
    3 break;
     1 /**
     2      * 删除DVD
     3      */
     4     public void delete(){
     5         Scanner input = new Scanner(System.in);
     6         boolean flag=false;//标识删除成功与否
     7         System.out.println("---> 删除DVD
    ");
     8         System.out.print("请输入DVD名称: ");
     9           String name = input.next();  
    10           //遍历数组,查找匹配信息
    11           for(int i = 0 ; i < dvd.name.length; i++){
    12               //查找到,每个元素前移一位
    13               if(dvd.name[i]!=null &&dvd.name[i].equalsIgnoreCase(name)&&dvd.state[i]==1){
    14                   int j=i;
    15                   while(dvd.name[j+1]!=null){
    16                       dvd.name[j]=dvd.name[j+1];
    17                       dvd.state[j]=dvd.state[j+1];
    18                       dvd.date[j]=dvd.date[j+1];
    19                       j++;
    20                   }
    21                   //最后一个不为空的元素置空
    22                    dvd.name[j]=null;                   
    23                    dvd.date[j]=null; 
    24                 System.out.println("删除《"+name+"》成功!");
    25                 flag=true;//置位,表示删除成功
    26                 break;
    27               }else if(dvd.name[i]!=null &&dvd.name[i].equalsIgnoreCase(name)&&dvd.state[i]==0){
    28                   System.out.println("《"+name+"》为借出状态,不能删除!"); 
    29                   flag=true;//置位
    30                   break;
    31               }
    32           }
    33           if(!flag){
    34               System.out.println("没有找到匹配信息!");
    35           }
    36           System.out.println("**************************");
    37           returnMain();      
    38     }

    用例6:实现借出DVD业务处理2-1

    需求说明

      按照输入的名称,借出 指定DVD

    思路分析

      查找要借出的DVD

      判断是否存在

      判断是否已借出

        如果可借,修改state值

    难点提示

      各种情况的判断条件

    欢 迎 使 用 迷 你 DVD 管 理 器
    -------------------------------------
    1. 新 增 DVD
    2. 查 看 DVD
    3. 删 除 DVD
    4. 借 出 DVD
    5. 归 还 DVD
    6. 退         出 
    --------------------------------------
    请选择: 4
    ---> 借出DVD
    
    请输入DVD名称: 浪漫满屋
    请输入借出日期(年-月-日):2222-2-2
    借出《浪漫满屋》成功!
    **************************
    输入0返回:0
    欢 迎 使 用 迷 你 DVD 管 理 器
    -------------------------------------
    1. 新 增 DVD
    2. 查 看 DVD
    3. 删 除 DVD
    4. 借 出 DVD
    5. 归 还 DVD
    6. 退         出 
    --------------------------------------
    请选择: 2
    ---> 查看DVD
    
    序号    状 态    名称        借出日期
    1    已借出    <<罗马假日>>    2013-7-1
    2    可 借    <<风声鹤唳>>
    3    已借出    <<浪漫满屋>>    2222-2-2
    **************************
    输入0返回:
    1 case 4:
    2     lend();                   
    3 break;
     1 /**
     2      * 借出DVD
     3      */
     4     public void lend(){
     5         System.out.println("---> 借出DVD
    ");
     6         
     7         Scanner input = new Scanner(System.in);
     8         System.out.print("请输入DVD名称: ");
     9         String want = input.next();  //要借出的DVD名称 
    10         for(int i = 0; i < dvd.name.length; i++){            
    11             if(dvd.name[i] == null){    //无匹配
    12                 System.out.println("没有找到匹配信息!");
    13                 break;
    14             }else if(dvd.name[i].equals(want)&& dvd.state[i]==1){  //找到匹配可借     
    15                 dvd.state[i] = 0;
    16                 System.out.print("请输入借出日期(年-月-日):");
    17                 dvd.date[i]=input.next();
    18                 System.out.println("借出《"+want+"》成功!");
    19                 break;
    20             }else if(dvd.name[i].equals(want)&& dvd.state[i]==0){  //找到匹配已被借出             
    21                 System.out.println("《"+want+"》已被借出!");
    22                 break;
    23             }            
    24         }
    25         System.out.println("**************************");
    26         returnMain();
    27     }

    用例7:实现归还DVD业务处理

    需求说明

      编写方法 returnDvd(),实 现归还DVD,并计算租金

    思路分析

      查找要归还的DVD

      判断是否存在

      判断是否未借出

      如果已借出,修改state值, 并计算和输出租金

    难点提示

      字符串-日期转换

    欢 迎 使 用 迷 你 DVD 管 理 器
    -------------------------------------
    1. 新 增 DVD
    2. 查 看 DVD
    3. 删 除 DVD
    4. 借 出 DVD
    5. 归 还 DVD
    6. 退         出 
    --------------------------------------
    请选择: 5
    ---> 归还DVD
    
    请输入DVD名称: 罗马假日
    请输入归还日期(年-月-日):2222-2-2
    
    归还《罗马假日》成功!
    借出日期为:2013-7-1
    归还日期为:2222-2-2
    应付租金(元):76186
    **************************
    输入0返回:
    1 case 5:
    2     returnDvd();                   
    3 break;
     1 /**
     2      * 归还DVD并计算租金
     3      */
     4     public void returnDvd() {
     5         System.out.println("---> 归还DVD
    ");
     6 
     7         Scanner input = new Scanner(System.in);
     8         long loan = 0;// 租金
     9         System.out.print("请输入DVD名称: ");
    10         String want = input.next();
    11         for (int i = 0; i < dvd.name.length; i++) {
    12             if (dvd.name[i] == null) { // 无匹配
    13                 System.out.println("没有找到匹配信息!");
    14                 break;
    15             } else if (dvd.name[i].equals(want) && dvd.state[i] == 0) { // 找到匹配
    16                 dvd.state[i] = 1;
    17                 System.out.print("请输入归还日期(年-月-日):");
    18                 String redate = input.next();
    19                 // 计算租金
    20                 loan = charge(dvd.date[i], redate);
    21                 System.out.println("
    归还《" + want + "》成功!");
    22                 System.out.println("借出日期为:" + dvd.date[i]);
    23                 System.out.println("归还日期为:" + redate);
    24                 System.out.println("应付租金(元):" + loan);
    25                 break;
    26             } else if (dvd.name[i].equals(want) && dvd.state[i] == 1) { // 找到匹配但没有借出
    27                 System.out.println("该DVD没有被借出!无法进行归还操作。");
    28                 break;
    29             }
    30         }
    31         System.out.println("**************************");
    32         returnMain();
    33     }
    34 
    35     /**
    36      * 计算日期差
    37      * 
    38      * @param dstr1 第一个日期
    39      * @param dstr2 第二个日期
    40      * 
    41      */
    42     public long charge(String dstr1, String dstr2) {
    43         long charge = 0;
    44         SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
    45         try {
    46             Date d1 = sd.parse(dstr1);
    47             Date d2 = sd.parse(dstr2);
    48             charge = (d2.getTime() - d1.getTime()) / (24 * 60 * 60 * 1000);
    49         } catch (ParseException e) {
    50             e.printStackTrace();
    51         }
    52         return charge;
    53     }
    54 }

    =============================

    完整版

    欢 迎 使 用 迷 你 DVD 管 理 器
    -------------------------------------
    0. 借出排行榜
    1. 新 增 DVD
    2. 查 看 DVD
    3. 删 除 DVD
    4. 借 出 DVD
    5. 归 还 DVD
    6. 退         出 
    --------------------------------------
    请选择: 2
    ---> 查看DVD
    
    序号    状 态    名称        借出日期
    1    已借出    <<罗马假日>>    2013-7-1
    2    可 借    <<风声鹤唳>>
    3    可 借    <<浪漫满屋>>
    **************************
    输入0返回:0
    欢 迎 使 用 迷 你 DVD 管 理 器
    -------------------------------------
    0. 借出排行榜
    1. 新 增 DVD
    2. 查 看 DVD
    3. 删 除 DVD
    4. 借 出 DVD
    5. 归 还 DVD
    6. 退         出 
    --------------------------------------
    请选择: 1
    ---> 新增DVD
    
    请输入DVD名称: 小姐姐
    新增《小姐姐》成功!
    **************************
    输入0返回:0
    欢 迎 使 用 迷 你 DVD 管 理 器
    -------------------------------------
    0. 借出排行榜
    1. 新 增 DVD
    2. 查 看 DVD
    3. 删 除 DVD
    4. 借 出 DVD
    5. 归 还 DVD
    6. 退         出 
    --------------------------------------
    请选择: 2
    ---> 查看DVD
    
    序号    状 态    名称        借出日期
    1    已借出    <<罗马假日>>    2013-7-1
    2    可 借    <<风声鹤唳>>
    3    可 借    <<浪漫满屋>>
    4    可 借    <<小姐姐>>
    **************************
    输入0返回:0
    欢 迎 使 用 迷 你 DVD 管 理 器
    -------------------------------------
    0. 借出排行榜
    1. 新 增 DVD
    2. 查 看 DVD
    3. 删 除 DVD
    4. 借 出 DVD
    5. 归 还 DVD
    6. 退         出 
    --------------------------------------
    请选择: 3
    ---> 删除DVD
    
    请输入DVD名称: 小姐姐
    删除《小姐姐》成功!
    **************************
    输入0返回:0
    欢 迎 使 用 迷 你 DVD 管 理 器
    -------------------------------------
    0. 借出排行榜
    1. 新 增 DVD
    2. 查 看 DVD
    3. 删 除 DVD
    4. 借 出 DVD
    5. 归 还 DVD
    6. 退         出 
    --------------------------------------
    请选择: 4
    ---> 借出DVD
    
    请输入DVD名称: 浪漫满屋
    请输入借出日期(年-月-日):2222-2-2
    借出《浪漫满屋》成功!
    **************************
    输入0返回:0
    欢 迎 使 用 迷 你 DVD 管 理 器
    -------------------------------------
    0. 借出排行榜
    1. 新 增 DVD
    2. 查 看 DVD
    3. 删 除 DVD
    4. 借 出 DVD
    5. 归 还 DVD
    6. 退         出 
    --------------------------------------
    请选择: 5
    ---> 归还DVD
    
    请输入DVD名称: 浪漫满屋
    请输入归还日期(年-月-日):2222-12-12
    
    归还《浪漫满屋》成功!
    借出日期为:2222-2-2
    归还日期为:2222-12-12
    应付租金(元):313
    **************************
    输入0返回:0
    欢 迎 使 用 迷 你 DVD 管 理 器
    -------------------------------------
    0. 借出排行榜
    1. 新 增 DVD
    2. 查 看 DVD
    3. 删 除 DVD
    4. 借 出 DVD
    5. 归 还 DVD
    6. 退         出 
    --------------------------------------
    请选择: 0
    ---> 排行榜
    
    **************************
    次数    名称
    31    <<浪漫满屋>>
    15    <<罗马假日>>
    12    <<风声鹤唳>>
    **************************
    输入0返回:0
    欢 迎 使 用 迷 你 DVD 管 理 器
    -------------------------------------
    0. 借出排行榜
    1. 新 增 DVD
    2. 查 看 DVD
    3. 删 除 DVD
    4. 借 出 DVD
    5. 归 还 DVD
    6. 退         出 
    --------------------------------------
    请选择: 6
    
    谢谢 使 用!
    1 public class DVDSet {
    2     String[] name = new String[50];   //数组1存储DVD名称数组
    3     int[] state = new int[50];        //数组2存储DVD借出状态:0已借出/1可借
    4     String[] date=new String[50];     //数组3存储DVD借出日期
    5     int[] count=new int[50];         //借出次数
    6    
    7 }
      1 import java.text.ParseException;
      2 import java.text.SimpleDateFormat;
      3 import java.util.Date;
      4 import java.util.Scanner;
      5 
      6 public class DVDMgr {
      7     /**
      8      * 创建DVD对象
      9      */
     10     DVDSet dvd = new DVDSet();
     11     /**
     12      * 初始三个DVD     
     13      */
     14     public void initial() {
     15         
     16         dvd.name[0] = "罗马假日";
     17         dvd.state[0] = 0; 
     18         dvd.date[0]="2013-7-1";
     19         dvd.count[0]=15;
     20         
     21         dvd.name[1] = "风声鹤唳";
     22         dvd.state[1] = 1;  
     23         dvd.count[1]=12;
     24         
     25         dvd.name[2] = "浪漫满屋";
     26         dvd.state[2] = 1;
     27         dvd.count[2]=30;
     28     }    
     29     /**
     30      * 开始菜单
     31      */
     32     public void startMenu(){
     33          System.out.println("欢 迎 使 用 迷 你 DVD 管 理 器");
     34             System.out.println("-------------------------------------");
     35             System.out.println("0. 借出排行榜");
     36             System.out.println("1. 新 增 DVD");
     37             System.out.println("2. 查 看 DVD");
     38             System.out.println("3. 删 除 DVD");
     39             System.out.println("4. 借 出 DVD");
     40          System.out.println("5. 归 还 DVD");         
     41             System.out.println("6. 退         出 ");
     42             
     43             System.out.print("--------------------------------------
    ");
     44     
     45             System.out.print("请选择: ");
     46             Scanner input = new Scanner(System.in);
     47             int choice = input.nextInt();
     48             switch(choice){
     49                 case 0:
     50                    list();
     51                    break;
     52                 case 1:
     53                    add();
     54                    break;
     55                case 2: 
     56                    search();
     57                    break;
     58                case 3:
     59                    delete();
     60                    break;
     61                case 4:
     62                    lend();
     63                    break;
     64                case 5:
     65                    returnDvd();
     66                    break;
     67                case 6:
     68                    System.out.println("
    谢谢 使 用!");
     69                    break;
     70             }
     71     }
     72     /**
     73      * 返回主菜单
     74      */
     75     public void returnMain(){
     76         Scanner input = new Scanner(System.in); 
     77         System.out.print("输入0返回:");
     78         if(input.nextInt() == 0){
     79             startMenu();
     80         }else{
     81             System.out.println("输入错误, 异常终止!");
     82         }
     83     }
     84     /**
     85      * 查看DVD
     86      */
     87     public void search(){
     88         System.out.println("---> 查看DVD
    ");
     89         System.out.println("序号	状 态	名称		借出日期");
     90         for(int i = 0 ; i < dvd.name.length; i++){
     91                if(dvd.name[i]==null){
     92                    break;
     93                }else if(dvd.state[i] == 0){
     94                    System.out.println((i+1)+"	已借出	"+"<<"+ dvd.name[i]+ ">>	" + dvd.date[i]);
     95                }else if(dvd.state[i] == 1){
     96                    System.out.println((i+1)+"	可 借	"+"<<"+dvd.name[i]+">>");
     97                }
     98            }
     99         System.out.println("**************************");
    100         returnMain();      
    101     }
    102     /**
    103      * 新增DVD
    104      */
    105     public void add(){
    106      Scanner input = new Scanner(System.in);
    107         System.out.println("---> 新增DVD
    ");        
    108         System.out.print("请输入DVD名称: ");
    109         String name = input.next();  
    110         for(int i = 0; i < dvd.name.length; i++){            
    111             if(dvd.name[i] == null){    //查询最后一个空位置插入
    112                dvd.name[i]=name;
    113                dvd.state[i]=1;//置新增的DVD可借状态
    114                 System.out.println("新增《"+name+"》成功!");
    115                 break;
    116             }
    117         }
    118         System.out.println("**************************");
    119         returnMain();   
    120     }    
    121     /**
    122      * 删除DVD
    123      */
    124     public void delete(){
    125         Scanner input = new Scanner(System.in);
    126         boolean flag=false;//标识删除成功与否
    127         System.out.println("---> 删除DVD
    ");
    128         System.out.print("请输入DVD名称: ");
    129           String name = input.next();  
    130           //遍历数组,查找匹配信息
    131           for(int i = 0 ; i < dvd.name.length; i++){
    132               //查找到,每个元素前移一位
    133               if(dvd.name[i]!=null &&dvd.name[i].equalsIgnoreCase(name)&&dvd.state[i]==1){
    134                   int j=i;
    135                   while(dvd.name[j+1]!=null){
    136                       dvd.name[j]=dvd.name[j+1];
    137                       dvd.state[j]=dvd.state[j+1];
    138                       dvd.date[j]=dvd.date[j+1];
    139                       j++;
    140                   }
    141                   //最后一个不为空的元素置空
    142                    dvd.name[j]=null;                   
    143                    dvd.date[j]=null; 
    144                 System.out.println("删除《"+name+"》成功!");
    145                 flag=true;//置位,表示删除成功
    146                 break;
    147               }else if(dvd.name[i]!=null &&dvd.name[i].equalsIgnoreCase(name)&&dvd.state[i]==0){
    148                   System.out.println("《"+name+"》为借出状态,不能删除!"); 
    149                   flag=true;//置位
    150                   break;
    151               }
    152           }
    153           if(!flag){
    154               System.out.println("没有找到匹配信息!");
    155           }
    156           System.out.println("**************************");
    157           returnMain();      
    158     }
    159     /**
    160      * 借出DVD
    161      */
    162     public void lend(){
    163         System.out.println("---> 借出DVD
    ");
    164         
    165         Scanner input = new Scanner(System.in);
    166         System.out.print("请输入DVD名称: ");
    167         String want = input.next();  //要借出的DVD名称 
    168         for(int i = 0; i < dvd.name.length; i++){            
    169             if(dvd.name[i] == null){    //无匹配
    170                 System.out.println("没有找到匹配信息!");
    171                 break;
    172             }else if(dvd.name[i].equals(want)&& dvd.state[i]==1){  //找到匹配可借     
    173                 dvd.state[i] = 0;
    174                 System.out.print("请输入借出日期(年-月-日):");
    175                 dvd.date[i]=input.next();
    176                 System.out.println("借出《"+want+"》成功!");               
    177                 dvd.count[i]++;
    178                 break;
    179             }else if(dvd.name[i].equals(want)&& dvd.state[i]==0){  //找到匹配已被借出             
    180                 System.out.println("《"+want+"》已被借出!");
    181                 break;
    182             }            
    183         }
    184         System.out.println("**************************");
    185         returnMain();
    186     }
    187     /**
    188      * 归还DVD并计算租金
    189      */
    190     public void returnDvd(){
    191         System.out.println("---> 归还DVD
    ");
    192         
    193         Scanner input = new Scanner(System.in);
    194         long loan=0;//租金
    195         System.out.print("请输入DVD名称: ");
    196         String want = input.next();
    197         for(int i = 0; i < dvd.name.length; i++){            
    198             if(dvd.name[i] == null){    //无匹配
    199                 System.out.println("没有找到匹配信息!");
    200                 break;
    201             }else if(dvd.name[i].equals(want) && dvd.state[i]==0){  //找到匹配     
    202                 dvd.state[i] = 1;
    203                 System.out.print("请输入归还日期(年-月-日):");
    204                 String redate=input.next();
    205                 //计算租金
    206                 loan=charge(dvd.date[i],redate);
    207                 System.out.println("
    归还《"+want+"》成功!");
    208                 System.out.println("借出日期为:"+dvd.date[i]);
    209                 System.out.println("归还日期为:"+redate);
    210                 System.out.println("应付租金(元):"+loan);
    211                 break;
    212             }  else if(dvd.name[i].equals(want) && dvd.state[i]==1){ //找到匹配但没有借出
    213                System.out.println("该DVD没有被借出!无法进行归还操作。");
    214                break;
    215             }
    216         }
    217         System.out.println("**************************");
    218         returnMain();
    219     }
    220     /**
    221      * 计算日期差
    222      * @param dstr1 第一个日期
    223      * @param dstr2 第二个日期
    224      * 
    225      */
    226     public long charge(String dstr1,String dstr2){
    227         long charge=0;
    228         SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM-dd");
    229         try {
    230             Date d1=sd.parse(dstr1);
    231             Date d2=sd.parse(dstr2);
    232             charge=(d2.getTime()-d1.getTime())/(24*60*60*1000);
    233         } catch (ParseException e) {            
    234             e.printStackTrace();            
    235         }        
    236         return charge;
    237     }
    238     /**
    239      * 借出排行榜
    240      */
    241     public void list(){
    242         //定义新数组,用来存放排序后DVD信息
    243         String[] newname = new String[50];   //       
    244         int[] newcount=new int[50];  
    245         for(int k=0;k<dvd.name .length;k++){
    246              newname[k]=dvd.name[k];
    247              newcount[k]=dvd.count[k];
    248         }
    249               
    250         //利用冒泡排序算法进行排序
    251         for(int i=0;i<newname.length;i++){
    252             for(int j=i+1;j<newname.length;j++){
    253                 if(newcount[i]>newcount[j]){
    254                     int tempc=newcount[i];
    255                     newcount[i]=newcount[j];
    256                     newcount[j]=tempc;
    257                     String tempn=newname[i];
    258                     newname[i]=newname[j];
    259                     newname[j]=tempn;
    260                 }                
    261             }            
    262         }
    263         System.out.println("---> 排行榜
    ");
    264         System.out.println("**************************");
    265         System.out.println("次数	名称");
    266         //显示排行榜信息
    267         for(int i=newname.length-1;i>=0;i--){
    268             if(newname[i]!=null){
    269                 System.out.println(newcount[i]+"	<<"+ newname[i]+ ">>" );
    270             }
    271         }      
    272            System.out.println("**************************");
    273            returnMain();
    274        }
    275 }
    1 public class Start {
    2     public static void main(String[] args) {
    3         DVDMgr dm=new DVDMgr();    
    4         dm.initial();
    5         dm.startMenu();
    6 
    7     }
    8 
    9 }
  • 相关阅读:
    JavaScript的执行
    关于k阶裴波那契序列的两种解法
    科普 eclipse中的Java build
    [BZOJ 1037] 生日聚会Party
    [POJ 1185] 炮兵阵地
    [POJ 1935] Journey
    [POJ 2397] Spiderman
    [POJ 2373][BZOJ 1986] Dividing the Path
    [POJ 3378] Crazy Thairs
    [POJ 2329] Nearest number-2
  • 原文地址:https://www.cnblogs.com/haizinihao/p/11212313.html
Copyright © 2020-2023  润新知