• 【Java】不一样的图书管理系统


    目录

     src/Main.java

    src/book/Book.java

    src/book/BookList.java

    src/operation/AddOperation.java

    src/operation/BorrowOperation.java

    src/operation/DelOperation.java

    src/operation/DisplayOperation.java

    src/operation/ExitOperation.java

    src/operation/FindBook.java

    src/operation/FindOperation.java

    src/operation/IOperation.java

    src/operation/ReturnOperation.java

    src/user/AdminUser.java

    src/user/NormalUser.java

    src/user/User.java

    src/Main.java




     src/Main.java

    1. import book.BookList;
    2. import user.AdminUser;
    3. import user.NormalUser;
    4. import user.User;
    5. import java.util.Scanner;
    6. public class Main{
    7. public static User Login(){
    8. System.out.println("请输入你的姓名:");
    9. Scanner scanner = new Scanner(System.in);
    10. String name = scanner.nextLine();
    11. System.out.println("请输入你的身份:1-》管理员、2-》普通用户");
    12. int choice = scanner.nextInt();
    13. if(choice == 1){
    14. return new AdminUser(name);
    15. }
    16. else{
    17. return new NormalUser(name);
    18. }
    19. }
    20. public static void main(String[] args){
    21. //初始化书架
    22. BookList bookList = new BookList();
    23. User user = Login();//动态绑定
    24. while(true) {
    25. int choice = user.menu();
    26. user.doOperation(choice, bookList);
    27. }
    28. }
    29. }

    src/book/Book.java

    1. import book.BookList;
    2. import user.AdminUser;
    3. import user.NormalUser;
    4. import user.User;
    5. import java.util.Scanner;
    6. public class Main{
    7. public static User Login(){
    8. System.out.println("请输入你的姓名:");
    9. Scanner scanner = new Scanner(System.in);
    10. String name = scanner.nextLine();
    11. System.out.println("请输入你的身份:1-》管理员、2-》普通用户");
    12. int choice = scanner.nextInt();
    13. if(choice == 1){
    14. return new AdminUser(name);
    15. }
    16. else{
    17. return new NormalUser(name);
    18. }
    19. }
    20. public static void main(String[] args){
    21. //初始化书架
    22. BookList bookList = new BookList();
    23. User user = Login();//动态绑定
    24. while(true) {
    25. int choice = user.menu();
    26. user.doOperation(choice, bookList);
    27. }
    28. }
    29. }

    src/book/BookList.java

    1. package book;
    2. public class BookList {
    3. private Book[] books = new Book[10];
    4. private int usedSize;//记录当前有多少本书
    5. public BookList(){
    6. books[0] = new Book("三国演义","罗贯中",19,"小说" );
    7. books[1] = new Book("西游记","吴承恩",15,"小说" );
    8. books[2] = new Book("红楼梦","曹雪芹",25,"小说" );
    9. usedSize = 3;
    10. }
    11. /**
    12. * 得到书
    13. * @param pos 此时pos位置一定要合法
    14. * @return 这是一本书
    15. */
    16. public Book getBook(int pos){
    17. return books[pos];
    18. }
    19. /**
    20. * 放入图书
    21. * @param pos pos位置一定要合法
    22. * @param book 要放入的书
    23. */
    24. public void setBook(int pos,Book book){
    25. books[pos] = book;
    26. }
    27. /**
    28. * 实时获取当前书的个数
    29. * @return
    30. */
    31. public int getUsedSize(){
    32. return usedSize;
    33. }
    34. /**
    35. * 实时修改当前书架书的个数
    36. * @param size
    37. */
    38. public void setUsedSize(int size){
    39. usedSize = size;
    40. }
    41. }

    src/operation/AddOperation.java

    1. package operation;
    2. import book.BookList;
    3. import java.util.Scanner;
    4. import book.Book;
    5. public class AddOperation implements IOperation{
    6. @Override
    7. public void word(BookList bookList){
    8. System.out.println("新增图书!");
    9. Scanner scanner = new Scanner(System.in);
    10. System.out.println("请输入书名:");
    11. String name = scanner.nextLine();
    12. System.out.println("请输入作者:");
    13. String author = scanner.nextLine();
    14. System.out.println("请输入类型:");
    15. String type = scanner.nextLine();
    16. System.out.println("请输入价格:");
    17. int price = scanner.nextInt();
    18. Book book = new Book(name, author, price, type);
    19. bookList.setBook(bookList.getUsedSize(),book);
    20. bookList.setUsedSize(bookList.getUsedSize()+1);
    21. System.out.println("新增图书成功!");
    22. }
    23. }

    src/operation/BorrowOperation.java

    1. package operation;
    2. import book.BookList;
    3. import java.util.Scanner;
    4. public class BorrowOperation extends FindBook implements IOperation{
    5. @Override
    6. public void word(BookList bookList){
    7. System.out.println("借阅图书!");
    8. System.out.println("请输入你要借阅的图书名:");
    9. Scanner scanner = new Scanner(System.in);
    10. String name = scanner.nextLine();
    11. int ret = findBook(bookList, name);
    12. if(ret != -1){
    13. bookList.getBook(ret).setBorrowed(true);
    14. System.out.println("借阅成功!");
    15. }
    16. else{
    17. System.out.println("找不到此书!");
    18. }
    19. }
    20. }

    src/operation/DelOperation.java

    1. package operation;
    2. import book.BookList;
    3. import java.util.Scanner;
    4. public class DelOperation extends FindBook implements IOperation{
    5. @Override
    6. public void word(BookList bookList){
    7. System.out.println("删除图书!");
    8. System.out.println("请输入你要删除的图书:");
    9. Scanner scanner = new Scanner(System.in);
    10. String name = scanner.nextLine();
    11. int ret = findBook(bookList, name);
    12. if(ret != -1){
    13. for(; ret < bookList.getUsedSize() - 1; ret++){
    14. bookList.setBook(ret,bookList.getBook(ret + 1));
    15. }
    16. bookList.setBook(ret,null);
    17. bookList.setUsedSize(bookList.getUsedSize() - 1);
    18. System.out.println("删除成功!");
    19. }
    20. else{
    21. System.out.println("未找到图书!");
    22. }
    23. }
    24. }

    src/operation/DisplayOperation.java

    1. package operation;
    2. import book.BookList;
    3. public class DisplayOperation implements IOperation{
    4. @Override
    5. public void word(BookList bookList) {
    6. System.out.println("显示图书!");
    7. for(int i = 0; i < bookList.getUsedSize(); i++){
    8. System.out.println(bookList.getBook(i));
    9. }
    10. }
    11. }

    src/operation/ExitOperation.java

    1. package operation;
    2. import book.BookList;
    3. public class ExitOperation implements IOperation{
    4. @Override
    5. public void word(BookList bookList) {
    6. System.out.println("退出系统!");
    7. System.exit(0);
    8. }
    9. }

    src/operation/FindBook.java

    1. package operation;
    2. import book.BookList;
    3. public class FindBook {
    4. public int findBook(BookList bookList, String name){
    5. int i = 0;
    6. for(i = 0; i < bookList.getUsedSize(); i++){
    7. if(name.equals(bookList.getBook(i).getName())){
    8. return i;
    9. }
    10. }
    11. return -1;
    12. }
    13. }

    src/operation/FindOperation.java

    1. package operation;
    2. import java.util.Scanner;
    3. import book.BookList;
    4. import book.Book;
    5. public class FindOperation extends FindBook implements IOperation{
    6. @Override
    7. public void word(BookList bookList){
    8. System.out.println("查找图书!");
    9. System.out.println("请输入你要查找的图书:");
    10. Scanner scanner = new Scanner(System.in);
    11. String name = scanner.nextLine();
    12. int ret = findBook(bookList, name);
    13. if(ret != -1){
    14. System.out.println(bookList.getBook(ret));
    15. }
    16. else{
    17. System.out.println("未找到此书!");
    18. }
    19. }
    20. }
    21. /*name.equals(bookList.getBook(i))*/
    22. /*
    23. int size = bookList.getUsedSize();
    24. for(int i = 0; i < size; i++){
    25. if(name.equals(bookList.getBook(i).getName())){
    26. System.out.println("找到了这本书!");
    27. System.out.println(bookList.getBook(i));
    28. return;
    29. }
    30. }
    31. System.out.println("没找到这本书!");*/

    src/operation/IOperation.java

    1. package operation;
    2. import book.BookList;
    3. /**
    4. * 操作接口
    5. */
    6. public interface IOperation {
    7. void word(BookList bookList);
    8. }

    src/operation/ReturnOperation.java

    1. package operation;
    2. import book.BookList;
    3. import java.util.Scanner;
    4. public class ReturnOperation extends FindBook implements IOperation{
    5. @Override
    6. public void word(BookList bookList){
    7. System.out.println("归还图书!");
    8. System.out.println("请输入你归还的图书!");
    9. Scanner scanner = new Scanner(System.in);
    10. String name = scanner.nextLine();
    11. int ret = findBook(bookList, name);
    12. if(ret != -1){
    13. bookList.getBook(ret).setBorrowed(false);
    14. System.out.println("归还成功!");
    15. }
    16. else{
    17. System.out.println("没有找到此书!");
    18. }
    19. }
    20. }

    src/user/AdminUser.java

    1. package user;
    2. import operation.*;
    3. import java.util.Scanner;
    4. public class AdminUser extends User{
    5. public AdminUser(String name){
    6. super(name);
    7. this.iOperation = new IOperation[]{
    8. new ExitOperation(),
    9. new FindOperation(),
    10. new AddOperation(),
    11. new DelOperation(),
    12. new DisplayOperation()
    13. };
    14. }
    15. public int menu(){
    16. System.out.println("hello " + this.name + " 欢迎来到图书管理系统!");
    17. System.out.println("1.查找图书");
    18. System.out.println("2.新增图书");
    19. System.out.println("3.删除图书");
    20. System.out.println("4.显示图书");
    21. System.out.println("0.退出系统");
    22. System.out.println("请输入你的操作:");
    23. Scanner scanner = new Scanner(System.in);
    24. int choice = scanner.nextInt();
    25. return choice;
    26. }
    27. }

    src/user/NormalUser.java

    1. package user;
    2. import operation.*;
    3. import java.util.Scanner;
    4. public class NormalUser extends User{
    5. public NormalUser(String name){
    6. super(name);
    7. this.iOperation = new IOperation[]{
    8. new ExitOperation(),
    9. new FindOperation(),
    10. new BorrowOperation(),
    11. new ReturnOperation(),
    12. new DisplayOperation()
    13. };
    14. }
    15. public int menu(){
    16. System.out.println("hello" + this.name + "欢迎来到图书管理系统");
    17. System.out.println("1.查找图书");
    18. System.out.println("2.借阅图书");
    19. System.out.println("3.归还图书");
    20. System.out.println("4.显示图书");
    21. System.out.println("0.退出系统");
    22. System.out.println("请输入你的操作:");
    23. Scanner scanner = new Scanner(System.in);
    24. int choice = scanner.nextInt();
    25. return choice;
    26. }
    27. }

    src/user/User.java

    1. package user;
    2. import book.BookList;
    3. import operation.IOperation;
    4. public abstract class User {
    5. protected String name;//用户名
    6. protected IOperation[] iOperation;
    7. public User(String name){
    8. this.name = name;
    9. }
    10. public abstract int menu();
    11. public void doOperation(int choice, BookList bookList){
    12. this.iOperation[choice].word(bookList);
    13. }
    14. }

    src/Main.java

    1. import book.BookList;
    2. import user.AdminUser;
    3. import user.NormalUser;
    4. import user.User;
    5. import java.util.Scanner;
    6. public class Main{
    7. public static User Login(){
    8. System.out.println("请输入你的姓名:");
    9. Scanner scanner = new Scanner(System.in);
    10. String name = scanner.nextLine();
    11. System.out.println("请输入你的身份:1-》管理员、2-》普通用户");
    12. int choice = scanner.nextInt();
    13. if(choice == 1){
    14. return new AdminUser(name);
    15. }
    16. else{
    17. return new NormalUser(name);
    18. }
    19. }
    20. public static void main(String[] args){
    21. //初始化书架
    22. BookList bookList = new BookList();
    23. User user = Login();//动态绑定
    24. while(true) {
    25. int choice = user.menu();
    26. user.doOperation(choice, bookList);
    27. }
    28. }
    29. }

  • 相关阅读:
    FreeRTOS教程8 任务通知
    【Taro3踩坑日记】不存在全局配置文件:C:\Users\TYW\.taro-global-config\index.json
    Keil MDK的sct分散加载文件详解
    pyautogui 记录
    PLL的环路滤波器
    Linux使用Docker部署Nacos容器并结合内网穿透实现公网访问本地服务
    压测工具Jmeter介绍及使用
    【新知实验室】——腾讯云音视频TRTC体验
    记一次 .NET 某手术室行为信息系统 内存泄露分析
    Django里的模板变量
  • 原文地址:https://blog.csdn.net/CYK_byte/article/details/126000845