import java.util.*;
import java.text.*;
public class DvdMgr {
DvdSet dvd=new DvdSet();
Scanner input = new Scanner(System.in);
public void initial(){
dvd.name[0]="罗马假日";
dvd.state[0]=0;
dvd.date[0]="2010-7-1";
dvd.count[0]=15;
dvd.name[1]="风声";
dvd.state [1]=1;
dvd.count[1]=12;
dvd.name[2]="浪漫满屋";
dvd.state [2]=1;
dvd.count[2]=30;
}
public void startMenu(){
System.out.println("欢 迎 使 用 迷 你 DVD 管 理 器");
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. 退 出 ");
System.out.print("--------------------------------------\n");
System.out.print("请选择: ");
int choice = input.nextInt();
switch(choice){
case 1:
add();
System.out.println("**************************");
returnMain();
break;
case 2:
search();
System.out.println("**************************");
returnMain();
break;
case 3:
delete();
System.out.println("**************************");
returnMain();
break;
case 4:
lend();
System.out.println("**************************");
returnMain();
break;
case 5:
reTurn();
System.out.println("**************************");
returnMain();
break;
case 6:
System.out.println("\n谢谢 使 用!");
break;
case 7:
list();
break;
}
}
public void returnMain(){
System.out.print("输入0返回:");
if(input.nextInt()==0){
startMenu();
}else{
System.out.println("输入错误,异常终止!");
}
}
/**
* 实现查看DVD信息
*/
public void search(){
System.out.print("------>查看DVD\n\n");
System.out.println("序号\t状态\t名称\t\t\t借出日期");
for(int i=0; i<dvd.name.length;i++){
if(dvd.name[i]==null){
break;
}else if(dvd.state[i]==0){
System.out.println((i+1)+"\t已借出\t\t<<"+dvd.name[i]+">>\t"+dvd.date[i]);
}else if(dvd.state[i]==1){
System.out.println((i+1)+"\t可借\t<<"+dvd.name[i]+">>\t");
}
}
}
/**
* 增加DVD信息
*/
public void add(){
System.out.print("------>查看DVD\n\n");
System.out.print("请输入DVD名称:");
String name=input.next();
for(int i=0;i<dvd.name.length;i++){
if(dvd.name [i]==null){
dvd.name[i]=name;
dvd.state[i]=1;
System.out.print("新增<<"+name+">>成功\n\n");
break;
}
}
}
/**
* 删除DVD信息
*/
public void delete(){
System.out.print("------>删除DVD\n\n");
System.out.print("请输入DVD名称:");
boolean flag=false;
String name=input.next();
for(int i=0;i<dvd.name.length;i++){
if(dvd.name[i]!=null && dvd.name [i].equals(name)&& dvd.state[i]==1){
int j=i;
while(dvd.name [j+1]!=null){
dvd.name [j]=dvd.name[j+1];
dvd.state[j]=dvd.state[j+1];
dvd.date[j]=dvd.date[j+1];
j++;
}
dvd.name[j]=null;
dvd.date[j]=null;
System.out.println("删除<<"+name+">>成功");
flag=true;
break;
}else if(dvd.name[i]!=null && dvd.name [i].equals(name)&& dvd.state[i]==0){
System.out.println("<<"+name+">>为借出状态,不能删除!");
flag=true;
break;
}
}
if(flag==false){
System.out.println("对不起,没有该DVD!");
}
}
/**
* 借出DVD
*/
public void lend(){
System.out.print("------>借出DVD\n\n");
System.out.print("请输入DVD名称:");
String name=input.next();
for(int i=0;i<dvd.name.length;i++){
if(dvd.name [i]==null){
System.out.println("没有找到匹配信息。");
break;
}else if(dvd.name[i].equals(name)&& dvd.state[i]==1){
System.out.println("请输入DVD借出日期:");
dvd.date [i]=input.next();
dvd.state[i]=0;
System.out.println("借出成功!\n");
break;
}else if(dvd.name[i].equals(name)&& dvd.state[i]==0){
System.out.println("对不起,您要的DVD已被借出。");
break;
}
}
}
/**
* 归还DVD
*/
public void reTurn(){
System.out.print("------>归还DVD\n\n");
System.out.print("请输入DVD名称:");
String name=input.next();
for(int i=0;i<dvd.name.length;i++){
if(dvd.name[i]==null){
System.out.print("没有找到匹配信息\n");
break;
}else if(dvd.name[i].equals(name)&& dvd.state[i]==0){
System.out.print("请输入归还日期:");
String date=input.next();
long day=charge(dvd.date [i],date);
if(day<=0){
System.out.print("归还日期有误!");
break;
}else{
System.out.println("\n归还《"+name+"》成功!");
System.out.println("借出日期为:"+dvd.date[i]);
System.out.println("归还日期为:"+date);
System.out.println("应付租金(元):"+day);
dvd.state[i]=1;
dvd.date [i]=null;
break;
}
}else if(dvd.name[i].equals(name)&& dvd.state[i]==1){
System.out.print("该DVD没有借出!");
break;
}
}
}
public long charge(String dstr1,String dstr2){
long charge=0;
SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM-dd");
try{
Date d1=sd.parse(dstr1);
Date d2=sd.parse(dstr2);
charge=(d2.getTime()-d1.getTime())/(24*60*60*1000);
}catch (ParseException e){
e.printStackTrace();
}
return charge;
}
/**
* 借出排行榜
*/
public void list(){
//定义新数组,用来存放排序后DVD信息
String[] newname = new String[50]; //
int[] newcount=new int[50];
for(int k=0;k<dvd.name .length;k++){
newname[k]=dvd.name[k];
newcount[k]=dvd.count[k];
}
//利用冒泡排序算法进行排序
for(int i=0;i<newname.length-1;i++){
for(int j=0;j<newname.length-i-1;j++){
if(newcount[j]>newcount[j+1]){
int tempc=newcount[j];
newcount[j]=newcount[j+1];
newcount[j+1]=tempc;
String tempn=newname[j];
newname[j]=newname[j+1];
newname[j+1]=tempn;
}
}
}
System.out.println("---> 排行榜\n");
System.out.println("**************************");
System.out.println("次数\t名称");
//显示排行榜信息
for(int i=newname.length-1;i>=0;i--){
if(newname[i]!=null){
System.out.println(newcount[i]+"\t<<"+ newname[i]+ ">>" );
}
}
System.out.println("**************************");
returnMain();
}
}