Eclipse利用Arraylist集合实现图书馆管理功能(借书,还书,查询等)

首先是定义三个实体类
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());
	}
}

}

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的Java图书馆借书还书的程序: ``` import java.util.ArrayList; import java.util.Scanner; public class Library { private static ArrayList<String> books = new ArrayList<String>(); private static ArrayList<String> borrowedBooks = new ArrayList<String>(); public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int choice = 0; while (choice != 3) { System.out.println("请选择操作:"); System.out.println("1. 借书"); System.out.println("2. 还书"); System.out.println("3. 退出"); choice = scanner.nextInt(); switch (choice) { case 1: borrowBook(); break; case 2: returnBook(); break; case 3: System.out.println("谢谢使用!"); break; default: System.out.println("无效的选择,请重新选择!"); break; } } } private static void borrowBook() { Scanner scanner = new Scanner(System.in); System.out.println("请输入要借的书名:"); String book = scanner.nextLine(); if (books.contains(book)) { books.remove(book); borrowedBooks.add(book); System.out.println("借书成功!"); } else { System.out.println("抱歉,该书已被借出或不存在!"); } } private static void returnBook() { Scanner scanner = new Scanner(System.in); System.out.println("请输入要还的书名:"); String book = scanner.nextLine(); if (borrowedBooks.contains(book)) { borrowedBooks.remove(book); books.add(book); System.out.println("还书成功!"); } else { System.out.println("抱歉,您没有借过该书或书名有误!"); } } } ``` 这个程序使用了两个ArrayList来存储图书馆的书和已经被借出的书。用户可以选择借书还书,程序会根据用户的选择进行相应的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值