JAVA简单模拟DVD功能
程序员文章站
2022-04-02 11:52:13
...
建立数组
public class DVD_set {
//此处为copy
String[] name = new String[50];// 存储DVD的名字
String[] date = new String[50];// 当前DVD被借出的时间
int[] state = new int[50];// 当前DVD的存取状态
int[] count = new int[50];// 当前DVD被借出的次数
}
基本函数实现
import java.util.Scanner;
public class DVD_main {
DVD_set DVD = new DVD_set();
//此处为copy
public void initial() {
DVD.name[0] = "罗马假日";
DVD.state[0] = 0;
DVD.count[0] = 30;
DVD.date[0] = "2020-11-18";
DVD.name[1] = "风声鹤唳";
DVD.state[1] = 1;
DVD.name[2] = "浪漫满屋";
DVD.state[2] = 1;
DVD.count[2] = 10;
}
public void startMenu() {
Scanner sc = new Scanner(System.in);
System.out.println("---------------------------");
System.out.println("| Welcome to my DVD world |");
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("|0----------------退 出DVD|");
System.out.println("---------------------------");
System.out.printf("请选择:");
int choose = sc.nextInt();
switch (choose) {
case 1:
DVD_search();
returnMenu();
break;
case 2:
DVD_add();
returnMenu();
break;
case 3:
DVD_delete();
returnMenu();
break;
case 4:
DVD_lend();
returnMenu();
break;
case 5:
DVD_return();
returnMenu();
break;
case 0:
DVD_out();
break;
default:
System.out.println("输入错误,请输入0返回主界面后重新输入");
returnMenu();
break;
}
}
// 返回主界面
public void returnMenu() {
System.out.println("输入0返回主界面");
Scanner sc = new Scanner(System.in);
if (sc.nextInt() == 0) {
startMenu();
} else {
System.out.println("输入错误,请重新输入");
returnMenu();
}
}
// 查看当前所有DVD的基本信息
public void DVD_search() {
System.out.println("-----------------------------------------------------------------");
System.out.println("|" + "序号 \t" + "|" + "名称\t\t" + "|" + "状态\t" + "|" + "借出时间\t" + "|" + "借出次数\t" + "|");
for (int i = 0; i < DVD.name.length; i++) {
if (DVD.name[i] == null) {
break;
} else if (DVD.state[i] == 0) {
System.out.println("|" + i + "\t" + "|" + "<<" + DVD.name[i] + ">>\t" + "|" + "已借出\t" + "|"
+ DVD.date[i] + "\t" + "|" + DVD.count[i] + "\t\t" + "|");
} else if (DVD.state[i] == 1) {
System.out.println("|" + i + "\t" + "|" + "<<" + DVD.name[i] + ">>\t" + "|" + "可借\t" + "|" + "\t\t"
+ "|" + DVD.count[i] + "\t\t" + "|");
}
}
System.out.println("-----------------------------------------------------------------");
}
// 增加DVD
public void DVD_add() {
System.out.println("请输入您要添加的DVD:");
Scanner sc = new Scanner(System.in);
String name = sc.next();
for (int i = 0; i < DVD.name.length; i++) {
// 查找到当前数组中有空位的地方
if (DVD.name[i] == null) {
// 将需要添加的DVD内容输入
DVD.name[i] = name;
// 赋初值,因为是刚添加的图书,所以状态为未借出
DVD.state[i] = 1;
System.out.println("《" + name + "》添加成功!");
break;
}
}
}
// 删除DVD
public void DVD_delete() {
System.out.println("请输入您要删除的DVD名称:");
Scanner sc = new Scanner(System.in);
String name = sc.next();
for (int i = 0; i < DVD.name.length; i++) {
// 循环查找当前库存中的DVD
if (DVD.name[i] != null) {
// 当前库存中DVD不为空,当库存中DVD遍历完之后
if (DVD.name[i].equalsIgnoreCase(name)) {
// equalsIgnoreCase可以进行忽略大小写的字符串比较
// 判断库中所存的name是否和当前输入的name相同
if (DVD.state[i] == 0) {
// 判断DVD是否被借出
System.out.println("《" + name + "》" + "已经被借出!");
// 如果被借出则终止继续查找
break;
} else if (DVD.state[i] == 1) {
// 如果DVD没有被借出
for (int j = i; j < DVD.name.length; j++) {
// 如果被删除的DVD不是菜单中最后一个
if (DVD.name[j + 1] != null) {
// 则将需要删除的DVD后面的内容挪动到前面
DVD.name[j] = DVD.name[j + 1];
DVD.state[j] = DVD.state[j + 1];
DVD.date[j] = DVD.date[j + 1];
DVD.count[j] = DVD.count[j + 1];
} else {
// 如果当前需要删除的DVD是最后一个,则直接进行删除
DVD.name[j] = null;
DVD.date[j] = null;
DVD.count[j] = 0;
DVD.state[j] = 1;
// 删除结束后退出循环
break;
}
}
}
System.out.println("删除" + "《" + name + "》" + "成功");
// 删除成功则结束循环
break;
}
} else {
// 遍历完整个库存都没有找到需要删除的DVD
System.out.println("没有找到您选择删除的DVD!");
}
}
}
// 借出DVD
public void DVD_lend() {
System.out.println("请输入您要借出的DVD名称:");
Scanner sc = new Scanner(System.in);
String name = sc.next();
for (int i = 0; i < DVD.name.length; i++) {
// 循环查找当前库存中的DVD
if (DVD.name[i] != null) {
// 当前库存中DVD不为空,当库存中DVD遍历完之后
if (DVD.name[i].equalsIgnoreCase(name)) {
// equalsIgnoreCase可以进行忽略大小写的字符串比较
// 判断库中所存的name是否和当前输入的name相同
if (DVD.state[i] == 0) {
// 判断DVD是否被借出
System.out.println("《" + name + "》" + "已经被借出!");
// 如果被借出则终止继续查找
break;
} else if (DVD.state[i] == 1) {
// 如果DVD没有被借出
DVD.state[i] = 0;
System.out.println("请输入借阅日期:");
String date = sc.next();
DVD.date[i] = date;
DVD.count[i] += 1;
System.out.println("《" + name + "》" + "已成功借出!");
break;
}
}
} else {
// 遍历完整个库存都没有找到需要删除的DVD
System.out.println("没有找到您选择借出的DVD!");
}
}
}
// 归还DVD
public void DVD_return() {
System.out.println("请输入您要归还的DVD名称:");
Scanner sc = new Scanner(System.in);
String name = sc.next();
for (int i = 0; i < DVD.name.length; i++) {
// 循环查找当前库存中的DVD
if (DVD.name[i] != null) {
// 当前库存中DVD不为空,当库存中DVD遍历完之后
if (DVD.name[i].equalsIgnoreCase(name)) {
// equalsIgnoreCase可以进行忽略大小写的字符串比较
// 判断库中所存的name是否和当前输入的name相同
if (DVD.state[i] == 0) {
// 判断DVD是否被借出
DVD.state[i] = 1;
System.out.println("《" + name + "》" + "已经归还完毕!");
break;
}
}
} else {
// 遍历完整个库存都没有找到需要删除的DVD
System.out.println("没有找到您选择归还的DVD!");
}
}
}
// 退出DVD管理系统
public void DVD_out() {
System.out.println("感谢您的使用,欢迎下次光临!");
}
}
程序简单运行
import java.util.*;
import java.text.*;
public class DVD_demo {
public static void main(String[] args) {
DVD_main DVD = new DVD_main();
DVD.initial();
DVD.startMenu();
}
}
运行截图:
PS:部分copy来源https://www.cnblogs.com/shen-xiao-jie/p/6078514.html