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;}
}

模拟DVD 实现录入 查看 借出 归还 删除 新增 等功能分层相关推荐

  1. 给图片查看器插件Magnify新增放大镜功能

    说实话Magnify图片查看器插件已经非常强大了,媲美Windows的图片查看器,但是,毕竟是开源插件,用起来简单,就是兼容性等各种bug问题.不过还好能用,自己优化一下就好. 在实际项目中,如果只是 ...

  2. java中创建dvd_JAVA简单模拟DVD功能

    建立数组1. public class DVD_set { 2. //此处为copy 3. String[] name = new String[50];// 存储DVD的名字 4. String[] ...

  3. linux 查看软连接_linux删除原理

    linux删除原理 1. linux文件的概述  linux系统中文件和目录的属性主要包括:索引节点号(inode).文件类型及权限.硬链接的数量.文件或目录所属的用户(属主).文件或目录所属的组( ...

  4. db link的查看创建与删除

    --db link的查看创建与删除 ----------------------------2013/10/30 1.查看dblink select owner,object_name from db ...

  5. 实现具备添加、查看、修改以及删除联系人信息功能的手机通讯录。

    实现具备添加.查看.修改以及删除联系人信息功能的手机通讯录. print("--------------手机通讯录-------------") print("--- 1 ...

  6. gdb 笔记(04)— 启用/禁用断点、启用断点一次、查看断点、删除断点、启用断点并命中N次、忽略断点前N次命中)

    1. 启用.禁用断点 如果一个断点被禁用,则该断点不会被命中,但是它仍然会在断点列表中显示.我们仍然可以通过 info b 来查看被禁用的断点,也可以通过启用断点命令来重新启用被禁用的断点. 禁用断点 ...

  7. c语言图书借出归还系统,c语言图书馆管理系统(codeblocks版).docx

    c语言图书馆管理系统(codeblocks版) /* *图书馆管理系统 *@author 琴卓 *@time 2015-12-10 */#include#include#include#include ...

  8. 马斯克告诉推特员工:要么继续高强度工作,要么拿遣散费走人;微信新增删除声音锁功能;Deno 1.28 发布|极客头条

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

  9. 查看文件目录下最近新增文件/显示C盘中隐藏文件办法/释放C盘空间办法

    5,查看文件目录下最近新增(或者是最近修改)的文件夹:解决办法--按照时间来筛选文件. 有时候用来查看最近自己的盘中新增了什么内容. 6,显示C盘中隐藏的文件方法: http://www.coozhi ...

最新文章

  1. php实现中英文网站插件,多语言网站方案
  2. Flex学习的利器《Hello Flex4》
  3. Boost:bimap双图的突变的测试程序
  4. 【POJ2117】Electricity [tarjan 割点]
  5. Spring MVC:Ajax和JQuery
  6. 吴恩达机器学习笔记十三之推荐系统
  7. (王道408考研数据结构)第二章线性表-第二节2:顺序表的操作
  8. windows + Linux 自定义模板配置 怎么使用自定义规范管理器
  9. android面试 源码,Android面试题-onCreate源码都没看过,怎好意思说自己做android-Go语言中文社区...
  10. 经典视觉SLAM框架
  11. 2.啊哈!算法 --- 一大波数正在靠近——栈、队列、链表
  12. 交流异步电机矢量控制(一)——电机模型及其坐标变换
  13. 【web前端HTML5+CSS3】01HTML--基础知识
  14. shping cloud搭建大觅网-之sping cloud初体验
  15. 强哥日常高效工作流骨灰级玩家培训课程
  16. wegame系统推荐头像_热点微信国旗头像刷屏,怎么回事?(附国旗获取方式)
  17. 服装电商APP软件开发平台作用
  18. 交通一卡通二维码支付技术要求
  19. Docker部署若伊前后端分离项目到阿里云服务器
  20. 新浪采集内容数据自动发布

热门文章

  1. 中心频率法确认VMD的K值的python实现
  2. ESP32/ESP8266
  3. 小散量化炒股记|基于多任务爬虫技术, 实现A股实时行情Level1采样
  4. Excel VBA 讲座04 - 过程,变量,循环和IF语句
  5. 便签提醒事项怎么设置闹钟
  6. js中关于时间的转化——将秒/毫秒转化成xx小时xx分钟xx秒
  7. 黑客攻防技术宝典(五)
  8. 教你编写一个手势解锁控件
  9. win7无法连接打印机拒绝访问_win7共享打印机无法连接怎么办?win7连不上共享打印机解决方法...
  10. A First Course in Database Systems(数据库基础教程 第三版)课后答案——2.3.1\2.3.2\2.4.1