一:建立信息表
为图书管理人员编写一个图书管理系统,图书管理系统的设计主要是实现对图书的管理和相关操作,包括3个表:
图书信息表——存储图书的基本信息,包括书号、书名、作者、出版社、出版日期、存馆数量、定价等。
读者信息表——存储读者的基本信息,包括学号、姓名、学院、专业班级等。
图书借阅表——存储读者借书的相关信息,包括学号、姓名、书号、书名、借阅日期、应还日期、归还日期等。
新建类:
Book类:
package book;import javax.print.DocFlavor;
import java.io.Serializable;public class Book implements Serializable {private int bookid;private String bookname;private String author;private String publisher;//出版社private String publication_date;//出版日期private int booknumber=0;//数量private String price;//定价public void setBookid(int bookid) {this.bookid = bookid;}public void setBookname(String bookname) {this.bookname = bookname;}public void setAuthor(String author) {this.author = author;}public void setPublisher(String publisher) {this.publisher = publisher;}public void setPublication_date(String publication_date) {this.publication_date = publication_date;}public void setBooknumber(int booknumber) {this.booknumber = booknumber;}public void setPrice(String price) {this.price = price;}public String getBookname(){return bookname;}public int getBookid() {return bookid;}public int getBooknumber() {return booknumber;}public String getPrice() {return price;}public String getAuthor() {return author;}public String getPublication_date() {return publication_date;}public String getPublisher() {return publisher;}@Overridepublic String toString() {return "book{" +"bookid=" + bookid +", bookname='" + bookname + '\'' +", author='" + author + '\'' +", publisher='" + publisher + '\'' +", publication_date='" + publication_date + '\'' +", booknumber=" + booknumber +", price=" + price +'}';}public Book(){this.bookid=bookid;this.bookname=bookname;this.author=author;this.publisher=publisher;this.publication_date=publication_date;this.booknumber=booknumber;this.price=price;}}
读者类:
package book;import javax.print.DocFlavor;
import java.io.Serializable;public class Reader implements Serializable {private long manid;//学号private String manname;//姓名private String college;//学院private String major_class;//专业public long getManid() {return manid;}public void setManid(long manid) {this.manid = manid;}public String getManname() {return manname;}public void setManname(String manname) {this.manname = manname;}public String getCollege() {return college;}public void setCollege(String college) {this.college = college;}public String getMajor_class() {return major_class;}public void setMajor_class(String major_class) {this.major_class = major_class;}@Overridepublic String toString() {return "reader{" +"manid=" + manid +", manname='" + manname + '\'' +", college='" + college + '\'' +", major_class='" + major_class + '\'' +'}';}public Reader(){this.manid=manid;this.manname=manname;this.college=college;this.major_class=major_class;}
}
借阅者类:
package book;import java.io.Serializable;public class BookBorrow implements Serializable {private long borrowerid=0;//学号private String borrowername=null;//姓名private int bookid=0;//书号private String bookname=null;//书名private String borrowtime=null;//借阅日期private String duedate=null;//应还日期private String returntime=null;//归还日期// @Override
// public String toString() {
// return "BookBorrow{" +
// "borrowerid=" + borrowerid +
// ", borrowername='" + borrowername + '\'' +
// ", bookid=" + bookid +
// ", bookname='" + bookname + '\'' +
// ", borrowtime='" + borrowtime + '\'' +
// ", duedate='" + duedate + '\'' +
// ", returntime='" + returntime + '\'' +
// '}';
// }public long getBorrowerid() {return borrowerid;}public void setBorrowerid(long borrowerid) {this.borrowerid = borrowerid;}public String getBorrowername() {return borrowername;}public void setBorrowername(String borrowername) {this.borrowername = borrowername;}public int getBookid() {return bookid;}public void setBookid(int bookid) {this.bookid = bookid;}public String getBookname() {return bookname;}public void setBookname(String bookname) {this.bookname = bookname;}public String getBorrowtime() {return borrowtime;}public void setBorrowtime(String borrowtime) {this.borrowtime = borrowtime;}public String getDuedate() {return duedate;}public void setDuedate(String duedate) {this.duedate = duedate;}public String getReturntime() {return returntime;}public void setReturntime(String returntime) {this.returntime = returntime;}public BookBorrow() {this.borrowerid = borrowerid;this.borrowername = borrowername;this.bookid = bookid;this.bookname = bookname;this.borrowtime = borrowtime;this.duedate = duedate;this.returntime = returntime;}
}
二,用菜单选择方式完成下列功能:
1.图书信息添加功能:包括书号、书名、作者、出版社、存馆数量、定价等。
2.图书信息查询:分别按书名,按作者名,按出版社等进行查询。
3.图书信息排序:按书号、书名等按升序进行排序。
4.图书信息的修改、删除:按书号或书名进行图书的修改和删除。
5.读者信息添加功能:包括学号、姓名、学院、专业班级等。
6.读者信息查询:分别按学号、姓名、专业班级等进行查询。
7.读者信息排序:按学号、学院等按升序进行排序。
8.读者信息的修改、删除:按学号+姓名进行读者信息的修改和删除。
9.图书借阅:输入学号+书号,如果该书图书信息表中的存馆数量大于0,则可以借出,借出相应数量后修改图书信息表中的存馆数量,在图书借阅表添加该同学的借阅。
10.图书归还:输入学号+书号,修改图书信息表中的存馆数量,在图书借阅表中记录该同学的归还时间。
11.图书借阅查询:分别按学号、书名、学院等进行查询。
------------------------------------------------------------------------------------------------------------------------------
先看一下菜单选择:
public static void main(String[] args) {//创建集合对象,用于存储数据ArrayList<Book> array = new ArrayList<Book>();ArrayList<Reader> arr = new ArrayList<Reader>();ArrayList<BookBorrow> ar = new ArrayList<BookBorrow>();//循环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("8.读者信息排序");System.out.println("9.读者信息的修改");System.out.println("10.读者信息的删除");System.out.println("11.图书借阅");System.out.println("12.图书归还");System.out.println("13.图书借阅查询");System.out.println("14.退出");System.out.println("请输入对应序号:");Scanner sc = new Scanner(System.in);String line = sc.nextLine();//用switch语句完成操作的选择switch (line) {case "1":System.out.println("");addBook(array);break;case "2":System.out.println("");findBook(array);break;case "3":System.out.println("");sortingBook(array);break;case "4":System.out.println("");reviseBook(array);break;case "5":System.out.println("");deleteBook(array);break;case "6":System.out.println("");addReader(arr);break;case "7":System.out.println("");findReader(arr);break;case "8":System.out.println("");sortingReader(arr);break;case "9":System.out.println("");reviseReader(arr);break;case "10":System.out.println("");deleteReader(arr);break;case "11":System.out.println("");borrowingBook(ar, arr, array);break;case "12":System.out.println("");returnBook(ar, arr, array);break;case "13":System.out.println("");findBookborrow(ar,arr,array);break;case "14":System.out.println("谢谢使用");System.exit(0);//JVM退出default:System.out.println("请输入正确的序号");}}}
这里创建三个集合对象来接那三个类,由于不知道一个类中会有几个对象,所以用ArrayList方便接收。
1.图书信息添加功能:包括书号、书名、作者、出版社、存馆数量、定价等。
//定义添加图书方法public static void addBook(ArrayList<Book> array) {//键盘录入信息Scanner sc = new Scanner(System.in);System.out.println("请输入书号:");int sbookid = sc.nextInt();System.out.println("请输入书名:");String ssbookname = sc.nextLine();//不多加一个输入会把该输入的忽略掉String sbookname = sc.nextLine();System.out.println("请输入作者:");String sauthor = sc.nextLine();System.out.println("请输入出版社:");String spublisher = sc.nextLine();System.out.println("请输入出版日期");String spublish_dater = sc.nextLine();System.out.println("请输入存馆数量:");int sbooknumber = sc.nextInt();System.out.println("请输入定价:");String sssbookname = sc.nextLine();//不多加一个输入会把该输入的忽略掉String sprice = sc.nextLine();//创建图书对象,将键盘录入的数据赋值给图书对象的成员变量Book books = new Book();books.setBookid(sbookid);books.setBookname(sbookname);books.setAuthor(sauthor);books.setPublisher(spublisher);books.setPublication_date(spublish_dater);books.setBooknumber(sbooknumber);books.setPrice(sprice);//将图书对象添加到集合中array.add(books);//给出提示System.out.println("添加图书成功");}
2.图书信息查询:分别按书名,按作者名,按出版社等进行查询。
//定义查看图书信息public static void findBook(ArrayList<Book> array) {System.out.println("1.根据书名查找");System.out.println("2.根据作者名查找");System.out.println("3.根据出版社查找");Scanner scanner = new Scanner(System.in);//将整型数据Integer转换为基本数据类型intint a = Integer.parseInt(scanner.nextLine());if (!(a == 1 || a == 2 || a == 3)) {System.out.println("输入错误,请重新输写");} else {switch (a) {case 1:System.out.println("请输入书名:");String name1;name1 = scanner.next();if (array.size() == 0) {System.out.println("您还没有添加书籍");//结束方法return;} else {System.out.println("书号\t书名\t\t作者\t出版社\t\t数量\t价格");for (int i = 0; i < array.size(); i++) {Book b = array.get(i);if (name1.equals(b.getBookname())) {System.out.println(b.getBookid() + "," +b.getBookname() + "," + b.getAuthor() +"," + b.getPublisher() + "," + b.getBooknumber() +"," + b.getPrice());}}}break;case 2:System.out.println("请输入作者名:");String name2;name2 = scanner.next();if (array.size() == 0) {System.out.println("您还没有添加书籍");//结束方法return;} else {System.out.println("书号\t书名\t\t作者\t出版社\t\t数量\t价格");for (int i = 0; i < array.size(); i++) {Book b = array.get(i);if (name2.equals(b.getAuthor())) {System.out.println(b.getBookid() + "," +b.getBookname() + "," + b.getAuthor() +"," + b.getPublisher() + "," + b.getBooknumber() +"," + b.getPrice());}}}break;case 3:System.out.println("请输入出版社:");String name3;name3 = scanner.next();if (array.size() == 0) {System.out.println("您还没有添加书籍");//结束方法return;} else {System.out.println("书号\t书名\t\t作者\t出版社\t\t数量\t价格");for (int i = 0; i < array.size(); i++) {Book b = array.get(i);if (name3.equals(b.getPublisher())) {System.out.println(b.getBookid() + "," +b.getBookname() + "," + b.getAuthor() +"," + b.getPublisher() + "," + b.getBooknumber() +"," + b.getPrice());}}}break;}}}
3.图书信息排序:按书号、书名等按升序进行排序。
//定义图书排序(冒泡排序)public static void sortingBook(ArrayList<Book> array) {
// int[] arr = new int[100];
// for (int i = 0; i < array.size(); i++) {
// Book b = array.get(i);
// arr[i] = b.getBookid();
// }//冒泡for (int i1 = 0; i1 < array.size() - 1; i1++) {for (int j = 0; j < array.size() - 1 - i1; j++) {Book book1 = array.get(j);Book book2 = array.get(j+1);if (book1.getBookid()>book2.getBookid()) {
// int temp=arr[j];
// arr[j]=arr[j+1];
// arr[j+1]=temp;Collections.swap(array, j, j + 1);}}}//书号分别是98765时排序正确(56789),但书号分别是342时排序结果却是324// 答案:if语句括号里哪两个对象比较,就应该哪两个对象互换,而不是比较这两个去换那两个System.out.println("已完成排序");//查看排序后的图书for (int i = 0; i < array.size(); i++) {Book b = array.get(i);System.out.println(b.getBookid() + "," +b.getBookname() + "," + b.getAuthor() +"," + b.getPublisher() +","+b.getPublication_date()+ "," + b.getBooknumber() +"," + b.getPrice());}}
4.图书信息的修改、删除:按书号或书名进行图书的修改和删除。
//定义图书信息的修改public static void reviseBook(ArrayList<Book> array) {System.out.println("1.根据书号修改");System.out.println("2.根据书名修改");Scanner scanner = new Scanner(System.in);int a = Integer.parseInt(scanner.nextLine());if (!(a == 1 || a == 2)) {System.out.println("输入错误,请重新输写");}switch (a) {case 1:System.out.println("请输入书号:");int name1;name1 = Integer.parseInt(scanner.nextLine());if (array.size() == 0) {System.out.println("您还没有添加书籍");//结束方法return;} else {for (int i = 0; i < array.size(); i++) {Book book = array.get(i);if (name1 == book.getBookid()) {int a1;String a2;System.out.println("请输入修改后的书号");a1 = Integer.parseInt(scanner.nextLine());book.setBookid(a1);System.out.println("请输入修改后的书名");a2 = scanner.next();book.setBookname(a2);System.out.println("请输入修改后的作者");a2 = scanner.next();book.setAuthor(a2);System.out.println("请输入修改后的出版社");a2 = scanner.next();book.setPublisher(a2);System.out.println("请输入修改后的出版日期");a2 = scanner.next();book.setPublication_date(a2);System.out.println("请输入修改后的数量");a1 = Integer.parseInt(scanner.next());book.setBooknumber(a1);System.out.println("请输入修改后的定价");a2 = scanner.next();book.setPrice(a2);System.out.println("已完成图书信息的修改");}}}break;case 2:System.out.println("请输入书名:");String name2;name2 = scanner.nextLine();if (array.size() == 0) {System.out.println("您还没有添加书籍");//结束方法return;}for (int i = 0; i < array.size(); i++) {Book book = array.get(i);if (name2.equals(book.getBookname())) {int a1;String a2;System.out.println("请输入修改后的书号");a1 = Integer.parseInt(scanner.nextLine());book.setBookid(a1);System.out.println("请输入修改后的书名");a2 = scanner.next();book.setBookname(a2);System.out.println("请输入修改后的作者");a2 = scanner.next();book.setAuthor(a2);System.out.println("请输入修改后的出版社");a2 = scanner.next();book.setPublisher(a2);System.out.println("请输入修改后的出版日期");a2 = scanner.next();book.setPublication_date(a2);System.out.println("请输入修改后的数量");a1 = Integer.parseInt(scanner.nextLine());book.setBooknumber(a1);System.out.println("请输入修改后的定价");a2 = scanner.next();book.setPrice(a2);System.out.println("已完成图书信息的修改");}}break;}}//定义图书信息的删除public static void deleteBook(ArrayList<Book> array) {System.out.println("你想通过哪种方式删除图书");System.out.println("1.书号");System.out.println("2.书名");Scanner scanner = new Scanner(System.in);int a = Integer.parseInt(scanner.nextLine());if (!(a == 1 || a == 2)) {System.out.println("输入错误,请重新输写");}switch (a) {case 1:System.out.println("请输入书号:");int name1;name1 = Integer.parseInt(scanner.nextLine());if (array.size() == 0) {System.out.println("您还没有添加书籍");//结束方法return;} else {for (int i = 0; i < array.size(); i++) {Book book = array.get(i);if (name1 == book.getBookid()) {array.remove(i);}}}System.out.println("删除书籍成功!");break;case 2:System.out.println("请输入书名:");String name2;name2 = scanner.nextLine();if (array.size() == 0) {System.out.println("您还没有添加书籍");//结束方法return;} else {for (int i = 0; i < array.size(); i++) {Book book = array.get(i);if (name2.equals(book.getBookname())) {array.remove(i);}}}System.out.println("删除书籍成功!");break;}}
5.读者信息添加功能:包括学号、姓名、学院、专业班级等。
//定义添加读者信息public static void addReader(ArrayList<Reader> arr) {Scanner sc = new Scanner(System.in);System.out.println("请输入学号:");long sreaderkid = Integer.parseInt(sc.nextLine());System.out.println("请输入姓名:");String sreadername = sc.nextLine();System.out.println("请输入学院:");String scollege = sc.nextLine();System.out.println("请输入专业班级:");String smajor_class = sc.nextLine();//创建读者对象,将键盘录入的数据赋值给读者对象的成员变量Reader readers = new Reader();readers.setManid(sreaderkid);readers.setManname(sreadername);readers.setCollege(scollege);readers.setMajor_class(smajor_class);arr.add(readers);System.out.println("添加学生信息成功");}
6.读者信息查询:分别按学号、姓名、专业班级等进行查询。
//定义查看读者信息public static void findReader(ArrayList<Reader> arr) {System.out.println("1.根据学号查找");System.out.println("2.根据姓名查找");System.out.println("3.根据专业班级查找");Scanner scanner = new Scanner(System.in);//将整型数据Integer转换为基本数据类型intint a = Integer.parseInt(scanner.nextLine());if (!(a == 1 || a == 2 || a == 3)) {System.out.println("输入错误,请重新输写");} else {switch (a) {case 1:System.out.println("请输入学号:");long name1;name1 = Long.parseLong(scanner.next());if (arr.size() == 0) {System.out.println("您还没有添加读者");//结束方法return;} else {System.out.println("学号\t\t姓名\t学院\t\t\t\t专业班级");for (int i = 0; i < arr.size(); i++) {Reader b = arr.get(i);if (name1 == b.getManid()) {System.out.println(b.getManid() + "," +b.getManname() + "," + b.getCollege() +"," + b.getMajor_class());}}}break;case 2:System.out.println("请输入姓名:");String name2;name2 = scanner.next();if (arr.size() == 0) {System.out.println("您还没有添加读者");//结束方法return;} else {System.out.println("学号\t\t姓名\t学院\t\t\t\t专业班级");for (int i = 0; i < arr.size(); i++) {Reader b = arr.get(i);if (name2.equals(b.getManname())) {System.out.println(b.getManid() + "," +b.getManname() + "," + b.getCollege() +"," + b.getMajor_class());}}}break;case 3:System.out.println("请输入专业班级:");String name3;name3 = scanner.next();if (arr.size() == 0) {System.out.println("您还没有添加读者");//结束方法return;} else {System.out.println("学号\t\t姓名\t学院\t\t\t\t专业班级");for (int i = 0; i < arr.size(); i++) {Reader b = arr.get(i);if (name3.equals(b.getMajor_class())) {System.out.println(b.getManid() + "," +b.getManname() + "," + b.getCollege() +"," + b.getMajor_class());}}}break;}}}
7.读者信息排序:按学号、学院等按升序进行排序。
//定义冒泡排序public static void sortingReader(ArrayList<Reader> arr) {
// long[] ar = new long[100];
// for (int i = 0; i < arr.size(); i++) {
// Reader r = arr.get(i);
// ar[i] = Math.toIntExact(r.getManid());
// }//冒泡for (int i = 0; i < arr.size() - 1; i++) {for (int j = 0; j < arr.size() - 1 - i; j++) {Reader reader1=arr.get(j);Reader reader2=arr.get(j+1);if (reader1.getManid()>reader2.getManid()) {Collections.swap(arr, j, j + 1);}}}System.out.println("已完成排序");//查看排序后的图书System.out.println("学号\t\t姓名 学院\t专业班级");for (int i = 0; i < arr.size(); i++) {Reader r = arr.get(i);System.out.println(r.getManid() + "," +r.getManname() + "," + r.getCollege() +"," + r.getMajor_class());}}
(因为学院是String类型的,所以这里只按学号进行升序排序)
8.读者信息的修改、删除:按学号+姓名进行读者信息的修改和删除。
//定义读者信息修改public static void reviseReader(ArrayList<Reader> arr) {Scanner scanner = new Scanner(System.in);System.out.println("请输入学号");long a = Integer.parseInt(scanner.nextLine());System.out.println("请输入姓名");String b = scanner.next();if (arr.size() == 0) {System.out.println("您还没有添加读者");//结束方法return;} else {for (int i = 0; i < arr.size(); i++) {Reader r = arr.get(i);if (a == r.getManid() && b.equals(r.getManname())) {long a1;String a2;System.out.println("请输入修改后的学号");a1 = scanner.nextLong();r.setManid(a1);System.out.println("请输入修改后的姓名");a2 = scanner.next();r.setManname(a2);System.out.println("请输入修改后的学院");a2 = scanner.next();r.setCollege(a2);System.out.println("请输入修改后的专业班级");a2 = scanner.next();r.setMajor_class(a2);System.out.println("已完成读者信息的修改");}}}}//定义读者信息删除public static void deleteReader(ArrayList<Reader> arr) {Scanner sc = new Scanner(System.in);System.out.println("请输入该读者的学号");long a1 = sc.nextLong();System.out.println("请输入该读者的姓名");String a2 = sc.next();if (arr.size() == 0) {System.out.println("您还没有添加读者");//结束方法return;} else {for (int i = 0; i < arr.size(); i++) {Reader reader = arr.get(i);if (a1 == reader.getManid() && a2.equals(reader.getManname())) {arr.remove(i);}}System.out.println("已删除该读者");}}
9.图书借阅:输入学号+书号,如果该书图书信息表中的存馆数量大于0,则可以借出,借出相应数量后修改图书信息表中的存馆数量,在图书借阅表添加该同学的借阅。
//定义图书借阅public static void borrowingBook(ArrayList<BookBorrow> ar, ArrayList<Reader> arr, ArrayList<Book> array) {Scanner sc = new Scanner(System.in);boolean panduan1 = false;boolean panduan2 = false;Reader reader3 = null;//确定读者类对象System.out.println("请输入借阅者的学号(8位以内)");long a1 = sc.nextLong();System.out.println("请输入借阅的书号");int a2 = sc.nextInt();//判断输入的学号是否存在for (int i = 0; i < arr.size(); i++) {Reader reader1 = arr.get(i);if (a1 == reader1.getManid()) {panduan1 = true;}}//判断书号是否存在for (int j = 0; j < array.size(); j++) {Book book1 = array.get(j);if (a2 == book1.getBookid()) {panduan2 = true;}}if (panduan1 == true && panduan2 == true) {for (int i1 = 0; i1 < array.size(); i1++) {Book book2 = array.get(i1);//确定图书类对象if (a2 == book2.getBookid() && book2.getBooknumber() >= 1) {for (int i2 = 0; i2 < arr.size(); i2++) {Reader reader2 = arr.get(i2);if (a1 == reader2.getManid()) {reader3 = reader2;}}System.out.println("该图书剩余:" + book2.getBooknumber() + "本");System.out.println("请选择您要借出的数量");int n1 = sc.nextInt();if (n1 <= book2.getBooknumber()) {System.out.println("已成功借出");//获取日历类对象Calendar calendar = Calendar.getInstance();String year = String.valueOf(calendar.get(Calendar.YEAR));//校正后String nonth = String.valueOf(calendar.get(Calendar.MONTH) + 1);String day = String.valueOf(calendar.get(Calendar.DATE));calendar.add(Calendar.MONTH, 3);String year1 = String.valueOf(calendar.get(Calendar.YEAR));//校正后String nonth1 = String.valueOf(calendar.get(Calendar.MONTH) + 1);String day1 = String.valueOf(calendar.get(Calendar.DATE));//修改图书数量book2.setBooknumber(book2.getBooknumber() - n1);//读者reader3,图书book2BookBorrow bookBorrow = new BookBorrow();bookBorrow.setBookid(book2.getBookid());bookBorrow.setBookname(book2.getBookname());bookBorrow.setBorrowerid(reader3.getManid());bookBorrow.setBorrowername(reader3.getManname());bookBorrow.setBorrowtime(year + "年" + nonth + "月" + day + "日");bookBorrow.setDuedate(year1 + "年" + nonth1 + "月" + day1 + "日");//将图书借阅者对象添加到集合中ar.add(bookBorrow);}}}} else {System.out.println("您输入的学号或书号有误");}}
10.图书归还:输入学号+书号,修改图书信息表中的存馆数量,在图书借阅表中记录该同学的归还时间。
//定义图书归还public static void returnBook(ArrayList<BookBorrow> ar, ArrayList<Reader> arr, ArrayList<Book> array) {Scanner scanner = new Scanner(System.in);System.out.println("请输入您的学号");long a1 = scanner.nextLong();System.out.println("请输入书号");int a2 = scanner.nextInt();boolean panduan1 = false;boolean panduan2 = false;//判断输入的学号是否存在for (int i = 0; i < arr.size(); i++) {Reader reader1 = arr.get(i);if (a1 == reader1.getManid()) {panduan1 = true;}}//判断书号是否存在for (int j = 0; j < array.size(); j++) {Book book1 = array.get(j);if (a2 == book1.getBookid()) {panduan2 = true;}}if (panduan1 == true && panduan2 == true) {for (int i = 0; i < array.size(); i++) {Book book1=array.get(i);if (a2==book1.getBookid()){System.out.println("请输入您归还的数量");int n;n= scanner.nextInt();book1.setBooknumber(book1.getBooknumber()+n);//不知道如何引用借出的数量Calendar c=Calendar.getInstance();String year= String.valueOf(c.get(Calendar.YEAR));String month= String.valueOf(c.get(Calendar.MONTH)+1);String date= String.valueOf(c.get(Calendar.DATE));//找借阅者(学号加书号)for (int i1 = 0; i1 < ar.size(); i1++) {BookBorrow bookBorrow=ar.get(i1);if (bookBorrow.getBookid()==a2&&bookBorrow.getBorrowerid()==a1){bookBorrow.setReturntime(year+"年"+month+"月"+date+"日");System.out.println("图书归还成功!");}}}}} else {System.out.println("您的输入有误");}}
11.图书借阅查询:分别按学号、书名、学院等进行查询。
//定义图书借阅查询public static void findBookborrow(ArrayList<BookBorrow> ar, ArrayList<Reader> arr, ArrayList<Book> array){if (ar.size()==0){System.out.println("您还没有添加借阅者信息");return;}System.out.println("请选择您要查询的方式");System.out.println("1.按学号");System.out.println("2,桉书名");System.out.println("3,按学院");Scanner scanner=new Scanner(System.in);int n1= scanner.nextInt();switch(n1){case 1:System.out.println("请输入您想查询的学号");long mid= scanner.nextLong();System.out.println("学号 姓名 书号 书名 借阅日期 应还日期 归还日期");for (int i = 0; i < ar.size(); i++) {BookBorrow bookBorrow=ar.get(i);if (bookBorrow.getBorrowerid()==mid){System.out.println(bookBorrow.getBorrowerid()+","+bookBorrow.getBorrowername()+","+bookBorrow.getBookid()+","+bookBorrow.getBookname()+","+bookBorrow.getBorrowtime()+","+bookBorrow.getDuedate()+","+bookBorrow.getReturntime());}}break;case 2:System.out.println("请输入您想查询的书名");String bname= scanner.nextLine();System.out.println("学号 姓名 书号 书名 借阅日期 应还日期 归还日期");for (int i = 0; i < ar.size(); i++) {BookBorrow bookBorrow=ar.get(i);if (bname.equals(bookBorrow.getBookname())){System.out.println(bookBorrow.getBorrowerid()+","+bookBorrow.getBorrowername()+","+bookBorrow.getBookid()+","+bookBorrow.getBookname()+","+bookBorrow.getBorrowtime()+","+bookBorrow.getDuedate()+","+bookBorrow.getReturntime());}}break;case 3:System.out.println("请输入您想查询的学院");String mcollege= scanner.nextLine();System.out.println("学号 姓名 书号 书名 借阅日期 应还日期 归还日期");for (int i = 0; i < arr.size(); i++) {Reader reader=arr.get(i);if (mcollege.equals(reader.getCollege())){for (int i1 = 0; i1 < ar.size(); i1++) {BookBorrow bookBorrow=ar.get(i1);if (reader.getManid()== bookBorrow.getBookid()){System.out.println(bookBorrow.getBorrowerid()+","+bookBorrow.getBorrowername()+","+bookBorrow.getBookid()+","+bookBorrow.getBookname()+","+bookBorrow.getBorrowtime()+","+bookBorrow.getDuedate()+","+bookBorrow.getReturntime());}else {System.out.println("没有在借阅者信息表中找到此人!");}}}else {System.out.println("读者中无人在此学院!");}}break;default:System.out.println("您的输入有误!");}}
总结:
这个做的比较早,一开始的思路是等学完I/O流再做,后来发现用ArrayList也能实现,所以就用它磕磕绊绊的做出来了,目前还在学习中,希望以后能越做越快,越做越好,加油!