博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
迷你DVD管理器
阅读量:5319 次
发布时间:2019-06-14

本文共 8007 字,大约阅读时间需要 26 分钟。

//第一部分

package com.po

//属性类

public class Dvd {//属性类

  private String name;//书名

  private String time;//日期

  private String state;//书本状态“0”表示已借出“1”表示可借用 

public String getName() {

  return name;
  }
public void setName(String name) {
  this.name = name;
  }
public String getTime() {
  return time;
  }
public void setTime(String time) {
  this.time = time;
  }
public String getState() {
  return state;
}
public void setState(String state) {
  this.state = state;
}
@Override
public String toString() {
  return name+"\t"+state+"\t"+time+"\t";
}

}

 

 

//第二部分

package com.dao;

import java.util.List;

import com.po.Dvd;

public interface DvdDao{//接口类 接口只包含常量跟抽象方法

void dvdInit();//初始化书本方法

List<Dvd>dvdfindAll();//全查

//新增dvd信息

public boolean dvdAdd(Dvd dvd);//添加对象

//删除dvd信息

public boolean dvdDelete(String name);//根据dvd名称删除

//借出dvd

public boolean lend(Dvd dvd);

//归还dvd

public boolean back(Dvd dvd);

//根据id查找书名

Dvd dvdFindbyid(String name);

}

//第三部分

package com.daoimpl;

import java.util.ArrayList;

import java.util.List;

import com.dao.DvdDao;

import com.po.Dvd;

/* implements 是一个类,实现一个借口用用的关键字,它是用来实现接口中定义的抽象方法。实现一个接口,必须实现接口中的所有方法。

*/

public class dvdDaoImpl implements DvdDao{

List<Dvd> dvds=new ArrayList<Dvd>();

@override

public List<Dvd> dvdfindAll(){

return dvds;

}

@Override

public void dvdInit(){//初始化方法

Dvd dvd1=new Dvd();//第一个对象

dvd1.setName("罗马假日");

dvd1.setState("0");

dvd1.setTime("2013-7-1");

dvds.add(dvd1);

Dvd dvd2=new Dvd();//第二个对象

dvd2.setName("风声鹤唳");

dvd2.setState("1");

dvd2.setTime("");

dvds.add(dvd2);

Dvd dvd3=new Dvd();//第三个对象

dvd3.setName("浪漫满屋");

dvd3.setState("1");

dvd3.setTime("");

dvds.add(dvd3);

}

@Override

//添加dvd方法

public boolean dvdAdd(Dvd dvd) {

  boolean boo = false;//DVD集合中是否有相同的名字,true:有;false:无,默认没找到

    for (int i = 0; i < dvds.size(); i++) {

  if (dvd.getName().equals(dvds.get(i).getName())) {

    boo = true;

  break;

  }

//判断是否找到相同名字

if (boo) {

  return false;

  } else {

  //没有找到相同名字,添加信息

  dvds.add(dvd);

  return true;

    }

  }
  return boo;
}

@Override

public boolean dvdDelete(String name) {//删除dvd信息

for (Dvd dvd : dvds) {//遍历循环集合dvds中的对象

if(name.equals(dvd.getName())){//假如输入的dvd名字与要删除的dvd名字相同

if("1".equals(dvd.getState())){//假如该dvd状态为可借状态

dvds.remove(dvd);//执行删除操作

return true;

}

}

}

return false;

}

@Override

public boolean lend(Dvd dvd) {//借出

boolean bo=false;

for (Dvd d : dvds) {

if(d.getName().equals(dvd.getName())&&"1".equals(d.getState())){//假如借出的dvd名字存在,并且是可借状态

d.setState("0");//借出之后修改书本状态

d.setTime(dvd.getTime());//记录书本借出时间

bo=true;

break;

}

}

if(bo){

return true;

}

else{

return false;

}

}

 

@Override

public boolean back(Dvd dvd) {//归还

boolean bo=false;

for (Dvd d : dvds) {

if(d.getName().equals(dvd.getName())&&"0".equals(d.getState())){

d.setState("1");//书本状态

d.setTime("");//书本归还时间

bo=true;

break;

}

}

if(bo){

return true;

}

else{

return false;

}

 

 

}

@Override

public Dvd dvdFindbyid(String name) {//单查

// TODO Auto-generated method stub

for (Dvd dvd : dvds) {//foeach 遍历循环

if(name.equals(dvd.getName())){

return dvd;

}

}

return null;

}

}

 

//第四部分

package com.service;

 

import java.util.List;

 

import com.po.Dvd;

 

public interface DvdService {//接口类

void dvdInit();

List<Dvd> dvdfindAll();

//新增DVD信息

public boolean dvdAdd(String name);

//删除DVD信息

public boolean dvdDelete(String name);

//借出

public boolean lend(String name);

//归还

public boolean back(String name);

Dvd dvdFindbyId(String name);

}

//第五部分

package com.serviceimpl;

import java.text.DateFormat;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.List;

import com.dao.DvdDao;

import com.daoimpl.dvdDaoImpl;

import com.po.Dvd;

import com.service.DvdService;

public class DvdServiceImpl implements DvdService {

DvdDao dvdDao = new dvdDaoImpl();//实例化dvdDao对象

@Override

public List<Dvd> dvdfindAll() {

List<Dvd> list = dvdDao.dvdfindAll();// 获取值

return list;

}

@Override

public void dvdInit() {

dvdDao.dvdInit();

}

@Override

public boolean dvdAdd(String name) {//添加对象

Dvd dvd = new Dvd();//实例化对象

dvd.setState("1");//添加dvd状态

dvd.setName(name);

dvd.setTime("");

if (dvdDao.dvdAdd(dvd)) {

return true;

} else {

return false;

}

}

@Override

public boolean dvdDelete(String name) {//删除方法

if (dvdDao.dvdDelete(name)) {

return true;

} else {

return false;

}

}

 

@Override

public boolean lend(String name) {// 借出

Dvd dvd = new Dvd();

Date date = new Date();

DateFormat format = new SimpleDateFormat("yyyy-MM-dd");//格式化时间格式

String time = format.format(date);//获取当前系统时间为借出dvd时间

dvd.setName(name);//获取借出的dvd名字

dvd.setTime(time);//获取dvd的借出时间

if (dvdDao.lend(dvd)) {

return true;

} else {

return false;

}

}

 

@Override

public boolean back(String name) {// 归还

Dvd dvd = new Dvd();

dvd.setName(name);

if (dvdDao.back(dvd)) {

return true;

} else {

return false;

}

 

}

 

@Override

public Dvd dvdFindbyId(String name) {

// TODO Auto-generated method stub

return dvdDao.dvdFindbyid(name);

}

 

}

 

//测试类

package com.test;

import java.text.DateFormat;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.List;

import java.util.Scanner;

import org.junit.Test;

import com.po.Dvd;

import com.service.DvdService;

import com.serviceimpl.DvdServiceImpl;

 

public class Test1 {

Scanner scanner=new Scanner(System.in);

DvdService dvdService=new DvdServiceImpl();

@Test

public void dvdMenu(){

dvdService.dvdInit();//初始化数据

while(true){

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("请选择:");

String input=scanner.next();

switch (input) {

case "1":

System.out.println("此处实现新增DVD");

dvdAdd();//dvd增加

break;

case "2":

System.out.println("此处实现查看DVD");

findAll();//查看

break;

case "3":

System.out.println("此处实现删除DVD");

dvdDelete();//删除DVD

break;

case "4":

System.out.println("此处实现借出DVD");

dvdLoan();//借出DVD

break;

case "5":

System.out.println("此处实现归还DVD");

dvdGiveBack();//归还DVD

break;

case "6":

System.out.println("退出成功!");

System.exit(0);

break;

default:

System.out.println("选择错误!");

break;

}

}

}

private void dvdGiveBack() {

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

String name=scanner.next();

String dvdLoanTime=null;

if(dvdService.dvdFindbyId(name)!=null){

dvdLoanTime=dvdService.dvdFindbyId(name).getTime();

}

if(dvdService.back(name)){

System.out.println("借出时间"+dvdLoanTime);

Date date=new Date();

       DateFormat format=new SimpleDateFormat("yyyy-MM-dd");

       String time=format.format(date);

       System.out.println("归还时间"+time);

       Date t1 = null,t2 = null;

       try {

       t1=format.parse(dvdLoanTime);

       t2=format.parse(time);

} catch (Exception e) {

}    

       long charge=(t2.getTime()-t1.getTime())/(24*60*60*1000);

       System.out.println("消费金额:"+charge);

System.out.println("归还"+name+"成功!");

}

else {

System.out.println("归还失败");

}

getBack();

}

private void dvdLoan() {

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

String name=scanner.next();

if(dvdService.lend(name)){

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

 

}

else {

System.out.println("借出失败");

}

getBack();

}

private void dvdDelete() {

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

String name=scanner.next();

if(dvdService.dvdDelete(name)){

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

}

else {

System.out.println("删除失败!");

}

getBack();

}

private void findAll() {

System.out.println("序号\t名称\t状态\t借出日期");

List<Dvd>list=dvdService.dvdfindAll();

//循环遍历集合

int i=1;

for (Dvd dvd : list) {

String state=dvd.getState();//获取对象中的状态

if("0".equals(state)){

System.out.println(i+++"\t"+dvd.getName()+"\t已借出\t"+dvd.getTime()+"\t");

}

else{

System.out.println(i+++"\t"+dvd.getName()+"\t可借\t"+dvd.getTime()+"\t");

}

}

getBack();

}

private void dvdAdd() {

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

String name=scanner.next();

if(dvdService.dvdAdd(name)){

System.out.println("添加"+name+"成功!");

}

else {

System.out.println("添加失败!,该DVD已存在");

}

getBack();

}

private void getBack() {

while(true){

System.out.print("输入0返回:");

String s=scanner.next();

if(s.equals("0")){

break;

}

}

}

 

}

 

//找到了相同名字,无法添加信息

 

转载于:https://www.cnblogs.com/xiaojianhun/p/7265592.html

你可能感兴趣的文章
在创业公司上班的感受
查看>>
Shell脚本
查看>>
masm32V11配置
查看>>
ASP.NET中Request.ApplicationPath、Request.FilePath、Request.Path、.Request.MapPath
查看>>
通过Python、BeautifulSoup爬取Gitee热门开源项目
查看>>
正则表达式的用法
查看>>
线程安全问题
查看>>
集合的内置方法
查看>>
IOS Layer的使用
查看>>
Android SurfaceView实战 带你玩转flabby bird (上)
查看>>
Android中使用Handler造成内存泄露的分析和解决
查看>>
android代码控制seekbar的样式
查看>>
servlet
查看>>
SSM集成activiti6.0错误集锦(一)
查看>>
linux下安装python环境
查看>>
pdnovel 看书 读书 听书
查看>>
oracle for loop 代替cursor (转载)
查看>>
Linked List Cycle II
查看>>
工作踩坑记录:JavaScript跳转被缓存
查看>>
个人作业
查看>>