DVD管理系统的修改版

import java.sql.Date;
  2 import java.text.SimpleDateFormat;
  3 import java.util.ArrayList;
  4 import java.util.Iterator;
  5 import java.util.Scanner;
  6 import java.util.Set;
  7 import java.util.TreeSet;
  8 
  9 import javax.net.ssl.TrustManagerFactorySpi;
 10 import javax.print.DocFlavor.STRING;
 11 
 12 
 13     //------DVD数据集合
 14 class DVDSet{
 15     
 16     //--DVD名称
 17     ArrayList<String> nameList = new ArrayList<String>();
 18     //--DVD状态
 19     ArrayList<Integer> stateList = new ArrayList<Integer>();
 20     //--DVD借出日期
 21     ArrayList<String> dateList = new ArrayList<String>();
 22     //--DVD借出次数
 23     ArrayList<Integer> countList = new ArrayList<Integer>();
 24 
 25 }
 26 
 27 class Rank implements Comparable<Rank>{
 28     
 29     String DVDName;
 30     Integer DVDState;
 31     String  DVDDate;
 32     Integer DVDCount;
 33     
 34     public Rank(String DVDName,Integer DVDState,String DVDDate,Integer DVDCount){
 35         
 36         this.DVDName = DVDName;
 37         this.DVDState = DVDState;
 38         this.DVDDate = DVDDate;
 39         this.DVDCount = DVDCount;
 40     }
 41 
 42     @Override
 43     public String toString() {
 44         // TODO Auto-generated method stub
 45         return "\n[DVD:《" + this.DVDName + "》\t状态:" + this.DVDState + "\t日期:" + this.DVDDate + "\t次数:" + this.DVDCount + "]";
 46     }
 47     @Override
 48     public int compareTo(Rank o) {
 49         // TODO Auto-generated method stub
 50         if(o.DVDCount == o.DVDCount)
 51             return -1;
 52         return o.DVDCount - o.DVDCount;
 53     }
 54 }
 55 
 56 class DVDMagr{
 57     
 58     //------构造DVD集合对象
 59     DVDSet DVD = new DVDSet();
 60     
 61     //------DVD数据的初始化
 62     public void initial(){
 63         
 64         DVD.nameList.add("罗马假日");
 65         DVD.nameList.add("风声鹤唳");
 66         DVD.nameList.add("浪漫满屋");
 67         
 68         DVD.stateList.add(0);
 69         DVD.stateList.add(1);
 70         DVD.stateList.add(1);
 71         
 72         DVD.dateList.add("2016-12-1");
 73         DVD.dateList.add("无");
 74         DVD.dateList.add("无");
 75         
 76         DVD.countList.add(1);
 77         DVD.countList.add(0);
 78         DVD.countList.add(0);
 79     }
 80     
 81     //------菜单切换方法
 82     public void startMenu(){
 83         
 84         System.out.println("1.  新增 DVD");
 85         System.out.println("2.  查看 DVD");
 86         System.out.println("3.  删除 DVD");
 87         System.out.println("4.  借出 DVD");
 88         System.out.println("5.  归还 DVD");
 89         System.out.println("6.  退    出");
 90         System.out.println("7.  借出排行榜");
 91         System.out.println("*******************************");   
 92         System.out.println("请选择你要操作的栏目:");   
 93         Scanner keyNum = new Scanner(System.in);
 94         switch (keyNum.nextInt()) {
 95         case 1:
 96             System.out.println("----------->新增DVD~~~");
 97             System.out.println("*******************************");   
 98             addDVD();
 99             break;
100         case 2:
101             System.out.println("----------->查看DVD~~~");
102             System.out.println("*******************************");  
103             searchDVD();
104             break;
105         case 3:
106             System.out.println("----------->删除DVD~~~");
107             System.out.println("*******************************");   
108             deleteDVD();
109             break;
110         case 4:
111             System.out.println("----------->借出DVD~~~");
112             System.out.println("*******************************");   
113             lendDVD();
114             break;
115         case 5:
116             System.out.println("----------->归还DVD~~~");
117             System.out.println("*******************************");   
118             returnDVD();
119             break;
120         case 6:
121             System.out.println("----------->退出DVD~~~");
122             System.out.println("*******************************");  
123             returnSystem();
124             break;
125         case 7:
126             System.out.println("----------->DVD借出排行榜~~~");
127             System.out.println("*******************************");  
128             listDVD();
129             break;
130         default :
131             System.out.println("操作异常,程序重载中........");
132             break;
133         }
134     }
135     
136     //------------新增DVD的方法
137     public void addDVD(){
138         
139         Scanner keyInput = new Scanner(System.in);
140         for (int i = 0; i < DVD.nameList.size(); i++) {
141             
142             if (DVD.nameList.get(i).equals(DVD.nameList.get(DVD.nameList.size()-1))) {
143                 
144                 System.out.println("请输入你要添加的 DVD名称:");
145                 DVD.nameList.add(keyInput.next());
146                 DVD.stateList.add(1);
147                 DVD.dateList.add("无");
148                 DVD.countList.add(0);
149                 System.out.println("新的DVD添加成功~~~~~");
150                 System.out.println("继续添加请按“1”,返回请按“0”:");
151                 Scanner keyNum = new Scanner(System.in);
152                 int num = keyNum.nextInt();
153                 if (num == 1) {
154                     
155                     addDVD();
156                 }else if (num == 0) {
157                     
158                     startMenu();
159                 }
160             }
161         }
162     }
163     
164     //------------查看DVD的方法
165     public void searchDVD(){
166         
167         System.out.println("序号\t" + "状态\t" + "名称\t\t" + "借出日期");
168         for (int i = 0; i < DVD.nameList.size(); i++) {
169             
170             if (DVD.nameList.get(i) != null) {
171                 
172                 if (DVD.stateList.get(i) == 0) {
173                     
174                     System.out.println(( i + 1) + "\t已    借出\t" +"<<" + DVD.nameList.get(i) + ">>\t" + DVD.dateList.get(i));
175                 }else if (DVD.stateList.get(i) == 1) {
176                     
177                     System.out.println(( i + 1) + "\t可以借阅\t" + "<<" + DVD.nameList.get(i) + ">>\t" + DVD.dateList.get(i));
178                 }
179             }
180         }
181         returnMain();
182     }
183     
184     //------------删除DVD的方法
185     public void deleteDVD(){
186         
187         System.out.println("请输入你要删除的DVD:");
188         Scanner keyInput = new Scanner(System.in);
189         String deleteDVD = keyInput.next();
190         Iterator<String> it = DVD.nameList.iterator();
191         
192         while (it.hasNext()) {
193             
194             if (deleteDVD.equalsIgnoreCase(it.next())) {
195                 
196                 int index = DVD.nameList.indexOf(deleteDVD);
197                 if (DVD.stateList.get(index) == 1) {
198                     
199                     DVD.nameList.remove(deleteDVD);
200                     DVD.stateList.remove(index);
201                     DVD.dateList.remove(index);
202                     System.out.println("《" + deleteDVD + "》" + "删除成功!!!");
203                     break;
204                 }else if (DVD.stateList.get(index) == 0) {
205                     
206                     System.out.println("《" + deleteDVD + "》" +"已借出,无法删除");
207                     break;
208                 }
209             }
210             
211             if(it.hasNext() == false){
212                 
213                 System.out.println("对不起,无法获取此DVD信息,请确认信息后重试!!!");
214             }
215         }
216         returnMain();
217     }
218     
219     //------------借出DVD的方法
220     public void lendDVD(){
221         
222         System.out.println("请输入你要借出的DVD:");
223         Scanner keyInput = new Scanner(System.in);
224         String lendDVD = keyInput.next();
225         Iterator<String> it = DVD.nameList.iterator();
226         while (it.hasNext()) {
227             
228             if(lendDVD.equalsIgnoreCase(it.next())){
229                 
230                 int index = DVD.nameList.indexOf(lendDVD);
231                 if(DVD.stateList.get(index) == 1){
232                     
233                     System.out.println("《" + lendDVD + "》" +"已找到,可以借阅!!!");
234                     System.out.println("请输入你的借阅时间(年-月-日):");
235                     Scanner keyDate = new Scanner(System.in);
236                     DVD.dateList.set(index, keyDate.next());
237                     DVD.stateList.set(index, 0);
238                     int num = DVD.countList.get(index);
239                     num++;
240                     System.out.println("《" + lendDVD + "》" + "借阅成功!!!");
241                     break;
242                 }else if (DVD.stateList.get(index) == 0) {
243                     
244                     System.out.println("《" + lendDVD + "》" +"已借出,无法借阅!!!");
245                     break;
246                 }
247             }
248             
249             if (it.hasNext() == false) {
250                 
251                 System.out.println("对不起,无法获取此DVD信息,请确认信息后重试!!!");
252             }
253         }
254         returnMain();
255     }
256     
257     //------------归还DVD的方法
258     public void returnDVD(){
259         
260         String lendDate;
261         String returnDate;
262         System.out.println("请输入你要归还的DVD:");
263         Scanner keyInput = new Scanner(System.in);
264         String returnDVD = keyInput.next();
265         int index = DVD.nameList.indexOf(returnDVD);
266         if (index >= 0 && DVD.stateList.get(index) == 0) {
267             
268             lendDate = DVD.dateList.get(index);
269             System.out.println("请输入你的归还日期(年-月-日):");
270             returnDate = keyInput.next();
271             DVD.stateList.set(index, 1);
272             DVD.dateList.set(index, "无");
273             System.out.println("《" + returnDVD + "》归还成功!!!");
274             System.out.println("借DVD期间你所要支付的租金为(Charge):" + charge(lendDate,returnDate) + "$");
275         }else{
276         
277             System.out.println("你归还的DVD没有借阅信息,请重新确认信息!!!");
278         }
279         returnMain();
280     }
281     
282                 //-------------租金计算系统
283     public long charge(String lendDate,String returnDate){
284         
285         long charge = 0;
286         SimpleDateFormat SDF = new SimpleDateFormat("yyyy-MM-dd");
287         try {
288             java.util.Date lDate = SDF.parse(lendDate);
289             java.util.Date reDate = SDF.parse(returnDate);
290             charge = (reDate.getTime() - lDate.getTime()) / (24*60*62*1000);
291         } catch (Exception e) {
292             // TODO: handle exception
293             e.printStackTrace();
294         }
295         return charge + 2;
296     }
297     
298     //------------DVD排行榜
299     public void listDVD(){
300         
301         
302         TreeSet set = new TreeSet();
303 
304         for (int i = 0; i < DVD.nameList.size(); i++) {
305 
306             set.add(new Rank(DVD.nameList.get(i), DVD.stateList.get(i), DVD.dateList.get(i), DVD.countList.get(i)));
307         }
308         
309         Iterator it = set.descendingIterator();
310         
311         while(it.hasNext()){
312             
313             System.out.println(it.next());
314         }
315     }
316     
317     //------------返回主菜单方法
318     public void returnMain(){
319         
320         System.out.println("*******************************"); 
321         Scanner keyInput = new Scanner(System.in);
322         System.out.println("系统操作:返回(*)  退出(#):");
323         if (keyInput.next().equals("*")) {
324             
325             startMenu();
326         }else if (keyInput.next().equals("#")) {
327             
328             returnDVD();
329         }else {
330             
331             System.out.println("输入错误,异常终止!!!");
332             return;
333         }
334     }
335     
336     //------------退出DVD的方法
337     public void returnSystem(){
338         
339         Scanner keyInput = new Scanner(System.in);
340         System.out.println("确认退出请输入-0-:");
341         if (keyInput.nextInt() == 0) {
342             
343             System.out.println("DVD退出成功......");
344             return;
345         }else{
346             
347             System.out.println("输入错误,异常终止!!!");
348             return;
349         }
350     }
351 }
352 
353 public class MiniDVD {
354 
355     /**
356      * @param args
357      */
358     public static void main(String[] args) {
359         // TODO Auto-generated method stub
360         
361         //----构造管理员对象
362         DVDMagr manger = new DVDMagr();
363         
364         System.out.println("\n");  
365         System.out.println("*******************************");  
366         System.out.println("欢迎使用迷你DVD管理器");
367         System.out.println("*******************************");
368         
369         //----DVD数据的初始化
370         manger.initial();
371         
372         //----DVD的主菜单
373         manger.startMenu();
374     }
375 
376 }
posted @ 2016-12-06 15:03  姚龔子  阅读(165)  评论(0编辑  收藏  举报