分析:
将DVD看成一个对象
需要用到:
数组
面对对象
import java.util.Calendar;
import java.util.Scanner;
public class DVDshop {
public static void main(String[] args) {
DVDStore dvdStore = new DVDStore();
dvdStore.store();
}
}
class DVD {
private String name;
private int state;
private int count;
private int date;
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 getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public int getDate() {
return date;
}
public void setDate(int date) {
this.date = date;
}
public DVD(String name, int state, int count, int date) {
this.name = name;
this.state = state;
this.count = count;
this.date = date;
}
}
class DVDStore {
private final String[] select = {"新增DVD", "查看DVD", "删除DVD", "借出 DVD", "归还DVD", "退出DVD"};
private DVD[] dvdStore = new DVD[10];
private int num = 0;
public DVDStore(){}
public void store() {
while (true) {
System.out.println("欢迎使用迷你DVD管理器");
System.out.println("-------------------------------------");
for (int i = 0; i < select.length; i++) {
System.out.println(i + 1 + ". " + select[i]);
}
System.out.println("请选择数字:");
Scanner sca = new Scanner(System.in);
int index;
while (true) {
index = sca.nextInt();
if (index >= 1 && index <= 6) {
break;
} else {
System.out.println("--------请输入有效的序号--------- ");
}
}
System.out.println("--->" + select[index - 1]);
switch (index) {
case 1:
System.out.println("请输入新增DVD名字:");
String addDVDName = sca.next();
boolean isSuccess = addDVD(addDVDName);
if (isSuccess) {
System.out.println("成功新增dvd《" + addDVDName + "》");
}
break;
case 2:
showDVD();
break;
case 3:
showDVD();
System.out.println("==========请输入删除DVD的名称 ========");
String deleteDVDName = sca.next();
deleteDVD(deleteDVDName);
showDVD();
break;
case 4:
showDVD();
System.out.println("==========请输入需要借的DVD的名称 ========");
String borrowDVDname = sca.next();
borrowDVD(borrowDVDname);
break;
case 5:
showDVD();
System.out.println("==========请输入需要归还DVD的名称 ========");
String rturnDVDName = sca.next();
returnDVD(rturnDVDName);
break;
case 6:
return;
}
}
}
/***
* 新增dvd
* @param dvdName 新增dvd名字
* @return
* */
public boolean addDVD(String dvdName) {
if (num != 0) {
for (int i = 0; i < num; i++) {
if (dvdStore[i].getName().equals(dvdName)) {
System.out.println("您添加的DVD已存在");
return false;
}
}
}
DVD dvd = new DVD(dvdName, 0, 0, 0);
dvdStore[num] = dvd;
this.num++;
return true;
}
/***
* 展示所有的dvd
* */
public void showDVD() {
if (num == 0)
System.out.println("暂无DVD! 请去快速添加dvd");
else {
System.out.println("序号\t状态\t名称\t\t借出日期\t\t借出次数");
}
for (int i = 0; i < num; i++) {
System.out.print(i + 1 + "\t");
if (dvdStore[i].getState() == 0)
System.out.print("可借\t");
else System.out.print("已借出\t");
System.out.print("《" + dvdStore[i].getName() + "》\t");
if (dvdStore[i].getDate() == 0)
System.out.print(" \t");
else System.out.print(dvdStore[i].getDate() + "日\t");
System.out.println(dvdStore[i].getCount() + "次");
}
}
/***
* 删除dvd(通过名字)
* */
public void deleteDVD(String name) {
int index = 0;
for (int i = 0; i < num; i++) {
if (dvdStore[i].getName().equals(name)) {
if (dvdStore[i].getState() == 0) {
index = i;
dvdStore[i] = null;
for (int j = index; j < num - 1; j++) {
dvdStore[j] = dvdStore[j + 1];
}
dvdStore[num - 1] = null;
num--;
System.out.println("《" + name + "》删除成功");
return;
} else {
System.out.println("《" + dvdStore[i].getName() + "》" + "dvd已经被借出 暂无法删除");
return;
}
}
}
}
/***
* 租借dvd
*/
public void borrowDVD(String name) {
for (int i = 0; i < num; i++) {
if (dvdStore[i].getName().equals(name)) {
if (dvdStore[i].getState() == 0) {
Calendar cal = Calendar.getInstance();
int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
dvdStore[i].setState(1);
dvdStore[i].setCount(dvdStore[i].getCount() + 1);
dvdStore[i].setDate(dayOfMonth);
System.out.println("《" + name + "》dvd租借成功");
return;
} else {
System.out.println("抱歉《" + name + "》dvd已借出");
return;
}
}
}
System.out.println("抱歉《" + name + "》dvd暂无!!!");
}
/***
* 归还dvd
*/
public void returnDVD(String name) {
for (int i = 0; i < num; i++) {
if (dvdStore[i].getName().equals(name) && dvdStore[i].getState() == 1) {
Calendar cal = Calendar.getInstance();
int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
dvdStore[i].setState(0);
int money;
if (dayOfMonth == dvdStore[i].getDate()) {
money = 1;
} else {
money = (dayOfMonth - dvdStore[i].getDate()) + 1;
}
System.out.println("《" + name + "》归还成功");
System.out.println("本次租借DVD共计" + money + "元");
return;
}
}
}
}