dvd管理器java_java 迷你DVD管理器

packagedvd_01;importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Date;importjava.util.Scanner;public classDvdManager {

Scanner input= newScanner(System.in);

DvdSet dvd= new DvdSet(); //初始化对象

boolean isJiechu = true; //已借出是true 可借是false//初始化三张DVD信息

public voidinitial() {

dvd.name[0] = "罗马假日";

dvd.state[0] = true; //已借出

dvd.date[0] = "2019-9-11";

dvd.name[1] = "变形金刚";

dvd.state[1] = false; //可借

dvd.name[2] = "生化危机";

dvd.state[2] = false; //可借

dvd.name[3] = "钢铁侠";

dvd.state[3] = true; //已借出

dvd.date[3] = "2019-9-10";

}public voidstartMenu() {

System.out.println("欢迎使用迷你DVD管理器");

System.out.println("--------------------------");

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.print("请选择:");int choice =input.nextInt();switch(choice) {case 1:

add();//新增DVD

break;case 2:

search();//查看DVD

break;case 3:

delete();//删除DVD

break;case 4:

lend();//借出DVD

break;case 5:

returnDvd();//归还DVD

break;case 6:

System.out.println("感谢您的使用!");break;default:

System.out.println("你的输入有误,请重新输入");

returnMain();

}

}public voidreturnMain() {

System.out.print("输入0返回:");if (input.nextInt() == 0) {

startMenu();

}else{

System.out.println("输入错误,程序结束!");

}

}//新增DVD

public voidadd() {/*** 首先判断i是否为空,如果为空就将name传给i,并将状态改为可借*/System.out.println("--->新增DVD\n");

System.out.print("请输入DVD的名称:");

String name=input.next();for (int i = 0; i < dvd.name.length; i++) {if (dvd.name[i] == null) { //判断位置是否为空

dvd.name[i] =name;

dvd.state[i]= false; //新增的dvd是可借的

System.out.println("新增《" + name + "》成功");break;

}

}

System.out.println("**************************");

returnMain();

}//查看DVD

public voidsearch() {/*** 如果i为空跳出循环i+1,如果状态为不可借就输出已经借出,并输出时间*/System.out.println("--->查看DVD\n");

System.out.println("序号\t状态\t名称\t\t借出日期");for (int i = 0; i < dvd.name.length; i++) {if (dvd.name[i] == null) {break;

}else if (dvd.state[i] == true) {

System.out.println((i+ 1) + "\t已借出\t《" + dvd.name[i] + "》\t" +dvd.date[i]);

}else if (dvd.state[i] == false) {

System.out.println((i+ 1) + "\t可借\t《" + dvd.name[i] + "》");

}

}

System.out.println("**************************");

returnMain();

}//删除DVD

public voiddelete() {/*** 判断i位置不为空,名字匹配,状态为可借。循环将名字,状态和日期往前移动,最后一位置空

* 如果状态为借出就跳出,不能删除*/System.out.println("--->删除DVD\n");

System.out.print("请输入DVD的名称:");

String name=input.next();boolean flag = false;for (int i = 0; i < dvd.name.length; i++) {if (dvd.name[i] != null && dvd.name[i].equalsIgnoreCase(name) && dvd.state[i] == false) {int j =i;while (dvd.name[j + 1] != null) {

dvd.name[j]= dvd.name[j + 1]; //删除元素,元素前移

dvd.state[j] = dvd.state[j + 1];

dvd.date[j]= dvd.date[j + 1];

j++;

}//最后一个不为空的元素置空

dvd.name[j] = null;

dvd.date[j]= null;

System.out.println("删除《" + name + "》成功!");

flag= true; //标识位

break;

}else if (dvd.name[i] != null && dvd.name[i].equalsIgnoreCase(name) && dvd.state[i] == true) {

System.out.println("《" + name + "》为借出状态,不能删除!");

flag= true;break;

}if (flag == true) {

System.out.println("没有找到《"+name+"》这个dvd!");

}

}

System.out.println("**************************");

returnMain();

}//借出DVD

public voidlend() {/*** 名字不为空,状态为可借,就可以借出,并将状态改为借出状态

* 按格式输入结束日期,并存储在date中

* 名字不为空,状态为借出,输出不可借

**/System.out.println("--->借出DVD\n");

System.out.print("请输入DVD的名称:");

String name=input.next();for (int i = 0; i < dvd.name.length; i++) {if (dvd.name[i] == null) {

System.out.println("没有找到《"+name+"》这个dvd!");break;

}else if (dvd.name[i].equals(name) && dvd.state[i] == false) {

System.out.print("请输入借出日期(年-月-日):");

dvd.date[i]=input.next();

System.out.println("《" + name + "》借出成功");

dvd.state[i]= true;break;

}else if (dvd.name[i].equals(name) && dvd.state[i] == true) {

System.out.println("不好意思,《" + name + "》已被借出!");break;

}

}

System.out.println("**************************");

returnMain();

}//归还DVD

public voidreturnDvd() {/*** 定义一个long存储租金

* 如果名字存在,状态为借出,按规定输入归还日期,将参数传给charge方法,状态改为可借,输出相关信息

* 如果名字存在,状态可借,输出无法操作*/System.out.println("--->归还DVD\n");

System.out.print("请输入DVD名称:");

String name=input.next();long money = 0; //租金

for (int i = 0; i < dvd.name.length; i++) {if (dvd.name[i] == null) {

System.out.println("没有找到《"+name+"》这个dvd!");break;

}else if (dvd.name[i].equals(name) && dvd.state[i] == true) {

System.out.print("请输入归还日期(年-月-日):");

String redate=input.next();

money= charge(dvd.date[i], redate); //租金计算,将两个参数传递给charge方法

System.out.println("\n《" + name + "》归还成功");

dvd.state[i]= false;

System.out.println("借出日期为:" +dvd.date[i]);

System.out.println("归还日期为:" +redate);

System.out.println("应付租金(元):" +money);break;

}else if (dvd.name[i].equals(name) && dvd.state[i] == false) {

System.out.println("《" + name + "》没有被借出,无法进行归还操作!");break;

}

}

System.out.println("**************************");

returnMain();

}//计算日期差

public longcharge(String dstr1, String dstr2) {/*** 定义返回值为long的方法,调用格式化日期方法,将两个参数分别赋值给date对象,

* 计算money,返回*/

long money = 0;

SimpleDateFormat sd= new SimpleDateFormat("yyyy-MM-dd"); //格式化日期

try{

Date d1=sd.parse(dstr1);

Date d2=sd.parse(dstr2);

money= (d2.getTime() - d1.getTime()) / (24 * 60 * 60 * 1000);

}catch(ParseException e) {

e.printStackTrace();

}returnmoney;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值