图书管理系统数据结构课设,图书管理系统数据结构课程设计
Yyds干货库存
@TOC
第一章【实验题目】
在这个实验中,我选择了两种存储结构(顺序存储和链式存储)来描述图书信息表修改的问题,即:3。基于顺序存储结构和13的图书信息表修改描述。基于链式存储结构的图书信息表修改描述。
1.基于顺序存储结构的图书信息表修订描述。
3.基于顺序存储结构的图书信息表修改描述。
首先定义一个包含图书信息(书号、书名、价格)的序列表,读入相应的图书数据,完成图书信息表的创建。然后,计算所有书的均价,低于均价的所有书涨价20%,高于或等于均价的所有书涨价10%。最后,逐行输出修改后价格的图书信息。
投入物需要量
输入n 1行。前n行是n本书的信息(书号、书名、价格)。每本书的信息占一行。书号、书名、价格之间用空格隔开,价格后面没有空格。最后,第n 1行是输入结束标志:000(三个零,中间用空格隔开)。书号和书名是字符串型,价格是浮点型。
输出要求
总共n l行,第一行是改版前所有书的均价,后n行是改版后n本书的信息(书号、书名、价格)。每本书信息占一行,书号、书名、价格用空格隔开。其中,价格输出保留两位小数。
输入样本
787302257646程序设计基础
787302164340程序设计基础(第二版)20.00
987302219972单片机技术及应用32.00
787302203513单片机原理及应用技术26.00
787810827430工业计算机控制技术——原理与应用29.00
787811234923汇编语言程序设计课程21.00
0 0 0
输出样本
25.50
程序设计基础30.00
787302164340程序设计基础(第二版)24.00
987302219972单片机技术及应用35.20
787302203513单片机原理及应用技术28.60
787810827430工业计算机控制技术——原理与应用31.90
787811234923汇编语言程序设计课程25.20
2.基于链式存储结构的图书信息表修改描述。
13.基于链式存储结构的图书信息表修改描述
首先定义一个包含图书信息(书号、书名、价格)的链表,读入相应的图书数据,完成图书信息表的创建。然后,计算所有书的均价,低于均价的所有书涨价20%,高于或等于均价的所有书涨价10%。最后,逐行输出修改后价格的图书信息。
投入物需要量
输入n 1行。前n行是n本书的信息(书号、书名、价格)。每本书的信息占一行。书号、书名、价格之间用空格隔开,价格后面没有空格。最后一行nt1是输入符号的结尾:000(由空格分隔的三个零)。其中,书号、书名为字符串型,价格为浮点型。
输出要求
总共有n 1行。第一行是修改前所有书的均价,后n行是价格修改后n本书的信息。每本书的信息占一行,书号、书名、价格用空格隔开。其中,价格输出保留两位小数。
输入样本
787302257646程序设计基础
787302164340程序设计基础(第二版)20.00
987302219972单片机技术及应用32.00
787302203513单片机原理及应用技术26.00
787810827430工业计算机控制技术——原理与应用29.00
787811234923汇编语言程序设计课程21.00
0 0 0
输出样本
25.50
程序设计基础30.00
787302164340程序设计基础(第二版)24.00
987302219972单片机技术及应用35.20
787302203513单片机原理及应用技术28.60
787810827430工业计算机控制技术——原理与应用31.90
787811234923汇编语言程序设计课程25.20
二、第二章【实验分析】
1.
线性表,即图书信息表,分别采用顺序存储和链式存储建立。线性表由函数创建和初始化,线性表是输入和输出。这个时候,图书的平均价格就是我们创造的所有图书的总和除以图书数量。接下来,我们遍历线性表两次。第一次,我们得到书籍的平均价格。第二遍,我们把每本书的价格和平均价格一一对比。如果价格大于或等于平均价格,我们将账面价格乘以1.1,如果小于1.2。最后,我们可以通过输入和输出得到我们的修正数据。
2.实验的详细步骤:
1.首先我们用#include和#define来表示我们需要的头文件和宏,然后定义一本书的信息;
2.对于顺序存储结构,我们先创建顺序存储的图书信息表,然后定义Init()函数初始化线性表,定义Insert()函数输入图书数据,再通过Output()函数输出图书信息表;最后,通过Upprice()函数修改图书价格。
3.同理,对于链式存储结构,我们先创建链式存储图书信息表的节点,然后定义Linit()函数初始化线性表,定义lInsert()函数通过头插入输入图书数据,再通过LinkOutput()函数输出图书信息表;最后,通过LinkUpprice()函数修改图书价格。
4.最后,因为我们选择两种存储结构来描述图书修订表,所以我们在程序的最后使用if语句来选择两种存储结构:1。顺序存储2。链式存储;然后我们可以通过调用函数来修改图书价格。
三。第三章【跑步截图】
1.顺序存储结构:
2.链式存储结构:
第四章【源代码详细分析】
# includes dio . h//头文件
#包含malloc.h
#包含字符串. h
#包含算法
typedef int状态;//功能状态
# defineer 0//错误
#定义溢出-2//溢出
#定义确定1//完成
typefstruct//一本书的信息
char ID[20];//书号的长度
char Name[50];//书名的长度,
浮动价格;//价格
}书;
type struct//图书信息表(顺序存储)
BOOK * elem//一本书
int长度;//线性表的长度
}书单;
Status Init(BOOKlist L)//初始化线性表(顺序存储)
l . elem=(BOOK *)malloc(sizeof(BOOK)* 20);//分配线性表空间,线性表长度为20。
如果(!L.elem)退出(溢出);//空间分配失败,退出
l .长度=0;//线性表长度初始化为0
退货OK;//空间分配完成
状态(书籍列表L)//输入书籍数据(顺序存储)
int I=1;
while(1)
if (i 20)退出(溢出);//输入的图书信息数量超过最大值,退出。
scanf (%s %s %f ,L.elem[i].同上,L.elem[i]。姓名,L.elem[i]。价格);//输入帐簿数据
如果(!strcmp(L.elem[i].ID,“0”)!strcmp(L.elem[i].名称,“0”),L.elem[i]。price==0)break;//输入0 0停止输入。
我;
l . length=I-1;
退货OK;
Output(图书列表l)//输出图书信息表(顺序存储)
for(int I=1;i=L .长度;我)
printf (%s %s %.2f\n ,L.elem[i].同上,L.elem[i]。姓名,L.elem[i]。价格);//输出图书信息表
退货OK;
Up price(图书列表l)//提高图书价格(顺序存储)
浮动平均值=0;//平均价格
for(int I=1;i=L .长度;我)
Average=L.elem[i]。价格;//计算所有书籍的总价
平均值/=l . length;//所有图书的平均价格=总价/图书数量
for(int I=1;i=L .长度;我)
if (L.elem[i]。价格=平均)L.elem[i]。价格*=1.1;//高于或等于平均价格的图书价格提高10%
else if (L.elem[i]。平均价格)L.elem[i]。价格*=1.2;//低于平均价格的书籍价格提高20%
printf (%.2f\n ,平均值);//输出平均价格
退货OK;
类型结构链接图书列表//图书信息表的一个节点(链式存储)
书elem//数据字段:存储一本书的信息。
LinkBOOKlist * next//指针字段:指向下一本书的地址
}LinkBOOKlist,* link
Status Linit (link L)//初始化线性表(链式存储)
l=(link)malloc(sizeof(LinkBOOKlist));//分配节点空间
如果(!l)退出(溢出);//空间分配失败,退出
l-next=NULL;//下一本书的地址是空的
退货OK;//空间分配完成
L状态L insert(link L)///通过头插入(链式存储)输入书籍数据
while (1)
link p=(link)malloc(sizeof(LinkBOOKlist));//创建一个新节点并分配空间
如果(!p)退出(溢出);//空间分配失败,退出
scanf (%s %s %f ,p- elem。身份证,p- elem。姓名,p-elem . price);//输入一本书的信息
如果(!strcmp(p- elem。ID,“0”)!strcmp(p- elem。Name, 0 )p-elem . price==0)break;//输入0 0停止输入。
p-next=L-next;//将新节点插入线性表。
l-next=p;
退货OK;
状态link Output(link L)///输出图书信息表(链式存储)
link p=L-next;
而(p!=空)
printf (%s %s %.2f\n ,p- elem。身份证,p- elem。姓名,p-elem . price);//输出图书信息表
p=p-next;
退货OK;
status Up Price(Link L)//提高图书价格(chain storage)
int num=0;//书籍数量
浮动平均值=0;//书籍的平均价格
link p=L-next;
而(p!=NULL)//遍历线性表
average=p-elem . price;//计算图书总价
num//数一数书的数量
p=p-next;
平均值/=num;//图书均价=总价/图书数量
p=L-next;
而(p!=空)
if(p-elem . price=Average)p-elem . price *=1.1;//高于或等于平均价格的所有图书的价格增加10%
else if(p-elem . price Average)p-elem . price *=1.2;//所有低于平均价格的书的价格提高20%
p=p-next;
printf (%.2f\n ,平均值);//输出平均图书价格
退货OK;
int main()
int I;
//在这里设置一个选择函数,选择顺序存储模式或者链式存储模式。
Printf(选择存储模式:1。顺序存储2。链式存储\ n’);
scanf(%d ,
如果(i==1)
//分别调用四个函数,完成对图书价格的修改。
书单L;
init(L);
插入(L);
upprice(L);
输出(升);
else if (i==2)
//分别调用四个函数,完成对图书价格的修改。
链接L;
linit(L);
林塞特(L);
linkup price(L);
link output(L);
返回0;
}
来自博客作者为梦想原创作品。转载请联系作者取得授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。