21xrx.com
2024-11-05 19:35:13 Tuesday
登录
文章检索 我的文章 写文章
C++图书馆管理系统代码实现
2023-06-23 19:47:08 深夜i     --     --
C++ 图书馆管理系统 代码实现

随着科技的飞速发展,我们的生活也变得越来越方便。在图书馆管理方面,电脑的应用已经成为了必然趋势。这篇文章将介绍一个基于C++的图书馆管理系统,包括代码实现和功能介绍。

一、功能介绍

1. 添加图书功能

在添加图书功能中,管理员需要输入图书的编号、名称、作者、出版社、类别、价格等信息。同时,也可以对已有书籍进行修改和删除操作。

2. 借阅图书功能

在借阅图书功能中,读者需要输入要借阅的图书编号和姓名,经由系统自动查询该书是否可被借阅。管理员可以查询借阅情况,并将逾期还书的读者列入黑名单。

3. 图书归还功能

在图书归还功能中,借阅者需要输入归还的图书编号和姓名,系统会自动查询该书是否逾期。如逾期,系统会根据规定的罚款金额自动扣除读者账户余额。

4. 查询图书功能

在查询图书功能中,读者和管理员均可以根据指定的关键字(如书名或编号)查询该书籍的基本信息。

二、代码实现

以下是基于C++的代码实现:

1. 基本的Book类和Library类

class Book

public:

  string bookName;

  double price;

  string author;

  string publisher;

  string category;

  int bookNum;

;

class Library {

public:

  void addBook(); // 添加图书

  void borrowBook(); // 借阅图书

  void returnBook(); // 归还图书

  void queryBook(); // 查询图书

  vector bookList; // 存储图书信息

  unordered_map borrowList; // 存储已借阅图书信息

};

2. 添加图书

void Library::addBook() {

  Book book;

  cout << "请输入书名: ";

  cin >> book.bookName;

  cout << "请输入作者: ";

  cin >> book.author;

  cout << "请输入出版社: ";

  cin >> book.publisher;

  cout << "请输入图书类别: ";

  cin >> book.category;

  cout << "请输入图书价格: ";

  cin >> book.price;

  book.bookNum = bookList.size() + 1;

  bookList.push_back(book);

  cout << "添加图书成功!" << endl;

}

3. 借阅图书

void Library::borrowBook() {

  int bookNum;

  string name;

  cout << "请输入借阅的书籍编号:";

  cin >> bookNum;

  cout << "请输入借阅者姓名:";

  cin >> name;

  auto it = borrowList.find(bookNum);

  if (it != borrowList.end())

    cout << "该书籍已被借阅!" << endl;

   else {

    bool found = false;

    for (auto& book : bookList) {

      if (book.bookNum == bookNum) {

        found = true;

        borrowList[bookNum] = book;

        bookList.erase(&book);

        break;

      }

    }

    if (found) {

      cout << name << " 借阅 " << borrowList[bookNum].bookName << " 成功!" << endl;

    } else

      cout << "没有找到该书籍

  }

}

4. 图书归还

void Library::returnBook() {

  int bookNum;

  string name;

  cout << "请输入归还的书籍编号:";

  cin >> bookNum;

  cout << "请输入借阅者姓名:";

  cin >> name;

  auto it = borrowList.find(bookNum);

  if (it == borrowList.end())

    cout << name << " 没有借阅该书籍!" << endl;

   else {

    borrowList.erase(it);

    cout << name << " 归还 " << it->second.bookName << " 成功!" << endl;

  }

}

5. 查询图书

void Library::queryBook() {

  string key;

  cout << "请输入查询的关键字(书名或编号):";

  cin >> key;

  for (auto& book : bookList) {

    if (book.bookName.find(key) != string::npos || book.bookName == key ||

      to_string(book.bookNum) == key)

      cout << book.bookNum << " " << book.bookName << " " << book.author << " "

         << book.publisher << " " << book.category << " " << book.price << endl;

  }

}

三、总结

本文介绍了一个基于C++的图书馆管理系统的功能和代码实现。通过在代码中添加其他功能,例如黑名单、借阅期限等,可以让系统更加健壮。如需使用,请根据实际需要进行代码的优化和修改。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复