21xrx.com
2025-03-27 13:13:04 Thursday
文章检索 我的文章 写文章
"Java实现图书管理系统 - 一个课设题目"
2023-06-18 05:56:22 深夜i     22     0
Java 图书管理系统 面向对象

在当今数字化时代,图书管理系统得到了广泛的应用。在这个 Java 课设题目中,我们将探讨如何使用 Java 编程语言来实现一个基本的图书管理系统。

用户可通过该系统进行图书的添加、修改、删除、查询等常用操作,不仅具有数据增删改查的基础功能,在用户管理、借阅管理、归还管理等方面也进行了功能的扩展。

由于该项目针对教学实践,我们采用了简单的控制台交互方式。在代码实现上,主要使用了 Java 的面向对象和文件读写技术。

下面演示了如何使用 Java 代码来实现图书管理系统的基本操作:

import java.util.*; //导入需要使用的工具包
import java.io.*;
public class BookManagementSystem {
  ArrayList
  bookList; //初始化存储图书信息的链表
 
  Scanner sc = new Scanner(System.in);
  public BookManagementSystem() { //构造方法
    bookList = new ArrayList
  ();
 
  }
  public void menu() { //显示菜单
    System.out.println("欢迎使用图书管理系统");
    System.out.println("1. 添加图书");
    System.out.println("2. 修改图书");
    System.out.println("3. 删除图书");
    System.out.println("4. 查询图书");
    System.out.println("5. 退出系统");
  }
  public void addBook() { //添加图书
    System.out.println("请输入添加的书籍信息:");
    System.out.println("书名:");
    String bookName = sc.nextLine();
    System.out.println("作者:");
    String author = sc.nextLine();
    System.out.println("价格:");
    double price = sc.nextDouble();
    sc.nextLine();
    Book book = new Book(bookName, author, price);
    bookList.add(book);
    System.out.println("添加成功");
  }
  public void modifyBook() { //修改图书信息
    System.out.println("请输入需要修改的书籍名称:");
    String bookName = sc.nextLine();
    for (int i = 0; i < bookList.size(); i++) {
      if (bookList.get(i).getName().equals(bookName)) {
        Book book = bookList.get(i);
        System.out.println("请选择您要修改的信息:");
        System.out.println("1. 书名");
        System.out.println("2. 作者");
        System.out.println("3. 价格");
        int choice = sc.nextInt();
        sc.nextLine();
        switch (choice) {
          case 1:
            System.out.println("请输入新的书名:");
            String newName = sc.nextLine();
            book.setName(newName);
            break;
          case 2:
            System.out.println("请输入新的作者:");
            String newAuthor = sc.nextLine();
            book.setAuthor(newAuthor);
            break;
          case 3:
            System.out.println("请输入新的价格:");
            double newPrice = sc.nextDouble();
            book.setPrice(newPrice);
            sc.nextLine();
            break;
          default:
            System.out.println("输入有误!");
            break;
        }
        System.out.println("修改成功!");
        return;
      }
    }
    System.out.println("未查找到符合条件的记录!");
  }
  public void deleteBook() { //删除图书信息
    System.out.println("请输入需要删除的书籍名称:");
    String bookName = sc.nextLine();
    for (int i = 0; i < bookList.size(); i++) {
      if (bookList.get(i).getName().equals(bookName)) {
        bookList.remove(i);
        System.out.println("删除成功!");
        return;
      }
    }
    System.out.println("未查找到符合条件的记录!");
  }
  public void searchBook() { //查询图书信息
    System.out.println("请输入需要查询的书籍名称:");
    String bookName = sc.nextLine();
    for (Book book : bookList) {
      if (book.getName().equals(bookName)) {
        System.out.println(book);
        return;
      }
    }
    System.out.println("未查找到符合条件的记录!");
  }
  public void saveToFile() { //将数据写入文件
    try {
      ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("BookList.dat"));
      oos.writeObject(bookList);
      oos.close();
    } catch (IOException e) {
      System.out.println("保存失败!");
    }
  }
  public void loadFromFile() { //从文件读取数据
    try {
      ObjectInputStream ois = new ObjectInputStream(new FileInputStream("BookList.dat"));
      bookList = (ArrayList
  )ois.readObject();
 
      ois.close();
    } catch (IOException e) {
      System.out.println("无法读取文件,开启新的数据存储!");
    } catch (ClassNotFoundException e) {
      System.out.println("没有找到类错误!");
    }
  }
  public void run() { //运行主程序
    loadFromFile();
    while (true) {
      menu();
      int choice = sc.nextInt();
      sc.nextLine();
      switch (choice) {
        case 1:
          addBook();
          break;
        case 2:
          modifyBook();
          break;
        case 3:
          deleteBook();
          break;
        case 4:
          searchBook();
          break;
        case 5:
          System.out.println("感谢使用!");
          saveToFile();
          System.exit(0);
        default:
          System.out.println("输入有误!");
          break;
      }
    }
  }
  public static void main(String[] args) { //程序入口
    BookManagementSystem system = new BookManagementSystem();
    system.run();
  }
}

在该代码实现中,我们创建了 `Book` 类来存储图书信息,并借助 `ArrayList` 链表作为存储容器。同时,我们还引入了文件读写技术,使得数据得以永久保存。

然而,上面的代码实现远远不能满足一个完整的图书管理系统的需求。因此,在之后的开发过程中,需要不断地进行功能的拓展和完善才能更好地应对各类实际应用场景。

定位

  
  

评论区