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

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

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

本文采用编程语言为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
  • 36
    点赞
  • 257
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值