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;
}

代码说明:

  1. 结构体定义: struct Book 定义了图书的结构,包含书名 title、作者 author 和出版日期 date

  2. 比较函数: cmp 函数用于比较两个图书的出版日期,实现按出版日期升序排序。

  3. 输入: scanf 函数用于从键盘输入图书信息,并存储到 books 数组中。

  4. 排序: qsort 函数用于对 books 数组进行排序,使用 cmp 函数作为比较函数,按照出版日期升序排序。

  5. 输出: printf 函数用于输出排序后的图书信息。

总结:

本示例展示了使用 C 语言设计数据结构和排序算法来实现简单的图书管理系统,并提供了代码示例供参考。


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

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