C语言图书管理系统:按出版日期排序图书信息
C语言图书管理系统:按出版日期排序图书信息
本示例展示如何使用 C 语言开发一个简单的图书管理系统,实现按出版日期升序排列图书信息的功能。
代码示例
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_BOOK_NUM 100 //最大图书数量
#define MAX_NAME_LEN 100 //书名最大长度
#define MAX_AUTHOR_LEN 100 //作者最大长度
#define MAX_DATE_LEN 11 //日期字符串最大长度
//定义图书结构体
typedef struct _book {
char name[MAX_NAME_LEN];
char author[MAX_AUTHOR_LEN];
char date[MAX_DATE_LEN];
} Book;
//比较函数,用于qsort排序
int cmp(const void* a, const void* b) {
Book* book_a = (Book*)a;
Book* book_b = (Book*)b;
return strcmp(book_a->date, book_b->date);
}
int main() {
int n;
Book books[MAX_BOOK_NUM];
scanf('%d', &n);
for (int i = 0; i < n; i++) {
scanf('%s %s %s', books[i].name, books[i].author, books[i].date);
}
qsort(books, n, sizeof(Book), cmp);
for (int i = 0; i < n; i++) {
printf('%s %s %s\n', books[i].name, books[i].author, books[i].date);
}
return 0;
}
代码解析
- 数据结构定义: 使用
Book结构体来存储图书信息,包括书名 (name)、作者 (author) 和出版日期 (date)。 - 排序函数:
cmp函数用于比较两个图书的出版日期,并返回一个整数,用于指示排序顺序。 - 输入处理: 从键盘输入图书数量
n和每本书的信息,并将信息存储到books数组中。 - 排序: 使用
qsort函数对books数组进行排序,排序依据为cmp函数的返回值。 - 输出结果: 按排序后的顺序输出每本书的信息。
总结
本示例展示了使用 C 语言实现一个简单图书管理系统,并使用 qsort 函数进行排序,以达到按出版日期升序排列图书信息的最终目的。
原文地址: https://www.cveoy.top/t/topic/ojKx 著作权归作者所有。请勿转载和采集!