C++ 图书馆管理系统:按出版日期排序图书信息
C++ 图书馆管理系统:按出版日期排序图书信息
问题描述: 假设你正在开发一个简单的图书馆管理系统,你需要设计一个数据结构来表示图书。每本图书包括书名、作者和出版日期,按照出版日期的先后顺序排列,即先出版的图书排在前面。
输入: 从键盘输入一个整数 n (1 <= n <= 100),表示图书数量,然后输入 n 行,每行包含一本图书的信息: 书名(不超过 100 个字符)、作者(不超过 100 个字符) 和出版日期(格式为 YYYY-MM-DD) ,数据之间用空格隔开。
输出: 按排序后的顺序输出图书信息,每本图书一行,包括书名、作者和出版日期,数据之间用空格隔开。
思路:
- 定义一个结构体,包括书名、作者和出版日期三个成员变量;
- 输入 n 和 n 本书的信息,存储到结构体数组中;
- 对结构体数组进行排序,按照出版日期从早到晚的顺序排序;
- 输出排序后的图书信息。
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;
}
代码解释:
- 结构体定义:
struct Book定义了一个名为Book的结构体,包含三个成员变量:title(书名)、author(作者) 和publishDate(出版日期)。 - 排序函数:
compareBooks函数用于比较两个Book结构体,根据publishDate成员变量进行比较,如果a.publishDate小于b.publishDate,则返回true,否则返回false。 - 输入图书信息: 程序首先输入图书数量
n,然后循环输入n本图书的信息,并将信息存储到books数组中。 - 排序图书信息: 使用
sort函数对books数组进行排序,使用compareBooks函数作为比较函数。 - 输出排序后的信息: 循环遍历排序后的
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
结论:
本代码实现了一个简单的图书馆管理系统,可以输入图书信息,并按照出版日期进行排序和输出。通过使用结构体和排序算法,可以有效地管理图书信息,并方便查询。
原文地址: http://www.cveoy.top/t/topic/ojI7 著作权归作者所有。请勿转载和采集!