利用所学的集合写出的DVD管理系统,运用到了所学到集合基础。

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet; import org.omg.CORBA.PUBLIC_MEMBER;
import org.w3c.dom.ls.LSInput;
class DVDSetcompare implements Comparator{
public int compare(Object o1, Object o2) {
DVDSet d1 = (DVDSet)o1;
DVDSet d2 = (DVDSet)o2;
return d1.count-d2.count;
}
} class DVDSet {
String name;//DVD的名字
int state ;//借出状态:0已借出/1:可借
String date ;//DVD借出日期
int count;//借出次数 public DVDSet(String name,int state, String date, int count){
this.name = name;
this.state = state;
this.date = date;
this.count = count;
} public String toString() {
// TODO Auto-generated method stub
return this.name;
} }
class DVDMgr{
//创建集合用来存贮对象的信息
List list = new ArrayList<>(); int pas;//记录每次借出的记录次数 private DVDSet DVDSet;
public void initial() { list.add(new DVDSet("罗马假日", 0, "2016-2-1", 30));
list.add(new DVDSet("风声鹤唳", 1, null, 50));
list.add(new DVDSet("浪漫满屋", 1, null, 1)); }
public void startMenu(){
System.out.println("**************^^^^^^^^^^^*****************");
System.out.println("欢迎使用迷你DVD管理器");
String[] book = {"1.新增DVD","2.查看DVD","3.删除DVD","4.借出DVD","5.归还DVD","6.排行榜","7.退出"};
for(int i = 0; i<book.length;i++){ System.out.println(book[i]);
} System.out.println("*******************************");
System.out.print("请选择:");
Scanner scan = new Scanner(System.in);
int chioce = scan.nextInt();
switch(chioce){
case 1:
addDVD();
break;
case 2:
lookupDVD();
break;
case 3:
deleteDVD();
break;
case 4:
lendDVD();
break;
case 5:
returnDVD();
break;
case 6:
listDVD();
break;
case 7:
System.out.println("感谢使用,欢迎您下次使用!!!!!");
break;
default:System.out.println("输入错误,异常终止"); }
} //*************查看开始***********
public void lookupDVD(){
System.out.println("--->查看DVD\n"); System.out.println("序号\t状态\t名称\t\t借出日期");
for(int i = 0;i<list.size();i++){
DVDSet dvd= (DVDSet)list.get(i);
if (dvd.state==0) {
System.out.println(i+ "\t" + "已借出" + "\t" + dvd.name+ "\t\t" + dvd.date);
}
else if (dvd.state==1) {
System.out.println(i + "\t" + "可借" + "\t" + dvd.name+ "\t\t");
} } returnMain();
}
//**********返回函数块*******
public void returnMain(){
Scanner input = new Scanner(System.in);
System.out.print("输入0返回:");
if(input.nextInt()==0){
startMenu();
}else{ System.out.println("输入错误,异常终止,请中重新输入");
returnMain();
} }
//******************返回函数块结束********* //*************实现增加DVD开始*************
public void addDVD(){
Scanner input = new Scanner(System.in);
System.out.println("***************>>>>新增DVD\n");
System.out.println("请输入DVD名称");
String name1 = input.next();
list.add(new DVDSet(name1, 1, null, 0));
System.out.println(name1+"新增成功");
returnMain();
} //*************实现增加DVD结束*************
//*************实现删除DVD开始*************
public void deleteDVD(){
System.out.println("***************>>>>删除DVD\n");
System.out.print("请输入你要删除DVD的名称:");
Scanner input =new Scanner(System.in);
String name = input.next();
Boolean boolean1 = false;
for (int i = 0; i < list.size(); i++) {
DVDSet dvdSet = (DVDSet)list.get(i); if ((int)dvdSet.state==0&&dvdSet.name.equals(name)) {
System.out.println(dvdSet.name+"已借出无法删除");
deleteDVD();
}
else if(dvdSet.name.equals(name)&&dvdSet.state==1){
list.remove(i);
boolean1= true;
} } if (boolean1) {
System.err.println(name+"删除成功"); }else {
System.err.println("没有这个DVD,请重亲输入");
deleteDVD();
}
System.out.println();
returnMain(); }
//*************实现删除DVD结束************* //*************实现借出DVD开始*************
public void lendDVD(){
Scanner input = new Scanner(System.in);
System.out.println("***************>>>>借出DVD\n");
System.out.println("请输入你要借的DVD的名称"); String lendname = input.next();
boolean b = false;
for (int i = 0; i < list.size(); i++) {
DVDSet dvdSet = (DVDSet)list.get(i);
if(dvdSet.name.equals(lendname)&&dvdSet.state==1){
System.out.println("请输入借出的日期(年-月-日)");
String date = input.next();
list.set(i, new DVDSet(lendname, 0, date,pas++ ));
b=true; }else if(dvdSet.name.equals(lendname)&&(int)dvdSet.state==0){
System.out.println("<<"+lendname+">>已经被借出");
returnMain();
}
} if (b==true) {
System.out.println("借出<<"+lendname+">>成功!");
}else {
System.out.println("找不到该DVD比配的信息");
returnMain();
} returnMain();
}
//*************实现借出DVD结束************* //*************实现归还DVD结束*************
public void returnDVD(){
Scanner input = new Scanner(System.in);
System.out.println("***************>>>>归还DVD\n");
System.out.println("请输入你要归还的DVD的名称");
String returndvd = input.next();
for(int i =0 ;i<list.size();i++){
DVDSet dvdSet = (DVDSet)list.get(i);
if (returndvd.equals(dvdSet.name)&&dvdSet.state==0) {
System.out.println("请输入归还的DVD的日期");
String date = input.next();
System.out.println(returndvd+"归还成功!");
System.out.println("借出日期为:" + dvdSet.date);
System.out.println("归还日期为:" + date); //计算归还的本金
String d1 =dvdSet.date;//第一个日期
String d2 = date;//第二个日期
long charge = 0;
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
try{
Date D1 = sd.parse(d1);
Date D2 = sd.parse(d2);
charge = ((D2.getTime()-D1.getTime())/(24*60*60*1000))/10; }catch(ParseException e){
e.printStackTrace(); }
list.set(i, new DVDSet(returndvd,1, null, 1)); System.out.println("应付租金:" + charge + "元");
break;
}else if(dvdSet.name.equals(returndvd)&&dvdSet.state==1) {
System.out.println("这DVD没有被借出,无需归还");
break;
}/*else if (dvdSet.name!=returndvd) {
System.out.println("这DVD没有");
break;
} */ } returnMain();
}
//*************实现归还DVD结束************* //*************实现排行榜DVD开始*************
public void listDVD(){
System.out.println("欢迎进入Dvd排行榜");
TreeSet set = new TreeSet<>(new DVDSetcompare());
for (int i = 0; i < list.size(); i++) {
DVDSet dvdSet = (DVDSet)list.get(i);
set.add(dvdSet);
}
Object[] arr = set.toArray();
int num = 0;
for (int i = set.size()-1; i >=0; i--) {
num++;
System.out.println("第"+num+"名"+"\t"+arr[i]);
}
returnMain(); } } public class Demo { /**
* @param args
*/
public static void main(String[] args) {
DVDMgr dm = new DVDMgr();
dm.initial();
dm.startMenu();
} }

DVD管理器集合版的更多相关文章

  1. 运用集合来做一个DVD管理器(全代码)

    package DVD;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Array ...

  2. 迷你DVD管理器

    import java.text.*; import java.util.*; class DVDSet { String[] name=new String[50]; //定义一个DVD数组 boo ...

  3. 迷你DVD管理器项目

    package chapter5; import java.util.*; public class MiniDVD { public static void main(String[] args){ ...

  4. java模拟DVD管理器

    import java.util.*;import java.text.*;class DVDSet{    String[] name = new String[50]; //名字    int[] ...

  5. java 迷你DVD管理器

    1.DvdSet类 package dvd_01; /** * 定义dvd的一些属性 * @author Administrator * */ public class DvdSet { String ...

  6. 安装ArcGIS License 10.1 许可管理器 破解版 服务启动又失败的解决办法

    安装破解文件的提示执行 替换许可管理器Bin下面的service.txt  文件,之后会发现,许可管理器启动不了(有时候又可以,挺郁闷), 经过多次的试验,我找到了一种折中解决的方法,供大家参考 解决 ...

  7. 迷你DVD管理器(Java版)

    import java.text.SimpleDateFormat;import java.util.Date;import java.util.Scanner;class Test {    pub ...

  8. JAVA基础代码分享--DVD管理

    问题描述 为某音像店开发一个迷你DVD管理器,最多可存6张DVD,实现碟片的管理. 管理器具备的功能主要有: 1.查看DVD信息. 菜单选择查看功能,展示DVD的信息. 2.新增DVD信息 选择新增功 ...

  9. 控制台输出<迷你DVD管理>

    使用顺序.选择.循环.跳转语句 数组 功能实现菜单显示和切换 输入的数字不符合要求直接退出程序 用户可以选择新增.查看. 删除.借出.归还.退出 思路分析 使用switch语句实现菜单选择 使用do- ...

随机推荐

  1. id生成策略 id工具类

    import java.util.Random; /** * 各种id生成策略 * <p>Title: IDUtils</p> * <p>Description: ...

  2. Torch 网络层 参数的初始化问题

    Torch 网络层 参数的初始化问题 参考链接: https://github.com/Kaixhin/nninit 从 Torch 中自带的包,可以看到:https://github.com/tor ...

  3. 转:linux lsof命令详解

    简介 lsof(list open files)是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件.所以如传输控 ...

  4. dvwa第一次接触

    DVWA (Damn Vulnerable Web Application)DVWA是用PHP+Mysql编写的一套用于常规WEB漏洞教学和检测的WEB脆弱性测试程序.包含了SQL注入.XSS.盲注等 ...

  5. python3.5学习笔记--利用字典对指定文本字符串进行替换

    事情缘起于同事整理excel,需要批量的对某一列的内容进行替换. 举例: 数据格式:以下为一列内容,每行都在一个单元格中,目的是将数字替换为制定的中文字符. 1,2,31 ,4,33 ,21,, 对于 ...

  6. mybatis实战教程(mybatis in action)之八:mybatis 动态sql语句

    mybatis 的动态sql语句是基于OGNL表达式的.可以方便的在 sql 语句中实现某些逻辑. 总体说来mybatis 动态SQL 语句主要有以下几类:1. if 语句 (简单的条件判断)2. c ...

  7. MyBatis入门学习教程-解决字段名与实体类属性名不相同的冲突

    在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定都是完全相同的,下面来演示一下这种情况下的如何解决字段名与实体类属性名不相同的冲突. 一.准备演示需要使用的表和数据 CREATE TAB ...

  8. 简单的聊天室代码php+swoole

    php swoole+websocket 客户端代码 <!DOCTYPE html> <html> <head> <title></title&g ...

  9. [LeetCode] 14. Longest Common Prefix

    Write a function to find the longest common prefix string amongst an array of strings. public class ...

  10. Gulp安装及配合组件构建前端开发一体化

    原文:http://www.dbpoo.com/getting-started-with-gulp/ 所有功能前提需要安装nodejs(本人安装版本v0.10.26)和ruby(本人安装版本1.9.3 ...