C++ 图书管理系统:使用结构体和排序算法按出版日期排序图书
使用 C++ 开发简单的图书管理系统
本教程将引导您使用 C++ 开发一个简单的图书管理系统,主要功能是输入图书信息,并按出版日期升序排序。
数据结构设计
首先,我们需要定义一个结构体来表示每本图书的信息。结构体 Book 包含三个成员:
name: 书名,字符串类型author: 作者,字符串类型date: 出版日期,字符串类型,格式为 YYYY-MM-DD
struct Book {
string name;
string author;
string date;
};
排序算法
为了按出版日期排序图书,我们需要使用一个比较函数 cmp,该函数比较两个 Book 结构体的 date 成员。如果 b1.date 小于 b2.date,则返回 true,表示 b1 应该排在 b2 之前。
bool cmp(Book b1, Book b2) {
return b1.date < b2.date;
}
代码实现
以下是完整的 C++ 代码,演示了如何输入图书信息、排序图书并输出排序结果:
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
struct Book {
string name;
string author;
string date;
};
bool cmp(Book b1, Book b2) {
return b1.date < b2.date;
}
int main() {
int n;
cin >> n;
Book books[n];
for (int i = 0; i < n; i++) {
cin >> books[i].name >> books[i].author >> books[i].date;
}
sort(books, books + n, cmp);
for (int i = 0; i < n; i++) {
cout << books[i].name << ' ' << books[i].author << ' ' << books[i].date << endl;
}
return 0;
}
代码解释
- 输入图书数量: 首先,程序从键盘输入一个整数
n,表示图书的数量。 - 定义图书数组: 然后,定义一个
Book结构体数组books,大小为n,用于存储所有图书的信息。 - 输入图书信息: 循环输入每本图书的
name、author和date信息,并将其存储到books数组中。 - 排序图书: 使用
sort函数对books数组进行排序,排序规则由cmp函数定义,即按出版日期升序排序。 - 输出排序结果: 最后,循环输出排序后的
books数组中每本图书的信息,包括name、author和date。
本教程展示了如何使用 C++ 开发一个简单的图书管理系统,通过结构体和排序算法来实现图书信息的存储和排序。您可以在此基础上进一步添加其他功能,例如搜索、删除、修改图书信息等。
原文地址: https://www.cveoy.top/t/topic/ojKq 著作权归作者所有。请勿转载和采集!