C语言实现图书管理系统数据结构设计及排序
C语言实现图书管理系统数据结构设计及排序
本示例展示了使用 C 语言设计数据结构来表示图书信息,并实现按出版日期升序排序的图书管理系统。
输入:
从键盘输入一个整数 n(1 <= n <= 100),表示图书数量。然后输入 n 行,每行包含一本图书的信息:书名(不超过 100 个字符)、作者(不超过 100 个字符)和出版日期(格式为 YYYY-MM-DD),数据之间用空格隔开。
输出:
按排序后的顺序输出图书的信息,每本图书一行,包括书名、作者和出版日期,数据之间用空格隔开。
C语言代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct Book {
char title[101];
char author[101];
char date[11];
};
int cmp(const void* a, const void* b) {
return strcmp(((struct Book*)a)->date, ((struct Book*)b)->date);
}
int main() {
int n;
scanf('%d', &n);
struct Book books[n];
for (int i = 0; i < n; i++) {
scanf('%s %s %s', books[i].title, books[i].author, books[i].date);
}
qsort(books, n, sizeof(struct Book), cmp);
for (int i = 0; i < n; i++) {
printf('%s %s %s\n', books[i].title, books[i].author, books[i].date);
}
return 0;
}
代码说明:
-
结构体定义:
struct Book定义了图书的结构,包含书名title、作者author和出版日期date。 -
比较函数:
cmp函数用于比较两个图书的出版日期,实现按出版日期升序排序。 -
输入:
scanf函数用于从键盘输入图书信息,并存储到books数组中。 -
排序:
qsort函数用于对books数组进行排序,使用cmp函数作为比较函数,按照出版日期升序排序。 -
输出:
printf函数用于输出排序后的图书信息。
总结:
本示例展示了使用 C 语言设计数据结构和排序算法来实现简单的图书管理系统,并提供了代码示例供参考。
原文地址: https://www.cveoy.top/t/topic/ojKD 著作权归作者所有。请勿转载和采集!