模拟DVD 实现录入 查看 借出 归还 删除 新增 等功能<分层>

来源:互联网 发布:南京交通驾校 知乎 编辑:程序博客网 时间:2024/05/22 07:44
package cn.jbit.yang.qianqian;public class testDVDMgr {public static void main(String[] args) {DVDMgr1 dvd = new DVDMgr1();dvd.show1();}}package cn.jbit.yang.qianqian;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.qianqian;import java.text.SimpleDateFormat;import java.util.Scanner;import cn.jbit.yang.qian.DVD;public class DVDMgr1 { // 用户交互层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类数据类型DVDSever sever = new DVDSever();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");String T = "";while (!T.equals("n")) {pub("请输入新增DVD名字");String name = input.next();sever.addDVD(name);// 调用新增DVD方法pub("是否继续录入DVD名字y/n");T = input.next();if (T == "n") {break;}sever.StateDVD();}break;case 2:pub("--->查看DVD");pub("序号\t名称\t\t状态\t借出日期");DVD[] dvds = sever.StateDVD();// 调用查看DVD方法for (DVD dvd : dvds) {// 增强for循环if (dvd != null) {// 判断dvd!=空String state = dvd.state ? "未借" : "已借出";// 三元表达式String date = dvd.date == null ? " " : sdf.format(dvd.date);pub(dvd.id + "\t" + dvd.name + "\t" + "\t" + state+ "\t" + date);// 输出}}break;case 3:pub("--->删除DVD");pub("请输入需要删除的DVD编号");int id = input.nextInt();pub(sever.deil(id));break;case 4:pub("--->借出DVD");sever.StateDVD();pub("请选择租借的DVD编号");int id1 = input.nextInt();pub(sever.borrow(id1));break;case 5:pub("--->归还DVD");pub("请输入归还DVD编号");int id2 = input.nextInt();pub(sever.revert(id2));break;case 6:pub("退出系统");return;default:pub("输入有误,请输入1~6任意整数");}pub("输入0返回:");a = input.nextInt();}}}package cn.jbit.yang.qianqian;import java.text.SimpleDateFormat;import java.util.Date;import cn.jbit.yang.qian.DVD;public class DVDSever {// 处理层public DVDSever() {// 构造方法init();}SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");DVD[] dvds = new DVD[100];// DVD类数据类型public void init() {// 初始化String[] names = { "死神", "航海王", "火影忍者", "海绵宝宝", "火影忍者", "恶魔奶爸" };for (int i = 0; i < names.length; i++) {// 循环数组dvds[i] = new DVD();// 给数组中第一个元素实例化dvds[i].name = names[i];// 初始namedvds[i].id = i + 1;// 初始id}}public void addDVD(String name) {// 添加DVDfor (int i = 0; i < dvds.length; i++) {// 循环 判断数组有无空间if (dvds[i] == null) {// 判断为空 添加dvddvds[i] = new DVD();// 实例化dvds[i].name = name;// 录入DVD名字dvds[i].id = getID();// 序号return;}}}public int getID() {// 新增DVD的序号int max = 0;// 定最大值maxfor (DVD dvd : dvds) {if (dvd != null && dvd.id > max) {max = dvd.id;}}return max + 1;// 序号是最大值+1}public DVD[] StateDVD() {// 查看DVDreturn dvds;}public String deil(int id) {// 删除DVDfor (int i = 0; i < dvds.length; i++) {if (dvds[i] != null && dvds[i].id == id && dvds[i].state) {dvds[i] = null;return "删除成功";}}return "删除失败";}public String borrow(int id1) {// 借出DVDfor (int i = 0; i < dvds.length; i++) {if (dvds[i] != null && dvds[i].id == id1 && dvds[i].state) {dvds[i].state = false;dvds[i].date = new Date();return "借出成功" + "日期:" + sdf.format(dvds[i].date);}}return "操作失败";}public String revert(int id2) {// 归还DVDfor (int i = 0; i < dvds.length; i++) {if (dvds[i] != null && dvds[i].id == id2 && !dvds[i].state) {dvds[i].state = true;int day = (int) Math.ceil((System.currentTimeMillis() - dvds[i].date.getTime())* 1.0 / 1000 / 60 / 60 / 24);return "归还" + "<" + dvds[i].name + ">" + "成功" + "\n" + "借出日期:"+ sdf.format(dvds[i].date) + "\n" + "归还日期:"+ sdf.format(new Date()) + "\n" + "应付租金:" + day * 1+ "元";}}return null;}}


 

0 0
原创粉丝点击