1 importjava.text.ParseException;2 importjava.text.SimpleDateFormat;3 importjava.util.Date;4 importjava.util.Scanner;5 importjava.util.logging.SimpleFormatter;6 //Dvd管理类
7 public classDvdMgr {8 Scanner sc=newScanner(System.in);9 SimpleDateFormat sd=new SimpleDateFormat("yyyy-mm-dd");10 public DvdSet[] dvds=new DvdSet[5];11 //初始化方法,先向数组中放入几张DVD
12 public voidinitial() {13 dvds[0]=new DvdSet("迪迦",true," ",5);14 dvds[1]=new DvdSet("戴拿",true," ",2);15 dvds[2]=new DvdSet("盖亚",true," ",3);16 }17 //显示菜单方法
18 public voidshowMenu() {19 initial();//调用初始化
20 boolean flag=true;21 do{22 System.out.println("***************************");23 System.out.println("1.插入\n2.查看\n3.删除\n4.借出\n5.归还\n6.退出\n0.排行榜");24 System.out.println("***************************");25 System.out.println("请选择:");26 int choice=sc.nextInt();27 switch(choice) {28 case 1:29 System.out.println("插入操作");30 System.out.println("请输入待插入的Dvd名称:");31 String name1=sc.next();32 DvdSet dvd=findByName(name1);33 if(dvd!=null) {34 System.out.println("DVD已存在,不可再插入。");35 }else{36 //卡卡卡卡卡卡37 //这边卡了一下,要注意插入操作的时候,插入的是DVD对象,而不只是它 的名字
38 DvdSet newDvd =new DvdSet(name1,true," ",0);39 add(newDvd);40 System.out.println("添加成功");41 }42 break;43 case 2:44 System.out.println("查看操作");45 lookAll();46 break;47 case 3://删除操作和插入操作的步骤是有点相似的,有些代码可以复制过来48 //核心的部分就得自己好好想想了
49 System.out.println("删除操作");50 System.out.println("请输入待删除的Dvd名称:");51 String name3=sc.next();52 //findByName方法是在数组中通过名字来找这个对象,找到了返回对象,未找到返回null
53 DvdSet dvd3=findByName(name3);54 //这里跟插入操作一样,要考虑一些情况,是否存在,以及状态
55 if(dvd3==null) {56 System.out.println("未找到此Dvd");57 }else if(dvd3.state==false) {58 System.out.println("此DVD已借出,不可删除");59 }else{60 delete(name3);61 System.out.println("删除成功");62 }63 break;64 case 4:65 System.out.println("借出操作");66 lend();67 break;68 case 5:69 System.out.println("归还操作");70 back();71 break;72 case 6:73 System.out.println("退出操作");74 System.out.println("已退出");75 //可以在退出这里改变标志flag,跳出循环
76 flag=false;77 break;78 case 0:79 System.out.println("排行榜操作");80 sort();81 break;82 }83 if(flag==true) {84 System.out.println("输入0返回:");85 if(sc.nextInt()==0)continue;86 }87 }while(flag);88 }89 //排行榜没什么,就一个冒泡排序
90 private voidsort() {91 for(int i=0;i
94 if(dvds[j]!=null&&dvds[j+1]!=null) {95 if(dvds[j].counts
121 dvd.state=true;122 //这边用getTime计算毫秒数,就可以算出接触的时间了
123 double money=(double)(1.5*((d2.getTime()-d1.getTime())/(1000*60*60*24)));124 System.out.println("应付:"+money);125 } catch(ParseException e) {126 //TODO Auto-generated catch block
127 e.printStackTrace();128 }129
130
131 }132
133 }134 private voidlend() {135 System.out.println("请输入要借的DVD名称");136 String name=sc.next();137 DvdSet dvd=findByName(name);138 if(dvd==null) {139 System.out.println("未找到此DVD");140 }else if(dvd.state==false) {141 System.out.println("此DVD已借出");142 }else{143 System.out.println("借出"+dvd.name+"成功");144 System.out.println("请输入借出日期:");145 dvd.date=sc.next();146 //借出时要改变状态,次数++
147 dvd.state=false;148 dvd.counts++;149 }150 }151
152
153 private voiddelete(String name) {154
155 int index=findByIndex(name);156 System.out.println(index);157 //删除这要注意i知道数组倒数第二的位置
158 for(int i=index;i
162 dvds[dvds.length-1]=null;163
164 }165 //找出要删元素的下标,并返回
166 private intfindByIndex(String name) {167 int index=-1;168 for(int i=0;i
176 }177 }178 returnindex;179 }180 private voidlookAll() {181 System.out.println("序号\t名称\t状态\t日期\t次数");182 //卡卡卡卡卡
183 for(int i=0;i
189 }190 private voidadd(DvdSet newDvds) {191 //判断是否满了,满了则扩容
192 if(dvds[dvds.length-1]!=null) {193 DvdSet[] newDvd=new DvdSet[dvds.length+10];194 int i=0;195 for(;i
199 dvds=newDvd;200 }else{201 //卡卡卡卡卡
202 for(int i=0;i
210 }211 privateDvdSet findByName(String name) {212 DvdSet dvd=null;213 for(int i=0;i
223 }224 }