//图书类
package 对象和集合.图书管理系统; public class Book { // // 图书相关信息,最多只能存储6个图书信息 // String[] name = new String[6]; // 图书名称 // int[] state = new int[6]; // 借阅状态,0:可借阅 ;1:已借出 // int[] date = new int[6]; // 借出日期 // int[] count = new int[6]; // 借出次数 private String name; private int state; private int date; private int count; public Book() { } public Book(String name, int state, int date, int count) { this.name = name; this.state = state; this.date = date; this.count = count; } /** * 获取 * @return name */ public String getName() { return name; } /** * 设置 * @param name */ public void setName(String name) { this.name = name; } /** * 获取 * @return state */ public int getState() { return state; } /** * 设置 * @param state */ public void setState(int state) { this.state = state; } /** * 获取 * @return date */ public int getDate() { return date; } /** * 设置 * @param date */ public void setDate(int date) { this.date = date; } /** * 获取 * @return count */ public int getCount() { return count; } /** * 设置 * @param count */ public void setCount(int count) { this.count = count; } public String toString() { return "Book{name = " + name + ", state = " + state + ", date = " + date + ", count = " + count + "}"; } }
// 功能类
package 对象和集合.图书管理系统; import java.util.List; import java.util.Scanner; public class Test { /** * 归还图书 * @param books */ public static final Scanner SC = new Scanner(System.in); public static void returnBook(List<Book> books) { see(books); System.out.println("请输入归还的图书名"); String okName = SC.next(); for (int i = 0; i < books.size(); i++) { if ( books.get(i).getName().equals(okName) && books.get(i).getState() == 0) { //可以 System.out.println("图书还没有借出!!"); System.out.println("是否继续(y/n)"); String command = SC.next(); switch (command) { case "y": returnBook(books); default: return; } } else if ( books.get(i).getName().equals(okName) && books.get(i).getState() == 1) { books.get(i).setState(0); // 将借阅状态修改为可借阅 System.out.print("请输入归还日期:"); int redate = SC.nextInt(); while (redate < books.get(i).getDate() || redate > 31) { // 归还日期不能小于借出日期,也不能大于31 if (redate <books.get(i).getDate()) { System.out.println("归还日期不能小于借出日期,请重新输入:"); } else { System.out.println("一个月只有31天,请重新输入:"); } redate = SC.nextInt(); } books.get(i).setState(0); int change=redate-books.get(i).getDate(); System.out.println("付租金:"+change+"元"); see(books); return; } } } /** * 借书 * @param books */ public static void lendBook(List<Book> books) { //定义一个是否可以借 see(books); System.out.println("请输入你要借的图书名:"); String okName = SC.next(); for (int i = 0; i < books.size(); i++) { if (books.get(i).getName().equals(okName) && books.get(i).getState() == 0) { //可以借了 System.out.println("请输入你借书的日期(1-31)"); int date =SC.nextInt(); while (date<1||date>31){ System.out.println("输入错误请重新输入!"); date =SC.nextInt(); } books.get(i).setState(1); books.get(i).setDate(date); System.out.println(books.get(i).getDate()); books.get(i).setCount(books.get(i).getCount()+1); System.out.println("成功借"+"《"+books.get(i).getName()+"》"); return; } else if (books.get(i) != null && books.get(i).getName().equals(okName) &&books.get(i).getState() == 1) { System.out.println("图书还在借阅中!"); System.out.println("是否继续(y/n)"); String command = SC.next(); switch (command) { case "y": lendBook(books); default: return; } } } } /** * 删除数组 * @param books */ public static void deleteBook(List<Book> books) { //定义一个是否可以删除 see(books); System.out.println("请输入你要删除的图书名:"); String okName =SC.next(); for (int i = 0; i < books.size(); i++) { if (books.get(i).getName().equals(okName)&&books.get(i).getState()==0){ //可以删除了 books.remove(i); System.out.println("删除成功!"); break; }else if (books.get(i).getName().equals(okName)&&books.get(i).getState()==1){ System.out.println("图书还在借阅中不能删除!"); System.out.println("是否继续(y/n)"); String command=SC.next(); switch (command){ case "y": continue; default: return; } } } } /** * 查看数组 * @param books */ public static void see(List<Book> books) { System.out.println("---------查看图书-------------"); System.out.println("序号\t\t名称\t\t状态\t\t借出日期\t\t借出次数"); for (int i = 0; i < books.size(); i++) { String state=books.get(i).getState()==0?"可借阅":"已借出"; String date =books.get(i).getDate()+"日"; String count =books.get(i).getCount()+"次"; System.out.println((i+1)+"\t"+"《"+books.get(i).getName()+"》"+"\t"+state+"\t\t"+date+"\t\t"+count); } } /** * 新增图书 * @param sc */ public static void newBook(List<Book> books, Scanner sc) { System.out.println("----------------新曾图书---------------"); //遍历到空 for (int i = 0; i < books.size(); i++) { //可以插入了 System.out.println("请输入你要新增的书名:"); String name=SC.next(); for (int j = 0; j < books.size(); j++) { if (books.get(j).getName().equals(name)) { System.out.println("图书已存在!请重新输入!"); return; } Book book =new Book(name,0,0,0); books.add(book); System.out.println("添加成功"); return; } } } } // 主类
package 对象和集合.图书管理系统; import java.util.ArrayList; import java.util.List; public class BookSystem { public static void main(String[] args) { //定义数组存book对象 // // 图书相关信息,最多只能存储6个图书信息 // String[] name = new String[6]; // 图书名称 // int[] state = new int[6]; // 借阅状态,0:可借阅 ;1:已借出 // int[] date = new int[6]; // 借出日期 // int[] count = new int[6]; // 借出次数 Book book = new Book(); List<Book> books = new ArrayList<>(); books.add( new Book("金色花", 1, 1, 15)); books.add( new Book("白色花", 0, 0, 9)); books.add( new Book("红色花", 0, 0, 0)); //循环条件 int num = 1; 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.退出图书"); System.out.println("请选择:"); int choose = Test.SC.nextInt(); switch (choose) { case 1: //新增图书 Test.newBook(books, Test.SC); break; case 2: //查看图书 Test.see(books); break; case 3: //删除图书 Test.deleteBook(books); break; case 4: Test.lendBook(books); //借出图书 break; case 5: Test.returnBook(books); //归还图书 break; case 6: //退出系统 System.out.println("谢谢您的使用欢迎下次光临!!"); return; default: System.out.println("输入错误!"); } System.out.print("输入0返回"); num = Test.SC.nextInt(); while (num != 0) { num = Test.SC.nextInt(); System.out.println("输入错误重新输入!"); } } while (num == 0); } }