import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.Scanner; class SetDvd{ //书名 List<String> name =new ArrayList<String>(); //时间 List<String> date =new ArrayList<String>(); //状态//借书的状态 , 0表示借出 ,1.表示可以借。 List<Integer> state =new ArrayList<Integer>(); //次数 List<Integer> count =new ArrayList<Integer>(); } class MgrDvd { String inn; SetDvd dvd =new SetDvd(); //1.第一个方法初始化三个DVD数据 public void initial(){ //初始化三个Dvd dvd.name.add("我本坏蛋"); dvd.date.add("2016-11-18"); dvd.state.add(0); dvd.count.add(30); dvd.name.add("吞噬星空"); dvd.date.add("yyyy-MM-dd"); dvd.state.add(1); dvd.count.add(2); dvd.name.add("英雄联盟"); dvd.date.add("yyyy-MM-dd"); dvd.state.add(1); dvd.count.add(10); } //是否进入dvd管理器 public void inDvd(){ Scanner str =new Scanner(System.in); String inn =str.next(); if(inn.equals("YES") ||(inn.equals("yes"))){ startDvd(); }else{ System.out.println("谢谢使用,欢迎再次的尝试"); inDvd(); } } //dvd 管理器界面 public void startDvd(){ System.out.println("********************************"); System.out.println("****** 1.新增DVD ******"); System.out.println("****** 2.查看DVD ******"); System.out.println("****** 3.删除DVD ******"); System.out.println("****** 4.借出DVD ******"); System.out.println("****** 5.归还DVD ******"); System.out.println("****** 6.DVD排行榜 ******"); System.out.println("****** 7.退出 ******"); System.out.println("********************************"); System.out.println("您好!需要什么帮助请输入以上需求对应的数字。谢谢!"); selectDvd(); } // dvd管理器选择表 public void selectDvd(){ System.out.println("您好! 我是0001智能服务员,很高兴为您服务。请选择:"); System.out.print("-------> "); Scanner cou = new Scanner(System.in); int option = cou.nextInt(); switch(option){ case 1: System.out.println("****** 新增DVD ******"); System.out.println("你想添加几个,请输入要添加的个数"); Scanner sc = new Scanner(System.in); int sca = sc.nextInt(); for(int i=0; i<sca;i++){ addDvd(); } returnDvd(); System.out.println("********************************"); break; case 2: System.out.println("****** 查看DVD ******"); lookDvd(); returnDvd(); System.out.println("********************************"); break; case 3: System.out.println("****** 删除DVD ******"); System.out.println("你想要删除几个,请输入要删除的个数"); Scanner sc1 = new Scanner(System.in); int sca1 = sc1.nextInt(); for(int i=0; i<sca1;i++){ removeDvd(); } returnDvd(); System.out.println("********************************"); break; case 4: System.out.println("****** 借出DVD ******"); System.out.println("你想要借几个,请输入要借出的个数"); Scanner sc2 = new Scanner(System.in); int sca2 = sc2.nextInt(); for(int i=0; i<sca2;i++){ lendDvd(); } returnDvd(); System.out.println("********************************"); break; case 5: System.out.println("****** 归还DVD ******"); System.out.println("你想归还几个,请输入要归还的个数"); Scanner sc3 = new Scanner(System.in); int sca3 = sc3.nextInt(); for(int i=0; i<sca3;i++){ bringDvd(); } returnDvd(); System.out.println("********************************"); break; case 6: System.out.println("****** DVD排行榜 ******"); list(); returnDvd(); System.out.println("********************************"); break; case 7: System.out.println("****** 退出 ******"); System.out.println("亲~ 谢谢使用迷你DVD管理器。"); System.out.println("********************************"); break; default: System.out.println(" 你好,请输入正确的指令: " ); startDvd(); System.out.println("********************************"); } } //dvd管理器 返回界面 public void returnDvd(){ System.out.println("********* 输入0 返回 **********" ); Scanner c = new Scanner(System.in); int option =c.nextInt(); if(option==0){ startDvd(); }else{ System.out.println("sb 你输错了,哈哈 ...yes 再试一下"); returnDvd(); } } // 新增DVD public void addDvd(){ System.out.println(" 输入你要新增的DVD名"); Scanner input = new Scanner(System.in); String n =input.next(); dvd.name.add(n); dvd.state.add(1); dvd.date.add("yyyy-MM-dd"); dvd.count.add(0);//新增的DVD 次数为0 System.out.println( "<<"+n+">>添加成功"); } //查看DVD public void lookDvd(){ System.out.println("序号\t名称\t\t\t状态\t\t借出时间\t\t借出的次数"); for(int i=0; i<dvd.state.size();i++){ if(dvd.state.get(i)==0){ System.out.println((i+1)+"\t"+"<<"+dvd.name.get(i)+">>"+"\t"+"\t"+"已借出\t"+"\t"+dvd.date.get(i)+"\t"+dvd.count.get(i)); }else if(dvd.state.get(i)==1){ System.out.println((i+1)+"\t"+"<<"+dvd.name.get(i)+">>"+"\t"+"\t"+"未借出\t"+"\t"+dvd.date.get(i)+"\t"+dvd.count.get(i)); } } } //删除DVD public void removeDvd(){ System.out.println("输入你要删除的名字:"); Scanner c =new Scanner(System.in); String input = c.next(); int num = dvd.name.indexOf(input); if(num>=0){ if(dvd.state.get(num).intValue() !=0){ dvd.name.remove(num); dvd.state.remove(num); dvd.date.remove(num); dvd.count.remove(num); System.out.println("<<"+input+">>删除成功"); } else{ System.out.println("DvD已被借出 ,不能删除"); } }else { System.out.println("请确认DVD的名字"); } } //借出Dvd public void lendDvd(){ System.out.println("输入要借的DVD的名字"); Scanner c =new Scanner(System.in); String input = c.next(); int num = dvd.name.indexOf(input); if(num>=0){ if(dvd.state.get(num).intValue()!=0){ System.out.println("输入借DVD的时间"); String times = c.next(); dvd.state.set(num,0); dvd.date.set(num, times); dvd.count.set(num, dvd.count.get(num)+1);//次数+1 System.out.println("借DVD<<"+input+">>成功,祝你看的愉快!"); }else{ System.out.println("DVD已被借出,不能再借"); } }else { System.out.println("不好意思,没有此dvd"); } } //归还DVD public void bringDvd(){ System.out.println("输入你要还的DVD"); Scanner c =new Scanner(System.in); String input = c.next(); int num = dvd.name.indexOf(input); if(num>=0){ if(dvd.state.get(num).intValue()==0){ System.out.println("输入还DVD的时间"); String times = c.next(); long money=charge(dvd.date.get(num),times); dvd.state.set(num,1); dvd.date.set(num,"yyyy-MM-dd"); System.out.println("你的借DVD<<"+input+">>的天数为"+money+"要交的钱为"+(money*2)); System.out.println("归还DVD成功,谢谢使用 您还有别的需要吗"); }else{ System.out.println("此DVD你没有借"); } }else { System.out.println("不好意思,没有此dvd"); } } public long charge(String date1,String date2){ //做时间差 //将String转为Date做计算 SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); long charge = 0; try{ Date d1 = sd.parse(date1); Date d2 = sd.parse(date2); //时间也是以毫秒为单位。 charge = (d2.getTime() - d1.getTime()) / (1000*24*60*60); }catch(ParseException e){ System.out.println(e); } return charge; } //排行榜 public void list(){ Object[] ocCount =dvd.count.toArray(); Object[] ocName = dvd.name.toArray(); System.out.println(dvd.count.size()+" "+dvd.name.size()); int temp=0; String str=null; for(int i = 0;i<dvd.count.size()-1;i++){ for(int j =0 ; j<dvd.count.size()-1-i;j++){ if((int)ocCount[j]<(int)ocCount[j+1]){ temp =(int)ocCount[j]; ocCount[j]=ocCount[j+1]; ocCount[j+1]=temp; str =(String)ocName[j]; ocName[j] = (String)ocName[j+1]; ocName[j+1] =str; } } } // System.out.println("序号\t"+"DVD\t\t"+"\t"+"借出的次数"); for(int i =0 ;i<dvd.count.size();i++){ System.out.println((i+1) + "\t" + "<<"+ocName[i]+">>" + "\t\t" + ocCount[i]); } } } public class demo1 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub //初始化dvd System.out.println("****** 欢迎使用迷你DVD管理器 ******"); System.out.println("您是否要进入迷你DVD管理器:YES ? NO"); MgrDvd dvd = new MgrDvd(); dvd.initial(); dvd.inDvd(); //调用存入的内容 } }