利用所学的集合写出的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. CE 进程间通信

    WINCE下进程间通信常用的方式有:剪贴板(Clipboard),网络套接字(Socket),WM_COPYDATA消息,共享内存,管道(消息队列),注册表等 剪贴板 //////////////// ...

  2. 【转载】ANSYS完全法与模态叠加法瞬态分析实例

    原文地址:http://www.caetecc.com/thread-2172-1-1.html ! 半脉冲载荷 --- 模态叠加法fini/clear,nostart/PREP7ET,1,BEAM4 ...

  3. ffmpeg音频编码

    在弄音频采集时,需要设置缓存的大小,如果只是简单的采集和直接播放PCM数据,缓存的大小一般不影响播放和保存. 但是,如果需要使用FFMpeg音频编码,这时,音频缓存的大小必须设置av_samples_ ...

  4. HackerRank-Longest Subarray

    give an array and target value, find the max length of the subarray which sum of the elements is les ...

  5. IntelliJ IDEA 在网页修改数据,但是在浏览器刷新的时候,不能读取到修改之后的数据

    使用IntelliJ IDEA 在网页修改数据,但是在浏览器刷新的时候,不能读取到修改之后的数据? 解决办法:tomcat配置中,On frame deactivation属性选择Update cla ...

  6. Arcgis Server 10.2默认服务端口号修改方法

    本人安装Arcgis Server 10.2之后发布了一个地图服务,该服务默认使用的端口号是6080,本人使用的是教育网,使用教育网均能正常使用该服务,但是使用电信或者移动网络均不能正常访问该网站. ...

  7. oracle 职业学习指引

    风哥 它是阿里巴巴造出的概念.其本意是,在阿里巴巴的IT架构中,去掉IBM的小型机.Oracle数据库.EMC存储设备,代之以自己在开源软件基础上开发的系统. 思科.IBM.谷歌.高通.英特尔.苹果. ...

  8. MySQL Innodb数据库性能实践——热点数据性能

    摘要: 对于大部分的应用来说,都存在热点数据的访问,即:某些数据在一定时间内的访问频率要远远高于其它数据. 常见的热点数据有“最新的新闻”.“最热门的新闻”.“下载量最大”的电影等. 为了了解MySQ ...

  9. SQL Server 优化-执行计划

    对于SQL Server的优化来说,优化查询可能是很常见的事情.由于数据库的优化,本身也是一个涉及面比较的广的话题, 因此本文只谈优化查询时如何看懂SQL Server查询计划.毕竟我对SQL Ser ...

  10. Head First 设计模式之观察者模式(Observer Pattern)

    前言: 这一节开始学习观察者模式,开始讲之前会先像第一节那样通过一个应用场景来引入该模式.具体场景为:气象站提供了一个WeatherData对象,该对象可以追踪获取天气的温度.气压.湿度信息,Weat ...