import java.util.*;
public class BOOKHOMEWORK {
public static void main(String[] args) {
ArrayList<Book> library = new ArrayList<>();
ArrayList<reader> Borrower = new ArrayList<>();
Scanner scanner = new Scanner(System.in);
int choice;
boolean running = true;
while (running) {
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("0.进入读者系统");
int Choice;
Choice = scanner.nextInt();
if (Choice <= 7 || Choice == 0) {
switch (Choice) {
case 1:
addBook(library);
break;
case 2:
addReader(Borrower);
break;
case 3:
sortingBook(library);
break;
case 4:
reviseBook(library);
break;
case 5:
deleteBook(library);
break;
case 6:
System.out.println("添加成功");
AddBorrower(Borrower);
break;
case 7:
System.out.println("添加成功");
AddBook(library);
break;
case 0:
System.out.println("您已成功进入读者系统");
boolean systemRunning = true;
while (systemRunning) {
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("0.退出系统");
choice = scanner.nextInt();
switch (choice) {
case 1:
findBook(library);
break;
case 2:
findBorrower(Borrower);
break;
case 3:
borrowingBook(Borrower, library);
break;
case 4:
returnBook(Borrower, library);
break;
case 5:
System.out.println("查阅成功");
CountBook(library);
break;
case 6:
System.out.println("查阅成功");
CountReader(Borrower);
break;
case 7:
systemRunning = false;
break;
case 0:
systemRunning = false;
running = false;
System.out.println("退出成功");
break;
default:
System.out.println("无效选择,请重新输入");
break;
}
}
break;
default:
System.out.println("无效选择,请重新输入");
}
} else {
System.out.println("输入错误");
}
}
}
public static void CountBook(ArrayList<Book> library) {
for (int i1 = 0; i1 < library.size() - 1; i1++) {
for (int j = 0; j < library.size() - 1 - i1; j++) {
Book book1 = library.get(j);
Book book2 = library.get(j + 1);
if (book1.getLendingtimes() < book2.getLendingtimes()) {
Collections.swap(library, j, j + 1);
}
}
}
System.out.println("书名\t\t作者\t\t出版社\t\t借阅次数");
for (int i = 0; i < library.size(); i++) {
Book b = library.get(i);
System.out.println(b.getBookName() + "\t" + b.getAuthorName() + "\t" +
b.getPress() + "\t\t" + b.getLendingtimes());
}
}
public static void CountReader(ArrayList<reader> Borrower) {
for (int i1 = 0; i1 < Borrower.size() - 1; i1++) {
for (int j = 0; j < Borrower.size() - 1 - i1; j++) {
reader r1 = Borrower.get(j);
reader r2 = Borrower.get(j + 1);
if (r1.getLendingtimes() < r2.getLendingtimes()) {
Collections.swap(Borrower, j, j + 1);
}
}
}
System.out.println("读者学号\t读者姓名\t借阅书籍数量\t借阅书籍次数");
for (int i = 0; i < Borrower.size(); i++) {
reader b = Borrower.get(i);
System.out.println(b.getId() + "\t\t" + b.getReaderName() + "\t\t\t"
+ b.getBorrowNumber() + "\t\t" + b.getBorrowfrequency()
);
}
}
public static void AddBook(ArrayList<Book> library) {
Book a = new Book(1, "天使", "鹿头", "天龙出版社", 666, 231, 230);
Book b = new Book(2, "天空", "林晓零", "破琼出版社", 555, 532, 530);
Book c = new Book(3, "亡灵", "林晓零", "破琼出版社", 333, 32, 30);
Book d = new Book(4, "阴剑", "鹿头", "天龙出版社", 41420, 1222, 1222);
Book e = new Book(5, "祁神传", "林晓零", "破琼出版社", 3252, 1777, 1777);
Book f = new Book(6, "囖季", "渣渣俊", "天龙出版社", 32132, 888, 222);
Book g = new Book(7, "西湖魅影", "渣渣俊", "天龙出版社", 9532, 888, 888);
Book h = new Book(8, "吉安之故", "胖胖", "破琼出版社", 920, 324, 321);
Book ci = new Book(9, "万变之踪", "胖胖", "王子出版社", 950, 521, 520);
Book aj = new Book(10, "长安小事", "胖胖", "王子出版社", 4200, 442, 441);
Book l = new Book(12, "寒光监狱", "渣渣俊", "天龙出版社", 9321, 1111, 999);
library.add(a);
library.add(b);
library.add(c);
library.add(d);
library.add(e);
library.add(f);
library.add(g);
library.add(h);
library.add(ci);
library.add(aj);
library.add(l);
}
public static void AddBorrower(ArrayList<reader> Borrower) {
reader a = new reader(20210121, "万飞", "工商管理2班", 22, 21);
reader b = new reader(20220311, "田博", "工商管理2班", 33, 31);
reader c = new reader(20220913, "展鹏", "计科1班", 5, 5);
reader d = new reader(20220314, "李二阳", "商务贸易3班", 421, 99);
reader e = new reader(20220319, "柳晓雅", "软件工程2班", 90, 90);
reader f = new reader(20220626, "刘语嫣", "英语4班", 222, 222);
reader g = new reader(20230912, "张天旗", "工商管理1班", 212, 210);
Borrower.add(a);
Borrower.add(b);
Borrower.add(c);
Borrower.add(d);
Borrower.add(e);
Borrower.add(f);
Borrower.add(g);
}
public static void addBook(ArrayList<Book> library) {
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("请输入存馆数量:");
int sbooknumber = sc.nextInt();
String sssbookname = sc.nextLine();
Book books = new Book();
books.setIsbn(sbookid);
books.setBookName(sbookname);
books.setAuthorName(sauthor);
books.setPress(spublisher);
books.setRemainBook(sbooknumber);
library.add(books);
System.out.println("添加图书成功");
}
public static void findBook(ArrayList<Book> library) {
System.out.println("1.根据书号查找");
System.out.println("2.根据作者名字查找");
System.out.println("3.根据出版社查找");
System.out.println("4.根据书名查找");
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
if (!(a == 1 || a == 2 || a == 3 || a == 4)) {
System.out.println("输入错误,请重新输入");
} else {
switch (a) {
case 1:
System.out.println("请输入书号:");
long name1;
name1 = sc.nextLong();
for (int i = 0; i < library.size(); i++) {
Book b = library.get(i);
if (name1 == b.getIsbn()) {
System.out.println("书号\t书名\t\t作者\t\t出版社\t\t剩余数量\t借出数量\t借出次数");
System.out.println(b.getIsbn() + "\t" +
b.getBookName() + "\t " +
b.getAuthorName() + "\t " + b.getPress()
+ "\t\t" + b.getRemainBook() + "\t\t\t" + b.getLoanAmount() + "\t" + b.getLendingtimes());
break;
}
}
break;
case 2:
System.out.println("请输入作者名字");
String name2;
name2 = sc.next();
for (int i = 0; i < library.size(); i++) {
Book b = library.get(i);
if (name2.equals(b.getAuthorName())) {
System.out.println("书号\t书名\t\t作者\t\t出版社\t\t剩余数量\t借出数量\t借出次数");
System.out.println(b.getIsbn() + "\t" +
b.getBookName() + "\t " +
b.getAuthorName() + "\t " + b.getPress()
+ "\t\t" + b.getRemainBook() + "\t\t\t" + b.getLoanAmount() + "\t" + b.getLendingtimes());
break;
}
}
break;
case 3:
System.out.println("请输入出版社");
String name3;
name3 = sc.next();
for (int i = 0; i < library.size(); i++) {
Book b = library.get(i);
if (name3.equals(b.getPress())) {
System.out.println("书号\t书名\t\t作者\t\t出版社\t\t剩余数量\t借出数量\t借出次数");
System.out.println(b.getIsbn() + "\t" +
b.getBookName() + "\t " +
b.getAuthorName() + "\t " + b.getPress()
+ "\t\t" + b.getRemainBook() + "\t\t\t" + b.getLoanAmount() + "\t" + b.getLendingtimes());
break;
}
}
System.out.println("未找到");
break;
case 4:
System.out.println("请输入书名");
String name4;
name4 = sc.next();
for (int i = 0; i < library.size(); i++) {
Book b = library.get(i);
if (name4.equals(b.getBookName()) ) {
System.out.println("书号\t书名\t\t作者\t\t出版社\t\t剩余数量\t借出数量\t借出次数");
System.out.println(b.getIsbn() + "\t" +
b.getBookName() + "\t " +
b.getAuthorName() + "\t " + b.getPress()
+ "\t\t" + b.getRemainBook() + "\t\t\t" + b.getLoanAmount() + "\t" + b.getLendingtimes());
break;
}
}
System.out.println("未找到");
break;
}
}
}
public static void addReader(ArrayList<reader> Borrower) {
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 smajor_class = sc.nextLine();
reader readers = new reader();
readers.setId(sreaderkid);
readers.setReaderName(sreadername);
readers.setMajor_Cclass(smajor_class);
Borrower.add(readers);
System.out.println("添加学生信息成功");
}
public static void findBorrower(ArrayList<reader> Borrower) {
System.out.println("1.根据学号查找");
System.out.println("2.根据姓名查找");
System.out.println("3.根据班级查找");
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
if (!(a == 1 || a == 2 || a == 3)) {
System.out.println("输入错误,请重新输写");
} else {
switch (a) {
case 1:
System.out.println("请输入学号:");
long name1;
name1 = scanner.nextLong();
for (int i = 0; i < Borrower.size(); i++) {
reader b = Borrower.get(i);
if (name1 == b.getId()) {
System.out.println("学号\t\t姓名\t\t专业班级\t借阅数量\t借阅次数\t借阅时间\t\t应还时间");
System.out.println(b.getId() + "\t\t" +
b.getReaderName() + "\t\t" +
b.getMajor_Cclass() + "\t\t" + b.getBorrowNumber()
+ "\t\t\t" + b.getBorrowfrequency() + "\t\t" + b.getBorrowtime() + "\t\t" + b.getDuetime());
break;
}
}
break;
case 2:
System.out.println("请输入姓名:");
Scanner scanner2 = new Scanner(System.in);
String name2;
name2 = scanner2.nextLine();
for (int i = 0; i < Borrower.size(); i++) {
reader b = Borrower.get(i);
if (name2.equals(b.getReaderName())) {
System.out.println("学号\t\t姓名\t\t专业班级\t\t借阅时间\t借阅数量\t归还时间");
System.out.println(b.getId() + "\t\t" +
b.getReaderName() + "\t\t" +
b.getMajor_Cclass() + "\t\t" + b.getBorrowtime()
+ "\t\t\t\t" + b.getBorrowNumber() + "\t\t" + b.getReturntime());
}
}
break;
case 3:
System.out.println("请输入专业班级:");
Scanner scanner3 = new Scanner(System.in);
String name3;
name3 = scanner3.nextLine();
for (int i = 0; i < Borrower.size(); i++) {
reader b = Borrower.get(i);
if (name3.equals(b.getMajor_Cclass())) {
System.out.println("学号\t\t姓名\t\t专业班级\t\t借阅时间\t借阅数量\t归还时间");
System.out.println(b.getId() + "\t\t" +
b.getReaderName() + "\t\t" +
b.getMajor_Cclass() + "\t\t" + b.getBorrowtime()
+ "\t\t\t\t" + b.getBorrowNumber() + "\t\t" + b.getReturntime());
}
}
break;
}
}
}
public static void borrowingBook(ArrayList<reader> Borrower, ArrayList<Book> library) {
Scanner sc = new Scanner(System.in);
boolean panduan1 = false;
boolean panduan2 = false;
int temp = 0;
int a = 0;
int c = 0;
System.out.println("请输入借阅者的学号(8位以内)");
long a1 = sc.nextLong();
System.out.println("请输入借阅的书号");
int a2 = sc.nextInt();
for (int i = 0; i < Borrower.size(); i++) {
reader b = Borrower.get(i);
if (a1 == b.getId()) {
panduan1 = true;
}
}
for (int j = 0; j < library.size(); j++) {
Book book1 = library.get(j);
if (a2 == book1.getIsbn()) {
panduan2 = true;
}
}
if (panduan1 == true && panduan2 == true) {
for (int i1 = 0; i1 < library.size(); i1++) {
Book book2 = library.get(i1);
if (a2 == book2.getIsbn() && book2.getRemainBook() >= 1) {
System.out.println("该图书剩余:" + book2.getRemainBook() + "本");
System.out.println("请选择您要借出的数量");
int n1 = sc.nextInt();
if (n1 <= book2.getRemainBook()) {
a++;
System.out.println("已成功借出");
Calendar calendar = Calendar.getInstance();
String year = String.valueOf(calendar.get(Calendar.YEAR));
String month = 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 month1 = String.valueOf(calendar.get(Calendar.MONTH) + 1);
String day1 = String.valueOf(calendar.get(Calendar.DATE));
book2.setRemainBook(book2.getRemainBook() - n1);
book2.setLendingtimes(book2.getLendingtimes() + a);
book2.setLoanAmount(book2.getLoanAmount() + n1);
for (int i = 0; i < Borrower.size(); i++) {
reader reader3 = Borrower.get(i);
if (a1 == reader3.getId()) {
c++;
reader3.setBorrowfrequency(reader3.getBorrowfrequency() + c);
reader3.setBorrowNumber(reader3.getBorrowNumber() + n1);
reader3.setBorrowtime(year + "年" + month + "月" + day + "日");
reader3.setDuetime(year1 + "年" + month1 + "月" + day1 + "日");
reader3.setBookName(book2.getBookName());
}
}
}
}
}
} else {
System.out.println("您输入的学号或书号有误");
}
}
public static void sortingBook(ArrayList<Book> library) {
for (int i1 = 0; i1 < library.size() - 1; i1++) {
for (int j = 0; j < library.size() - 1 - i1; j++) {
Book book1 = library.get(j);
Book book2 = library.get(j + 1);
if (book1.getIsbn() > book2.getIsbn()) {
Collections.swap(library, j, j + 1);
}
}
}
System.out.println("已完成排序");
for (int i = 0; i < library.size(); i++) {
Book b = library.get(i);
System.out.println(b.getIsbn() + "," +
b.getBookName() + "," + b.getAuthorName() +
"," + b.getPress() + "," + b.getRemainBook());
}
}
public static void reviseBook(ArrayList<Book> library) {
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 (library.size() == 0) {
System.out.println("您还没有添加书籍");
return;
} else {
for (int i = 0; i < library.size(); i++) {
Book book = library.get(i);
if (name1 == book.getIsbn()) {
int a1;
String a2;
System.out.println("请输入修改后的书号");
a1 = Integer.parseInt(scanner.nextLine());
book.setIsbn(a1);
System.out.println("请输入修改后的书名");
a2 = scanner.next();
book.setBookName(a2);
System.out.println("请输入修改后的作者");
a2 = scanner.next();
book.setAuthorName(a2);
System.out.println("请输入修改后的出版社");
a2 = scanner.next();
book.setPress(a2);
System.out.println("请输入修改后的数量");
a1 = Integer.parseInt(scanner.next());
book.setRemainBook(a1);
System.out.println("已完成图书信息的修改");
}
}
}
break;
case 2:
System.out.println("请输入书名:");
String name2;
name2 = scanner.nextLine();
if (library.size() == 0) {
System.out.println("您还没有添加书籍");
return;
}
for (int i = 0; i < library.size(); i++) {
Book book = library.get(i);
if (name2.equals(book.getBookName())) {
int a1;
String a2;
System.out.println("请输入修改后的书号");
a1 = Integer.parseInt(scanner.nextLine());
book.setIsbn(a1);
System.out.println("请输入修改后的书名");
a2 = scanner.next();
book.setBookName(a2);
System.out.println("请输入修改后的作者");
a2 = scanner.next();
book.setAuthorName(a2);
System.out.println("请输入修改后的出版社");
a2 = scanner.next();
book.setPress(a2);
System.out.println("请输入修改后的数量");
a1 = Integer.parseInt(scanner.nextLine());
book.setRemainBook(a1);
System.out.println("已完成图书信息的修改");
}
}
break;
}
}
public static void deleteBook(ArrayList<Book> library) {
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 (library.size() == 0) {
System.out.println("您还没有添加该书籍");
return;
} else {
for (int i = 0; i < library.size(); i++) {
Book book = library.get(i);
if (name1 == book.getIsbn()) {
library.remove(i);
}
}
}
System.out.println("删除书籍成功!");
break;
case 2:
System.out.println("请输入书名:");
String name2;
name2 = scanner.nextLine();
if (library.size() == 0) {
System.out.println("您还没有添加书籍");
return;
} else {
for (int i = 0; i < library.size(); i++) {
Book book = library.get(i);
if (name2.equals(book.getBookName())) {
library.remove(i);
}
}
}
System.out.println("删除书籍成功!");
break;
}
}
public static void returnBook(ArrayList<reader> Borrower, ArrayList<Book> library) {
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 < Borrower.size(); i++) {
reader reader1 = Borrower.get(i);
if (a1 == reader1.getId()) {
panduan1 = true;
}
}
for (int j = 0; j < library.size(); j++) {
Book book1 = library.get(j);
if (a2 == book1.getIsbn()) {
panduan2 = true;
}
}
if (panduan1 == true && panduan2 == true) {
for (int i = 0; i < library.size(); i++) {
Book book1 = library.get(i);
if (a2 == book1.getIsbn()) {
System.out.println("请输入您归还的数量");
int n;
n = scanner.nextInt();
book1.setRemainBook(book1.getRemainBook() + 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 < Borrower.size(); i1++) {
reader bookBorrow = Borrower.get(i1);
if (bookBorrow.getId() == a1) {
bookBorrow.setReturntime(year + "年" + month + "月" + date + "日");
bookBorrow.setBorrowNumber(bookBorrow.getBorrowNumber() - n);
System.out.println("图书归还成功!");
}
}
}
}
} else {
System.out.println("您的输入有误");
}
}
}
class Book {
private int isbn;
private String BookName;
private String AuthorName;
private String Press;
private int RemainBook;
private int LoanAmount;
private int lendingtimes;
public Book() {
super();
}
public Book(int isbn, String BookName, String AuthorName, String Press, int RemainBook) {
super();
this.AuthorName = AuthorName;
this.BookName = BookName;
this.isbn = isbn;
this.Press = Press;
this.RemainBook = RemainBook;
}
public Book(int isbn, String BookName, String AuthorName, String Press, int RemainBook, int LoanAmount, int lendingtimes) {
super();
this.AuthorName = AuthorName;
this.BookName = BookName;
this.isbn = isbn;
this.Press = Press;
this.RemainBook = RemainBook;
this.LoanAmount = LoanAmount;
this.lendingtimes = lendingtimes;
}
public int getLendingtimes() {
return lendingtimes;
}
public void setLendingtimes(int lendingtimes) {
this.lendingtimes = lendingtimes;
}
public int getLoanAmount() {
return LoanAmount;
}
public void setLoanAmount(int LoanAmount) {
this.LoanAmount = LoanAmount;
}
public int getIsbn() {
return isbn;
}
public String getAuthorName() {
return AuthorName;
}
public String getBookName() {
return BookName;
}
public String getPress() {
return Press;
}
public void setIsbn(int isbn) {
this.isbn = isbn;
}
public void setAuthorName(String AuthorName) {
this.AuthorName = AuthorName;
}
public void setBookName(String BookName) {
this.BookName = BookName;
}
public void setPress(String Press) {
this.Press = Press;
}
public void setRemainBook(int RemainBook) {
this.RemainBook = RemainBook;
}
public int getRemainBook() {
return RemainBook;
}
}
class reader extends Book {
private String ReaderName;
private long Id;
private String Borrowtime;
private String Duetime;
private String Returntime;
private String Major_Cclass;
private int BorrowNumber;
private int Borrowfrequency;
private int isbn;
private String BookName;
private String AuthorName;
private String Press;
public reader() {
super();
}
public reader(int Id, String ReaderName, String Major_Cclass, String Borrowtime, String Duetime, String Returntime, int BorrowNumber, int Borrowfrequency) {
super();
this.Id = Id;
this.ReaderName = ReaderName;
this.Major_Cclass = Major_Cclass;
this.Borrowtime = Borrowtime;
this.Duetime = Duetime;
this.Returntime = Returntime;
this.BorrowNumber = BorrowNumber;
this.Borrowfrequency = Borrowfrequency;
}
public reader(int Id, String ReaderName, String Major_Cclass, int BorrowNumber, int Borrowfrequency) {
this.Id = Id;
this.ReaderName = ReaderName;
this.Borrowfrequency = Borrowfrequency;
this.BorrowNumber = BorrowNumber;
this.Major_Cclass = Major_Cclass;
}
public int getBorrowfrequency() {
return Borrowfrequency;
}
public void setBorrowfrequency(int Borrowfrequency) {
this.Borrowfrequency = Borrowfrequency;
}
public int getBorrowNumber() {
return BorrowNumber;
}
public void setBorrowNumber(int BorrowNumber) {
this.BorrowNumber = BorrowNumber;
}
public String getBorrowtime() {
return Borrowtime;
}
public void setBorrowtime(String Borrowtime) {
this.Borrowtime = Borrowtime;
}
public String getDuetime() {
return Duetime;
}
public void setDuetime(String Duetime) {
this.Duetime = Duetime;
}
public String getReturntime() {
return Returntime;
}
public void setReturntime(String Returntime) {
this.Returntime = Returntime;
}
public String getMajor_Cclass() {
return Major_Cclass;
}
public void setMajor_Cclass(String Major_Cclass) {
this.Major_Cclass = Major_Cclass;
}
public long getId() {
return Id;
}
public void setId(long Id) {
this.Id = Id;
}
public String getReaderName() {
return ReaderName;
}
public void setReaderName(String ReaderName) {
this.ReaderName = ReaderName;
}
}