package cn.jbit.yang.qian;
public class testDVDMgr {
public static void main(String[] args) {
DVDMgr dvd = new DVDMgr();
dvd.show1();
}
}
package cn.jbit.yang.qian;
import java.util.Date;
public class DVD {
public int id;// 序号
public String name;// DVD名
public boolean state = true;// 借出状态(state状态)
public Date date;// 借出日期
}
package cn.jbit.yang.qian;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class DVDMgr {
public DVDMgr() {// 构造方法
init();
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Scanner input = new Scanner(System.in);
public void pub(Object obj) {// 输出方法
System.out.println(obj);
}
DVD[] dvds = new DVD[100];// DVD类数据类型
public void show() {// 初始化菜单
pub("欢迎使用迷你DVD管理器");
pub("-------------------------");
pub("1.新增DVD");
pub("2.查看DVD");
pub("3.删除DVD");
pub("4.借出DVD");
pub("5.归还DVD");
pub("6.退 出");
pub("------------------------");
pub("请选择:");
}
public void show1() {
int a = 0;
while (a != 6) {
show();
a = input.nextInt();
switch (a) {
case 1:
pub("--->新增DVD");
addDVD();// 调用新增DVD方法
break;
case 2:
pub("--->查看DVD");
StateDVD();// 调用查看DVD方法
break;
case 3:
pub("--->删除DVD");
dell();
break;
case 4:
pub("--->借出DVD");
borrow();
break;
case 5:
pub("--->归还DVD");
revert();
break;
case 6:
pub("退出系统");
return;
default:
pub("输入有误,请输入1~6任意整数");
}
pub("输入0返回:");
a = input.nextInt();
}
}
public void init() {// 初始化
String[] names = { "死神", "航海王", "火影忍者", "海绵宝宝", "火影忍者", "恶魔奶爸" };
for (int i = 0; i < names.length; i++) {// 循环数组
dvds[i] = new DVD();// 给数组中第一个元素实例化
dvds[i].name = names[i];// 初始name
dvds[i].id = i + 1;// 初始id
}
}
public void StateDVD() {// 判断是否借出
pub("序号\t名称\t\t状态\t借出日期");
for (DVD dvd : dvds) {// 增强for循环
if (dvd != null) {// 判断dvd!=空
String state = dvd.state ? "未借" : "已借出";// 三元表达式 和if判断差不多
String date = dvd.date == null ? " " : sdf.format(dvd.date);
pub(dvd.id + "\t" + dvd.name + "\t" + "\t" + state + "\t"
+ date);// 输出 dvd信息
}
}
}
public void addDVD() {// 添加DVD
for (int i = 0; i < dvds.length; i++) {// 循环 判断数组有无空间
if (dvds[i] == null) {// 判断为空 添加dvd
dvds[i] = new DVD();// 实例化
System.out.println("请输入新增DVD名字");
dvds[i].name = input.next();// 录入DVD名字
dvds[i].id = getID();// 序号
pub("是否继续录入DVD名字y/n");
char a = input.next().charAt(0);
if (a == 'n') {
break;
}
}
}
}
public int getID() {// 新增DVD的序号
int max = 0;// 定最大值max
for (DVD dvd : dvds) {
if (dvd != null && dvd.id > max) {
max = dvd.id;
}
}
return max + 1;// 序号是最大值+1
}
public void dell() {// 删除DVD
StateDVD();
pub("请输入需要删除的DVD编号");
int id = input.nextInt();
for (int i = 0; i < dvds.length; i++) {
if (dvds[i] != null && dvds[i].id == id && dvds[i].state) {
dvds[i] = null;
pub("删除成功");
StateDVD();
return;
}
}
pub("删除失败");
StateDVD();
}
public void revert() {// 归还DVD
pub("请输入归还DVD编号");
int id = input.nextInt();
for (int i = 0; i < dvds.length; i++) {
if (dvds[i] != null && dvds[i].id == id && !dvds[i].state) {
dvds[i].state = true;
int day = (int) Math
.ceil((System.currentTimeMillis() - dvds[i].date
.getTime())
* 1.0 / 1000 / 60 / 60 / 24);
pub("归还" + "<" + dvds[i].name + ">" + "成功");
pub("借出日期:" + sdf.format(dvds[i].date));
pub("归还日期:" + sdf.format(new Date()));
pub("应付租金:" + day * 1 + "元");
dvds[i].date = null;
return;
}
}
}
public void borrow() {// 删除DVD
StateDVD();
pub("请选择租借的DVD编号");
int id = input.nextInt();
for (int i = 0; i < dvds.length; i++) {
if (dvds[i] != null && dvds[i].id == id && dvds[i].state) {
dvds[i].state = false;
dvds[i].date = new Date();
pub("借出成功");
pub("日期:" + sdf.format(dvds[i].date));
return;
}
}
pub("操作失败");
}
}
模拟 dvd <未分层>
最新推荐文章于 2024-04-09 13:06:46 发布