用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
-
查看排行榜