数据结构实验--基于线性表的图书信息管理系统

本文介绍如何使用数据结构中的线性表实现图书信息管理系统,涵盖了顺序存储和链式存储结构,包括创建、输出、排序、修改等10项基本操作。系统支持图书的增删查改以及去重等功能,采用C语言编程实现。
摘要由CSDN通过智能技术生成

本文是依据数据结构习题解析与实验指导(李冬梅)一书中的第一个实验–基于线性表的图书信息管理系统所写的。

之所以写这个,是因为这个实验不仅涉及到线性表的结构设计,还包括一些线性表的基本操作,个人认为,做完这个实验,基本上对线性表就有一个基本的了解的。

本文采用编程语言为C

先说一下题目简介,自己设计一张图书信息表,包括以下10项常用的基本操作:图书信息表的创建和输出、排序、修改、逆序村春、最贵图书的查找、最爱图书的查找、最佳位置图书的查找、新图书的入库、旧图书的出库、图书去重。
要求分别用顺序存储结构和链式存储结构来实现。

1.顺序存储结构

1.首先说一下定义的结构:

#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 20
typedef struct{
   
    char number[100];
    char name[100];
    float price;
}information;
typedef struct Node{
   
    information date[MAXSIZE];
    int length;
}table;

2.初始化操作

table Init(){
   
    table t;
    t.length=0;
    return t;
}

还有显示操作:

void ShowTable(table *T){
   
    ChangePrice(T);
    for(int i=0;i<T->length;++i){
   
        printf("%s  %s  %.2f\n",T->date[i].number,T->date[i].name,T->date[i].price);
    }
}

3.表的创建和输出(因为输入是有一定的格式的,详情请看书,本人有点懒,没有搜到相关pdf,又不喜欢打字,就辛苦你们了🙃)输入以0 0 0 结束

void CreateTable(table *T){
   
        for(int i=T->length;;++i){
   
            scanf("%s %s %f",&T->date[i].number,&T->date[i].name,&T->date[i].price);
            if(T->date[i].number[0]=='0'){
   
                break;
            }
            else{
   
                T->length++;
            }

        }

}

4.表的排序(按照图书价格降序排列)

void SortTable(table *T){
   
    for(int i=0;i<T->length;++i){
   
        for(int j=i+1;j<T->length;++j){
   
            if(T->date[i].price<T->date[j].price){
   
                information temp;
                temp=T->date[i];
                T->date[i]=T->date[j];
                T->date[j]=temp;
            }
        }
    }
}

5.表的修改(修改图书相应的价格,这里不厚道的😀)

void ChangePrice(table *T){
   
    float sum=0;
    for(int i=
  • 36
    点赞
  • 255
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
实验目的: 1.熟悉线性表的概念和基本操作。 2.掌握线性表的顺序存储和链式存储方式,并能够进行相应的操作。 3.设计和实现基于线性表图书信息管理系统。 实验内容: 1.线性表的概念和基本操作 线性表是由n个数据元素(a1,a2,……an)组成的有限序列,其中n为表长,当n=0时,称为空表。 线性表的基本操作包括:初始化、插入、删除、查找、遍历等。 2.线性表的顺序存储 线性表的顺序存储方式是将线性表中的元素按其逻辑顺序依次存放在一段连续的存储单元中,称为顺序表。 顺序表的基本操作包括:初始化、插入、删除、查找、遍历等。 3.线性表的链式存储 线性表的链式存储方式是将线性表中的元素存放在任意的存储单元中,通过指针将各个存储单元连接起来,称为链表。 链表的基本操作包括:初始化、插入、删除、查找、遍历等。 4.图书信息管理系统 图书信息管理系统是一种基于线性表的应用,主要用于管理图书信息。 图书信息管理系统的功能包括:添加图书信息、删除图书信息、查找图书信息、修改图书信息、显示图书信息等。 实验步骤: 1.设计数据结构,包括图书信息结构体、顺序表结构体、链表结构体等。 2.实现顺序表的基本操作,包括初始化、插入、删除、查找、遍历等。 3.实现链表的基本操作,包括初始化、插入、删除、查找、遍历等。 4.设计和实现图书信息管理系统,包括添加图书信息、删除图书信息、查找图书信息、修改图书信息、显示图书信息等功能。 5.测试和调试系统,确保系统能够正常运行。 实验总结: 本次实验主要学习了线性表的概念和基本操作,掌握了线性表的顺序存储和链式存储方式,并设计和实现了基于线性表图书信息管理系统。通过本次实验,我深入了解了线性表的原理和应用,提高了数据结构的编程能力和实践能力,为以后的学习和应用打下了基础。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值