<pre name="code" class="javascript">import java.util.Scanner;
public class MyDVDMgr {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// 是否退出程序 false:不退出 true:想退出
boolean flag = false;
// 初始化数据
// DVD名称
String[] names = new String[6];
// DVD借阅状态 0:可借阅 1:借出去了
int[] states = new int[6];
// DVD借出日期
int[] dates = new int[6];
// DVD借出次数
int[] count = new int[6];
// 初始化数据
names[0] = "浪漫满屋";
states[0] = 1;
dates[0] = 8;
count[0] = 10;
names[1] = "罗马假日";
states[1] = 0;
dates[1] = 0;
count[1] = 5;
names[2] = "来自星星的你";
states[2] = 0;
dates[2] = 0;
count[2] = 100;
// 记录用户使用的数字,用户是否继续进行DVD操作的数字
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("请输入相应操作:");
int choose = input.nextInt();
switch (choose) {
case 1:
// 新增
System.out.println("*******新增DVD***********");
System.out.print("请输入要增加的DVD名称:");
String name = input.next();
// 标识能否插入 false:不能插入 true:能插入
boolean flag1 = false;
for (int i = 0; i < names.length; i++) {
// 插入DVD
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();
// 能否找到用户要删除的DVD位置: false:没有找到匹配的DVD,不能删除
// true:能根据用户输入的DVD名称找到相应的DVD
boolean flag2 = false;
// 记录要删除的DVD位置
int index = -1;
// 找到要删除的DVD的下标位置
for (int i = 0; i < names.length; i++) {
if (names[i] != null && delete.equals(names[i]) && states[i] == 1) {
// 有,但是借出去了
flag2 = true;
System.out.println("对不起,要删除的DVD已借出,无法删除!");
} else if (names[i] != null && delete.equals(names[i]) && states[i] == 0) {
// 有,没有借出去
flag2 = true;
index = i;
System.out.println("删除《" + delete + "》成功!");
break;
}
}
// 找到了DVD才删除
if (index != -1) {
// 根据上一步找到的下标位置index,开始删除的工作
for (int j = index; j < names.length; j++) {
// 删除,后面的值依次往前盖,最后一个值变为null
if (j != names.length - 1) {
names[j] = names[j + 1];
states[j] = states[j + 1];
dates[j] = dates[j + 1];
count[j] = count[j + 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) {
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.print("请输入借阅日期:");
dates[i] = input.nextInt();
while (dates[i] < 1 || dates[i] > 31) {
System.out.print("日期必须在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) {
System.out.println("没有匹配的DVD信息!");
break;
} else if (back.equals(names[i]) && states[i] == 0) {
System.out.println(back + "没有被借出,不用归还!");
break;
} else if (back.equals(names[i]) && states[i] == 1) {
System.out.print("请输入归还日期:");
// 记录归还日期
int backDate = input.nextInt();
while (backDate < dates[i] || backDate > 31) {
if (backDate < dates[i]) {
System.out.print("归还日期不能小于借出日期!请重新输入:");
} else if (backDate > 31) {
System.out.print("日期必须在1~31之间!请重新输入:");
}
dates[i] = 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;
break;
}
}
break;
case 6:
// 退出
flag = true;
break;
default:
// 输入了要求以外的数字,默认也是退出
flag = true;
break;
}
if (flag) {
// 想退出菜单选项
num = -1;
break;
} else {
// 不退出,继续进入主菜单选择
System.out.println("*******************");
System.out.println("请输入0返回:");
num = input.nextInt();
}
} while (num == 0);// 用户输入为0
// 程序退出,结束
System.out.println("谢谢使用本系统!");
}
}
迷你DVD管理系统
最新推荐文章于 2024-03-20 16:41:51 发布