java dvd 管理_Java学习案例一:DVD管理器

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 }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值