java简易DVD影片管理系统—面向对象
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影片管理系统—面向对象的更多相关文章
- java 7K交通灯管理系统面试题
交通灯管理系统 模拟实现十字路口的交通灯管理系统逻辑.详细需求例如以下: 1. 异常随机生成依照各个路线行驶的车辆. 比如: 由南向而来去往北向的车辆----直行车辆 由西向而来去往 ...
- java一个简单的管理系统
用java实现的简单管理系统 运行出来的状态 实现了新增.删除.借出.归还.排行榜简单的功能! 下面是简单的代码 首先定义一个书籍类,自己打开哦! public class Book implemen ...
- java简易编辑器
package peng_jun; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swi ...
- java web 项目 图书管理系统的设计与实现
java web 项目 图书管理系统的设计与实现
- C++ 文件操作(简易的学籍管理系统)
这是一个简易的学籍管理系统,大一时居然三个人写了一千多行......年少无知啊!欢迎摘果实! 1 #include <iostream> #include <fstream> ...
- 20175316 盛茂淞 2018-2019-2 《Java程序设计》实验二 面向对象程序设计 实验报告
20175316 盛茂淞 2018-2019-2 <Java程序设计>实验二 面向对象程序设计 实验报告 (一)单元测试 在 IDEA中我们把产品代码放在src目录中,把测试代码放在tes ...
- 第83节:Java中的学生管理系统分页功能
第83节:Java中的学生管理系统分页功能 分页功能一般可以做成两种,一种是物理分页,另一种是逻辑分页.这两种功能是有各自的特点的,物理分页是查询的时候,对数据库进行访问,只是查一页数据就进行返回,其 ...
- 第82节:Java中的学生管理系统
第82节:Java中的学生管理系统 学生管理系统的删除功能 删除,点击超链接,点击弹出对话框式是否进行删除,如果确定,就删除,超链接执行的是js方法,在js里访问,跳转servlet,,servlet ...
- 第四节:详细讲解Java中的类和面向对象思想
前言 大家好,给大家带来详细讲解Java中的类和面向对象思想的概述,希望你们喜欢 类和面向对象 在Java中怎样理解对象,创建对象和引用:什么是引用,对于基础学习的同学,要深入了解引用.示例:Stri ...
随机推荐
- CUDA:Supercomputing for the Masses (用于大量数据的超级计算)-第七节
第七节:使用下一代CUDA硬件,快乐加速度 原文链接 Rob Farber 是西北太平洋国家实验室(Pacific Northwest National Laboratory)的高级科研人员.他在多个 ...
- linux 环境能变量配置
1, 3.配置环境变量 在/etc/profile文件末尾中添加以下环境变量:(我上面的JDK目录是jdk1.6.0_45,所以下面JAVA_HOME中也是这个) export JAVA_HOME=/ ...
- celery:Unrecoverable error: AttributeError("'unicode' object has no attribute 'iteritems')
环境描述 python2+django1.9下使用celery异步处理耗时请求. celery使用的是celery-with-redis这个第三方库,版本号为3.0. pip install cele ...
- react与微信小程序
由组员完成 原文链接 都说react和微信小程序很像,但是像在什么部分呢,待我稍作对比. 生命周期 1.React React的生命周期在16版本以前与之后发生了重大变化,原因在于引入的React F ...
- 一、MySQL 安装
MySQL 安装 所有平台的 MySQL 下载地址为: MySQL 下载 . 挑选你需要的 MySQL Community Server 版本及对应的平台. 注意:安装过程我们需要通过开启管理员权限来 ...
- Linux产生随机数的几种方法
.echo $RANDOM .openssl rand -base64 .date +%n%N .head /dev/urandom |cksum .cat /proc/sys/kernel/rand ...
- 固定table的表头同时固定列
table表格是我们最常使用的数据显示一种形式,但有时候数据比较多的时候 就需要我们去固定表头,固定列.我这里用简单的css样式配合两句js脚本来实现,希望能够去帮到你. <div class= ...
- 微信小程序 onLoad 函数
小程序注册完成后,加载页面,触发onLoad方法. 页面载入后触发onShow方法,显示页面. 首次显示页面,会触发onReady方法,渲染页面元素和样式,一个页面只会调用一次. 当小程序后台运行或跳 ...
- oracle 11gR2 for win7旗舰版64安装以及连接plsql和NaviCat(win64_11gR2_database) (2012-12-31-bd 写的日志迁移
先到oracle官网http://www.oracle.com/technetwork/cn/database/enterprise-edition/downloads/index.html下载必要数 ...
- Django配置邮箱登录
1.settings下配置 # AUTH 方法(支持邮箱登录) AUTHENTICATION_BACKENDS = ('users.views.CustomBackend',) 2.views下逻辑如 ...