上节课我们把管理员和书籍容器搞定了,这节课我们就来测试下他们的功能,顺便把管理员登录做一下。
Login:
package com.bookmanagement; import java.util.Scanner; public class Login { public static void main(String[] args) { printMenu(); int choose = 0; boolean flag = true; //Scannner类对象可以从控制套获取通过键盘输入的数据 //这个scanner对象只需要构造一次即可多次调用 Scanner scanner = new Scanner(System.in); //选择登录用户的类型 do { choose = scanner.nextInt(); switch (choose) { case 1: flag = false; Admin admin = loginAdmin(); AdminSystem managerSystem = toManager(admin); break; case 2: flag = false; break; default: System.out.print("请输入1或2: "); break; } }while (flag); } private static Admin loginAdmin() { Scanner scanner = new Scanner(System.in); System.out.print("请输入管理员用户名: "); String username = scanner.next(); System.out.print("请输入管理员密码: "); String password = scanner.next(); Admin admin = Admin.getInstance(); if (admin.getUsername().equals(username) && admin.getPassword().equals(password)) { System.out.println("登录成功"); return admin; } else { System.out.println("登录失败"); loginAdmin(); } return null; } public static void printMenu() { System.out.println("请选择管理员或用户登录:"); System.out.println("1.管理员"); System.out.println("2.用户"); System.out.print("请选择: "); } public static AdminSystem toManager(Admin admin) { return new AdminSystem(admin); } }
AdminSystem:
package com.bookmanagement; import java.util.Collection; import java.util.Scanner; public class AdminSystem { private BookContainer bookContainer = BookContainer.getInstance(); private Admin admin = null; public AdminSystem(Admin admin) { this.admin = admin; printAdminSystemMenu(); chooseOption(); } private void printAdminSystemMenu() { System.out.println("1.录入书籍信息"); System.out.println("2.删除书籍信息"); System.out.println("3.修改书籍信息"); System.out.println("4.查询书籍信息"); } private void chooseOption() { int choose = 0; boolean flag = true; Scanner scanner = new Scanner(System.in); do { System.out.print("请输入您想要使用的功能: "); choose = scanner.nextInt(); switch (choose) { case 1: toAddBook(); break; case 2: toDeleteBook(); break; case 3: toUpdateBook(); break; case 4: toFindBook(); break; default: break; } }while (flag); } public void toAddBook() { Scanner scanner = new Scanner(System.in); String bookId = null; do { System.out.print("请输入书籍的编号: "); bookId = scanner.next(); }while (bookContainer.isBookExist(bookId)); //这里要判断系统里是否已经存在相同的书籍id //这里就用书籍容器完成,毕竟是系统内部操作 System.out.print("请输入书名: "); String name = scanner.next(); System.out.print("请输入作者: "); String author = scanner.next(); System.out.println("请输入出版日期: "); String publishDate = scanner.next(); Book book = new Book(bookId,name,author,publishDate); //添加书籍由管理员来完成 admin.insertBook(book); System.out.println("添加完成"); printAdminSystemMenu(); chooseOption(); } public void toDeleteBook() { Scanner scanner = new Scanner(System.in); System.out.println("请输入要删除的书籍的id"); String bookId = scanner.next(); if (bookContainer.isBookExist(bookId)) { admin.delete(bookId); System.out.println("删除完成"); } else { System.out.println("未找到该书籍"); } System.out.println("是否继续删除书籍(Y/N): "); String choose = scanner.next(); if (choose.equals("y") || choose.equals("Y")) toDeleteBook(); else { printAdminSystemMenu(); chooseOption(); } } public void toUpdateBook() { Scanner scanner = new Scanner(System.in); System.out.println("请输入要删除的书籍的id"); String bookId = scanner.next(); if (bookContainer.isBookExist(bookId)) { System.out.print("请输入书名: "); String name = scanner.next(); System.out.print("请输入作者: "); String author = scanner.next(); System.out.println("请输入出版日期: "); String publishDate = scanner.next(); Book book = new Book(bookId,name,author,publishDate); admin.uodateBookInfo(book); } else { System.out.println("未找到该书籍"); } printAdminSystemMenu(); chooseOption(); } public void toFindBook() { System.out.println("请选择:"); System.out.println("1.查看所有书籍"); System.out.println("2.根据id查找书籍"); int choose; Scanner scanner = new Scanner(System.in); boolean flag = true; do { choose = scanner.nextInt(); switch (choose) { case 1: flag = false; Collection<Book> allBooks = admin.findAllBooks(); for (Book book : allBooks) { System.out.println(book); } System.out.println("输入任意字符串返回主菜单..."); scanner.next(); printAdminSystemMenu(); chooseOption(); break; case 2: flag = false; System.out.print("请输入要查找书籍的编号: "); String bookId = scanner.next(); Book book = admin.findBookById(bookId); if (book == null) System.out.println("书籍不存在"); else System.out.println(book); System.out.println("输入任意字符串返回主菜单..."); scanner.next(); printAdminSystemMenu(); chooseOption(); break; default: break; } }while (flag); } }
BookContainer.isBookExist:
public boolean isBookExist(String bookId) { return books.containsKey(bookId); }
不美观的地方大家可以自行修改