package com.cn.booksystem;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
public class BookMgr {
// 创建图书对象
BookSet book = new BookSet();
//初始化三本图书的信息
book.count[1] = 0;
book.name[2] = "人月神话";
book.state[2] = 1;
book.count[2] = 0;
}
/**
* 开始菜单
*/
public void startMenu(){
System.out.println("欢 迎 使 用 图 书 管 理 系 统");
System.out.println("-------------------------------------");
System.out.println("0. 借出排行榜");
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.print("--------------------------------------\n");
System.out.print("请选择: ");
Scanner input = new Scanner(System.in);
int choice = input.nextInt();
switch(choice){
case 0:
list();
break;
case 1:
add();
break;
case 2:
search();
break;
case 3:
delete();
break;
case 4:
lend();
break;
case 5:
returnBook();
break;
case 6:
System.out.println("\n谢 谢 使 用!");
break;
}
}
/**
* 返回主菜单
*/
public void returnMain(){
Scanner input = new Scanner(System.in);
System.out.print("输入0返回:");
if(input.nextInt() == 0){
startMenu();
}else{
System.out.println("输入错误, 异常终止!");
}
}
/**
* 查看图书
*/
public void search(){
System.out.println("---> 查看图书\n");
System.out.println("序号\t状 态\t名称\t\t借出日期");
for(int i = 0 ; i < book.name.length; i++){
if(book.name[i]==null){
break;
}else if(book.state[i] == 0){
System.out.println((i+1)+"\t已借出\t"+"<<"+ book.name[i]+ ">>\t" + book.date[i]);
}else if(book.state[i] == 1){
System.out.println((i+1)+"\t可 借\t"+"<<"+book.name[i]+">>");
}
}
System.out.println("**************************");
returnMain();
}
/**
* 新增图书
*/
public void add(){
Scanner input = new Scanner(System.in);
System.out.println("---> 新增图书\n");
System.out.print("请输入图书名称: ");
String name = input.next();
for(int i = 0; i < book.name.length; i++){
if(book.name[i] == null){ //查询最后一个空位置插入
book.name[i]=name;
book.state[i]=1;//新增的图书可借状态
System.out.println("新增《"+name+"》成功!");
break;
}
}
System.out.println("**************************");
returnMain();
}
/**
* 删除图书
*/
public void delete(){
Scanner input = new Scanner(System.in);
boolean flag=false;//标识删除成功与否
System.out.println("---> 删除图书\n");
System.out.print("请输入图书名称: ");
String name = input.next();
//遍历数组,查找匹配信息
for(int i = 0 ; i < book.name.length; i++){
//查找到,每个元素前移一位
if(book.name[i]!=null &&book.name[i].equalsIgnoreCase(name)&&book.state[i]==1){
int j=i;
while(book.name[j+1]!=null){
book.name[j]=book.name[j+1];
book.state[j]=book.state[j+1];
book.date[j]=book.date[j+1];
j++;
}
//最后一个不为空的元素置空
book.name[j]=null;
book.date[j]=null;
System.out.println("删除《"+name+"》成功!");
flag=true;//置位,表示删除成功
break;
}else if(book.name[i]!=null &&book.name[i].equalsIgnoreCase(name)&&book.state[i]==0){
System.out.println("《"+name+"》为借出状态,不能删除!");
flag=true;//置位
break;
}
}
if(!flag){
System.out.println("没有找到匹配信息!");
}
System.out.println("**************************");
returnMain();
}
/**
* 借出图书
*/
public void lend(){
System.out.println("---> 借出图书\n");
Scanner input = new Scanner(System.in);
System.out.print("请输入图书名称: ");
String want = input.next(); //要借出的图书名称
for(int i = 0; i < book.name.length; i++){
if(book.name[i] == null){ //无匹配
System.out.println("没有找到匹配信息!");
break;
}else if(book.name[i].equals(want)&& book.state[i]==1){ //找到匹配可借
book.state[i] = 0;
System.out.print("请输入借出日期(年-月-日):");
book.date[i]=input.next();
System.out.println("借出《"+want+"》成功!");
break;
}else if(book.name[i].equals(want)&& book.state[i]==0){ //找到匹配已被借出
System.out.println("《"+want+"》已被借出!");
break;
}
}
System.out.println("**************************");
returnMain();
}
/**
* 归还图书并计算租金
*/
}else if(book.name[i].equals(want) && book.state[i]==0){ //找到匹配
book.state[i] = 1;
System.out.print("请输入归还日期(年-月-日):");
String redate=input.next();
//计算租金
loan=charge(book.date[i],redate);
System.out.println("\n归还《"+want+"》成功!");
System.out.println("借出日期为:"+book.date[i]);
System.out.println("归还日期为:"+redate);
System.out.println("应付租金(元):"+loan);
book.count[i] = book.count[i] + 1;
break;
} else if(book.name[i].equals(want) && book.state[i]==1){ //找到匹配但没有借出
System.out.println("该图书没有被借出!无法进行归还操作。");
break;
}
}
System.out.println("**************************");
returnMain();
}
/**
* 计算日期差
* @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);
} catch (ParseException e) {
e.printStackTrace();
}
return charge;
}
/**
* 借出排行榜
*/
public void list(){
//定义新数组,用来存放排序后图书信息
String[] newname = new String[50]; //
int[] newcount=new int[50];
for(int k=0;k<book.name.length;k++){
newname[k]=book.name[k];
//利用冒泡排序算法进行排序
for(int i=0;i<newname.length-1;i++){
for(int j=0;j<newname.length-i-1;j++){
if(newcount[j]>newcount[j+1]){
int tempc=newcount[j];
newcount[j]=newcount[j+1];
newcount[j+1]=tempc;
String tempn=newname[j];
newname[j]=newname[j+1];
newname[j+1]=tempn;
}
}
}
学无止境,我永远都是学习者 ,我还是一个新手 ,经验有限 ,世界这么忙 ,我刚好有空写下了自己的心得 ,希望对大家有所帮助 ,缘分让我们一起,你们的赞赏,支持,关注就是对我莫大的支持,哪里写的不好的,也欢迎大家评论留言交流,希望大家多多指点,我将不胜感激,也希望我们共同进步。
只有自己深深痛过,才能体会别人的痛,于是难得自我们反省。学习也是如此,只有我们自我反省思考才会进步,正所谓吾日三省吾身就是这样的道理。我们一定要努力学好java语言。
什么是java的图书管理系统呢?
最新推荐文章于 2024-08-23 15:54:50 发布