package cn.solo.com;
import java.util.Scanner;
public class DVD {
public static void main(String[] args) {
Scanner input = new Scanner(System.in); boolean flag = false;// 是否退出程序,false:不退出,true:退出 String[] names = new String[6];// DVD名字 int[] states = new int[6];// DV借阅状态,0:可借,1:借出去了 int[] dates = new int[6]; // 借出日期 int[] count = new int[6];// 借出次数 // 初始化数据 names[0] = "浪漫满屋"; states[0] = 1; dates[0] = 8; count[0] = 1;names[1] = "罗马假日";
states[1] = 0; dates[1] = 0; count[1] = 20;names[2] = "百科全书";
states[2] = 0; dates[2] = 0; count[2] = 30; // 判断用户是否继续操作系统的数字:0为返回, int num = -1; // 程序的主体设计:DVD管理 do { // 主菜单显示 System.out.println("****************欢迎使用迷你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.退出DVD"); System.out.println("请选择相应的操作:"); String choose = input.next(); switch (choose) { case "1":// 新增 System.out.println("**********新增DVD************"); System.out.println("请输入要增加的DVD名称:"); String name = input.next();// 增加的DVD名字 boolean flag1 = false;// false代表不能插入,true代表可以插入。 for (int i = 0; i < names.length; i++) { // 插入DVD,第一个为null的位置,进行新增。 if (names[i] == null) { names[i] = name; flag1 = true; break; } }if (flag1) {
System.out.println("新增DVD《" + name + "》成功!"); } else { System.out.println("货架已满,不能增加。"); } break; case "2": // 查看 System.out .println("******************查看DVD*********************"); System.out.println("序号:\t状态\t名称\t借出日期\t借出次数"); for (int i = 0; i < names.length; i++) { if (names[i] != null) { String state = (states[i] == 0) ? "可借阅" : "已借出";//三木运算符判断 String dateStr = (dates[i] == 0) ? "" : (dates[i] + "日"); String countStr = count[i] + "次"; System.out.println((i + 1) + "\t" + state + "\t" + names[i] + "\t" + dateStr + "\t" + countStr); } } break; case "3":// 删除 System.out.println("请输入要删除的DVD名称:"); String delete = input.next(); boolean flag2 = false;// 能否找到用户删除的DVD,false=no,true=yes。 // 记录删除的位置; int index = -1; // 找到要删除的DVD位置 for (int i = 0; i < names.length; i++) { if (delete.equals(names[i]) && (states[i] == 1)) { // 有,但是借出去了。 flag2 = true; System.out.println("对不起,要删除的DVD已经被借出,无法删除。"); break; } else if (delete.equals(names[i]) && (states[i] == 0)) { // 有, 没借出去。 flag2 = true; index = i; System.out.println("删除" + delete + "成功"); break;}
}
// 找到DVD,进行删除。 if (index != -1) { // 根据index,进行删除、后面的值依次进行覆盖,最后一个值变为null。 for (int i = index; i < names.length; i++) { if (i != names.length - 1) { names[i] = names[i + 1]; states[i] = states[i + 1]; dates[i] = dates[i + 1]; count[i] = count[i + 1]; } names[names.length - 1] = null; states[names.length - 1] = 0; dates[names.length - 1] = 0; count[names.length - 1] = 0; } } if (!flag2) { System.out.println("对不起,没有匹配的DVD信息,无法删除!"); }break;
case "4":// 借出 System.out.println("请输入要借阅的DVD名称:"); String want = input.next();for (int i = 0; i < names.length; i++) {
if (names[i] == null) {//循环到null 依旧没有。System.out.println("没有匹配的DVD信息");
break;
} else if (want.equals(names[i]) && (states[i] == 1)) {//已经借出 System.out.println("已经借出" + "《" + want + "》" + ",无法借阅"); break; } else if (want.equals(names[i]) && (states[i] == 0)) {//没有借出 System.out.println("请输入借阅日期:"); dates[i] = input.nextInt(); while (dates[i] < 1 || dates[i] > 31) { System.out.println("请重新输入日期(1-31):"); dates[i] = input.nextInt(); } states[i] = 1; count[i]++; System.out.println("《" + want + "》" + "借阅成功");break;
} }break;
case "5":// 归还
System.out.println("请输入要归还的DVD名称:"); String back = input.next();for (int i = 0; i < names.length; i++) {
if (names[i] == null) {//循环到null,没有匹配。 System.out.println("没有匹配的DVD信息"); break; } else if (back.equals(names[i]) && (states[i] == 0)) {//DVD未被借出 System.out.println("《" + back + "》" + ",没有被借出,无法归还。"); break; } else if (back.equals(names[i]) && (states[i] == 1)) {//可以归还 System.out.println("请输入归还日期:"); int backDate = input.nextInt();// 归还日期 while (dates[i] > backDate || backDate > 31) { if (dates[i] > backDate) { System.out.println("归还日期不能小于借出日期,请重新输入:"); } else if (backDate > 31) { System.out.println("归还日期必须在1-31之间,请重新输入:"); }backDate = input.nextInt();
} // 计算租金; int money = (backDate - dates[i]) * 1; System.out.println("\n*******************************"); System.out.println("《" + back + "》归还成功:"); System.out.println("《" + back + "》借阅日期:" + dates[i] + "日"); System.out.println("《" + back + "》归还日期:" + backDate + "日"); System.out.println("《" + back + "》应付租金:" + money + "元"); // 数据更新 states[i] = 0;// 变为可借状态 dates[i] = 0;// 借出日期为0 break; } } break; case "6":// 退出 flag = true; break;default:// 输入错误,默认退出
flag = true; break; } if (flag) { // 退出 num = -1; break; } else { // 不退出 System.out .println("*******************************************" + "\n请输入0返回:"); num = input.nextInt(); } } while (num == 0);// 用户输入为0,进行循环。 System.out.println("谢谢使用");// 程序结束}
}