package com.biu.demo03;
public class DVD {
private String name; //名称
private String factory;//出版社
private double price;//价格
private int status;//状态
private int count;//借出次数
@Override
public String toString() {
String statu = status == 0 ? "可借" : "已借出";
return "名称:《" + name + "》\t出版社:" + factory + "\t价格:" + price + "\t状态:"
+ statu + " \t借出次数:"+ count;
}
public DVD() {
super();
}
public DVD(String name, String factory, double price, int status, int count) {
super();
this.name = name;
this.factory = factory;
this.price = price;
this.status = status;
this.count = count;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getFactory() {
return factory;
}
public void setFactory(String factory) {
this.factory = factory;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
}
package com.biu.demo03;
import java.util.Arrays;
import java.util.Scanner;
public class DVDMgr {
Scanner sc = new Scanner(System.in);
DVD[] dvds = new DVD[4];
//初始化
public void init() {
dvds[0] = new DVD("罗马假日","罗马",34,0,0);
dvds[1] = new DVD("我是传奇","美国",42,1,1);
dvds[2] = new DVD("红海行动","中国",56,0,8);
dvds[3] = new DVD("未知死亡","印度",63,1,5);
}
//菜单
public void menu() {
System.out.println("*************迷你DVD管理系统**************");
System.out.println("\t1.新增DVD\n\t2.查看DVD\n\t3.删除DVD\n\t4.借出DVD\n\t5.归还DVD\n\t6.DVD排行榜\n\t0.退出");
System.out.print("请输入功能号:");
}
//1.新增DVD
public void addDVD() {
System.out.println("**********添加DVD**********");
System.out.print("请输入DVD名称:");
String name = sc.next();
for(int i=0; i<dvds.length; i++) {
if(name.equals(dvds[i].getName())) {
System.out.println("此书已存在,添加失败!");
return;
}
}
System.out.print("请输入DVD的出版社:");
String factory = sc.next();
System.out.print("请输入DVD价格:");
double price = sc.nextDouble();
System.out.println("《" + name + "》添加成功!");
DVD dvd = new DVD();
dvd.setName(name);
dvd.setFactory(factory);
dvd.setPrice(price);
dvd.setCount(0);
dvd.setStatus(0);
dvds = Arrays.copyOf(dvds, dvds.length+1);
dvds[dvds.length-1] = dvd;
}
//2.查看DVD
public void showAllDVD() {
for (int i=0; i<dvds.length; i++) {
if(dvds[i]!=null) {
System.out.println((i+1) + ". "+ dvds[i]);
}
}
}
//3.删除DVD
public void delDVD() {
System.out.println("**********删除DVD**********");
System.out.print("请输入要删除的DVD名称:");
boolean flag = false;
String name = sc.next();
for(int i=0; i<dvds.length; i++) {
if (null != dvds[i] && name.equals(dvds[i].getName())) {
flag = true;
//改变长度并删除,避免了空值占位
DVD[] temp=new DVD[dvds.length-1];
System.arraycopy(dvds, 0, temp, 0, i);
System.arraycopy(dvds, i+1, temp, i, temp.length-i);
dvds=temp;
System.out.println("删除成功!");
break;
}
}
if(!flag) {
System.out.println("您要删除的DVD不存在!");
}
}
//4.借出DVD
public void lendDVD() {
boolean flag = false;
System.out.println("**********借出DVD**********");
System.out.print("请输入要借出的DVD名称:");
String name = sc.next();
for (int i = 0; i < dvds.length; i++) {
if (null != dvds[i] && name.equals(dvds[i].getName()) && dvds[i].getStatus() == 0) {
//不为空、输入的DVD有、状态为可借 -> 可借
flag = true;
System.out.println("《" + name +"》,借出成功!");
dvds[i].setStatus(1);
dvds[i].setCount(dvds[i].getCount()+1);
break;
}else if (null != dvds[i] && name.equals(dvds[i].getName()) && dvds[i].getStatus() != 0) {
//不为空、输入的DVD有、状态为已借出 -> 不可借
flag = true;
System.out.println("《" + name +"》,已经被借出!");
break;
}
}
if (!flag) {
System.out.println("您要借出的DVD不存在!");
}
}
//5.归还DVD
public void revertDVD() {
boolean flag = false;
System.out.println("**********归还DVD**********");
System.out.print("请输入要归还的DVD名称:");
String name = sc.next();
for (int i = 0; i < dvds.length; i++) {
if (null != dvds[i] && name.equals(dvds[i].getName()) && dvds[i].getStatus() != 0) {
//不为空、输入的DVD有、状态为已借出 -> 可归还
flag = true;
System.out.println("《" + name +"》,归还成功!");
dvds[i].setStatus(0);
break;
}else if (null != dvds[i] && name.equals(dvds[i].getName()) && dvds[i].getStatus() == 0) {
//不为空、输入的DVD有、状态为可借 -> 不可归还
flag = true;
System.out.println("《" + name +"》,没有被借出,无法归还!");
break;
}
}
if (!flag) {
System.out.println("您要归还的DVD不存在!");
}
}
//6.DVD排行榜
public void rankDVD() {
System.out.println("**********DVD排行榜**********");
//冒泡排序
for(int j=0; j<dvds.length-1; j++) {
for (int i = 0; i < dvds.length-1-j; i++) {
if (dvds[i] != null && dvds[i].getCount() < dvds[i+1].getCount()) {
DVD temp = dvds[i];
dvds[i]=dvds[i+1];
dvds[i+1]=temp;
}
}
}
showAllDVD();
}
//程序开始
public void start() {
int num = -1;
do {
menu();
boolean isExit = false;
int choose = sc.nextInt();
switch (choose) {
case 1:
//新增DVD
addDVD();
System.out.println();
break;
case 2:
//查看DVD
showAllDVD();
System.out.println();
break;
case 3:
//3.删除DVD
delDVD();
System.out.println();
break;
case 4:
//4.借出DVD
lendDVD();
System.out.println();
break;
case 5:
//5.归还DVD
revertDVD();
System.out.println();
break;
case 6:
//6.DVD排行榜
rankDVD();
System.out.println();
break;
case 0:
System.out.print("是否退出?(y/n):");
String exit = sc.next();
if (exit.equals("y")) {
isExit = true;
} else if (exit.equals("n")) {
System.out.println("继续操作。\n");
break;
} else {
System.out.println("您的输入有误!\n");
}
break;
default:
System.out.println("您的输入有误!");
break;
}
if(isExit) {
System.out.println("\n您已成功退出系统!");
break;
}
} while (num!=0);
}
}
package com.biu.demo03;
public class Test {
public static void main(String[] args) {
DVDMgr mgr = new DVDMgr();
mgr.init();
mgr.start();
}
}