一.写在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 }