public  class DvdSet {
String name [] =new String[15]; // DVD电影名称
String date [] =new String[15]; //DVD电影借出时间
int num [] =new int[15]; //DVD的借出次数
int state[] =new int[15]; //DVD的借出状态 0.没有借出 1.借出去了
}
import java.text.*;
import java.util.*;
import java.util.Scanner; public class DvdMgr { DvdSet dvdSet = new DvdSet(); //把初始影片的信息传给数组保存
public void initial() {
//第一个影片
dvdSet.name[0] = "羞羞的铁拳";
dvdSet.state[0] = 1;
dvdSet.num[0] = 82;
dvdSet.date[0] = "2017-10-1";
//第二个影片
dvdSet.name[1] = "大鱼海棠";
dvdSet.state[1] = 1;
dvdSet.num[1] = 189;
dvdSet.date[1] = "2017-10-7"; //第三个影片
dvdSet.name[2] = "缝纫机乐队";
dvdSet.state[2] = 0;
dvdSet.date[2] = "暂无";
} public void show() {
System.out.println("***********************************");
System.out.println("****** 欢迎使用益达DVD管理器 ******");
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("**********************************"); System.out.println("请输入你需要选择的编号:(1~6)");
Scanner input = new Scanner(System.in);
switch (input.nextInt()) {
case 1:
AddMovies();
backshwo();
break;
case 2:
looklist();
backshwo();
break;
case 3:
remove();
backshwo();
break;
case 4:
lend();
backshwo();
break;
case 5:
backDVD();
backshwo();
break;
case 6:
System.out.println("感谢使用,我们下次再见!");
break;
default:
System.out.println("输入有误,本系统都吓奔溃了~");
}
} //返回主菜单 public void backshwo() {
System.out.println("请输入0返回主菜单");
Scanner input = new Scanner(System.in);
if (input.nextInt() == 0) {
show();
} else {
System.out.println("非常抱歉大爷,你输入有误,请重新输入!");
backshwo();
} } //新增加DVD影片----case 1:
public void AddMovies() {
System.out.println("**** 欢迎进入增加影片系统!****");
System.out.println("请输入你的要增加的影片名称:(拒绝添加黄堵毒等不良内容!)");
Scanner input = new Scanner(System.in);
String name = input.next(); //输入要增加的电影名称
for (int i = 0; i < dvdSet.name.length; i++) {
if (dvdSet.name[i] == null) { //if 如果数字的i位置为空,
dvdSet.name[i] = name; //那么把输入的name赋值给数组i位置
dvdSet.state[i] = 0; //所以i位置的借出状态为 未借出 也就是0;
dvdSet.date[i]="暂无"; //所以i位置的借出日期为暂无
break; //这里加上break结束循环 否贼会把所有数组中空位置都赋值上
}
}
System.out.println("添加" + name + "影片成功!恭喜你没有搞事情!");
} //查看影片功能-----case 2:
public void looklist() {
System.out.println("********************************* 影片列表 ********************************");
System.out.println("*\t序号\t\t状态\t\t\t名称\t\t\t借出日期\t\t借出次数 *");
for (int i = 0; i < dvdSet.name.length; i++) {
if (dvdSet.name[i] == null) { //如果数组i位置没有影片,那么我们不输出他
break;
} else if (dvdSet.state[i] == 0) { //如果该位置有影片,但是借出状态为0,输出可借出
System.out.println("*\t" + (i + 1) + "\t\t\t可借出\t" + "\t\t" + dvdSet.name[i] + "\t\t" + dvdSet.date[i] + "\t\t\t" + dvdSet.num[i] + "次\t\t *");
} else if (dvdSet.state[i] == 1) { //如果该位置有影片,但是借出状态为1,输出已经借出
System.out.println("*\t" + (i + 1) + "\t\t\t已经借出" + "\t\t" + dvdSet.name[i] + "\t\t" + dvdSet.date[i] + "\t\t" + dvdSet.num[i] + "次\t *");
}
}
System.out.println("***************************************************************************");
} //删除影片功能----case 3:
public void remove() {
System.out.println("******欢迎进入删除页面*****");
looklist();
System.out.println("请输入您要删除的DVD名称:");
Scanner input = new Scanner(System.in);
String name = input.next(); //没有借出就可以删除
//1.判断需要删除的电影位置后面是否为空,如果为空就把删除的电影每个属性赋值为空
//因为显示列表设定如果电影名称为null空的话就不会显示他,所以我们简单点把name赋值为空即可
//如果后面的位置不为null,那么我们需要把后面的全部数据向前覆盖,即可完成删除操作。 for (int i = 0; i < dvdSet.name.length; i++) {
//查找是否存在
if (dvdSet.name[i] != null) { if (dvdSet.name[i].equalsIgnoreCase(name)) { //已经找到 //是否已经被借出
if (dvdSet.state[i] == 1) { // 借出
System.out.println("《" + name + "》已经被借出");
break;
} else if (dvdSet.state[i] == 0) { //没有借出需要删除
//思路 : 1.用后面一个替换前面的。
//2.把最后面多余的地方赋值为null. for (int j = i; j < dvdSet.name.length; j++) { //做交换
if (dvdSet.name[j + 1] != null) {
dvdSet.name[j] = dvdSet.name[j + 1];
dvdSet.state[j] = dvdSet.state[j + 1]; } else {
//清空最后一个值
dvdSet.name[j] = null;
dvdSet.date[j] = null;
break;
} } System.out.println("删除《" + name + "》成功");
break;
}
} } else { System.out.println("没有您要删除的dvd");
System.out.println("***********************************************");
break;
}
} } //借出DVD----case 4: public void lend() {
System.out.println("欢迎来到借影片系统!"); //显示影片列表
looklist(); //输入要借的影片名
System.out.println("请输入要借的影片名:");
Scanner input = new Scanner(System.in);
String name = input.next();
for (int i = 0; i < dvdSet.name.length; i++) {
//只对比数值不为空的数组里的数据
if (dvdSet.name[i] != null) {
//检查影片是否存在并且检查有没有被借出,没有就可以借。
if (dvdSet.name[i].equals(name) && dvdSet.state[i] == 0) {
//找到匹配电影名并且状态为未借出,所以开始输入借书时间,并传给数组
System.out.println("请输入借DVD的时间(年-月-日):");
//把借影片时间传给数组对应位置
Scanner Datainput = new Scanner(System.in);
dvdSet.date[i] = Datainput.next();
//把对应的借影片状态改为已经借出
dvdSet.state[i] = 1;
//借出次数加1
dvdSet.num[i]++;
break;
//检查影片是否存在并且检查有没有被借出,已经借出,则输出已经借出。
} else if (dvdSet.name[i].equals(name) && dvdSet.state[i] == 1) {
//找到匹配电影名并且状态为已经借出,所以输出已经借出
System.out.println("非常抱歉,影片已经被借出!");
break;
}
} else {
//如果上面两个条件都不满足,则说明没有找到匹配的影片,输出没有此影片
System.out.println("抱歉没有找到你要借的影片");
break;
}
}
} //归还DVD-----case 5: public void backDVD() {
//显示影片列表,可以知道影片的借出状态
looklist(); System.out.println("请输入你要归还的影片名称:");
Scanner input = new Scanner(System.in);
String name = input.next();
for (int i = 0; i < dvdSet.name.length; i++) {
//对比名称数组里不为空的值
if (dvdSet.name[i] != null) {
//如果我们输入的name电影名称和数组里面有相匹配的并且状态为没有借出,那么输出这部电影还在我们影院
if (dvdSet.name[i].equals(name) && dvdSet.state[i] == 0) {
System.out.println("这部影片还在我们影院啊!您拿来的是盗版吗?");
break;
//如果我们输入的name电影名称和数组里面有相匹配的并且状态为已经借出,那么输出我们归还影片成功
} else if (dvdSet.name[i].equals(name) && dvdSet.state[i] == 1) { //添加获取时间差时间差--(若要删除此功能,注释或删除以下三行代码,并注释或删除整个获取时间差的方法)
System.out.println("请输入归还书籍的时间(年-月-日):");
Scanner inputDate = new Scanner(System.in);
//获取时间差,把括号里的参数传给获取时间差的方法里,得到charge时间差,时间差的方法写在了结尾
long charge = charge(dvdSet.date[i], inputDate.next()); //修改这部影片的状态为---可借出
dvdSet.state[i] = 0;
//修改这部影片的借出日期为----暂无
dvdSet.date[i] = "暂无";
//这部影片的借出次数加1
dvdSet.num[i]++;
System.out.println("归还《" + name + "》影片成功!一共借该影片" + charge + "天!");
System.out.println("您借该影片价格为每天2元钱,所以您需要付费"+(charge*2)+"元!");
break;
}
} else {
//以上条件都不符合,说明列表无输出的影片,则输出-输入有误
System.out.println("输入有误,我们影院没有这种三观不正的影片!");
break;
}
}
} //获取时间差的方法----附加
public long charge(String date1, String date2) { //做时间差
//将String转为Date做计算
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
//初始化时间差为0
long charge = 0;
try {
//借出影片的时间
Date lendData = simpleDateFormat.parse(date1);
//归还影片的时间
Date backData = simpleDateFormat.parse(date2);
//时间以毫秒为单位,所以乘以1000
charge = (backData.getTime() - lendData.getTime()) / (1000 * 24 * 60 * 60);
} catch (ParseException e) {
System.out.println(e);
} return charge;
}
public class TestDVD {
public static void main(String[] args) {
DvdMgr dvdMgr = new DvdMgr();
//把原本有的三个电影运行传递给数组
dvdMgr.initial(); //开始运行菜单
dvdMgr.show();
}
}

java简易DVD影片管理系统—面向对象的更多相关文章

  1. java 7K交通灯管理系统面试题

    交通灯管理系统 模拟实现十字路口的交通灯管理系统逻辑.详细需求例如以下: 1. 异常随机生成依照各个路线行驶的车辆.    比如:    由南向而来去往北向的车辆----直行车辆    由西向而来去往 ...

  2. java一个简单的管理系统

    用java实现的简单管理系统 运行出来的状态 实现了新增.删除.借出.归还.排行榜简单的功能! 下面是简单的代码 首先定义一个书籍类,自己打开哦! public class Book implemen ...

  3. java简易编辑器

    package peng_jun; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swi ...

  4. java web 项目 图书管理系统的设计与实现

     java web 项目 图书管理系统的设计与实现

  5. C++ 文件操作(简易的学籍管理系统)

    这是一个简易的学籍管理系统,大一时居然三个人写了一千多行......年少无知啊!欢迎摘果实! 1 #include <iostream> #include <fstream> ...

  6. 20175316 盛茂淞 2018-2019-2 《Java程序设计》实验二 面向对象程序设计 实验报告

    20175316 盛茂淞 2018-2019-2 <Java程序设计>实验二 面向对象程序设计 实验报告 (一)单元测试 在 IDEA中我们把产品代码放在src目录中,把测试代码放在tes ...

  7. 第83节:Java中的学生管理系统分页功能

    第83节:Java中的学生管理系统分页功能 分页功能一般可以做成两种,一种是物理分页,另一种是逻辑分页.这两种功能是有各自的特点的,物理分页是查询的时候,对数据库进行访问,只是查一页数据就进行返回,其 ...

  8. 第82节:Java中的学生管理系统

    第82节:Java中的学生管理系统 学生管理系统的删除功能 删除,点击超链接,点击弹出对话框式是否进行删除,如果确定,就删除,超链接执行的是js方法,在js里访问,跳转servlet,,servlet ...

  9. 第四节:详细讲解Java中的类和面向对象思想

    前言 大家好,给大家带来详细讲解Java中的类和面向对象思想的概述,希望你们喜欢 类和面向对象 在Java中怎样理解对象,创建对象和引用:什么是引用,对于基础学习的同学,要深入了解引用.示例:Stri ...

随机推荐

  1. modprobe与insmod的区别

    linux设备驱动有两种加载方式insmod和modprobe,下面谈谈它们用法上的区别1.insmod一次只能加载特定的一个设备驱动,且需要驱动的具体地址.写法为:        insmod dr ...

  2. Python——函数入门(三)

    一.变量作用域 当程序定义一个变量时,这个变量是有它的作用范围的,变量的作用范围称为变量的作用域.根据变量的位置,分为两种: 局部变量:局部变量就是在函数中定义的变量,包括参数,都是局部变量,局部离开 ...

  3. 3_HA介绍和安装部署

    一.hadoop 2.x产生背景 1.hadoop 1.x中hdfs和mr在高可用和扩展性等方面存在问题.2.hdfs存在的问题:NN单点故障,难以应用于在线场景:NN压力过大,内存受限,影响系统扩展 ...

  4. linux 环境能变量配置

    1, 3.配置环境变量 在/etc/profile文件末尾中添加以下环境变量:(我上面的JDK目录是jdk1.6.0_45,所以下面JAVA_HOME中也是这个) export JAVA_HOME=/ ...

  5. Java continue break 制作简单聊天室程序,屏蔽不文明语言,显示每句话聊天时间 for(;;) SimpleDateFormat("yyyy-MM-dd hh:mm:ss") equalsIgnoreCase

    package com.swift; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanne ...

  6. 回数是指从左向右读和从右向左读都是一样的数,例如 12321 , 909 。请利用 filter() 滤掉非回数

    不管在什么地方,什么时候,学习是快速提升自己的能力的一种体现!!!!!!!!!!! 最近一段时间学习了廖雪峰老师学的Python学习资料,给自己的帮助很大,同时也学到的了很多,今天做了一道练习题,对于 ...

  7. 设计模式基础--Java接口和抽象类

    最近在看设计模式,感觉需要先好好区分下抽象类和接口. 一.抽象类 <Java编程思想>中这样定义:包含抽象方法的类叫做抽象类. 解释: 1.包含,说明抽象类中可以有其他的具体方法. 2.因 ...

  8. django+xadmin在线教育平台(五)

    3-3 django orm介绍与model设计 上节教程完成后代码(来学习本节前置条件): 对应commit: 留言板前端页面展示.本次内容截止教程3-2结束. 可能现在你还在通过手写sql语句来操 ...

  9. ES6箭头函数基本用法

    ES6箭头函数基本用法 ``` window.onload = function(){ alert(abc); } //箭头函数 window.onload = ()=>{ alert(&quo ...

  10. jquery 省市区联动插件

    使用方式: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...