图书管理系统 图书类Book 属性 书名 name 作者 author 出版社 publisher 定价 price 租借人 leaser 出租日期 rentDate 日租金 rent 租借天数 day 状态 state

不提供带参构造方法
​
提供成员方法show
​
提供getter/setter方法

测试类Demo 静态变量 控制台扫描器 图书数组 bookArray, 长度为5

静态代码块 static{} 初始化3个Book对象,  一个未逾期的一个已逾期的, 一个7日内逾期的, 一个未逾期的存储到bookArray数组中用于测试35
​
主函数 - do-while 打印菜单, 并让用户选择1. 查看图书列表 display()2. 添加图书     addBook()3. 删除图书    deleteBook()4. 租借         rentOut()5. 归还         giveBack()6. 续租         relet()要求: 用户输入续租的天数, 然后更新对象中的天数测试的时候, 可以对一个已经过期的图书进行续租, 续租成功后, 再次查看已逾期时, 就不会出现了7. 查看7日内即将到期的 expireIn7Days()要求: 找出7日内即将到期的图书, 并打印出剩余天数8. 查看已逾期的   overdue()要求: 找出已经逾期的图书, 并打印出逾期天数9. 退出
​
编写相应的静态函数实现上述功能

package Game04;

public class Book {
    //图书管理系统
    //  图书类Book
    //    属性
    //    书名 name
    //    作者 author
    //    出版社 publisher
    //    定价 price
    //    租借人 leaser
    //    出租日期 rentDate
    //    日租金 rent
    //    租借天数 day
    //    状态 state
    private String name;
    private String author;
    private String publisher;
    private Double price;
    private String leaser;
    private String rentDate;
    private Double rent;
    private Integer day;
    private Integer state;

//不提供带参构造方法
    //
    //提供成员方法show
    //
    //提供getter/setter方法
    public Book() {
    }
    public  void show(){
        System.out.println("书名 name :" +this.name+
                "\n作者 author:" +this.author+
                "\n出版社 publisher:" +this.publisher+
                "\n定价 price:" +this.price+
                "\n租借人 leaser:" +this.leaser+
                "\n出租日期 rentDate:" +this.rentDate+
                "\n日租金 rent:" +this.rent+
                "\n租借天数 day:" +this.day+
                "\n状态 state:"+this.state);
    }

public String getName() {
        return name;
    }

public void setName(String name) {
        this.name = name;
    }

public String getAuthor() {
        return author;
    }

public void setAuthor(String author) {
        this.author = author;
    }

public String getPublisher() {
        return publisher;
    }

public void setPublisher(String publisher) {
        this.publisher = publisher;
    }

public Double getPrice() {
        return price;
    }

public void setPrice(Double price) {
        this.price = price;
    }

public String getLeaser() {
        return leaser;
    }

public void setLeaser(String leaser) {
        this.leaser = leaser;
    }

public String getRentDate() {
        return rentDate;
    }

public void setRentDate(String rentDate) {
        this.rentDate = rentDate;
    }

public Double getRent() {
        return rent;
    }

public void setRent(Double rent) {
        this.rent = rent;
    }

public Integer getDay() {
        return day;
    }

public void setDay(Integer day) {
        this.day = day;
    }

public Integer getState() {
        return state;
    }

public void setState(Integer state) {
        this.state = state;
    }
}



package Game04;
import package11.DateUtil;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class Demo {
    //静态变量
    //      控制台扫描器
    //      图书数组 bookArray, 长度为5
    static Scanner sc = new Scanner(System.in);
    static Book[] bookArray = new Book[5];

//静态代码块 static{} 初始化3个Book对象,  一个未逾期的一个已逾期的, 一个7日内逾期的, 一个未逾期的
    //存储到bookArray数组中用于测试
    static {
        Book book1 = new Book();
        book1.setName("1");
        book1.setAuthor("1.1");
        book1.setPublisher("1.1.1");
        book1.setPrice(20.0);
        book1.setLeaser("zs");
        book1.setRentDate("2022-06-01 06:00:00");
        book1.setRent(21.0);
        book1.setDay(60);
        book1.setState(1);
        bookArray[0]=book1;

Book book2 = new Book();
        book2.setName("2");
        book2.setAuthor("21");
        book2.setPublisher("2.1.1");
        book2.setPrice(30.0);
        book2.setLeaser("ls");
        book2.setRentDate("2022-06-01 06:00:00");
        book2.setRent(21.0);
        book2.setDay(35);
        book2.setState(1);
        bookArray[1]=book2;

Book book3 = new Book();
        book3.setName("3");
        book3.setAuthor("31");
        book3.setPublisher("3.1.1");
        book3.setPrice(40.0);
        book3.setLeaser("ww");
        book3.setRentDate("2022-06-01 06:00:00");
        book3.setRent(21.0);
        book3.setDay(29);
        book3.setState(1);
        bookArray[2]=book3;
    }

//主函数 - do-while 打印菜单, 并让用户选择
    //    1. 查看图书列表 display()
    //    2. 添加图书     addBook()
    //    3. 删除图书    deleteBook()
    //    4. 租借         rentOut()
    //    5. 归还         giveBack()
    //    6. 续租         relet()
    //         要求: 用户输入续租的天数, 然后更新对象中的天数
    //             测试的时候, 可以对一个已经过期的图书进行续租, 续租成功后, 再次查看已逾期时, 就不会出现了
    //    7. 查看7日内即将到期的 expireIn7Days()
    //         要求: 找出7日内即将到期的图书, 并打印出剩余天数
    //    8. 查看已逾期的    overdue()
    //         要求: 找出已经逾期的图书, 并打印出逾期天数
    //    9. 退出
    //
    //编写相应的静态函数实现上述功能
    public static void main(String[] args) {
        int choice = 0;
        do {
            System.out.println("******菜单*******");
            System.out.println("1.查看图书列表");
            System.out.println("2.添加图书");
            System.out.println("3.删除图书");
            System.out.println("4.租借");
            System.out.println("5.归还");
            System.out.println("6.续租");
            System.out.println("7.查看7天内即将到期的");
            System.out.println("8.查看已逾期的");
            System.out.println("9.退出");
            System.out.println("请输入编号~");
            choice = sc.nextInt();
            switch (choice) {
                case 1:
                    System.out.println("本图书馆提供以下图书的租借:");
                    display();
                    break;
                case 2:
                    System.out.println("添加图书!");
                    addBook();
                    break;
                case 3:
                    System.out.println("删除图书!");
                    deleteBook();
                    break;
                case 4:
                    System.out.println("欢迎进入图书出租系统");
                    rentOut();
                    break;
                case 5:
                    System.out.println("欢迎进入图书归还系统");
                    giveBack();
                    break;
                case 6:
                    System.out.println("欢迎进入图书续租系统");
                    relet();
                    break;
                case 7:
                    System.out.println("欢迎进入图书续租系统");
                    expireIn7Days();
                    break;
                case 8:
                    System.out.println("欢迎进入图书续租系统");
                    overdue();
                    break;

}
        } while (choice != 9);
    }

private static void overdue() {
        for (int i = 0; i < bookArray.length; i++) {
            if(bookArray[i]==null){
                break;
            }if (bookArray[i].getState()==0){
                continue;
            }
            Book book=bookArray[i];
            long now=new Date().getTime();
            long rentTime= DateUtil.StringToDate(book.getRentDate()).getTime();
            int rentDay=(int)((now-rentTime)/1000/60/60/24);
            if (rentDay>book.getDay()){
                System.out.println(book.getLeaser()+"租借"+book.getName()+"已逾期");
                System.out.println("逾期天数:"+(rentDay-book.getDay()));
            }
        }
    }

private static void expireIn7Days() {
        for (int i = 0; i < bookArray.length; i++) {
            if(bookArray[i]==null){
                break;
            }if (bookArray[i].getState()==0){
                continue;
            }
            Book book=bookArray[i];
            long now=new Date().getTime();
            long rentTime= DateUtil.StringToDate(book.getRentDate()).getTime();
            int rentDay=(int)((now-rentTime)/1000/60/60/24);
            if ((book.getDay()-rentDay)<0){
                System.out.println("图书已逾期,请前往8查看逾期信息");
            }else if ((book.getDay()-rentDay)>7){
                System.out.println("图书剩余时间充足,请不必担心");
            }
            else {
                System.out.println(book.getLeaser()+"租借"+book.getName()+"将在7天内逾期");
                System.out.println("剩余天数:"+(book.getDay()-rentDay));
            }
        }
    }

private static void relet() {
        display();
        System.out.println("请输入编号续租图书");
        int a = sc.nextInt()-1;
        if (a<0||a>bookArray.length+1||bookArray[a]==null||bookArray[a].getState()==0){
            System.out.println("输入编号违规或栏位没有图书或者图书未租借!");
        }else {
            System.out.println("请输入需要租借的天数");
            int x= sc.nextInt();
            bookArray[a].setDay(x+bookArray[a].getDay());
            System.out.println(bookArray[a].getLeaser()+"续租"+bookArray[a].getName()+"成功!");
        }
    }

private static void giveBack() {
        display();
        System.out.println("请输入要归还的汽车:");
        int backid = sc.nextInt()-1;
        Book book=bookArray[backid];
        if (book==null){
            System.out.println("该图书不存在,请重新输入");
        }else if (book.getState()==0){
            System.out.println("该图书已归还,无需归还");
        }else {
            double pay=book.getDay()*book.getRent();
            System.out.println("您一共需要支付"+pay+"元");
            book.setLeaser(null);
            book.setRent(null);
            book.setRentDate(null);
            book.setDay(null);
            book.setState(0);
            System.out.println(book.getLeaser()+"归还"+book.getName()+"成功!");
        }
    }

private static void rentOut() {
        for (int i = 0; i < bookArray.length; i++) {
            if (bookArray[i]==null){
                System.out.println((i + 1) + "号图书栏为空");
            }else if(bookArray[i].getState()==0){
                System.out.println((i+1)+"号图书信息");
                bookArray[i].show();
            }else {
                System.out.println((i+1)+"号图书栏位:该图书已出租");
            }
        }
        System.out.println("请输入你要租的图书栏位号:");
        int a=sc.nextInt()-1;
        Book book=bookArray[a];
        if (bookArray[a]==null){
            System.out.println("此栏位为空");
        }
        else if (book.getState()==0) {
            System.out.println("请输入租借人:");
            book.setLeaser(sc.next());
            book.setRentDate(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
            System.out.println("请输入日租金:");
            book.setRent(sc.nextDouble());
            System.out.println("请输入租借天数:");
            book.setDay(sc.nextInt());
            book.setState(1);
            System.out.println(book.getLeaser()+"租借"+book.getName()+"成功!");
        }else{
            System.out.println("该图书已被租出!");
        }

}

private static void deleteBook() {
        display();
        System.out.println("请输入编号删除图书");
        int a = sc.nextInt()-1;
        if (a<0||a>bookArray.length+1||bookArray[a]==null){
            System.out.println("此编号违规或者没有图书!");
        }else{
            bookArray[a] = null;
            System.out.println("删除成功!");
        }
    }

private static void addBook() {
        if (bookArray[bookArray.length - 1] != null) {
            System.out.println("本月图书需求已满,请等待下个月!");
            return;
        }
        Book book=new Book();
        System.out.println("请输入图书名字:");
        book.setName(sc.next());
        System.out.println("请输入图书作者:");
        book.setAuthor(sc.next());
        System.out.println("请输入图书出版社:");
        book.setPublisher(sc.next());
        System.out.println("请输入图书定价:");
        book.setPrice(sc.nextDouble());
        book.setState(0);
        for (int i = 0; i < bookArray.length; i++) {
            if (bookArray[i] == null) {
                bookArray[i] = book;
                break;
            }
        }
        System.out.println("图书添加成功!");
    }

private static void display() {
        for (int i = 0; i < bookArray.length; i++) {
            if (bookArray[i] == null) {
                System.out.println((i + 1) + "号图书栏为空");
            } else {
                System.out.println((i + 1) + "号图书栏:");
                bookArray[i].show();
            }

}
    }
}

java[逾期检测]开发图书租借系统相关推荐

  1. java基于ssm开发的花店系统

    Java基于ssm开发网上花店系统单商家系统,主要有商品分类,列表,详情,购物车,订单等功能. 演示视频: https://www.bilibili.com/video/BV1bT4y1N7vw/?s ...

  2. java和springboot开发的养老系统养老院系统养老院网站源码

    简介 本系统是养老院系统,主要是老人入住养老院的业务逻辑,有护工和医生对老人进行护理看病记录等信息管理,缴费入住外出记录管理等. 演示视频 https://www.bilibili.com/video ...

  3. java win 窗体开发简单订餐系统_Java实现简单订餐系统

    本文实例为大家分享了Java实现简单订餐系统的具体代码,供大家参考,具体内容如下 import java.util.Scanner; import java.util.*; public class ...

  4. 基于java springboot android 安卓图书借阅系统源码(毕设)

    开发环境及工具: 大于等于jdk1.8,大于mysql5.5,idea(eclipse),Android Studio 技术说明: springboot mybatis html vue.js boo ...

  5. html5图书租借系统,图书租赁管理系统

    图书租赁管理系统是一款租赁管理平台.该软件转为图书馆,书店等行业准备的管理软件,他可以为用户们提供图书入库管理,图书出借管理,图书查询管理等诸多十分便利的管理功能,可以让用户们对每本书记的出入都拥有十 ...

  6. Java小程序,编写一个迷你DVD租借系统(控制台输出)

    用Java编写一个迷你DVD租借系统 要求实现以下功能: 借出排行榜 新 增 DVD 查 看 DVD 删 除 DVD 借 出 DVD 归 还 DVD 退 出 需要编写三个类 DVDSet类(定义存放的 ...

  7. 【计算机毕业设计】图书借阅系统

    一.系统截图(需要演示视频可以私聊) 摘 要 随着电子商务快速发展世界各地区,各个高校对图书馆也起来越重视.图书馆代表着一间学校或者地区的文化标志,因为图书馆丰富的图书资源能够带给我们重要的信息资源, ...

  8. 基于java框架的图书分享系统的设计与开发计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署

    基于java框架的图书分享系统的设计与开发计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署 基于java框架的图书分享系统的设计与开发计算机毕业设计源码+系统+lw文档+mysql数据库 ...

  9. java计算机毕业设计作业自动评阅系统的设计和开发源程序+mysql+系统+lw文档+远程调试

    java计算机毕业设计作业自动评阅系统的设计和开发源程序+mysql+系统+lw文档+远程调试 java计算机毕业设计作业自动评阅系统的设计和开发源程序+mysql+系统+lw文档+远程调试 本源码技 ...

最新文章

  1. linux 显示文字在桌面背景,Linux下Xwindow的字体配置(所谓的字体美化)
  2. BZOJ2809-左偏树合并
  3. mysql 出现 quot_MYSQL 新版出现 Client does_mysql _ 搞代码
  4. 使用POI读取word文档
  5. 腾讯回应“二选一”;微信内测更新;特斯拉车祸再致命 | CSDN极客头条
  6. python类中包含一个特殊的变量、它表示当前对象自身_知到APP教师职场礼仪第七单元章节测试网课答案大学课后答案...
  7. 【Go学习笔记】数组
  8. 学习Linux第一周所有命令总结
  9. 如何查看局域网内所有IP
  10. win10专业版和企业版的区别
  11. CCF-分蛋糕-Java
  12. MIUI9系统怎么卡刷开发版获取ROOT超级权限
  13. java 本周一_java 获取本周一的日期
  14. 由电源IC芯片管理的,通过电感实现DC-DC升压电路详解
  15. Block学习-关于Block是如何实现的,以及block中参数传递
  16. 训练神经网络的详细步骤,人工神经网络训练过程
  17. 不背单词,不学语法,过去100天,这10万人原来是这样学英语的......
  18. ie10 11 css兼容性问题,学习一下IE10和IE11的CSS Hack
  19. PDF文档如何在线分割成多个PDF小文件
  20. 控件拖动后,某些事件引起的布局重置或位置还原问题

热门文章

  1. IE浏览器打开ie模式
  2. BCG 使用之CBCGPTreeCtrlEx控件
  3. 移动互联时代测试工具,互动视频
  4. 传统图像处理之颜色特征
  5. 简单使用AspectJ
  6. python定义一个数据自动去重的函数_110道Python面试题(真题小结)
  7. 基于大学生内卷行为的调查研究
  8. java语言的编译器_JAVA语言编译器是一个CASE工具。()。
  9. 循环往复 志在千里-while语句(C语言)
  10. 魅族16s Pro体验:精益求精的打磨升级款