一.写在main方法中

  1 import java.util.*;
  2 
  3 public class MyDVDMgr {
  4     public static void main(String[] args){
  5         Scanner input=new Scanner(System.in);
  6         //是否退出系统,false代表退出系统
  7         boolean flag=true;
  8         //DVD相关信息,最多只能存储6个DVD信息
  9         String[] name=new String[6]; //DVD名称
 10         int[] state=new int[6]; //借阅状态,0:可借阅 ;1:已借出
 11         int[] date=new int[6];  //借出日期
 12         int[] count=new int[6]; //借出次数
 13         
 14         /*
 15          * 初始化三个DVD
 16          * */
 17         name[0]="罗马假日";
 18         state[0]=1;
 19         date[0]=1;
 20         count[0]=15;
 21         
 22         name[1]="风声鹤唳";
 23         state[1]=0;
 24         count[1]=12;
 25         
 26         name[2]="浪漫满屋";
 27         state[2]=0;
 28         count[2]=30;
 29         
 30         int num=-1;
 31         //循环操作
 32         do{
 33             //输出欢迎菜单
 34             System.out.println("欢迎使用迷你DVD管理器");
 35             System.out.println("-------------------------");
 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.退出DVD");
 42             System.out.println("-------------------------");
 43             System.out.println("请选择:");
 44             int choose=input.nextInt();
 45             switch(choose){
 46                 case 1:
 47                     //新增DVD
 48                     System.out.println("-->新增DVD\n");
 49                     System.out.println("请输入DVD名称:");
 50                     String dvdName=input.next();
 51                     boolean flag2=false;
 52                     for(int i=0;i<name.length;i++){
 53                         if(name[i]==null){
 54                             name[i]=dvdName;
 55                             System.out.println("新增《"+dvdName+"》成功!");
 56                             flag2=true;
 57                             break;
 58                         }
 59                     }
 60                     if(!flag2){
 61                         System.out.println("抱歉,新增《"+dvdName+"》失败!货架已满!");
 62                     }
 63                     System.out.println("*****************************************");
 64                     break;
 65                 case 2:
 66                     //查看DVD
 67                     System.out.println("-->查看DVD\n");
 68                     System.out.println("序号\t状态\t名称\t借出日期\t借出次数");
 69                     for(int i=0;i<name.length;i++){
 70                         if(name[i]!=null){
 71                             String dvdState=(state[i]==0)?"可借阅":"已借出";
 72                             String dateStr=(date[i]==0)?"":(date[i]+"日");
 73                             System.out.println((i+1)+"\t"+dvdState+"\t"
 74                               +name[i]+"\t"+dateStr+"\t"+count[i]+"次");
 75                         }
 76                     }
 77                     System.out.println("*****************************************");
 78                     break;
 79                 case 3:
 80                     //删除DVD
 81                     System.out.println("-->删除DVD\n");
 82                     System.out.println("请输入要删除DVD的名称:");
 83                     String delete=input.next();
 84                     boolean flag3=false;
 85                     int index=-1;  //记录要删除DVD的位置
 86                     for(int i=0;i<name.length;i++){
 87                         if(name[i]!=null && delete.equals(name[i]) && state[i]==0){
 88                             flag3=true;
 89                             index=i;
 90                             System.out.println("DVD删除成功!");
 91                             break;
 92                         }else if(name[i]!=null && delete.equals(name[i]) && state[i]==1){
 93                             flag3=true;
 94                             System.out.println("该DVD已被借出,目前无法删除!");
 95                             break;
 96                         }
 97                     }
 98                     //根据记录下来的删除DVD的位置进行删除工作
 99                     if(index!=-1){
100                         for(int j=index;j<name.length;j++){
101                             if(j!=name.length-1){
102                                 name[j]=name[j+1];
103                                 state[j]=state[j+1];
104                                 date[j]=date[j+1];
105                             }
106                             name[name.length-1]=null;
107                             
108                         }
109                     }
110                     if(!flag3){
111                         System.out.println("没有找到匹配信息!");
112                     }
113                     System.out.println("*****************************************");
114                     break;
115                 case 4:
116                     //借出DVD
117                     System.out.println("-->借出DVD\n");
118                     System.out.print("请输入DVD名称:");
119                     String want=input.next();  //要借出的DVD名称
120                     for(int i=0;i<name.length;i++){
121                         if(name[i]==null){  //无匹配
122                             System.out.println("没有找到匹配信息!");
123                             break;
124                         }else if(want.equals(name[i]) && state[i]==0){  //找到匹配可借
125                             state[i]=1; //将此DVD置于借出状态
126                             System.out.print("请输入借出日期:");
127                             date[i]=input.nextInt();
128                             while(date[i]<1 || date[i]>31){  //当输入借出的日期不满足1-31时
129                                 System.out.println("必须输入大于等于1且小于等于31的数字,请重新输入:");
130                                 date[i]=input.nextInt();
131                             }
132                             System.out.println("借出《"+want+"》成功!");
133                             count[i]++;
134                             break;
135                         }else if(want.equals(name[i]) && state[i]==1){  //找到匹配已被借出
136                             System.out.println("《"+want+"》已被借出!");
137                             break;
138                         }
139                     }
140                     System.out.println("*****************************************");
141                     break;
142                 case 5:
143                     //归还DVD
144                     System.out.println("-->归还DVD\n");
145                     int charge=0;  //租金
146                     System.out.print("请输入归还DVD名称:");
147                     want=input.next();
148                     for(int i=0;i<name.length;i++){
149                         if(name[i]==null){ //无匹配
150                             System.out.println("没有找到匹配信息!");
151                             break;
152                         }else if(want.equals(name[i]) && state[i]==1){//找到匹配
153                             state[i]=0;  //将借阅状态修改为可借阅
154                             System.out.print("请输入归还日期:");
155                             int redate=input.nextInt();
156                             while(redate<date[i] || redate>31){  //归还日期不能小于借出日期,也不能大于31
157                                 if(redate<date[i]){
158                                     System.out.println("归还日期不能小于借出日期,请重新输入:");
159                                 }else{
160                                     System.out.println("一个月只有31天,请重新输入:");
161                                 }
162                                 redate=input.nextInt();
163                             }
164                             charge=redate-date[i];
165 
166                             System.out.println("\n归还《"+want+"》成功!");
167                             System.out.println("借出日期为:"+date[i]+"日");
168                             System.out.println("归还日期为:"+redate+"日");
169                             System.out.println("应付租金(元):"+charge);
170                                                         date[i]=0;
171                             break;
172                         }else if(want.equals(name[i]) && state[i]==0){//找到匹配但没有借出
173                             System.out.println("该DVD没有被借出!无法进行归还操作。");
174                             break;
175                         }
176                     }
177                     System.out.println("*****************************************");
178                     break;
179                 case 6:
180                     //退出DVD
181                     flag=false;
182                     break;
183                 default:
184                     flag=false;
185                     break;
186             }
187             if(flag){
188                 System.out.println("输入0返回:");
189                 num=input.nextInt();
190             }else{
191                 break;
192             }
193         }while(num==0);
194         System.out.println("谢谢使用!");
195     }
196 }
MyDVDMgr.java

相关文章: