import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Scanner;
class SetDvd{
//书名
List<String> name =new ArrayList<String>();
//时间
List<String> date =new ArrayList<String>();
//状态//借书的状态 , 0表示借出 ,1.表示可以借。
List<Integer> state =new ArrayList<Integer>();
//次数
List<Integer> count =new ArrayList<Integer>();
}
class MgrDvd {
String inn;
SetDvd dvd =new SetDvd();
//1.第一个方法初始化三个DVD数据
public void initial(){
//初始化三个Dvd
dvd.name.add("我本坏蛋");
dvd.date.add("2016-11-18");
dvd.state.add(0);
dvd.count.add(30);
dvd.name.add("吞噬星空");
dvd.date.add("yyyy-MM-dd");
dvd.state.add(1);
dvd.count.add(2);
dvd.name.add("英雄联盟");
dvd.date.add("yyyy-MM-dd");
dvd.state.add(1);
dvd.count.add(10);
}
//是否进入dvd管理器
public void inDvd(){
Scanner str =new Scanner(System.in);
String inn =str.next();
if(inn.equals("YES") ||(inn.equals("yes"))){
startDvd();
}else{
System.out.println("谢谢使用,欢迎再次的尝试");
inDvd();
}
}
//dvd 管理器界面
public void startDvd(){
System.out.println("********************************");
System.out.println("****** 1.新增DVD ******");
System.out.println("****** 2.查看DVD ******");
System.out.println("****** 3.删除DVD ******");
System.out.println("****** 4.借出DVD ******");
System.out.println("****** 5.归还DVD ******");
System.out.println("****** 6.DVD排行榜 ******");
System.out.println("****** 7.退出 ******");
System.out.println("********************************");
System.out.println("您好!需要什么帮助请输入以上需求对应的数字。谢谢!");
selectDvd();
}
// dvd管理器选择表
public void selectDvd(){
System.out.println("您好! 我是0001智能服务员,很高兴为您服务。请选择:");
System.out.print("-------> ");
Scanner cou = new Scanner(System.in);
int option = cou.nextInt();
switch(option){
case 1:
System.out.println("****** 新增DVD ******");
System.out.println("你想添加几个,请输入要添加的个数");
Scanner sc = new Scanner(System.in);
int sca = sc.nextInt();
for(int i=0; i<sca;i++){
addDvd();
}
returnDvd();
System.out.println("********************************");
break;
case 2:
System.out.println("****** 查看DVD ******");
lookDvd();
returnDvd();
System.out.println("********************************");
break;
case 3:
System.out.println("****** 删除DVD ******");
System.out.println("你想要删除几个,请输入要删除的个数");
Scanner sc1 = new Scanner(System.in);
int sca1 = sc1.nextInt();
for(int i=0; i<sca1;i++){
removeDvd();
}
returnDvd();
System.out.println("********************************");
break;
case 4:
System.out.println("****** 借出DVD ******");
System.out.println("你想要借几个,请输入要借出的个数");
Scanner sc2 = new Scanner(System.in);
int sca2 = sc2.nextInt();
for(int i=0; i<sca2;i++){
lendDvd();
}
returnDvd();
System.out.println("********************************");
break;
case 5:
System.out.println("****** 归还DVD ******");
System.out.println("你想归还几个,请输入要归还的个数");
Scanner sc3 = new Scanner(System.in);
int sca3 = sc3.nextInt();
for(int i=0; i<sca3;i++){
bringDvd();
}
returnDvd();
System.out.println("********************************");
break;
case 6:
System.out.println("****** DVD排行榜 ******");
list();
returnDvd();
System.out.println("********************************");
break;
case 7:
System.out.println("****** 退出 ******");
System.out.println("亲~ 谢谢使用迷你DVD管理器。");
System.out.println("********************************");
break;
default:
System.out.println(" 你好,请输入正确的指令: " );
startDvd();
System.out.println("********************************");
}
}
//dvd管理器 返回界面
public void returnDvd(){
System.out.println("********* 输入0 返回 **********" );
Scanner c = new Scanner(System.in);
int option =c.nextInt();
if(option==0){
startDvd();
}else{
System.out.println("sb 你输错了,哈哈 ...yes 再试一下");
returnDvd();
}
}
// 新增DVD
public void addDvd(){
System.out.println(" 输入你要新增的DVD名");
Scanner input = new Scanner(System.in);
String n =input.next();
dvd.name.add(n);
dvd.state.add(1);
dvd.date.add("yyyy-MM-dd");
dvd.count.add(0);//新增的DVD 次数为0
System.out.println( "<<"+n+">>添加成功");
}
//查看DVD
public void lookDvd(){
System.out.println("序号\t名称\t\t\t状态\t\t借出时间\t\t借出的次数");
for(int i=0; i<dvd.state.size();i++){
if(dvd.state.get(i)==0){
System.out.println((i+1)+"\t"+"<<"+dvd.name.get(i)+">>"+"\t"+"\t"+"已借出\t"+"\t"+dvd.date.get(i)+"\t"+dvd.count.get(i));
}else if(dvd.state.get(i)==1){
System.out.println((i+1)+"\t"+"<<"+dvd.name.get(i)+">>"+"\t"+"\t"+"未借出\t"+"\t"+dvd.date.get(i)+"\t"+dvd.count.get(i));
}
}
}
//删除DVD
public void removeDvd(){
System.out.println("输入你要删除的名字:");
Scanner c =new Scanner(System.in);
String input = c.next();
int num = dvd.name.indexOf(input);
if(num>=0){
if(dvd.state.get(num).intValue() !=0){
dvd.name.remove(num);
dvd.state.remove(num);
dvd.date.remove(num);
dvd.count.remove(num);
System.out.println("<<"+input+">>删除成功");
} else{
System.out.println("DvD已被借出 ,不能删除");
}
}else {
System.out.println("请确认DVD的名字");
}
}
//借出Dvd
public void lendDvd(){
System.out.println("输入要借的DVD的名字");
Scanner c =new Scanner(System.in);
String input = c.next();
int num = dvd.name.indexOf(input);
if(num>=0){
if(dvd.state.get(num).intValue()!=0){
System.out.println("输入借DVD的时间");
String times = c.next();
dvd.state.set(num,0);
dvd.date.set(num, times);
dvd.count.set(num, dvd.count.get(num)+1);//次数+1
System.out.println("借DVD<<"+input+">>成功,祝你看的愉快!");
}else{
System.out.println("DVD已被借出,不能再借");
}
}else {
System.out.println("不好意思,没有此dvd");
}
}
//归还DVD
public void bringDvd(){
System.out.println("输入你要还的DVD");
Scanner c =new Scanner(System.in);
String input = c.next();
int num = dvd.name.indexOf(input);
if(num>=0){
if(dvd.state.get(num).intValue()==0){
System.out.println("输入还DVD的时间");
String times = c.next();
long money=charge(dvd.date.get(num),times);
dvd.state.set(num,1);
dvd.date.set(num,"yyyy-MM-dd");
System.out.println("你的借DVD<<"+input+">>的天数为"+money+"要交的钱为"+(money*2));
System.out.println("归还DVD成功,谢谢使用 您还有别的需要吗");
}else{
System.out.println("此DVD你没有借");
}
}else {
System.out.println("不好意思,没有此dvd");
}
}
public long charge(String date1,String date2){
//做时间差
//将String转为Date做计算
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
long charge = 0;
try{
Date d1 = sd.parse(date1);
Date d2 = sd.parse(date2);
//时间也是以毫秒为单位。
charge = (d2.getTime() - d1.getTime()) / (1000*24*60*60);
}catch(ParseException e){
System.out.println(e);
}
return charge;
}
//排行榜
public void list(){
Object[] ocCount =dvd.count.toArray();
Object[] ocName = dvd.name.toArray();
System.out.println(dvd.count.size()+" "+dvd.name.size());
int temp=0;
String str=null;
for(int i = 0;i<dvd.count.size()-1;i++){
for(int j =0 ; j<dvd.count.size()-1-i;j++){
if((int)ocCount[j]<(int)ocCount[j+1]){
temp =(int)ocCount[j];
ocCount[j]=ocCount[j+1];
ocCount[j+1]=temp;
str =(String)ocName[j];
ocName[j] = (String)ocName[j+1];
ocName[j+1] =str;
}
}
}
// System.out.println("序号\t"+"DVD\t\t"+"\t"+"借出的次数");
for(int i =0 ;i<dvd.count.size();i++){
System.out.println((i+1) + "\t" + "<<"+ocName[i]+">>" + "\t\t" + ocCount[i]);
}
}
}
public class demo1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//初始化dvd
System.out.println("****** 欢迎使用迷你DVD管理器 ******");
System.out.println("您是否要进入迷你DVD管理器:YES ? NO");
MgrDvd dvd = new MgrDvd();
dvd.initial();
dvd.inDvd();
//调用存入的内容
}
}