图书管理系统数据结构课设,图书管理系统数据结构课程设计

  图书管理系统数据结构课设,图书管理系统数据结构课程设计

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • mysql复合索引和组合索引,mysql组合索引数据结构
  • mysql复合索引和组合索引,mysql组合索引数据结构,Mysql之组合索引方法详解
  • mysql复合索引和组合索引,mysql复合索引数据结构
  • mysql复合索引和组合索引,mysql复合索引数据结构,MySQL的复合索引总结
  • b+树 多路搜索树,数据结构中树的分类
  • b+树 多路搜索树,数据结构中树的分类,数据结构-树(三):多路搜索树B树、B+树
  • avl树的构造,avl树特性,数据结构之AVL树详解
  • 数据结构c语言哈夫曼树,c语言哈夫曼树的构造,使用C语言详解霍夫曼树数据结构
  • c语言数据结构算法编程库,数据结构 c语言中文网
  • c语言数据结构算法编程库,数据结构 c语言中文网,C语言编程数据结构基础详解小白篇
  • c++纸牌游戏,数据结构纸牌游戏c语言
  • c++纸牌游戏,数据结构纸牌游戏c语言,C语言实战之纸牌游戏
  • ,,c#解析jobject的数据结构
  • ,,javascript数据结构之多叉树经典操作示例【创建、添加、遍历、移除等】
  • ,,Java 数据结构与算法系列精讲之背包问题
  • 留言与评论(共有 条评论)
       
    验证码: