开源一夏 | 数据结构课设:图书信息管理 -- 顺序存储和链式存储
@TOC
一、Chapter One【实验题目】
在本实验中,我选择了两种存储结构(顺序存储和链式存储)来对图书信息表的修改问题进行描述,即:3.基于顺序存储结构的图书信息表的修改问题描述 和 13.基于链式存储结构的图书信息表的修改问题描述。
1.基于顺序存储结构的图书信息表的修改问题描述
3.基于顺序存储结构的图书信息表的修改问题描述首先,定义一个包含图书信息(书号、书名、价格)的顺序表,读入相应的图书数据完成图书信息表的创建。然后,计算所有图书的平均价格,将所有低于平均价格的图书价格提高 20%,所有高于或等于平均价格的图书价格提高 10%。最后,逐行输出价格修改后的图书信息。
输入要求输入 n+1 行,前 n 行是 n 本图书的信息(书号、书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔,价格之后没有空格。最后,第 n+1 行是输入结束标志:000(空格分隔的三个 0)。其中书号和书名为字符串类型,价格为浮点数类型。输出要求总计 n+l 行,第 1 行是修改前所有图书的平均价格,后 n 行是价格修改后 n 本图书的信息(书号、书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔。其中,价格输出保留两位小数。
输入样例
输出样例
2.基于链式存储结构的图书信息表的修改问题描述
13.基于链式存储结构的图书信息表的修改问题描述首先,定义一个包含图书信息(书号、书名、价格)的链表,读入相应的图书数据完成图书信息表的创建。然后,计算所有图书的平均价格,将所有低于平均价格的图书价格提高 20%,所有高于或等于平均价格的图书价格提高 10%。最后,逐行输出价格修改后的图书信息。
输入要求输入 n+1 行,前 n 行是 n 本图书的信息(书号、书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔,价格之后没有空格。最后第 nt1 行是输人结束标志:000(空格分隔的三个 0)。其中,书号和书名为字符串类型,价格为浮点数类型。输出要求总计 n+1 行,第 1 行是修改前所有图书的平均价格,后 n 行是价格修改后 n 本图书的信息,每本图书信息占一行,书号、书名、价格用空格分隔。其中,价格输出保留两位小数。
输入样例
输出样例
二、Chapter Two【实验分析】
1.实验整体思路:
分别用顺序存储和链式存储建立线性表,即图书信息表,通过函数创建线性表,初始化线性表,进行线性表的输入和输出。此时的图书平均价格就是我们创建所有图书价格相加再除以图书本数。接下来我们遍历两遍线性表,第一遍求出图书平均价格,第二次每本书的价格和平均价格逐个进行对比,大于等于平均价格的将图书价格乘以 1.1,小于则乘以 1.2,最后通过输入输出便可得到我们修改之后的数据。
2.实验详细步骤:
1.首先,我们利用 #include 和 #define 表明我们需要的头文件和宏,然后定义出一本书的信息;2.对于顺序存储结构,我们首先创建出顺序存储的图书信息表,然后定义 Init()函数初始化线性表,通过定义 Insert()函数输入图书数据,再通过 Output()函数输出图书信息表;最后通过 Upprice()函数实现对图书价格的修改;3.同理对于链式存储结构,我们首先创建出链式存储图书信息表的结点,然后定义 Linit()函数初始化线性表,通过定义 lInsert()函数利用头插法输入图书数据,再通过 LinkOutput()函数输出图书信息表;最后通过 LinkUpprice()函数实现对图书价格的修改;4.最后,因为我们选择的是两种存储结构进行图书修改表的描述,我们在程序最后使用 if 语句进行两种存储结构的选择:1.顺序存储 2.链式存储;再通过对函数的调用来完成我们对图书价格的修改。
评论