数据结构与算法-图书管理系统实验(一)

二、实验环境

Visual Studio 

三、实验内容(或要求)

顺序表的基本运算实现,要求至少具有以下功能接口定义,并设计主程序进行接口功能测试。

  1. 初始化顺序表;
  2. 判断是否为空;
  3. 插入运算;
  4. 删除运算;
  5. 查找运算;
  6. 输出顺序表;
  7. 释放顺序表

四、实验步骤

设计并实现一个图书信息管理系统。根据实验要求设计该系统的菜单和交互逻辑,并编码实现增删改查的各项功能。 该系统至少包含以下功能:

根据指定图书个数,逐个输入图书信息;

逐个显示图书表中所有图书的相关信息;

能根据指定的待入库的新图书的位置和信息,将新图书插入到图书表中指定的位置;

根据指定的待出库的旧图书的位置,将该图书从图书表中删除;

能统计表中图书个数;

实现图书信息表的图书去重;

实现最爱书籍查询,根据书名进行折半查找,要求使用非递归算法实现,成功返回此书籍的书号和价格;

图书信息表按指定条件进行批量修改;

利用快速排序按照图书价格降序排序;

实现最贵图书的查找

五、记录与处理(实验数据、误差分析、结果分析)

1.基于顺序存储/链式存储结构的图书信息表的创建和输出

定义一个包含图书信息(书号、书名、价格)的顺序表。读入相应的图书数据来完成图书信息表的创建,然后统计图书表中的图书个数,同时逐行输出每本图书的信息。输入输入 n+1 行,其中前 n 行是 n 本图书的信息(书号、书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔,价格之后没有空格。最后第 n+1 行是输入结束标志:0 0 0(空格分隔的三个 0)。其中书号和书名为字符串类型,价格为浮点数类型。输出总计 n+1 行,第 1 行是所创建的图书表中的图书个数,后 n 行是 n 本图书的信息(书号书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔。其中价格输出保留两位小数。

2.基于顺序存储/链式存储结构的图书信息表的修改

读入图书信息表,然后计算所有图书的平均价格,将所有低于平均价格的图书价格提高20%,所有高于或等于平均价格的图书价格提高10%,最后逐行输出价格修改后的图书信息。输入输入 n+1 行,其中前 n 行是 n 本图书的信息(书号、书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔,价格之后没有空格。最后第 n+1 行是输入结束标志:0 0 0(空格分隔的三个 0)。其中书号和书名为字符串类型,价格为浮点数类型。输出总计 n+1 行,第 1 行是修改前所有图书的平均价格,后 n 行是价格修改后 n 本图书的信息(书号、书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔。其中价格输出保留两位小数。

3.基于顺序存储/链式存储结构的图书信息表的最贵图书查找

读入相应的图书信息表,然后查找价格最高的图书,输出相应图书的信息。输出总计 m+1 行,其中,第 1 行是最贵的图书数目,(价格最高的图书可能有多本),后m行是最贵图书的信息,每本图书信息占一行,书号、书名、价格用空格分隔。其中价格输出保留两位小数。

4.基于顺序存储/链式存储结构的图书信息表的最爱图书的查找

读入相应的图书信息表,然后根据指定的最爱图书的名字,输出相应图书的信息。输入输入1行,为每次待查找的最爱图书名字。

5.基于顺序存储/链式存储结构的图书信息表的新书入库

读入指定的待入库的新图书的位置和信息,将新图书插入到图书表中指定的位置上,最后输出新图书入库后所有图书的信息。输入总计n+1行,首先输入第1行,内容仅为一个整数,代表待入库的新图书的位置序号,然后输入n行,内容为新图书的信息,书号、书名、价格用空格分隔。输出若插入成功,输出新图书入库后所有图书的信息(书号、书名、价格),总计n+1行,每行是一本图书的信息,书号、书名、价格用空格分隔。其中价格输出保留两位小数。若插入失败,只输出以下提示:抱歉,入库位置非法!

6.基于顺序存储/链式存储结构的图书信息表的旧书出库

读入指定的待出库的旧图书的书号,将该图书从图书表中删除,最后输出旧图书出库后所有图书的信息。

输入:输入待出库的旧图书的书号;

输出若删除成功,输出旧图书出库后所有图书的信息(书号、书名、价格),每行是一本图书的信息,书号、书名、价格用空格分隔。其中价格输出保留两位小数。

若删除失败,只输出以下提示:出库失败,未找到该图书!

7.基于顺序存储/链式存储结构的图书信息表的图书去重

出版社出版的任何一本图书的书号(ISBN)都是唯一的,即图书表中不允许包含书号重复的图书。读入相应的图书信息表(事先加入书号重复的记录),然后进行图书的去重,即删除书号重复的图书(只留第一本),最后输出去重后所有图书的信息。

输出

总计输出m+1行(m<=n),其中,第一行是去重后的图书数目,后m行是去重后图书的信息(书号、书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔,其中价格输出保留两位小数。

实验源码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_BOOK 1000
#define MAX_COMMENTS 10000
struct book//书籍信息的结构体

  • 52
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值