利用所学的集合写出的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. 每天一个命令ls 2015/4/1

    ls命令可以说是Linux下最常用的命令 -a 列出目录下的所有文件,包括以 . 开头的隐含文件.-b 把文件名中不可输出的字符用反斜杠加字符编号(就象在C语言里一样)的形式列出.-c 输出文件的 i ...

  2. VS安装及单元测试

    VS安装过程: 最大子数组算法已提交至coding.net: https://git.coding.net/CoCoBeer/Maxsubaray.git 用例编号 用例描述 输入数据 预期输出数据 ...

  3. React组件性能优化

    转自:https://segmentfault.com/a/1190000006100489 React: 一个用于构建用户界面的JAVASCRIPT库. React仅仅专注于UI层:它使用虚拟DOM ...

  4. 开发adobe ane分享

    最近的项目使用adobe air开发,不可能避免的要使用到ane,项目初期的时候,使用了网上搜索到的了一些开源ane,最后发现,很多都不完善,要么版本太久,要么BUG很多,无人维护,所以下决心自己开发 ...

  5. 如何用java写出无副作用的代码

    搞java的同学们可能对无副作用这个概念比较陌生,这是函数式编程中的一个概念,无副作用的意思就是: 一个函数(java里是方法)的多次调用中,只要输入参数的值相同,输出结果的值也必然相同,并且在这个函 ...

  6. Xcode 各个版本下载地址

    从Xcode8开始不支持uiautomation了,需要下载老版本的xcode Xcode 的各种版本的下载地址  https://developer.apple.com/download/more/

  7. ORA-00907: 缺失右括号

    创建表时出现ORA-00907: 缺失右括号的情况 调整关键字的顺序 CREATE TABLE s_dept(ID PRIMARY KEY NOT NULL NUMBER(7),NAME NOT NU ...

  8. 浅入浅出“服务器推送”之一:Comet简介

    最近有个项目,其中有项需求要从服务器端主动向客户端推送数据,本以为很简单,但在实际做的过程中发现很棘手,并没有想象中的简单.从网上搜索学习,发现主流讲的还是Ajax的长轮询技术或者流技术,websoc ...

  9. python之 Redis

    Redis redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorte ...

  10. [系统集成] 部署 mesos-exporter 和 prometheus 监控 mesos task

    前几天我在mesos平台上基于 cadvisor部署了 influxdb 和 grafana,用于监控 mesos 以及 docker app 运行信息,发现这套监控系统不太适合 mesos + do ...