package com.ss;
public class DVDSet {
String[] name=new String[50]; //DVD名称
int[] state=new int[50]; //DVD借出状态 0已借出 1可借
String[] time=new String[50]; //DVD借出日期
int[] count=new int[50]; //DVD借出次数
}
package com.ss;
import java.util.*;
import java.text.*;
public class DVDMag {
DVDSet dvd = new DVDSet();
public void initial() {
dvd.name[0] = "罗马假日";
dvd.state[0] = 0;
dvd.time[0] = "2013-7-1";
dvd.name[1] = "风声鹤唳";
dvd.state[1] = 1;
dvd.name[2] = "浪漫满屋";
dvd.state[2] = 1;
}
public void startMenu() {
System.out.println("欢迎使用迷你DVD管理器");
System.out.println("------------------------------------");
System.out.println("\t1.新增DVD");
System.out.println("\t2.查看DVD");
System.out.println("\t3.删除DVD");
System.out.println("\t4.借出DVD");
System.out.println("\t5.归还DVD");
System.out.println("\t6.退出");
System.out.println("请选择:");
Scanner input = new Scanner(System.in);
int shu = input.nextInt();
switch (shu) {
case 0:
ph();
break;
case 1:
xz();
break;
case 2:
ck();
break;
case 3:
sc();
break;
case 4:
jc();
break;
case 5:
gh();
break;
case 6:
System.out.println("谢谢使用!");
break;
default:
System.out.println("您的输入有误,请重新输入:");
returnmain();
}
}
public void returnmain() {
Scanner input = new Scanner(System.in);
System.out.println("输入0返回:");
int s = input.nextInt();
if (s == 0) {
startMenu();
} else {
System.out.println("输入错误,异常终止!");
}
}
public void ph() {
String ph[] = new String[50];
int count[] = new int[50];
for (int i = 0; i < dvd.name.length; i++) {
ph[i] = dvd.name[i];
count[i] = dvd.count[i];
}
for (int i = 0; i < ph.length; i++) {
for (int j = i + 1; j < ph.length; j++) {
if (count[i] > count[j]) {
int k = count[i];
count[i] = count[j];
count[j] = k;
String m = ph[i];
ph[i] = ph[j];
ph[j] = m;
}
}
}
System.out.println("--->排行榜");
System.out.println("**********************************");
System.out.println("名次\t名称");
for (int i = ph.length - 1; i >= 0; i--) {
if (ph[i] != null) {
System.out.println(count[i] + "\t<<" + ph[i] + ">>");
}
}
System.out.println("****************************************");
returnmain();
}
public void xz() {
System.out.println("--->新增DVD");
Scanner input = new Scanner(System.in);
System.out.println("请输入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;
dvd.time[i] = "";
System.out.println("新增<<" + name + ">>成功!");
break;
}
}
System.out.println("*****************************************");
returnmain();
}
public void ck() {
System.out.println("--->查看DVD");
System.out.println("序号\t\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<<" + dvd.name[i] + ">>\t"
+ dvd.time[i]);
} else if (dvd.state[i] == 1) {
System.out.println((i + 1) + "\t可借\t" + dvd.name[i] + ">>");
}
}
System.out.println("*********************************************");
returnmain();
;
}
public void sc() {
System.out.println("--->删除DVD");
Scanner input = new Scanner(System.in);
System.out.println("请输入DVD名称:");
String name = input.next();
boolean flag = false;
for (int i = 0; i < dvd.name.length; i++) {
if (dvd.name[i] != null && dvd.name[i].equalsIgnoreCase(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.time[j] = dvd.time[j + 1];
j++;
} //最后一个不为空的元素置空
dvd.name[j] = null;
dvd.time[j] = null;
System.out.println("删除<<" + name + ">>成功!");
flag = true; //标识符
break;
} else if (dvd.name[i] != null
&& dvd.name[i].equalsIgnoreCase(name) && dvd.state[i] == 0) {
System.out.println("<<" + name + ">>借出状态,不能删除!");
flag = true;
break;
}
if (flag == true) {
System.out.println("没有找到匹配信息!");
}
}
System.out.println("******************************************");
returnmain();
}
public void jc() {
System.out.println("--->借出DVD");
System.out.println("请输入DVD的名称:");
Scanner input = new Scanner(System.in);
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.time[i] = input.next();
System.out.println("<<" + name + ">>借出成功!");
dvd.state[i] = 0;
dvd.count[i]++;
break;
} else if (dvd.name[i].equals(name) && dvd.state[i] == 0) {
System.out.println("不好意思,<<" + name + ">>已被借出!");
break;
}
}
System.out.println("********************************");
returnmain();
}
public void gh() {
System.out.println("--->归还DVD");
System.out.println("请输入DVD名称:");
Scanner input = new Scanner(System.in);
String name = input.next();
long zj = 0;
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] == 0) {
System.out.println("请输入归还日期:");
String re = input.next();
zj = charge(dvd.time[i], re);
System.out.println("<<" + name + ">>归还成功!");
dvd.state[i] = 1;
System.out.println("借出日期为:" + dvd.time[i]);
System.out.println("归还日期为:" + re);
System.out.println("应付租金(元):" + zj);
break;
} else if (dvd.name[i].equals(name) && dvd.state[i] == i) {
System.out.println("没有被借出,无法进行归还操作!");
break;
}
}
System.out.println("*****************************************");
returnmain();
}
//计算日期差
private 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;
}
}
测试类:
package com.ss;
public class DVDout {
public static void main(String[] args) {
DVDMag dm=new DVDMag();
dm.initial();
dm.startMenu();
}
}