迷你DVD管理系统

<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("谢谢使用本系统!");
	}
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值