C++ 图书馆管理系统:按出版日期排序图书信息

问题描述: 假设你正在开发一个简单的图书馆管理系统,你需要设计一个数据结构来表示图书。每本图书包括书名、作者和出版日期,按照出版日期的先后顺序排列,即先出版的图书排在前面。

输入: 从键盘输入一个整数 n (1 <= n <= 100),表示图书数量,然后输入 n 行,每行包含一本图书的信息: 书名(不超过 100 个字符)、作者(不超过 100 个字符) 和出版日期(格式为 YYYY-MM-DD) ,数据之间用空格隔开。

输出: 按排序后的顺序输出图书信息,每本图书一行,包括书名、作者和出版日期,数据之间用空格隔开。

思路:

  1. 定义一个结构体,包括书名、作者和出版日期三个成员变量;
  2. 输入 n 和 n 本书的信息,存储到结构体数组中;
  3. 对结构体数组进行排序,按照出版日期从早到晚的顺序排序;
  4. 输出排序后的图书信息。

C++ 代码:

#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

struct Book {
    string title;
    string author;
    string publishDate;
};

bool compareBooks(const Book& a, const Book& b) {
    return a.publishDate < b.publishDate;
}

int main() {
    int n;
    cout << "请输入图书数量: ";
    cin >> n;

    Book books[100];
    cout << "请输入图书信息 (书名 作者 出版日期):\n";
    for (int i = 0; i < n; i++) {
        cin >> books[i].title >> books[i].author >> books[i].publishDate;
    }

    sort(books, books + n, compareBooks);

    cout << "排序后的图书信息:\n";
    for (int i = 0; i < n; i++) {
        cout << books[i].title << " " << books[i].author << " " << books[i].publishDate << endl;
    }

    return 0;
}

代码解释:

  1. 结构体定义: struct Book 定义了一个名为 Book 的结构体,包含三个成员变量:title (书名)、author (作者) 和 publishDate (出版日期)。
  2. 排序函数: compareBooks 函数用于比较两个 Book 结构体,根据 publishDate 成员变量进行比较,如果 a.publishDate 小于 b.publishDate,则返回 true,否则返回 false
  3. 输入图书信息: 程序首先输入图书数量 n,然后循环输入 n 本图书的信息,并将信息存储到 books 数组中。
  4. 排序图书信息: 使用 sort 函数对 books 数组进行排序,使用 compareBooks 函数作为比较函数。
  5. 输出排序后的信息: 循环遍历排序后的 books 数组,输出每本书的信息。

运行结果:

假设输入如下图书信息:

3
The Hitchhiker's Guide to the Galaxy Douglas Adams 1979-05-12
The Lord of the Rings J.R.R. Tolkien 1954-07-29
The Hobbit J.R.R. Tolkien 1937-09-21

则输出结果为:

排序后的图书信息:
The Hobbit J.R.R. Tolkien 1937-09-21
The Lord of the Rings J.R.R. Tolkien 1954-07-29
The Hitchhiker's Guide to the Galaxy Douglas Adams 1979-05-12

结论:

本代码实现了一个简单的图书馆管理系统,可以输入图书信息,并按照出版日期进行排序和输出。通过使用结构体和排序算法,可以有效地管理图书信息,并方便查询。

C++ 图书馆管理系统:按出版日期排序图书信息

原文地址: http://www.cveoy.top/t/topic/ojI7 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录