21xrx.com
2024-12-22 19:49:40 Sunday
登录
文章检索 我的文章 写文章
C++课程设计:图书管理系统题目及代码
2023-07-09 02:56:14 深夜i     --     --
C++ 课程设计 图书管理系统 题目 代码

本篇文章将介绍一款C++课程设计的图书管理系统,包括题目和代码。

1. 题目描述

本课程设计要求开发一款图书管理系统,实现图书的数据管理、借阅与归还等功能。

主要功能包括:

1)图书信息管理:包括添加图书、修改图书信息、删除图书等操作;

2)图书借阅与归还管理:包括借阅图书、归还图书、超期检查等操作;

3)读者信息管理:包括添加读者、修改读者信息、删除读者等操作。

2. 代码实现

代码主要分为三部分:图书信息管理、图书借阅与归还管理、读者信息管理。

首先是图书信息管理部分:


#include <iostream>

#include <vector>

#include <string>

using namespace std;

class Book

  public:

    string name; //书名

    string author; //作者

    string ISBN; // ISBN

    int number; // 数量

;

vector<Book> Books; // 创建一个vector容器保存图书信息

void add_book(){

  Book new_book;

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

  cin >> new_book.name;

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

  cin >> new_book.author;

  cout << "请输入ISBN号:";

  cin >> new_book.ISBN;

  cout << "请输入数量:";

  cin >> new_book.number;

  Books.push_back(new_book);

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

}

void show_books(){

  cout << "当前图书信息如下:" << endl;

  cout << "书名\t作者\tISBN\t数量" << endl;

  for(int i=0;i<Books.size();i++){

    cout << Books[i].name << "\t" << Books[i].author << "\t" << Books[i].ISBN << "\t" << Books[i].number << endl;

  }

}

void delete_book(){

  string ISBN;

  cout << "请输入要删除的图书的ISBN号:";

  cin >> ISBN;

  for(int i=0;i<Books.size();i++){

    if(Books[i].ISBN==ISBN){

      Books.erase(Books.begin()+i);

      cout << "删除成功!" << endl;

      return;

    }

  }

  cout << "该图书不存在!" << endl;

}

接下来是图书借阅与归还管理部分:


class Borrower

  public:

    string name; // 借阅者姓名

    string book; // 借阅书籍的ISBN

    int borrow_date; // 借阅日期

    int return_date; // 归还日期

;

vector<Borrower> Borrowers; // 创建一个vector容器保存借阅信息

void borrow_book(){

  string ISBN;

  cout << "请输入要借阅的图书的ISBN号:";

  cin >> ISBN;

  for(int i=0;i<Books.size();i++){

    if(Books[i].ISBN==ISBN){

      if(Books[i].number>0){

        Book &book = Books[i];

        book.number--;

        Borrower new_borrower;

        cout << "请输入您的姓名:";

        cin >> new_borrower.name;

        new_borrower.book = ISBN;

        time_t now = time(0);

        tm *ltm = localtime(&now);

        new_borrower.borrow_date = ltm->tm_year+1900*10000 + ltm->tm_mon+1*100 + ltm->tm_mday;

        Borrowers.push_back(new_borrower);

        cout << "借阅成功!" << endl;

      }else

        cout << "没有库存了!" << endl;

      

      return;

    }

  }

  cout << "该图书不存在!" << endl;

}

void return_book(){

  string ISBN;

  cout << "请输入要归还的图书的ISBN号:";

  cin >> ISBN;

  for(int i=0;i<Books.size();i++){

    if(Books[i].ISBN==ISBN){

      Book &book = Books[i];

      book.number++;

      for(int j=0;j<Borrowers.size();j++){

        if(Borrowers[j].book==ISBN){

          Borrower &borrower = Borrowers[j];

          time_t now = time(0);

          tm *ltm = localtime(&now);

          borrower.return_date = ltm->tm_year+1900*10000 + ltm->tm_mon+1*100 + ltm->tm_mday;

          cout << borrower.name << ",您已成功归还《" << book.name << "》。" << endl;

          Borrowers.erase(Borrowers.begin()+j);

          return;

        }

      }

    }

  }

  cout << "该图书不存在或您没有借阅此书!" << endl;

}

void show_borrow_info(){

  cout << "当前借阅信息如下:" << endl;

  cout << "借阅人姓名\t书名\t借阅时间\t还书时间" << endl;

  for(int i=0;i<Borrowers.size();i++){

    cout << Borrowers[i].name << "\t" << Books[i].name << "\t" << Borrowers[i].borrow_date << "\t" << Borrowers[i].return_date << endl;

  }

}

最后是读者信息管理部分:


class Reader

  public:

    string name; // 读者姓名

    string number; // 读者证件号码

;

vector<Reader> Readers; // 创建一个vector容器保存读者信息

void add_reader(){

  Reader new_reader;

  cout << "请输入读者姓名:";

  cin >> new_reader.name;

  cout << "请输入读者证件号码:";

  cin >> new_reader.number;

  Readers.push_back(new_reader);

  cout << "读者信息添加成功!" << endl;

}

void show_readers(){

  cout << "当前读者信息如下:" << endl;

  cout << "姓名\t证件号码" << endl;

  for(int i=0;i<Readers.size();i++){

    cout << Readers[i].name << "\t" << Readers[i].number << endl;

  }

}

void delete_reader(){

  string number;

  cout << "请输入要删除的读者的证件号码:";

  cin >> number;

  for(int i=0;i<Readers.size();i++){

    if(Readers[i].number==number){

      Readers.erase(Readers.begin()+i);

      cout << "删除成功!" << endl;

      return;

    }

  }

  cout << "该读者不存在!" << endl;

}

以上就是该图书管理系统的全部代码实现。用户可以自行将这些代码整合到一个C++项目中进行编译运行。

  
  

评论区

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