函数题:图书借阅系统--归还图书
编程实现:图书借阅系统中的归还图书功能。
### 方法接口定义:
java
public void returnbook(String want, String redate);
returnbook方法的功能是归还图书,并计算租金。例如:其中 want 和 redate 都是用户传入的参数。 want 是图书名称; redate 是归还图书日期,格式是:‘yyyy-mm-dd’。
用户只完成该方法,并提交系统,程序的其他部分不需要修改。
### 裁判测试程序样例:
java
import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.Date;
import java.util.Scanner;
/**
* 图书借阅主类
*/
public class Main {
public static void main(String[] args) {
BookMgr dm = new BookMgr();
dm.initial();
dm.startMenu();
}
}
/**
* 图书数据类
*/
class BookSet{
String[] name = new String[50]; // 存储图书名称
int[] state = new int[50]; // 存储图书借出状态:0--已借出;1--可借
String[] date = new String[50]; // 存储图书借出日期
int[] count = new int[50]; // 存储图书借出次数
}
/**
* 图书借阅管理类
*/
class BookMgr {
/**
* 创建图书对象
*/
BookSet book = new BookSet();
Scanner input = new Scanner(System.in);
//每一次的暂存租金
private long charge;
public long getCharge() {
return charge;
}
public void setCharge(long charge) {
this.charge = charge;
}
/**
* 初始三个图书
*/
public void initial() {
book.name[0] = "数据结构";
book.state[0] = 0;
book.date[0] = "2018-7-1";
book.count[0] = 15;
book.name[1] = "数据库";
book.state[1] = 1;
book.count[1] = 12;
book.name[2] = "离散数学";
book.state[2] = 1;
book.count[2] = 30;
}
/**
* 开始菜单
*/
public void startMenu() {
System.out.println("欢迎使用图书借阅系统");
System.out.println("-------------------------------------");
System.out.println("0. 归 还 图 书");
System.out.println("1. 退 出 ");
System.out.print("--------------------------------------\n");
System.out.print("请选择: ");
int choice = input.nextInt();
switch (choice) {
case 0://归还图书
returnbook();
System.exit(0);
break;
case 1://退出
System.out.println("\n谢谢 使 用!");
break;
}
}
/**
* 归还图书并计算租金
*/
public void returnbook() {
System.out.println("---> 归还图书\n");
long loan = 0;//租金
System.out.print("请输入图书名称: ");
String want = input.next();
System.out.print("请输入归还日期(年-月-日):");
String redate = input.next();
//为方便测试,抽出方法
returnbook(want, redate);
System.out.println("*");
}
/**
* 归还图书并计算租金
*/
// 这个方法就是用户需要提交的方法。***
public void returnbook(String want, String redate) {
//初始化租金
this.setCharge(0);
long loan;
for (int i = 0; i < book.name.length; i++) {
if (book.name[i] == null) { //无匹配
System.out.println("没有找到匹配信息!");
break;
} else if ( ) { //找到匹配 /*TODO 判断匹配到对应书籍*/
/*补全归还操作 1.设置为未借出状态 2.计算租金*/
System.out.println("\n归还《" + want + "》成功!");
System.out.println("借出日期为:" + book.date[i]);
System.out.println("归还日期为:" + redate);
System.out.println("应付租金(元):" + loan);
break;
} else if ( ) { //找到匹配但没有借出 /*判断查询到的书籍未被借出*/
System.out.println("该图书没有被借出!无法进行归还操作。");
break;
}
}
}
/**
* 计算日期差
*
* @param dstr1 借出日期
* @param dstr2 归还日期
*/
public long charge(String dstr1, String dstr2) {
long charge = 0;
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
try {
Date d1 = sd.parse(dstr1);
Date d2 = sd.parse(dstr2);
charge = (d2.getTime() - d1.getTime()) / (24 * 60 * 60 * 1000);
this.setCharge(charge);
} catch (ParseException e) {
e.printStackTrace();
}
return charge;
}
}
### 输入样例:
in
0
数据结构
2018-7-24
### 输出样例:
out
欢迎使用图书借阅系统
-------------------------------------
0. 归 还 图 书
1. 退 出
--------------------------------------
请选择: ---> 归还图书
请输入图书名称: 请输入归还日期(年-月-日):
归还《数据结构》成功!
借出日期为:2018-7-1
归还日期为:2018-7-24
应付租金(元):23
*
答案:若无答案欢迎评论
### 方法接口定义:
java
public void returnbook(String want, String redate);
returnbook方法的功能是归还图书,并计算租金。例如:其中 want 和 redate 都是用户传入的参数。 want 是图书名称; redate 是归还图书日期,格式是:‘yyyy-mm-dd’。
用户只完成该方法,并提交系统,程序的其他部分不需要修改。
### 裁判测试程序样例:
java
import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.Date;
import java.util.Scanner;
/**
* 图书借阅主类
*/
public class Main {
public static void main(String[] args) {
BookMgr dm = new BookMgr();
dm.initial();
dm.startMenu();
}
}
/**
* 图书数据类
*/
class BookSet{
String[] name = new String[50]; // 存储图书名称
int[] state = new int[50]; // 存储图书借出状态:0--已借出;1--可借
String[] date = new String[50]; // 存储图书借出日期
int[] count = new int[50]; // 存储图书借出次数
}
/**
* 图书借阅管理类
*/
class BookMgr {
/**
* 创建图书对象
*/
BookSet book = new BookSet();
Scanner input = new Scanner(System.in);
//每一次的暂存租金
private long charge;
public long getCharge() {
return charge;
}
public void setCharge(long charge) {
this.charge = charge;
}
/**
* 初始三个图书
*/
public void initial() {
book.name[0] = "数据结构";
book.state[0] = 0;
book.date[0] = "2018-7-1";
book.count[0] = 15;
book.name[1] = "数据库";
book.state[1] = 1;
book.count[1] = 12;
book.name[2] = "离散数学";
book.state[2] = 1;
book.count[2] = 30;
}
/**
* 开始菜单
*/
public void startMenu() {
System.out.println("欢迎使用图书借阅系统");
System.out.println("-------------------------------------");
System.out.println("0. 归 还 图 书");
System.out.println("1. 退 出 ");
System.out.print("--------------------------------------\n");
System.out.print("请选择: ");
int choice = input.nextInt();
switch (choice) {
case 0://归还图书
returnbook();
System.exit(0);
break;
case 1://退出
System.out.println("\n谢谢 使 用!");
break;
}
}
/**
* 归还图书并计算租金
*/
public void returnbook() {
System.out.println("---> 归还图书\n");
long loan = 0;//租金
System.out.print("请输入图书名称: ");
String want = input.next();
System.out.print("请输入归还日期(年-月-日):");
String redate = input.next();
//为方便测试,抽出方法
returnbook(want, redate);
System.out.println("*");
}
/**
* 归还图书并计算租金
*/
// 这个方法就是用户需要提交的方法。***
public void returnbook(String want, String redate) {
//初始化租金
this.setCharge(0);
long loan;
for (int i = 0; i < book.name.length; i++) {
if (book.name[i] == null) { //无匹配
System.out.println("没有找到匹配信息!");
break;
} else if ( ) { //找到匹配 /*TODO 判断匹配到对应书籍*/
/*补全归还操作 1.设置为未借出状态 2.计算租金*/
System.out.println("\n归还《" + want + "》成功!");
System.out.println("借出日期为:" + book.date[i]);
System.out.println("归还日期为:" + redate);
System.out.println("应付租金(元):" + loan);
break;
} else if ( ) { //找到匹配但没有借出 /*判断查询到的书籍未被借出*/
System.out.println("该图书没有被借出!无法进行归还操作。");
break;
}
}
}
/**
* 计算日期差
*
* @param dstr1 借出日期
* @param dstr2 归还日期
*/
public long charge(String dstr1, String dstr2) {
long charge = 0;
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
try {
Date d1 = sd.parse(dstr1);
Date d2 = sd.parse(dstr2);
charge = (d2.getTime() - d1.getTime()) / (24 * 60 * 60 * 1000);
this.setCharge(charge);
} catch (ParseException e) {
e.printStackTrace();
}
return charge;
}
}
### 输入样例:
in
0
数据结构
2018-7-24
### 输出样例:
out
欢迎使用图书借阅系统
-------------------------------------
0. 归 还 图 书
1. 退 出
--------------------------------------
请选择: ---> 归还图书
请输入图书名称: 请输入归还日期(年-月-日):
归还《数据结构》成功!
借出日期为:2018-7-1
归还日期为:2018-7-24
应付租金(元):23
*
答案:若无答案欢迎评论