java[逾期检测]开发图书租借系统
图书管理系统 图书类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[逾期检测]开发图书租借系统相关推荐
- java基于ssm开发的花店系统
Java基于ssm开发网上花店系统单商家系统,主要有商品分类,列表,详情,购物车,订单等功能. 演示视频: https://www.bilibili.com/video/BV1bT4y1N7vw/?s ...
- java和springboot开发的养老系统养老院系统养老院网站源码
简介 本系统是养老院系统,主要是老人入住养老院的业务逻辑,有护工和医生对老人进行护理看病记录等信息管理,缴费入住外出记录管理等. 演示视频 https://www.bilibili.com/video ...
- java win 窗体开发简单订餐系统_Java实现简单订餐系统
本文实例为大家分享了Java实现简单订餐系统的具体代码,供大家参考,具体内容如下 import java.util.Scanner; import java.util.*; public class ...
- 基于java springboot android 安卓图书借阅系统源码(毕设)
开发环境及工具: 大于等于jdk1.8,大于mysql5.5,idea(eclipse),Android Studio 技术说明: springboot mybatis html vue.js boo ...
- html5图书租借系统,图书租赁管理系统
图书租赁管理系统是一款租赁管理平台.该软件转为图书馆,书店等行业准备的管理软件,他可以为用户们提供图书入库管理,图书出借管理,图书查询管理等诸多十分便利的管理功能,可以让用户们对每本书记的出入都拥有十 ...
- Java小程序,编写一个迷你DVD租借系统(控制台输出)
用Java编写一个迷你DVD租借系统 要求实现以下功能: 借出排行榜 新 增 DVD 查 看 DVD 删 除 DVD 借 出 DVD 归 还 DVD 退 出 需要编写三个类 DVDSet类(定义存放的 ...
- 【计算机毕业设计】图书借阅系统
一.系统截图(需要演示视频可以私聊) 摘 要 随着电子商务快速发展世界各地区,各个高校对图书馆也起来越重视.图书馆代表着一间学校或者地区的文化标志,因为图书馆丰富的图书资源能够带给我们重要的信息资源, ...
- 基于java框架的图书分享系统的设计与开发计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署
基于java框架的图书分享系统的设计与开发计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署 基于java框架的图书分享系统的设计与开发计算机毕业设计源码+系统+lw文档+mysql数据库 ...
- java计算机毕业设计作业自动评阅系统的设计和开发源程序+mysql+系统+lw文档+远程调试
java计算机毕业设计作业自动评阅系统的设计和开发源程序+mysql+系统+lw文档+远程调试 java计算机毕业设计作业自动评阅系统的设计和开发源程序+mysql+系统+lw文档+远程调试 本源码技 ...
最新文章
- linux 显示文字在桌面背景,Linux下Xwindow的字体配置(所谓的字体美化)
- BZOJ2809-左偏树合并
- mysql 出现 quot_MYSQL 新版出现 Client does_mysql _ 搞代码
- 使用POI读取word文档
- 腾讯回应“二选一”;微信内测更新;特斯拉车祸再致命 | CSDN极客头条
- python类中包含一个特殊的变量、它表示当前对象自身_知到APP教师职场礼仪第七单元章节测试网课答案大学课后答案...
- 【Go学习笔记】数组
- 学习Linux第一周所有命令总结
- 如何查看局域网内所有IP
- win10专业版和企业版的区别
- CCF-分蛋糕-Java
- MIUI9系统怎么卡刷开发版获取ROOT超级权限
- java 本周一_java 获取本周一的日期
- 由电源IC芯片管理的,通过电感实现DC-DC升压电路详解
- Block学习-关于Block是如何实现的,以及block中参数传递
- 训练神经网络的详细步骤,人工神经网络训练过程
- 不背单词,不学语法,过去100天,这10万人原来是这样学英语的......
- ie10 11 css兼容性问题,学习一下IE10和IE11的CSS Hack
- PDF文档如何在线分割成多个PDF小文件
- 控件拖动后,某些事件引起的布局重置或位置还原问题