java学习中,DVD管理系统纯代码(java 学习中的小记录)
Posted 王可利(Star·星星)
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java学习中,DVD管理系统纯代码(java 学习中的小记录)相关的知识,希望对你有一定的参考价值。
java学习中,DVD管理系统纯代码(java 学习中的小记录)作者:王可利(Star·星星)
class DvdMain{ public static void main (String[] args){ DvdMgr dvd = new DvdMgr(); //初始化dvd dvd.initial(); //开始进入切换菜单 dvd.startMenu(); } }
1 class DvdSet { 2 3 //定义三个属性 4 String[] name = new String[50]; // 为保证数组足够大 5 String[] date = new String[50];// 借书的时间 6 int[] state = new int[50]; // 借书的状态 , 0表示借出 ,1.表示可以借。 7 }
1 import java.util.*; 2 import java.text.*; 3 class DvdMgr { 4 5 //创建一个DvdSet对象 6 DvdSet dvd = new DvdSet(); 7 8 //1.第一个方法初始化三个DVD数据 9 public void initial(){ 10 //初始化三个Dvd 11 dvd.name[0]= "罗马假日"; 12 dvd.state[0]=0; 13 dvd.count[0] = 30; 14 dvd.date[0]= "2016-11-18"; 15 dvd.name[1]="风声鹤唳"; 16 dvd.state[1]=1; 17 dvd.name[2]= "浪漫满屋"; 18 dvd.state[2]=1; 19 dvd.count[2] = 10; 20 } 21 22 //2.实现一个菜单切换 23 public void startMenu() { 24 25 System.out.println("*********************************"); 26 System.out.println("******欢迎使用迷你DVD管理器******"); 27 System.out.println("****** 1.新增DVD ******"); 28 System.out.println("****** 2.查看DVD ******"); 29 System.out.println("****** 3.删除DVD ******"); 30 System.out.println("****** 4.借出DVD ******"); 31 System.out.println("****** 5.归还DVD ******"); 32 System.out.println("****** 6.DVD排行榜 ******"); 33 System.out.println("****** 7.退出 ******"); 34 System.out.println("*********************************"); 35 36 Scanner input = new Scanner(System.in); 37 System.out.println("请输入您的操纵:"); 38 int option = input.nextInt(); 39 40 switch(option){ 41 42 case 1 : 43 addDvd(); 44 returnMenu(); 45 break; 46 47 case 2 : 48 searchDvd(); 49 returnMenu(); 50 break; 51 case 3 : 52 deleteDvd(); 53 returnMenu(); 54 break; 55 case 4 : 56 lendDvd(); 57 returnMenu(); 58 break; 59 case 5 : 60 returnDvd(); 61 returnMenu(); 62 break; 63 case 6: 64 list(); 65 returnMenu(); 66 67 break; 68 case 7: 69 System.out.println("谢谢使用,欢迎下次在来"); 70 break; 71 default: 72 System.out.println("输入异常,程序已经吓崩溃,正在重启中..."); 73 break; 74 75 } 76 77 } 78 79 //3.返回菜单 80 public void returnMenu() { 81 System.out.println("输入0返回:"); 82 Scanner input = new Scanner(System.in); 83 84 if(input.nextInt() == 0){ 85 86 //在此进入菜单切换 87 startMenu(); 88 }else { 89 90 System.out.println("输入异常,请从输入:"); 91 returnMenu(); // 递归调用。 92 } 93 94 } 95 96 //4.查看的功能 97 public void searchDvd(){ 98 System.out.println("******欢迎进入查看页面*****"); 99 //\\t Tap 100 System.out.println("序号\\t名称\\t\\t状态\\t借出时间\\t"); 101 for(int i=0;i<dvd.name.length ; i++){ 102 if(dvd.name[i] == null){ 103 104 break; 105 }else if (dvd.state[i] == 0){ 106 //代表已经借出 107 System.out.println(i+1+"\\t"+"<<"+dvd.name[i]+">>\\t已借出\\t"+dvd.date[i]); 108 }else if(dvd.state[i] == 1){ 109 110 //代没有借出 111 System.out.println(i+1+"\\t"+"<<"+dvd.name[i]+">>\\t可借\\t"); 112 } 113 } 114 115 System.out.println("**************************************"); 116 117 } 118 119 //5.新增Dvd 120 public void addDvd(){ 121 System.out.println("******欢迎进入添加页面*****"); 122 System.out.println("请输入您要添加的Dvd:"); 123 Scanner input = new Scanner(System.in); 124 String name = input.next(); 125 //将新增的内容放到最后 126 for(int i = 0;i<dvd.name.length;i++){ 127 128 if(dvd.name[i] == null){ //到最后去了。 129 130 dvd.name[i] = name; 131 dvd.state[i] = 1; 132 System.out.println("<<"+name+">>dvd添加成功"); 133 break; 134 } 135 } 136 137 } 138 139 //6.删除dvd 140 141 public void deleteDvd(){ 142 System.out.println("******欢迎进入删除页面*****"); 143 System.out.println("请输入您要删除的Dvd名称:"); 144 Scanner input = new Scanner(System.in); 145 String name = input.next(); 146 147 //1.没有找到 : 提示没有找到 请重新输入 148 //2.找到 : 149 //1.已经借出去 : 不能够删除 150 //2.没有借出去 : 删除 151 152 for(int i = 0;i<dvd.name.length;i++){ 153 //查找是否存在 154 if(dvd.name[i] != null){ 155 156 if(dvd.name[i].equalsIgnoreCase(name)){ //已经找到 157 158 //是否已经被借出 159 if(dvd.state[i] == 0){ // 借出 160 System.out.println("《"+name+"》已经被借出"); 161 break; 162 }else if(dvd.state[i] == 1) { 163 164 //没有借出需要删除 165 //思路 : 1.用后面一个替换前面的。 166 //2.把最后面多余的地方赋值为null. 167 168 169 for(int j = i ;j<dvd.name.length;j++){ 170 171 //做交换 172 if(dvd.name[j +1] != null){ 173 dvd.name[j] = dvd.name[j+1]; 174 dvd.state[j] = dvd.state[j+1]; 175 176 }else{ 177 //清空最后一个值 178 dvd.name[j] = null; 179 dvd.date[j] = null; 180 break; 181 } 182 183 } 184 185 System.out.println("删除《"+name+"》成功"); 186 break; 187 } 188 } 189 190 }else { 191 192 System.out.println("没有您要删除的dvd"); 193 System.out.println("***********************************************"); 194 break; 195 } 196 } 197 198 } 199 200 201 //7.借dvd的功能 202 public void lendDvd(){ 203 System.out.println("********欢迎进入借书页面********"); 204 System.out.println("请输入您要借的dvd名称:"); 205 Scanner input = new Scanner(System.in); 206 String name = input.next(); 207 208 //1.判断有没有dvd 209 //1.又没有被借出去。 210 for(int i = 0;i<dvd.name.length;i++){ 211 212 if(dvd.name[i] != null){ // 有dvd 213 214 if(dvd.name[i].equalsIgnoreCase(name) && dvd.state[i] == 1){ //有书并且没有被借出去 215 216 //借书 217 //1.修改状态 218 dvd.state[i] = 0; 219 System.out.println("请输入借书的时间(年-月-日):"); 220 Scanner inputDate = new Scanner(System.in); 221 dvd.date[i] = inputDate.next(); 222 System.out.println("借书成功"); 223 dvd.count[i]++; 224 break; 225 226 }else if(dvd.name[i].equalsIgnoreCase(name) && dvd.state[i] == 0){ 227 System.out.println("不好意思此借书已经被借出"); 228 break; 229 } 230 231 }else { // dvd 232 233 System.out.println("没有您要找的DVD"); 234 break; 235 } 236 } 237 238 } 239 240 //8.还Dvd 计算价格 241 public void returnDvd(){ 242 243 System.out.println("********欢迎进入还DVD页面******************"); 244 System.out.println("请输入还dvd的名称:"); 245 Scanner input = new Scanner(System.in); 246 double price = 0.0; 247 String name = input.next(); 248 for(int i = 0;i<dvd.name.length;i++){ 249 250 if(dvd.name[i]!=null){ //有 251 252 if(dvd.name[i].equalsIgnoreCase(name) && dvd.state[i] == 0){ //以借出就可以归还 253 dvd.state[i] = 1; 254 System.out.println("请输入归还书籍的时间(年-月-日):"); 255 Scanner inputDate = new Scanner(System.in); 256 //获取时间差 257 long charge = charge(dvd.date[i],inputDate.next()); 258 price = charge * 1; 259 System.out.println("《"+dvd.name[i]+"》归还成功"); 260 System.out.println("您应付"+price+"元"); 261 //清空时间 262 dvd.date[i] = null; 263 break; 264 265 } 266 267 }else{ 268 System.out.println("没有找到匹配的信息"); 269 break; 270 } 271 } 272 System.out.println("************************************************"); 273 274 } 275 276 public long charge(String date1,String date2){ 277 278 //做时间差 279 //将String转为Date做计算 280 SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); 281 long charge = 0; 282 try{ 283 Date d1 = sd.parse(date1); 284 Date d2 = sd.parse(date2); 285 //时间也是以毫秒为单位。 286 charge = (d2.getTime() - d1.getTime()) / (1000*24*60*60); 287 }catch(ParseException e){ 288 System.out.println(e); 289 } 290 291 return charge; 292 } 293 294 295 //排行榜 296 public void list(){ 297 298 System.out.println("欢迎进入Dvd排行榜"); 299 //排序 300 for(int i = 0 ; i <dvd.name.length-1;i++){ 301 302 if(dvd.name[i] != null){ 303 304 for(int j = 0; j<dvd.name.length-1-i;j++){ 305 306 if(dvd.name[j] != null){ 307 308 if(dvd.count[j] < dvd.count[j+1]){ 309 310 int temp = dvd.count[j]; 311 dvd.count[j] = dvd.count[j+1]; 312 dvd.count[j+1]= temp; 313 314 String name1 = dvd.name[j]; 315 dvd.name[j] = dvd.name[j+1]; 316 dvd.name[j+1] = name1; 317 318 String date1= dvd.date[j]; 319 dvd.date[j] = dvd.date[j+1]; 320 dvd.date[j+1] = date1; 321 322 int state1= dvd.state[j]; 323 dvd.state[j] = dvd.state[j+1]; 324 dvd.state[j+1] = state1; 325 326 } 327 }else { 328 break; 329 } 330 331 332 } 333 334 }else{ 335 break; 336 } 337 } 338 System.out.println("序号\\t名称\\t\\t状态\\t借出时间\\t"); 339 for(int i=0;i<dvd.name.length ; i++){ 340 if(dvd.name[i] == null){ 341 342 break; 343 }else if (dvd.state[i] == 0){ 344 //代表已经借出 345 System.out.println(i+1+"\\t"+"<<"+dvd.name[i]+">>\\t已借出\\t"+dvd.date[i]); 346 }else if(dvd.state[i] == 1){ 347 348 //代没有借出 349 System.out.println(i+1+"\\t"+"<<"+dvd.name[i]+">>\\t可借\\t"); 350 } 351 } 352 353 System.out.println("**************************************"); 354 355 } 356 }
以上是关于java学习中,DVD管理系统纯代码(java 学习中的小记录)的主要内容,如果未能解决你的问题,请参考以下文章