package com.xxx.dvd;
public class DVDSet {
public String name;//dvd名称
public int state;//dvd状态
public String date;//借dvd日期
public int count;//借DVD次数
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getState() {
return state;
}
public void setState(int state) {
this.state = state;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public DVDSet() {
super();
// TODO Auto-generated constructor stub
}
public DVDSet(String name, int state, String date,int count) {
super();
this.name = name;
this.state = state;
this.date = date;
this.count = count;
}
}
package com.xxx.dvd;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class DVDMgr {
public DVDSet[] dvd = new DVDSet[100];
public void initial(){//初始化
dvd[0] = new DVDSet("罗马假日",0,"2013-7-1",1);
dvd[1] = new DVDSet("风声鹤唳",1,"",0);
dvd[2] = new DVDSet("浪漫满屋",1,"",0);
}
//增加dvd
public void addDvd(){
Scanner sc = new Scanner(System.in);
System.out.println("--->新增DVD");
System.out.println("请输入DVD名称:");
String name = sc.next();
System.out.println("新增"+name+"成功!");
int index;
for (index = 0; index < dvd.length; index++) {
if(dvd[index]==null){
break;
}
}
dvd[index]=new DVDSet(name,1,"",0);
}
//查看dvd
public void ShowDvd(){
System.out.println("--->查看书籍");
System.out.println("序号"+"\t"+"名称"+"\t"+"状态"+"\t"+"借出日期");
for (int i = 0; i < dvd.length; i++) {
if(dvd[i] != null){
if(dvd[i].getState()==1){
System.out.println(i+"\t"+dvd[i].getName()+"\t"+"可借"+"\t"+dvd[i].getDate());
}else{
System.out.println(i+"\t"+dvd[i].getName()+"\t"+"已借出"+"\t"+dvd[i].getDate());
}
}
}
}
//删除dvd
public void deleteDvd(){
System.out.println("--->删除DVD");
Scanner sc = new Scanner(System.in);
System.out.println("输入DVD名称");
String dvdname = sc.nextLine();
int index;//删除dvd的索引
for (int i = 0; i < dvd.length; i++) {
if(dvd[i].getName().equals(dvdname)){//找到要删除dvd的序列
index = i;//序列赋值给index
if(dvd[index].getState()==1){//判断是否借出
int j=0;
for (int k = 0; k < dvd.length; k++) {
if(k!=index){
dvd[j]=dvd[k];
j++;
}
}
}else{
System.out.println("改dvd已经借出!无法删除");
}
break;
}
}
System.out.println(dvdname+"删除成功!");
}
//借DVD
public void borrowDVD(){
Scanner sc = new Scanner(System.in);
System.out.println("--->借出DVD");
System.out.println("输入DVD名称:");
String dvdname = sc.nextLine();
try {
for (int i = 0; i < dvd.length; i++) {
if(dvd[i].name.equals(dvdname)){
if(dvd[i].getState()==1){
System.out.println("请输入借DVD日期:");
String date = sc.nextLine();
dvd[i].setState(0);
dvd[i].setDate(date);
System.out.println("借出"+dvdname+"成功!");
int count = dvd[i].getCount();
dvd[i].setCount(++count);
break;
}if(dvd[i].getState()==0){
System.out.println("该DVD以借出!");
break;
}
}
}
} catch (NullPointerException e) {
e.printStackTrace();
}
}
//归还DVD
public void returnDvd() throws ParseException{
int money;//租金
Scanner sc = new Scanner(System.in);
System.out.println("--->归还DVD");
System.out.println("输入DVD名称:");
String dvdname = sc.nextLine();
try {
for (int i = 0; i < dvd.length; i++) {
if(dvd[i].name.equals(dvdname)){
if(dvd[i].getState()==0){
System.out.println("输入归还日期:");
String retuenDate = sc.nextLine();
dvd[i].setState(1);
System.out.println("归还"+dvdname+"成功!");
System.out.println("借出日期:"+retuenDate);
System.out.println("归还日期:"+dvd[i].getDate());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date rdate = sdf.parse(retuenDate);//将输入的字符串转换为日期类型 还书日期
Date bdate = sdf.parse(dvd[i].getDate());//借dvd日期
long days=(rdate.getTime()-bdate.getTime())/(1000*3600*24);//计算借了多少天
money = (int) (days*1);
System.out.println("应付租金:"+money+"元");
dvd[i].setDate("");
break;
}if(dvd[i].getState()==1){
System.out.println("该DVD以借出!");
break;
}
}
}
} catch (NullPointerException e) {
e.printStackTrace();
}
}
//借dvd次数排行榜
public void maxCount(){
System.out.println("dvd借出排行榜");
System.out.println("---------------------");
for (int i=dvd.length-1;i>0;i--) {
if(dvd[i]!=null){
for (int j = 0; j < i; j++) {
if(dvd[j]!=null){
if(dvd[j].getCount()<dvd[j+1].getCount()){
DVDSet[] temp = new DVDSet[100];
temp[0] = dvd[j];
dvd[j]=dvd[j+1];
dvd[j+1]=temp[0];
}
}
}
}
}
System.out.println("dvd名"+"\t"+"次数");
for (int i = 0; i < dvd.length; i++) {
if(dvd[i]!=null){
System.out.println(dvd[i].getName()+"\t"+dvd[i].getCount());
}
}
}
}
package com.xxx.dvd;
import java.text.ParseException;
import java.util.Scanner;
public class Menu {
public static void starMenu(DVDMgr dm){
System.out.println("欢迎使用迷你DVD管理器");
System.out.println("----------------------");
System.out.println("0.DVD排行榜");
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.println("----------------------");
showMenu(dm);
}
public static void showMenu(DVDMgr dm){
Scanner sc = new Scanner(System.in);
System.out.println("请选择:");
int a = sc.nextInt();
switch (a) {
case 0://dvd借出排行榜
dm.maxCount();
returnMenu(dm);
break;
case 1://新增dvd
dm.addDvd();
returnMenu(dm);
break;
case 2://查看dvd
dm.ShowDvd();
returnMenu(dm);
break;
case 3://删除dvd
dm.deleteDvd();
returnMenu(dm);
break;
case 4://借出dvd
dm.borrowDVD();
returnMenu(dm);
break;
case 5://归还dvd
try {
dm.returnDvd();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
returnMenu(dm);
break;
case 6://退出
System.out.println("谢谢使用!");
break;
default:
break;
}
}
public static void returnMenu(DVDMgr dm){
System.out.println("输入0返回");
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
if(a==0){
starMenu(dm);
}else{
System.out.println("系统退出!");
}
}
}
package com.xxx.dvd;
public class Test {
public static void main(String[] args) {
DVDMgr dm = new DVDMgr();
dm.initial();
Menu.starMenu(dm);
}
}