首先是定义三个实体类
package book2;
/书类
public class Book {
private int bId;//Book ID
//private String bCode;//
private String bName;//
private String bState=“have”;//1、已借出 2、未借出
private int bnumber=0;//书借出次数
public int getbId() {
return bId;
}
public void setbId(int bId) {
this.bId = bId;
}
public String getbName() {
return bName;
}
public void setbName(String bName) {
this.bName = bName;
}
public String getbState() {
return bState;
}
public void setbState(String bState) {
this.bState = bState;
}
public int getBnumber() {
return bnumber;
}
public void setBnumber(int bnumber) {
this.bnumber = bnumber;
}
public String toString() {
return “Book [bId=” + bId + “, bName=” + bName + “, bState=” + bState + “, bnumber=” + bnumber + “]”;
}
}
//借书卡类
package book2;
public class Card {
private int cId=0;//卡的ID
private String cName;//账号
private String cPassword;//密码
public int getcId() {
return cId;
}
public void setcId(int cId) {
this.cId = cId;
}
public String getcName() {
return cName;
}
public void setcName(String cName) {
this.cName = cName;
}
public String getcPassword() {
return cPassword;
}
public void setcPassword(String cPassword) {
this.cPassword = cPassword;
}
}
//记录类
package book2;
import java.util.*;
public class Record {
private int mId;
private int bookcode;//书的编号
private int cardCode; //卡的编号
private String recordType;//借还类型
private Date timeDate;// 时间
public int getmId() {
return mId;
}
public void setmId(int mId) {
this.mId = mId;
}
public int getBookcode() {
return bookcode;
}
public void setBookcode(int bookcode) {
this.bookcode = bookcode;
}
public int getCardCode() {
return cardCode;
}
public void setCardCode(int cardCode) {
this.cardCode = cardCode;
}
public String getRecordType() {
return recordType;
}
public void setRecordType(String recordType) {
this.recordType = recordType;
}
public Date getTimeDate() {
return timeDate;
}
public void setTimeDate(Date timeDate) {
this.timeDate = timeDate;
}
}
//下面进行操作
package book2;
import java.awt.List;
import java.util.*;
public class test {
Scanner sca=new Scanner(System.in);
ArrayList <> listcard=new ArrayList<>();//前面尖括号内填Book
ArrayList<> listbook=new ArrayList<>();//前面尖括号内填Card
ArrayList<> listrecord=new ArrayList<>();//前面尖括号内填Record
int count=0;
public static void main(String[] args) {
test t=new test();
t.start();
}
public void start() {
while (true) {
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-显示图书列表(按照借出次序排序)----");
System.out.println(“请输入要进行的功能”);
int f = Integer.parseInt(sca.nextLine());
switch (f) {
case 1:
card();
break;
case 2:
come();
break;
case 3:
borrow();
break;
case 4:
back();
// for(int i=0;i<listrecord.size();i++){
// System.out.println(listrecord.get(i).toString());
// }
break;
case 5:
findbook();
break;
case 6:
findcard();
break;
case 7:
show();
break;
}
System.out.println(“退出总系统输入no,否则请按其他”);
if (“no”.equals(sca.nextLine())) {
break;
}
}
}
public int isExit(){
//判重
int a=Integer.parseInt(sca.nextLine());
for(int i=0;i<listbook.size();i++){
if(a==listbook.get(i).getbId()){
System.out.println("该编号已经有了");
a=isExit();
}
}
return a;
}
public void card(){//办卡
while(true){
Card c=new Card();
count++;
c.setcId(c.getcId()+count);
System.out.println("你的卡号为"+c.getcId());
System.out.println("请输入卡的账号");
c.setcName(sca.nextLine());
System.out.println("请输入卡的密码");
c.setcPassword(sca.nextLine());
listcard.add(c);
System.out.println("退出办卡系统输入no,否则请按其他");
if("no".equals(sca.nextLine())){
break;
}
}
}
public void come() {// 图书馆进书
while (true) {
System.out.println("请输入要进书的书名");
String s = sca.nextLine();
System.out.println("请输入要进该种书的数量");
int a = Integer.parseInt(sca.nextLine());
System.out.println("请给每本书进行唯一编号");
for (int i = 0; i < a; i++) {
System.out.println("请输入第" + (i + 1) + "本" + s + "的编号值");
Book b = new Book();
b.setbId(isExit());
b.setbName(s);
listbook.add(b);
}
System.out.println("退出进书系统输入no,否则请按其他");
if("no".equals(sca.nextLine())){
break;
}
}
}
public void borrow(){//借书功能1:验证账号密码
System.out.println("请输入你的账号");
int flag=1;
String s=sca.nextLine();
for(int i=0;i<listcard.size();i++){
if(s.equals(listcard.get(i).getcName())){
System.out.println("请输入你的密码");
String s1=sca.nextLine();
for(Card c:listcard){
if(c.getcPassword().equals(s1)){
flag=2;
action(c.getcId());
}
}
}
}
if(flag==1){
System.out.println("账号或者密码输入错误");
}
}
public void action(int CID){//借书功能2:执行借的操作
for(int i=0;i<listbook.size();i++){
System.out.println(listbook.get(i).getbName()+" "+listbook.get(i).getbId());
}
System.out.println("请输入要借的书的Id值");
int a=Integer.parseInt(sca.nextLine());
for(int i=0;i<listbook.size();i++){
if(a==listbook.get(i).getbId()){
if(listbook.get(i).getbState().equals("nohave")){
System.out.println("此书已经被借走,没在图书馆");
break;
}else{
Record r=new Record();
r.setBookcode(a);//书的编号
r.setCardCode(CID);//卡的编号
r.setRecordType("借书");
Date date=new Date();//
r.setTimeDate(date);
listrecord.add(r);
listbook.get(i).setbState("nohave");
listbook.get(i).setBnumber(listbook.get(i).getBnumber()+1);
break;
}
}
}
}
public void back(){//还书功能1:验证账号密码
System.out.println("请输入你的账号");
int flag=1;int a=0;
String s=sca.nextLine();
for(int i=0;i<listcard.size();i++){
if(s.equals(listcard.get(i).getcName())){
System.out.println("请输入你的密码");
String s1=sca.nextLine();
for(Card c:listcard){
if(c.getcPassword().equals(s1)){
flag=2;
action1(c.getcId());
}
}
}
}
if(flag==1){
System.out.println("账号或者密码输入错误");
}
}
public void action1(int CID){//还书功能2:进行还的操作
int flag1=1,flag2=1;
System.out.println("请输入你要还的书的ID值");
int a=Integer.parseInt(sca.nextLine());
for(int i=0;i<listbook.size();i++){
if(a==listbook.get(i).getbId()){
flag2=2;
for(int j=listrecord.size()-1;j>=0;j--){
if(a==listrecord.get(j).getBookcode()&&listrecord.get(j).getRecordType().equals("借书")){
flag1=2;
Record r=new Record();
r.setBookcode(a);//书的编号
r.setCardCode(CID);//卡的编号
r.setRecordType("还书");
Date date=new Date();//
r.setTimeDate(date);
listrecord.add(r);
for(int k=0;k<listbook.size();k++){
if(a==listbook.get(k).getbId()){
listbook.get(k).setbState("have");
break;
}
}
break;
}
}
if(flag1==1){
System.out.println("您并没有借过这本书");
}
break;
}
}
if(flag2==1){
System.out.println("您输入的ID值错误");
}
}
public void findbook(){
System.out.println("请输入你要查询的书的ID");
int a=Integer.parseInt(sca.nextLine());
for(int i=0;i<listbook.size();i++){
if(a==listbook.get(i).getbId()){
System.out.println("改书共被借出"+listbook.get(i).getBnumber()+"次");
return;
}
}
System.out.println("您输入的ID值有误");
}
public void findcard(){//查询借书卡记录1:验证账号密码
System.out.println("请输入你的账号");
int flag=1;
String s=sca.nextLine();
for(int i=0;i<listcard.size();i++){
if(s.equals(listcard.get(i).getcName())){
System.out.println("请输入你的密码");
String s1=sca.nextLine();
for(Card c:listcard){
if(c.getcPassword().equals(s1)){
flag=2;
action3(c.getcId());
}
}
}
}
if(flag==1){
System.out.println("账号或者密码输入错误");
}
}
public void action3(int CID){
for(int i=0;i<listrecord.size();i++){
if(CID==listrecord.get(i).getCardCode()){
System.out.println("卡号为"+listrecord.get(i).getCardCode()+"书ID为"+
listrecord.get(i).getBookcode()+"操作为"+listrecord.get(i).getRecordType()
+"时间为"+listrecord.get(i).getTimeDate() );
}
}
}
public void show(){//按照次数查询
for(int i=0;i<listbook.size()-1;i++){
for(int j=0;j<listbook.size()-1-i;j++){
if(listbook.get(j).getBnumber()<listbook.get(j+1).getBnumber()){
Book b=listbook.get(j);
listbook.set(j, listbook.get(j+1));
listbook.set(j+1,b);
}
}
}
for(int i=0;i<listbook.size();i++){
System.out.println(listbook.get(i).toString());
}
}
}