图书管理系统

简介: 图书管理系统
import book.BookList;
  2 import user.AdminUser;
  3 import user.NormalUser;
  4 import user.User;
  5 
  6 import java.util.Scanner;
  7 
  8 /**
  9  * Created with IntelliJ IDEA.
  10   * Description:
  11   * User: WHY
  12   * Date: 2022-06-24
  13   * Time: 19:40
  14   */
  15  public class Main {
  16      public static User login(){
  17          System.out.println("请输入您的姓名");
  18          Scanner  scanner=new Scanner(System.in);
  19          String name= scanner.nextLine();
  20  
  21          System.out.println("请输入您的身份:1:-》管理员,0:—》普通用户");
  22          int choice=scanner.nextInt();
  23          if(choice==1){
  24          return new AdminUser(name);
  25      }
  26          else{
  27              return new NormalUser(name);
  28          }
  29          }
  30      public static void main(String[] args) {
  31              //开始整合
  32          BookList  booklist=new BookList();//准备图书
  33  
  34          //登录
  35          User user=login();//相当于向上转型
  36          user.menu();
  37          int choice = user.menu();//动态绑定
  38          user.doOperation(choice,booklist);
  39      }
  40  }
 +74 2022.6.24/2022.6.24/src/book/Book.java 0 → 100644 
  1 package book;
  2 
  3 /**
  4  * Created with IntelliJ IDEA.
  5  * Description:
  6  * User: WHY
  7  * Date: 2022-06-24
  8  * Time: 18:00
  9  */
  10  public class Book {
  11      private String name;
  12      private String author;
  13      private int price;
  14      private  String type;
  15      private boolean isBorrowed;
  16  
  17      public Book(String name, String author, int price, String type) {
  18          this.name = name;
  19          this.author = author;
  20          this.price = price;
  21          this.type = type;
  22      }
  23  
  24      public String getName() {
  25          return name;
  26      }
  27  
  28      public void setName(String name) {
  29          this.name = name;
  30      }
  31  
  32      public String getAuthor() {
  33          return author;
  34      }
  35  
  36      public void setAuthor(String author) {
  37          this.author = author;
  38      }
  39  
  40      public int getPrice() {
  41          return price;
  42      }
  43  
  44      public void setPrice(int price) {
  45          this.price = price;
  46      }
  47  
  48      public String getType() {
  49          return type;
  50      }
  51  
  52      public void setType(String type) {
  53          this.type = type;
  54      }
  55  
  56      public boolean isBorrowed() {
  57          return isBorrowed;
  58      }
  59  
  60      public void setBorrowed(boolean borrowed) {
  61          isBorrowed = borrowed;
  62      }
  63  
  64      @Override
  65      public String toString() {
  66          return "Book{" +
  67                  "name='" + name + '\'' +
  68                  ", author='" + author + '\'' +
  69                  ", price=" + price +
  70                  ", type='" + type + '\'' +
  71                  ", isBorrowed=" + isBorrowed +
  72                  '}';
  73      }
  74  }
 +49 2022.6.24/2022.6.24/src/book/BookList.java 0 → 100644 
  1 package book;
  2 
  3 /**
  4  * Created with IntelliJ IDEA.
  5  * Description:
  6  * User: WHY
  7  * Date: 2022-06-24
  8  * Time: 18:01
  9  */
  10  public class BookList {
  11  
  12      private Book[]  books=new Book[20];
  13      private int usedSize;//实时记录当前books这个数组当中有多少本书
  14  
  15  
  16      public BookList(){
  17           books[0]=new Book("白夜行","东野圭吾",60,"悬疑推理");
  18           books[1]=new Book("嫌疑人X的献身","东野圭吾",80,"悬疑推理");
  19           books[2]=new Book("彷徨之刃","东野圭吾",120,"悬疑推理");
  20           usedSize=3;
  21  
  22      }
  23      //根据书的位置,拿到这本书
  24      public Book getBook(int pos){
  25          return books[pos];
  26      }
  27      /*
  28      * 新增书,POS是要放的位置
  29      * book是你要放的书
  30      * */
  31      public void setBooks( int pos , Book  book){
  32          books[pos]=book;
  33      }
  34      /*
  35      *
  36      * 实时获取当前的书的个数
  37      *
  38      * */
  39      public int getUsedSize(){
  40          return usedSize;
  41      }
  42      /*
  43      * 实时修改当前书架上的书的个数
  44      *
  45      * */
  46      public  void   setUsedSize(int size){
  47          usedSize=size;
  48      }
  49  }
 +17 2022.6.24/2022.6.24/src/operation/AddOperation.java 0 → 100644 
  1 package operation;
  2 
  3 import book.BookList;
  4 
  5 /**
  6  * Created with IntelliJ IDEA.
  7  * Description:
  8  * User: WHY
  9  * Date: 2022-06-24
  10   * Time: 18:54
  11   */
  12  public class AddOperation  implements IOperation {
  13      @Override
  14      public void work(BookList booklist) {
  15          System.out.println("新增图书");
  16      }
  17  }
 +17 2022.6.24/2022.6.24/src/operation/BorrowOperation.java 0 → 100644 
  1 package operation;
  2 
  3 import book.BookList;
  4 
  5 /**
  6  * Created with IntelliJ IDEA.
  7  * Description:
  8  * User: WHY
  9  * Date: 2022-06-24
  10   * Time: 19:01
  11   */
  12  public class BorrowOperation implements IOperation{
  13      @Override
  14      public void work(BookList booklist) {
  15          System.out.println("借阅图书");
  16      }
  17  }
 +17 2022.6.24/2022.6.24/src/operation/DelOperation.java 0 → 100644 
  1 package operation;
  2 
  3 import book.BookList;
  4 
  5 /**
  6  * Created with IntelliJ IDEA.
  7  * Description:
  8  * User: WHY
  9  * Date: 2022-06-24
  10   * Time: 18:57
  11   */
  12  public class DelOperation implements IOperation{
  13      @Override
  14      public void work(BookList booklist) {
  15          System.out.println("删除图书");
  16      }
  17  }
 +17 2022.6.24/2022.6.24/src/operation/ExitOperation.java 0 → 100644 
  1 package operation;
  2 
  3 import book.BookList;
  4 
  5 /**
  6  * Created with IntelliJ IDEA.
  7  * Description:
  8  * User: WHY
  9  * Date: 2022-06-24
  10   * Time: 19:00
  11   */
  12  public class ExitOperation implements  IOperation{
  13      @Override
  14      public void work(BookList booklist) {
  15          System.out.println("退出系统");
  16      }
  17  }
 +17 2022.6.24/2022.6.24/src/operation/FindOperation.java 0 → 100644 
  1 package operation;
  2 
  3 import book.BookList;
  4 
  5 /**
  6  * Created with IntelliJ IDEA.
  7  * Description:
  8  * User: WHY
  9  * Date: 2022-06-24
  10   * Time: 18:56
  11   */
  12  public class FindOperation implements IOperation {
  13      @Override
  14      public void work(BookList booklist) {
  15          System.out.println("查找图书");
  16      }
  17  }
 +15 2022.6.24/2022.6.24/src/operation/IOperation.java 0 → 100644 
  1 package operation;
  2 
  3 import book.Book;
  4 import book.BookList;
  5 
  6 /**
  7  * Created with IntelliJ IDEA.
  8  * Description:
  9  * User: WHY
  10   * Date: 2022-06-24
  11   * Time: 18:48
  12   */
  13  public interface IOperation {
  14      void work(BookList  booklist);
  15  }
 +19 2022.6.24/2022.6.24/src/operation/ReturnOperation.java 0 → 100644 
  1 package operation;
  2 
  3 import book.BookList;
  4 
  5 /**
  6  * Created with IntelliJ IDEA.
  7  * Description:
  8  * User: WHY
  9  * Date: 2022-06-24
  10   * Time: 19:02
  11   */
  12  public class ReturnOperation implements IOperation{
  13      ;
  14  
  15      @Override
  16      public void work(BookList booklist) {
  17          System.out.println("归还图书");
  18      }
  19  }
 +17 2022.6.24/2022.6.24/src/operation/ShowOperation.java 0 → 100644 
  1 package operation;
  2 
  3 import book.BookList;
  4 
  5 /**
  6  * Created with IntelliJ IDEA.
  7  * Description:
  8  * User: WHY
  9  * Date: 2022-06-24
  10   * Time: 18:59
  11   */
  12  public class ShowOperation implements IOperation{
  13      @Override
  14      public void work(BookList booklist) {
  15          System.out.println("显示图书");
  16      }
  17  }
 +43 2022.6.24/2022.6.24/src/user/AdminUser.java 0 → 100644 
  1 package user;
  2 
  3 import operation.*;
  4 
  5 import java.util.Scanner;
  6 
  7 /**
  8  * Created with IntelliJ IDEA.
  9  * Description:
  10   * User: WHY
  11   * Date: 2022-06-24
  12   * Time: 19:17
  13   */
  14  public class AdminUser extends User{
  15      public AdminUser(String name) {
  16          super(name);
  17          this.iOperations = new IOperation[]{
  18                  new ExitOperation(),
  19                  new FindOperation(),
  20                  new AddOperation(),
  21                  new DelOperation(),
  22                  new ShowOperation(),
  23  
  24  
  25  
  26          };
  27      }
  28      public int  menu(){
  29          System.out.println("hello"+this.name+"欢迎您来到图书小练习!🎉");
  30          System.out.println("1.查找图书!");
  31          System.out.println("2.新增图书!");
  32          System.out.println("3.删除图书!");
  33          System.out.println("4.显示图书!");
  34          System.out.println("0.退出系统!");
  35          System.out.println("请输入您的操作😁");
  36          Scanner scanner=new Scanner(System.in);
  37          int choice = scanner.nextInt();
  38          return  choice;
  39  
  40  
  41      }
  42  
  43  }
 +40 2022.6.24/2022.6.24/src/user/NormalUser.java 0 → 100644 
  1 package user;
  2 
  3 import operation.*;
  4 
  5 import java.util.Scanner;
  6 
  7 /**
  8  * Created with IntelliJ IDEA.
  9  * Description:
  10   * User: WHY
  11   * Date: 2022-06-24
  12   * Time: 19:16
  13   */
  14  public class NormalUser extends User {
  15      public NormalUser(String name) {
  16          super(name);
  17          this.iOperations = new IOperation[]{
  18                  new ExitOperation(),
  19                  new FindOperation(),
  20                  new BorrowOperation(),
  21                  new ReturnOperation(),
  22  
  23  
  24  
  25          };
  26      }
  27      public int  menu(){
  28          System.out.println("hello"+this.name+"欢迎您来到图书小练习!🎉");
  29          System.out.println("1.查找图书!");
  30          System.out.println("2.借阅图书!");
  31          System.out.println("3.归还图书!");
  32          System.out.println("0.退出系统!");
  33          System.out.println("请输入您的操作😁");
  34          Scanner  scanner=new Scanner(System.in);
  35          int choice = scanner.nextInt();
  36          return  choice;
  37  
  38  
  39      }
  40  }
 +27 2022.6.24/2022.6.24/src/user/User.java 0 → 100644 
  1 package user;
  2 
  3 import book.BookList;
  4 import operation.IOperation;
  5 
  6 /**
  7  * Created with IntelliJ IDEA.
  8  * Description:
  9  * User: WHY
  10   * Date: 2022-06-24
  11   * Time: 19:06
  12   */
  13  abstract    public class User {
  14      protected String name;//用户名
  15  
  16      public User(String name) {
  17          this.name = name;
  18      }
  19      public abstract int  menu();
  20      protected IOperation[] iOperations  ;//
  21      public void doOperation(int choice, BookList  booklist){
  22          this.iOperations[choice].work(booklist);
  23
      }
  24  
  25  
  26  
  27  }
package operation;
2 2 
  3 import book.Book;
3 4 import book.BookList;
4 5 
  6 import java.util.Scanner;
  7 
5 8 /**
6 9  * Created with IntelliJ IDEA.
7 10   * Description:
  @@ -13,5 +16,30 @@ public class DelOperation implements IOperation{
13  16      @Override
14  17      public void work(BookList booklist) {
15  18          System.out.println("删除图书");
  19          Scanner scanner=new Scanner(System.in);
  20          System.out.println("请输入删除图书的名字:");
  21          String  name= scanner.nextLine();
  22          int currentSize= booklist.getUsedSize();
  23          int index=-1;
  24          int i =0;
  25          for (; i <currentSize ; i++) {
  26              Book  book=booklist.getBook(i);
  27              if(book.getName().equals(name)){
  28                  index=i;
  29                  break;
  30              }
  31          }
  32  
  33          if(i>=currentSize){
  34              System.out.println("没有找到这本书");
  35              return;
  36          }
  37              for(int j=index;j<currentSize ;j++){
  38                  Book book=booklist.getBook(i+1);
  39                  booklist.setBooks(i,book);
  40              }
  41              booklist.setBooks( currentSize-1,null);//删除了书籍,进行了移动,然后将最后的置为空,不会有内存泄漏
  42              booklist.setUsedSize(currentSize-1);
  43          System.out.println("删除成功");
16  44      }
17  45
  }


以上是图书管理系统的实现,具体的思路我们下期再说奥

相关文章
|
5月前
|
C++
图书管理系统(C++)
图书管理系统(C++)
41 0
|
5月前
图书管理系统
图书管理系统
53 0
|
5月前
|
存储 Java
学生成绩管理系统
学生成绩管理系统
74 5
|
5月前
|
存储 安全 Java
图书管理系统的设计与实现
图书管理系统的设计与实现
|
C# 数据库
C#图书管理系统
C#图书管理系统
80 0
|
存储 程序员 C#
基于C#实现的学生成绩管理系统
基于C#实现的学生成绩管理系统
141 0
图书管理系统1
图书管理系统
158 1
简易版 图书管理系统
简易版 图书管理系统
122 0
简易版 图书管理系统
|
前端开发 Java 数据库
【课设】图书管理系统
前言 最近写了个课设,刚好刚学完javaweb需要巩固一下,课设内容是java增删改查,想睡觉有人送枕头了属于是,这里我是实现了增删改查,删除那里我就偷懒了,只写了批量删除。(实际上就是黑马项目套皮,不过我实现了修改功能,还是有点价值滴)
图书管理系统2
图书管理系统
120 0