Java小程序,编写一个迷你DVD租借系统(控制台输出)

用Java编写一个迷你DVD租借系统

要求实现以下功能:

  • 借出排行榜
  • 新 增 DVD
  • 查 看 DVD
  • 删 除 DVD
  • 借 出 DVD
  • 归 还 DVD
  • 退 出

需要编写三个类

  • DVDSet类(定义存放的数据)
  • DVDFunction类(实现该程序的各个功能的方法)
  • DVDTest类(测试类)

calss DVDSet

package cn.it.DVD;

public class DVDSet {

	int[] no = new int[50];// 序号
	String[] name = new String[50];// DVD名字
	String[] state = new String[50];// DVD状态
	String[] time = new String[50]; // 借出日期
	int[] count = new int[50];// 记录被借出次数,用于排行榜中
}

DVDFunction类

package cn.it.DVD;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class DVDFunction {

	Scanner sc = new Scanner(System.in);
	DVDSet set = new DVDSet();// 实例化DVDSet类

	// 主界面 show()方法
	public void show() {
		System.out.println("欢  迎  使  用  迷  你  DVD  管  理  器");
		System.out.println("-----------------------");
		System.out.println("0.  借出排行榜");
		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.  退          出");
		System.out.println("-----------------------");
	}

	// 添加DVD add()方法
	public void add(String DVDName) {
		// 找到第一个为空的数组,将新增的DVD添加进去
		int i;
		for (i = 0; i < set.name.length; i++) {
			if (set.name[i] == null) {// 成功添加
				set.name[i] = DVDName;
				set.no[i] = i;
				set.state[i] = "可借";
				set.time[i] = "  ";
				set.count[i] = 0;
				System.out.println("新增《" + DVDName + "》成功!");
				System.out.println("*********************");
				break;
			}
		}
		if (i == set.name.length) {
			System.out.println("存储空间已满,无法继续添加!");
			System.out.println("*********************");
		}
	}

	// 查看DVD examine()方法
	public void examine() {
		System.out.println("序号\t状态\t名称\t借出日期");
		// 将DVD循环输出
		for (int i = 0; i < set.name.length; i++) {
			if (set.name[i] != null) {
				System.out.println((set.no[i] + 1) + "\t" + set.state[i] + "\t《" + set.name[i] + "》\t" + set.time[i]);
			}
		}
		System.out.println("*********************");
	}

	// 删除DVD delete()方法
	public void delete(String DVDName) {
		// 遍历name[]数组
		int i;
		for (i = 0; i < set.name.length; i++) {
			if (set.name[i] != null && set.name[i].equals(DVDName)) {// 找到名字满足的DVD记录
				if (set.state[i].equals("可借")) { // 并且为没有借出状态
					// 删除掉名为DVDName的记录
					set.name[i] = set.name[i + 1];
					set.name[i + 1] = null;

					// set.no[i] = set.no[i + 1];
					set.no[i + 1] = 0;

					set.state[i] = set.state[i + 1];
					set.state[i + 1] = null;

					set.time[i] = set.time[i + 1];
					set.time[i + 1] = null;

					set.count[i] = set.count[i + 1];
					set.count[i + 1] = 0;

					System.out.println("删除《" + DVDName + "》成功!");
					System.out.println("*********************");
					break;
				} else {
					System.out.println(set.name[i] + "为借出状态,不能删除!");
					System.out.println("*********************");
					break;
				}
			}
		}
		if (i == set.name.length) {
			System.out.println("没有找到:《" + DVDName + "》!");
			System.out.println("*********************");
		}

	}

	// 借出DVD borrow()方法
	public void borrow(String DVDName) {
		int i;
		for (i = 0; i < set.name.length; i++) {
			if (set.name[i] != null && set.name[i].equals(DVDName)) {
				if (set.state[i].equals("可借")) {
					set.state[i] = "借出";// 标记借书状态为 已借出
					set.count[i]++;
					System.out.print("请输入借出日期(年-月-日):");
					set.time[i] = sc.next();
					System.out.println("借出《" + set.name[i] + "》成功!");
					System.out.println("*********************");
					break;
				} else {
					System.out.println("《" + set.name[i] + "》为借出状态!");
					break;
				}
			}
		}
		if (i == set.name.length) {
			System.out.println("没有找到:" + DVDName + "!");
			System.out.println("*********************");
		}
	}

	// 归还DVD returnDVD()方法
	public void returnDVD(String DVDName) throws ParseException {
		int i;
		Date d = new Date();
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
		for (i = 0; i < set.name.length; i++) {
			if (set.name[i] != null && set.name[i].equals(DVDName)) {
				if (set.state[i].equals("借出")) {
					String borrowtime = set.time[i];// 标记借出时间
					System.out.print("情输入归还日期(年-月-日):");
					set.state[i] = "可借";
					set.time[i] = sc.next();
					System.out.println("\n归还" + DVDName + "成功!");
					System.out.println("借出日期为:" + borrowtime);
					System.out.println("归还日期为:" + set.time[i]);

					Date d1 = df.parse(borrowtime);
					Date d2 = df.parse(set.time[i]);

					System.out.println("应付租金为:" + ((d2.getTime() - d1.getTime()) / (24 * 60 * 60 * 1000)));
					System.out.println("*********************");
					set.time[i] = " ";
					break;
				} else {
					System.out.println("《" + set.name[i] + "》没有被借出,归还失败!");
					break;
				}
			}
		}
		if (set.name.length == i) {
			System.out.println("没有找到《" + DVDName + "》!");
		}
	}

	// 排行榜ranking() 方法
	public void ranking() {
		for (int i = 0; i < set.count.length - 1; i++) {

			for (int j = 0; j < set.count.length - 1 - i; j++) {
				if (set.count[j] < set.count[j + 1]) {
					int t = set.count[j];// 交换的中间变量
					String tt = set.name[j];// 交换的中间变量
					set.count[j] = set.count[j + 1];
					set.name[j] = set.name[j + 1];
					set.count[j + 1] = t;
					set.name[j + 1] = tt;
				}
			}
		}
		for (int k = 0; k < set.name.length; k++) {
			if (set.name[k] != null) {
				System.out.println(set.count[k] + "\t《" + set.name[k] + "》");
			}
		}
	}

	// 退出系统 exit()方法
	public void exit() {
		System.out.println("谢谢使用!");
	}
}

DVDTest类

package cn.it.DVD;

import java.text.ParseException;
import java.util.Scanner;

public class DVDTest {

	public static void main(String[] args) throws ParseException {

		DVDFunction dvd = new DVDFunction();// 实例化dvd功能类
		Scanner sc = new Scanner(System.in);
		boolean isGoon = false;// 判断返回主菜单的选择是否正确
		boolean isCon = true;// 判断返回上一级菜单的选择是否输入正确
		boolean isSon = true;

		do {
			isGoon = false;// 初始化
			isCon = true;
			isSon = true;

			dvd.show();// 调用主界面
			System.out.print("请选择:");
			switch (sc.next()) {
			case "0":
				System.out.println("--->排行榜");
				System.out.println("\n*********************");
				System.out.println("次数\t名称");
				dvd.ranking();
				break;
			case "1":// 增加DVD的选择
				System.out.println("--->新增DVD");
				System.out.print("请输入   DVD 名称:");
				dvd.add(sc.next());// 调用增加DVD的方法
				break;
			case "2":// 查看DVD的选择
				System.out.println("--->查看DVD");
				dvd.examine();
				break;
			case "3":// 删除DVD的选择
				System.out.println("--->删除DVD");
				System.out.print("请输入DVD名称:");
				dvd.delete(sc.next());
				break;
			case "4":// 借出DVD的选择
				System.out.println("--->借出DVD");
				System.out.print("请输入DVD名称:");
				dvd.borrow(sc.next());
				break;
			case "5":// 归还DVD的选择
				System.out.println("--->归还DVD");
				System.out.print("请输入DVD名称:");
				dvd.returnDVD(sc.next());
				break;
			case "6":// 退出系统
				dvd.exit();
				isCon = false;
				break;
			default:
				System.out.println("输入有误!");
				break;
			}

			while (isCon) {
				System.out.print("\n输入0返回:");
				if (sc.nextInt() == 0) {
					isCon = false;// 返回上一级菜单输入正确
					isGoon = true;
				} else {
					System.out.println("输入有误,重新输入");
					isCon = true;// 返回上一级菜单输入错误
				}
			}
		} while (isGoon);
	}

}

运行截图:

  • 增加dvd
    这里写图片描述

  • 查看dvd
    这里写图片描述

  • 删除dvd
    这里写图片描述

  • 租借dvd
    这里写图片描述

  • 归还dvd
    这里写图片描述

  • 查看排行榜
    这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

banmajio

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值