测试类
public class Demo {
public static void main(String[] args) {
Controller controller=new Controller();
controller.systemInitialization();
}
}
控制器
import java.util.Scanner;
public class Controller {
private int N;
private NewDVD[] newDVD;
private int i=0;
public void systemInitialization(){
this.newDVD=new NewDVD[100];
view();
}
public void view(){
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.退出DVD");
System.out.print("请选择");
newDVD[i]=new NewDVD();
functionControl();
}
public void functionControl(){
Scanner ip=new Scanner(System.in);
this.N=ip.nextInt();
our: switch (N){
case 1:
newDVD[i].newdvd();//新增DVD
newDVD[i].judge();//检查DVD是否录入
i++;
break;
case 2:
viewDVD();
break ;
case 3:
viewDVD();
delete();
break ;
case 4:
viewDVD();
outDVD();
break ;
case 5:
returnDVD();
break ;
case 6:
System.exit(0);
break;
default:
System.out.print("输入的功能有误,请重新输入");
functionControl();
System.out.println("------------------");
break ;
}
age();
}
public void age() {
Scanner ip = new Scanner(System.in);
System.out.print("输入0返回 ,输入其他数退出程序 ");
int n = ip.nextInt();
if (n == 0) {
view();
}
}
public NewDVD[] delete(NewDVD []newDVDS,int n){
NewDVD []newDVD1=new NewDVD[newDVDS.length-1];
boolean ip=true;
for (int j = 0; j <newDVD1.length ; j++) {
if(ip) {
if (i != n-1){
newDVD1[j]=newDVD[j];
}else {
newDVD1[j]=newDVD[j+1];
ip=false;
continue;
}
}else {
newDVD1[j]=newDVD[j+1];
}
}
return newDVD1;
}
public void viewDVD(){
System.out.println("序号"+'\t'+"状态"+'\t'+"名称"+"\t"+"借出日期"+"借出次数");
for (int j = 0; j <i ; j++) {
System.out.println(j+1 +"\t"+this.newDVD[j].toString());
}
}
public void delete(){
System.out.println("请选择您想要删除的信息序号");
Scanner ip=new Scanner(System.in);
int n=ip.nextInt();
this.newDVD= delete(this.newDVD,n);
System.out.println("删除成功");
i--;
}
public void outDVD(){
if(i!=0){
System.out.println("请选择您想要借出的书籍");
Scanner ip=new Scanner(System.in);
int m=ip.nextInt();
if(m>i) {
System.out.println("输入错误");
outDVD();
}
System.out.println("请输入您的借书日期");
int out=ip.nextInt();
newDVD[m-1].setOutDay(out);
newDVD[m-1].judgeState();
newDVD[m-1].outDate();
}
}
public void returnDVD(){
System.out.println("请输入归还书籍的序号");
Scanner ip=new Scanner(System.in);
int id=ip.nextInt();
if (id>i+1){
System.out.println("不存在这本书籍,请重新输入");
returnDVD();
}
System.out.println("请输入归还日期");
int returnDay=ip.nextInt();
newDVD[id-1].returnDVD(returnDay);
}
}
工具类
import java.util.Scanner;
public class NewDVD extends DVD{
public NewDVD(){}
public void newdvd(){
System.out.println("----->新增DVD");
System.out.println("***********************");
Scanner dvd=new Scanner(System.in);
System.out.print("请输入新增DVD名字:");
String name=dvd.nextLine();
this.setName(name);
}
public void judge(){
if (this.getName()==null){
System.out.println("添加失败");
}else {
System.out.println("成功新增DV《"+getName()+"》 !");
}
}
public void outDate(){
this.setState("已经借出");
setLendNumber(getLendNumber()+1);
}
public void judgeState(){
if(this.getState().equals("已经接出")){
System.out.println("该DVD已经被借出啦");
}else{
System.out.println("可以借出");
System.out.println("正在借出中....");
System.out.println("借出成功");
}
}
public void returnDVD(int day){
int i=day-getOutDay();
System.out.println("您需要支付"+i+"元");
setState("可借");
setOutDay(0);
System.out.println("归还成功");
}
@Override
public String toString() {
String out=" ";
if(getOutDay()==0){
out=getOutDay()+"日";
}else{
out="\t";
}
return "\t" + getState() + "\t"+ getName() + "\t\t" + out+ "\t\t" + getLendNumber()+"次";
}
}
DVD父类
public class DVD {
private String state="可借";
private String name;
private int outDay;
private int LendNumber=0;
public DVD (){}
public DVD(String state, String name, int outDay, int lendNumber) {
this.state = state;
this.name = name;
this.outDay = outDay;
LendNumber = lendNumber;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getOutDay() {
return outDay;
}
public void setOutDay(int outDay) {
this.outDay = outDay;
}
public int getLendNumber() {
return LendNumber;
}
public void setLendNumber(int lendNumber) {
LendNumber = lendNumber;
}
@Override
public String toString() {
String out=" ";
if(getOutDay()==0){
out=getOutDay()+"日";
}else{
out="\t";
}
return "\t" + state + "\t"+ name + '\t' + out + '\t' + LendNumber;
}
}