#include stdioh#include stdlibh#include stringh#define MAX_SIZE 1000typedef struct int index; char name100; char author100; char press100; char type100; int code; int price; Book
该程序是一个图书分类和排序的程序。程序首先定义了一个Book结构体,包含了图书的各种信息,如索引号、书名、作者、出版社、种类、分类编号和价格。然后定义了一个Stack结构体,用于存储图书。Stack结构体包含了一个Book类型的数组和一个top变量,用于指示栈顶的位置。
程序中定义了push函数和pop函数,用于向栈中添加图书和从栈中删除图书。push函数首先判断栈是否已满,如果已满则输出提示信息,否则将图书添加到栈中。pop函数首先判断栈是否为空,如果为空则输出提示信息,并返回一个空的Book结构体,否则将栈顶的图书删除并返回。
程序中还定义了quick_sort函数,用于对图书进行快速排序。该函数使用了分治法的思想,将图书数组分为左右两部分,通过比较将较小的元素放在左边,较大的元素放在右边,然后递归地对左右两部分进行排序。
在主函数中,程序首先打开了一个名为"book_storages.txt"的文件,用于读取图书信息。然后创建了一个包含4个Stack的数组,用于存储不同分类的图书。接下来通过循环读取文件中的图书信息,并根据图书的分类编号将图书添加到相应的栈中。
读取完文件中的图书信息后,程序关闭了文件,并对每个分类的图书进行排序。然后根据分类编号创建了4个文件,分别命名为"sorted_books_1.txt"、"sorted_books_2.txt"、"sorted_books_3.txt"和"sorted_books_4.txt",用于存储排序后的图书信息。程序通过循环遍历每个分类的栈,将图书信息输出到控制台和文件中。
最后,程序将每个分类的栈的top变量重置为-1,以便下次使用。
总体来说,该程序实现了图书分类和排序的功能,通过栈的数据结构来存储和操作图书信息,同时使用快速排序算法对图书进行排序,并将排序后的结果输出到文件中。
原文地址: https://www.cveoy.top/t/topic/hE8C 著作权归作者所有。请勿转载和采集!