Test类提供main方法:
import java.util.ArrayList;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
ArrayList<DVD> arrayList = new ArrayList<>();
arrayList.add(new DVD("罗马假日",0,1,15));
arrayList.add(new DVD("风声鹤唳",1,0,12));
arrayList.add(new DVD("浪漫满屋",1,0,30));
while(true){
System.out.println("欢迎进入miniDVD管理系统");
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("--------------------------------------------");
System.out.println("请输入:");
Scanner input = new Scanner(System.in);
int num = input.nextInt();
DVDSystemImpl dvdSystem = new DVDSystemImpl();
DVD dvd = new DVD();
switch (num) {
case 1:
dvdSystem.addDVD(arrayList, dvd);
break;
case 2:
dvdSystem.selectDVD(arrayList);
break;
case 3:
dvdSystem.deleteDVD(arrayList, dvd);
break;
case 4:
dvdSystem.lendDVD(arrayList, dvd);
break;
case 5:
dvdSystem.returnDVD(arrayList, dvd);
break;
case 6:
return;
}
}
}
}
DVD类提供DVD的属性:
import java.util.Objects;
public class DVD {
private String name;
private int state;
private int date;
private int count;
public DVD() {
}
public DVD(String name, int state, int date, int count) {
this.name = name;
this.state = state;
this.date = date;
this.count = count;
}
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 int getDate() {
return date;
}
public void setDate(int date) {
this.date = date;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
DVD dvd = (DVD) o;
return Objects.equals(name, dvd.name);
}
@Override
public int hashCode() {
return Objects.hash(name);
}
}
IDVDInterface接口提供增加、删除、显示、借出、归还DVD方法:
import java.util.ArrayList;
public interface IDVDInterface {
boolean addDVD(ArrayList<DVD> dvds,DVD dvd);
void selectDVD(ArrayList<DVD> dvds);
boolean deleteDVD(ArrayList<DVD> dvds,DVD dvd);
boolean lendDVD(ArrayList<DVD> dvds,DVD dvd);
boolean returnDVD(ArrayList<DVD>dvds,DVD dvd);
}
DVDSystemImpl类为IDVDInerface接口的实现类:
import java.util.ArrayList;
import java.util.Scanner;
public class DVDSystemImpl extends DVD implements IDVDInterface{
public DVDSystemImpl() {
}
public DVDSystemImpl(String name, int state, int date, int count) {
super(name, state, date, count);
}
@Override
public boolean addDVD(ArrayList<DVD> dvds, DVD dvd) {
System.out.println("--->新增DVD");
System.out.println("请输入您要新增的DVD名称:");
Scanner input = new Scanner(System.in);
dvd.setName(input.next());
if(dvds.contains(dvd)){
System.out.println("该DVD已存在,新增DVD失败");
return false;
}else{
System.out.println("新增DVD"+dvd.getName()+"成功");
dvds.add(dvd);
return true;
}
}
@Override
public void selectDVD(ArrayList<DVD> dvds) {
System.out.println("--->查看DVD");
System.out.println("序号\t\t\t"+"状态\t\t\t"+"名称\t\t\t\t"+"借出日期\t\t\t\t"+"借出次数\t\t\t");
for(int i = 0;i<dvds.size();i++){
System.out.println((i+1) +"\t\t\t"+ dvds.get(i).getState()+"\t\t\t"+"《"+dvds.get(i).getName()+"》\t\t\t"+dvds.get(i).getDate()+"日"+"\t\t\t"+dvds.get(i).getCount()+"次"+"\t\t\t");
}
}
@Override
public boolean deleteDVD(ArrayList<DVD> dvds, DVD dvd) {
System.out.println("--->删除DVD");
System.out.println("请输入要删除DVD的名称");
Scanner input = new Scanner(System.in);
String name = input.next();
dvd.setName(name);
if(dvds.contains(dvd)){
dvds.remove(dvd);
System.out.println("删除成功");
return true;
}else{
System.out.println("该DVD不存在,删除失败");
return false;
}
}
@Override
public boolean lendDVD(ArrayList<DVD> dvds, DVD dvd) {
System.out.println("--->借出DVD");
System.out.println("请输入借出DVD的名称:");
Scanner input = new Scanner(System.in);
String name = input.next();
dvd.setName(name);
System.out.println("请输入借出DVD的日期:");
int d = input.nextInt();
dvd.setState(dvds.get(dvds.indexOf(dvd)).getState());
if(dvds.contains(dvd)&&dvd.getState()==1){
System.out.println("借出DVD《"+dvd.getName()+"》成功");
dvds.get(dvds.indexOf(dvd)).setState(0);
dvds.get(dvds.indexOf(dvd)).setDate(d);
dvds.get(dvds.indexOf(dvd)).setCount(dvds.get(dvds.indexOf(dvd)).getCount()+1);
return true;
}else{
System.out.println("借出失败");
return false;
}
}
@Override
public boolean returnDVD(ArrayList<DVD> dvds, DVD dvd) {
System.out.println("--->归还DVD");
System.out.println("请输入要归还DVD的名称:");
Scanner input = new Scanner(System.in);
dvd.setName(input.next());
if(dvds.contains(dvd)&&dvds.get(dvds.indexOf(dvd)).getState()==0){
System.out.println("归还DVD"+dvd.getName()+"成功");
dvds.get(dvds.indexOf(dvd)).setState(1);
dvds.get(dvds.indexOf(dvd)).setDate(0);
return true;
}else {
return false;
}
}
}