DVD管理系统(MiniDVD)

  1 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 }

转载于:https://www.cnblogs.com/fengqiqi/p/6133064.html

DVD管理系统修改版相关推荐

  1. kali linux安装watchdog(Watchdog是bayonet修改版)bayonet是一款src资产管理系统,从子域名、端口服务、漏洞、爬虫等一体化的资产管理系统

    Watchdog bayonet是一款src资产管理系统,从子域名.端口服务.漏洞.爬虫等一体化的资产管理系统 Watchdog是bayonet修改版,重新设计了数据库及web及扫描程序 下载地址:h ...

  2. java-net-php-python-jsp保险公司报销演示录像修改版2020计算机毕业设计程序

    java-net-php-python-jsp保险公司报销演示录像修改版2020计算机毕业设计程序 java-net-php-python-jsp保险公司报销演示录像修改版2020计算机毕业设计程序 ...

  3. fc天使之翼2020修改版下载_海岛奇兵无限钻石修改版下载-海岛奇兵无限钻石修改版下载2020...

    海岛奇兵无限钻石修改版绝对是小伙伴们都在寻找的资源,修改众多资源,玩家可以解锁不同兵种建立更强大的部队啦!通过塔防与掠夺不断强化我方战力,合理运用策略至关重要,喜欢的朋友千万别错过! 修改无限钻石.金 ...

  4. 隐藏探针显示php版本号,修改版雅黑PHP探针 支持PHP7+(v0.4.7.2)

    雅黑 PHP 探针用于 Linux 系统(不推荐使用于 Windows 系统),每秒更新,不用刷网页.可以实时查看服务器硬盘资源.内存占用.网卡流量.系统负载.服务器时间等信息,1 秒钟刷新一次. 可 ...

  5. 【转】修改版WinXP集体歇业避免遭遇调查

    来自:新浪科技   立雄 20日,有消息披露番茄花园作者洪磊确认被拘的消息后,在业界引发了强烈的反响.22日凌晨,记者再次尝试登陆这些版本的官方下载网站时发现,他们已经集体歇业,或关闭提供软件下载的官 ...

  6. phpcms9.6 ueditor_PHPCMS V9.6.6 修改版

    本帖最后由 zhaoxunzhiyin 于 2020-12-12 18:14 编辑 PHPCMS V9.6.6 修改版官方改了后台界面,修复bug 安装文件不检查index.html 安装完删除安装目 ...

  7. 列字段通用excel导入修改版

    最近使用开发的过程中出现了一个小问题,顺便记录一下原因和方法--列字段 入导Excel对网上通用excel入导修改版:处理Excel中单元格为数字问题.可以连续取读多个sheet 每日一道理 书,各种 ...

  8. 官方原版美化修改版完美适配双端海洋cms模板

    简介: 官方原版美化修改版海洋cms模板,官方V10.7版本自带原模板,已测试,完美无错,自适应手机端. 美化修改了:1.导航为一行,2.首页添加幻灯片效果,3.播放页修改为完整显示,不会因为页面的滑 ...

  9. Gentoo Framebuffer, Bootsplash Grubsplash 指南(修改版)

    Gentoo Framebuffer, Bootsplash & Grubsplash 指南(修改版) Gentoo Framebuffer, Bootsplash & Grubspl ...

最新文章

  1. java cirteria_java – 简单的JPA CriteriaQuery的条件
  2. python多张图片合并拼接,python制作sprite图、雪碧图
  3. BZOJ-1968 COMMON 约数研究 数论+奇怪的姿势
  4. git 上传修改文件
  5. java切面获取异常日志_spring aop 配置切面,记录系统异常存入log日志
  6. android 字体切换快捷键,Android stdio 字体设置及快捷键
  7. php连接mysql数据库输出_PHP连接并输出数据库数据实例代码
  8. rust笔记9 错误处理
  9. 戴尔笔记本怎么重装系统win11,win11系统安装方法
  10. The mbstring extendsion is missing,Please check you PHP configuration
  11. Lucene.Net中 FSDirectory存储方式下一个 Document是如何得到的
  12. View的setLayerType() , setDrawingCacheEnabled() 方法用法
  13. Apache PDFBox 1.8.1 发布
  14. 最全经典 | 机器视觉基础知识汇总
  15. cron表达式及在线生成器
  16. 月入5万!这个头条号变现大招好多人都没注意到
  17. EasyBoot教程二:制作PE多重启动盘方法
  18. HTML特效代码大全
  19. 大量数据导出Excel 之 多重影分身之术
  20. Android之设备加密

热门文章

  1. 苹果cms试看提示文字怎么改[苹果CMS技术教程]
  2. 计算机标记的定义,标记网格法
  3. 电脑开不了机怎么办?如何解决?
  4. “网红”白鸦创立6年的有赞,为何不敌同样诞生于微信生态3年的拼多多?
  5. BMP与JPG图片格式的互相转换
  6. TP3.2.3到TP5的变化
  7. 拼多多数据分析面试题大合集(20个)
  8. 【面试】数据仓库面试经验总结
  9. iNFTnews|日本即时通讯软件LINE推出NFT市场
  10. 字节跳动测试岗位面试题