Java设计模式之外观模式示例详解
674
2022-08-21
Java实现简单图书借阅系统
本文实例为大家分享了java实现图书借阅系统的具体代码,供大家参考,具体内容如下
为图书阅览室开发一个图书借阅系统,最多可存50本图书,实现图书的管理。图书借阅系统具备以下主要功能。
u功能
Ø借出排行榜
Ø新增图书
Ø查看图书
Ø删除图书
Ø借出图书
Ø归还图书
Ø退出
package com.daiinfo.seninorjava.ken8.implentment.utils;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Scanner;
public class Bookborrowing {
public static void main(String[] args){
int[] states=new int[50];//图书借阅状态 状态0:已借出,1:可借
int[] counts=new int[50];//图书借阅次数
String[] name=new String[50];//图书名称
String[] dates=new String[50];//图书日期
//初始化图书
states[0]=0;
counts[0]=15;
name[0]="数据结构";
dates[0]="2018-7-15";
states[1]=1;
counts[1]=12;
name[1]="数据库";
dates[1]=null;
states[2]=2;
counts[2]=30;
name[2]="离散数学";
dates[2]=null;
//外观界面
Scanner input=new Scanner(System.in);
int num=-1;//用户输入0返回主菜单
boolean flage=false;//记录用户是否退出系统,true为退出,false为不退出
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、退出");
int choose=input.nextInt();
switch(choose){
case 0:
int number=0;
for(;name[number]!=null;number++) {
}//求出当前书目总数
int[] http://sortBook=new int[number];
printBook(name,counts,number,sortBook);
break;
case 1:
System.out.println("------>新增图书");
int a=0;
for(;a if(name[a]==null) { System.out.println("请输入图书名称"); name[a]=input.next();//录入书名 System.out.println("/n"+"新增《"+name[a]+"》成功!!!"); //将图书信息存入数组 states[a]=1; counts[a]=0; dates[a]=null; break; } } if(a==50) { System.out.println("书架已满,勿加"); } System.out.println("******************************"); break; case 2: System.out.println("------>查看图书"); System.out.println("序号\t状态\t名称\t借出日期\t"); for(int i=0;name[i]!=null;i++) { String situation=(states[i]==0)?"已借出":"可借"; System.out.println((i+1)+"\t"+situation+"\t《"+name[i]+"》\t"); if(states[i]==0) { System.out.println(dates[i]); }else { System.out.println(); } } System.out.println("*******************************"); break; case 3: System.out.println("------->删除图书"); System.out.println("请输入图书名称"); String book=input.next(); boolean check1=false;//判断是否找到删除图书名称,false找不到 for(int b=0;name[b]!=null;b++) ouHms{ if(name[b].equals(book)) { check1=true; if(states[b]==1) { //图书未借出,可以删除 System.out.println("删除《"+book+"》成功!"); int i=b; for(;i states[i]=states[i+1]; name[i]=name[i+1]; dates[i]=dates[i+1]; counts[i]=counts[i+1]; }//将数组内容前移 break; }else { System.out.println("图书已借出,无法删除!"); break; } } } if(check1==false) { System.out.println("没有找到匹配信息!"); } System.out.println("*************************"); break; case 4: System.out.println("--------->借出图书"); System.out.println("请输入图书名称:"); String back=input.next(); boolean check2=false;//判断想要借出的书能否找到,false找不到,true找到 for(int b=0;name[b]!=null;b++) { if(name[b].equals(back)) {//书存在 check2=true; if(states[b]==1) { System.out.println("请输入借出日期(年-月-日):"); dates[b]=input.next(); while(judge(dates[b])==false) { System.out.println("日期非法,请重新输入"); dates[b]=input.next(); } states[b]=0;//将当前图书状态调成借出 counts[b]++;//当前图书借出次数加一 }else { System.out.println(name[b]+"已被借出!"); } break; } } if(check2==false) { System.out.println("没有找到匹配信息!"); } System.out.println("*********************************"); break; case 5: System.out.println("--------->归还图书"); System.out.println("请输入图书名称:"); String back1=input.next(); boolean check3=false;//判断归还的书能否找到,false找不到,true找到 for(int b=0;name[b]!=null;b++) { if(name[b].equals(back1)) {//书存在 check3=true; if(states[b]==0) {//如果书借出 System.out.println("请输入归还日期(年-月-日):"); String returnDate=inphttp://ut.next(); while(judge(returnDate)==false) { System.out.println("日期非法,请重新输入"); returnDate=input.next(); } System.out.println("归还《"+back1+"》成功!"); System.out.println("借出日期"+dates[b]); System.out.println("归还日期"+returnDate); int money=0; try { money=daysBetween(dates[b],returnDate); }catch(Exception e) { e.printStackTrace(); } System.out.println("该书没有被借出,无法执行操作"); } break; } } if(check3==false) { System.out.println("没有找到匹配信息!"); } System.out.println("*********************************"); break; case 6: flage=true; break; default: flage=true; break; } if(flage==true) { break; }else { System.out.println("输入0返回"); num=input.nextInt(); } }while(num==0); System.out.println("谢谢使用!"); } private static boolean judge(String str) { // TODO Auto-generated method stub SimpleDateFormat sd=new SimpleDateFormat("yy-MM-dd");//日期格式 try { sd.setLenient(false);//指定日期时间是否合格,true不合格,false合格 sd.parse(str); }catch(Exception e){ return false; } return true; } public static void printBook(String[] names,int[] sortBook,int number,int[] counts) { int[] another=counts.clone();//复制数组 int i=0; int max=another[0]; for(int p=0;p<=max;p++) { for(int q=0;q if(counts[q]==p) { sortBook[i++]=q; } } } System.out.println("序号\t"+"书名\t"+"借出次数"); for(int x=(number-1);x>=0;x--) {//借出次数排行榜 System.out.println((number-x)+"\t"+names[sortBook[x]]+"\t\t"+counts[sortBook[x]]); } System.out.println("******************"); } public static int daysBetween(String smdate,String bdate) throws Exception{ SimpleDateFormat sdf=new SimpleDateFormat("yy-MM-dd"); Calendar cal=Calendar.getInstance(); cal.setTime(sdf.parse(smdate)); long time1=cal.getTimeInMillis(); cal.setTime(sdf.parse(bdate))http://; long time2=cal.getTimeInMillis(); long between_days=(time2-time1)/(1000*3600*24); return Integer.parseInt(String.valueOf(between_days)); } }
if(name[a]==null) {
System.out.println("请输入图书名称");
name[a]=input.next();//录入书名
System.out.println("/n"+"新增《"+name[a]+"》成功!!!");
//将图书信息存入数组
states[a]=1;
counts[a]=0;
dates[a]=null;
break;
}
}
if(a==50) {
System.out.println("书架已满,勿加");
}
System.out.println("******************************");
break;
case 2:
System.out.println("------>查看图书");
System.out.println("序号\t状态\t名称\t借出日期\t");
for(int i=0;name[i]!=null;i++) {
String situation=(states[i]==0)?"已借出":"可借";
System.out.println((i+1)+"\t"+situation+"\t《"+name[i]+"》\t");
if(states[i]==0) {
System.out.println(dates[i]);
}else {
System.out.println();
}
}
System.out.println("*******************************");
break;
case 3:
System.out.println("------->删除图书");
System.out.println("请输入图书名称");
String book=input.next();
boolean check1=false;//判断是否找到删除图书名称,false找不到
for(int b=0;name[b]!=null;b++) ouHms{
if(name[b].equals(book)) {
check1=true;
if(states[b]==1) {
//图书未借出,可以删除
System.out.println("删除《"+book+"》成功!");
int i=b;
for(;i states[i]=states[i+1]; name[i]=name[i+1]; dates[i]=dates[i+1]; counts[i]=counts[i+1]; }//将数组内容前移 break; }else { System.out.println("图书已借出,无法删除!"); break; } } } if(check1==false) { System.out.println("没有找到匹配信息!"); } System.out.println("*************************"); break; case 4: System.out.println("--------->借出图书"); System.out.println("请输入图书名称:"); String back=input.next(); boolean check2=false;//判断想要借出的书能否找到,false找不到,true找到 for(int b=0;name[b]!=null;b++) { if(name[b].equals(back)) {//书存在 check2=true; if(states[b]==1) { System.out.println("请输入借出日期(年-月-日):"); dates[b]=input.next(); while(judge(dates[b])==false) { System.out.println("日期非法,请重新输入"); dates[b]=input.next(); } states[b]=0;//将当前图书状态调成借出 counts[b]++;//当前图书借出次数加一 }else { System.out.println(name[b]+"已被借出!"); } break; } } if(check2==false) { System.out.println("没有找到匹配信息!"); } System.out.println("*********************************"); break; case 5: System.out.println("--------->归还图书"); System.out.println("请输入图书名称:"); String back1=input.next(); boolean check3=false;//判断归还的书能否找到,false找不到,true找到 for(int b=0;name[b]!=null;b++) { if(name[b].equals(back1)) {//书存在 check3=true; if(states[b]==0) {//如果书借出 System.out.println("请输入归还日期(年-月-日):"); String returnDate=inphttp://ut.next(); while(judge(returnDate)==false) { System.out.println("日期非法,请重新输入"); returnDate=input.next(); } System.out.println("归还《"+back1+"》成功!"); System.out.println("借出日期"+dates[b]); System.out.println("归还日期"+returnDate); int money=0; try { money=daysBetween(dates[b],returnDate); }catch(Exception e) { e.printStackTrace(); } System.out.println("该书没有被借出,无法执行操作"); } break; } } if(check3==false) { System.out.println("没有找到匹配信息!"); } System.out.println("*********************************"); break; case 6: flage=true; break; default: flage=true; break; } if(flage==true) { break; }else { System.out.println("输入0返回"); num=input.nextInt(); } }while(num==0); System.out.println("谢谢使用!"); } private static boolean judge(String str) { // TODO Auto-generated method stub SimpleDateFormat sd=new SimpleDateFormat("yy-MM-dd");//日期格式 try { sd.setLenient(false);//指定日期时间是否合格,true不合格,false合格 sd.parse(str); }catch(Exception e){ return false; } return true; } public static void printBook(String[] names,int[] sortBook,int number,int[] counts) { int[] another=counts.clone();//复制数组 int i=0; int max=another[0]; for(int p=0;p<=max;p++) { for(int q=0;q if(counts[q]==p) { sortBook[i++]=q; } } } System.out.println("序号\t"+"书名\t"+"借出次数"); for(int x=(number-1);x>=0;x--) {//借出次数排行榜 System.out.println((number-x)+"\t"+names[sortBook[x]]+"\t\t"+counts[sortBook[x]]); } System.out.println("******************"); } public static int daysBetween(String smdate,String bdate) throws Exception{ SimpleDateFormat sdf=new SimpleDateFormat("yy-MM-dd"); Calendar cal=Calendar.getInstance(); cal.setTime(sdf.parse(smdate)); long time1=cal.getTimeInMillis(); cal.setTime(sdf.parse(bdate))http://; long time2=cal.getTimeInMillis(); long between_days=(time2-time1)/(1000*3600*24); return Integer.parseInt(String.valueOf(between_days)); } }
states[i]=states[i+1];
name[i]=name[i+1];
dates[i]=dates[i+1];
counts[i]=counts[i+1];
}//将数组内容前移
break;
}else {
System.out.println("图书已借出,无法删除!");
break;
}
}
}
if(check1==false) {
System.out.println("没有找到匹配信息!");
}
System.out.println("*************************");
break;
case 4:
System.out.println("--------->借出图书");
System.out.println("请输入图书名称:");
String back=input.next();
boolean check2=false;//判断想要借出的书能否找到,false找不到,true找到
for(int b=0;name[b]!=null;b++) {
if(name[b].equals(back)) {//书存在
check2=true;
if(states[b]==1) {
System.out.println("请输入借出日期(年-月-日):");
dates[b]=input.next();
while(judge(dates[b])==false) {
System.out.println("日期非法,请重新输入");
dates[b]=input.next();
}
states[b]=0;//将当前图书状态调成借出
counts[b]++;//当前图书借出次数加一
}else {
System.out.println(name[b]+"已被借出!");
}
break;
}
}
if(check2==false) {
System.out.println("没有找到匹配信息!");
}
System.out.println("*********************************");
break;
case 5:
System.out.println("--------->归还图书");
System.out.println("请输入图书名称:");
String back1=input.next();
boolean check3=false;//判断归还的书能否找到,false找不到,true找到
for(int b=0;name[b]!=null;b++) {
if(name[b].equals(back1)) {//书存在
check3=true;
if(states[b]==0) {//如果书借出
System.out.println("请输入归还日期(年-月-日):");
String returnDate=inphttp://ut.next();
while(judge(returnDate)==false) {
System.out.println("日期非法,请重新输入");
returnDate=input.next();
}
System.out.println("归还《"+back1+"》成功!");
System.out.println("借出日期"+dates[b]);
System.out.println("归还日期"+returnDate);
int money=0;
try {
money=daysBetween(dates[b],returnDate);
}catch(Exception e) {
e.printStackTrace();
}
System.out.println("该书没有被借出,无法执行操作");
}
break;
}
}
if(check3==false) {
System.out.println("没有找到匹配信息!");
}
System.out.println("*********************************");
break;
case 6:
flage=true;
break;
default:
flage=true;
break;
}
if(flage==true) {
break;
}else {
System.out.println("输入0返回");
num=input.nextInt();
}
}while(num==0);
System.out.println("谢谢使用!");
}
private static boolean judge(String str) {
// TODO Auto-generated method stub
SimpleDateFormat sd=new SimpleDateFormat("yy-MM-dd");//日期格式
try {
sd.setLenient(false);//指定日期时间是否合格,true不合格,false合格
sd.parse(str);
}catch(Exception e){
return false;
}
return true;
}
public static void printBook(String[] names,int[] sortBook,int number,int[] counts) {
int[] another=counts.clone();//复制数组
int i=0;
int max=another[0];
for(int p=0;p<=max;p++) {
for(int q=0;q if(counts[q]==p) { sortBook[i++]=q; } } } System.out.println("序号\t"+"书名\t"+"借出次数"); for(int x=(number-1);x>=0;x--) {//借出次数排行榜 System.out.println((number-x)+"\t"+names[sortBook[x]]+"\t\t"+counts[sortBook[x]]); } System.out.println("******************"); } public static int daysBetween(String smdate,String bdate) throws Exception{ SimpleDateFormat sdf=new SimpleDateFormat("yy-MM-dd"); Calendar cal=Calendar.getInstance(); cal.setTime(sdf.parse(smdate)); long time1=cal.getTimeInMillis(); cal.setTime(sdf.parse(bdate))http://; long time2=cal.getTimeInMillis(); long between_days=(time2-time1)/(1000*3600*24); return Integer.parseInt(String.valueOf(between_days)); } }
if(counts[q]==p) {
sortBook[i++]=q;
}
}
}
System.out.println("序号\t"+"书名\t"+"借出次数");
for(int x=(number-1);x>=0;x--) {//借出次数排行榜
System.out.println((number-x)+"\t"+names[sortBook[x]]+"\t\t"+counts[sortBook[x]]);
}
System.out.println("******************");
}
public static int daysBetween(String smdate,String bdate) throws Exception{
SimpleDateFormat sdf=new SimpleDateFormat("yy-MM-dd");
Calendar cal=Calendar.getInstance();
cal.setTime(sdf.parse(smdate));
long time1=cal.getTimeInMillis();
cal.setTime(sdf.parse(bdate))http://;
long time2=cal.getTimeInMillis();
long between_days=(time2-time1)/(1000*3600*24);
return Integer.parseInt(String.valueOf(between_days));
}
}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~