一、实现内容

二、实验目标

三、信息的定义以及链表的定义

四、数据的初始化

五、伪代码

六、实现功能

七、源码


一、实现内容

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

  1. 根据指定图书个数,逐个输入图书信息;
  2. 逐个显示图书表中所有图书的相关信息;
  3. 能根据指定的待入库的新图书的位置和信息,将新图书插入到图书表中指定的位置;
  4. 根据指定的待出库的旧图书的位置,将该图书从图书表中删除;
  5. 能统计表中图书个数;
  6. 实现图书信息表的图书去重;
  7. 实现最爱书籍查询,根据书名进行折半查找,要求使用非递归算法实现,成功返回此书籍的书号和价格;
  8. 图书信息表按指定条件进行批量修改;
  9. 利用快速排序按照图书价格降序排序;
  10. 实现最贵图书的查找;

二、实验目标

  1. 了解并掌握数据结构和算法设计的方法,具备初步的独立分析和设计能力
  2. 初步掌握软件开发过程的问题分析分析、系统设计、程序编码和测试等基本方法和技能。
  3. 提高综合运用所学的理论知识和方法,独立分析和解决问题的能力。
  4. 训练用系统的观点和软件开发一般规范进行软件的开发,培养软件工作着所具备的科学工作方法和作风。

三、信息的定义以及链表的定义

//图书信息的定义:
typedef struct {char no[8];   //8位书号char name[20]; //书名int price;     //价格
}Book;//链表的定义:
typedef struct LNode{Book   data;       //数据域struct LNode  *next;   //指针域
}LNode,*LinkList;

四、数据的初始化

Book book[50]; //存储初始化图书信息bool tag = true; //用于判断是否结束输入char ch;  //用于判断是否还输入下一个int i = 0,length=0; //length为初始化长度cout << "请输入书号,书名和价格(中间以空格符隔开)" << endl;while (tag) {  //cin >> book[i].no;cin >> book[i].name;cin >> book[i++].price;length++; //图书信息+1cout << "是否还输入下一个Y/N" << endl;cin >> ch;if (ch != 'Y' && ch != 'y')tag = false;}

五、伪代码

//类实现功能的操作
class LibraryMS {private:LNode* first;  //链表头结点public://无参默认构造函数构造函数LibraryMS(){   first = new LNode();    first->next = NULL;   //创建头结点}//有参默认构造函数构造函数LibraryMS(Book book[], int n); //逐个显示图书表中所有图书相关信息void bookPrint();  //能根据指定的待入库的新图书的位置和信息,将新图书插入到图书表中指定的位置void bookInsert(Book book, int n); //根据指定的待出库的旧图书的位置,将该图书从图书表中删除;Book bookDelete(char no[]); //能统计表中图书个数;int bookNumber();//实现图书信息表的图书去重;void bookSameDelete();//实现最爱书籍查询,根据书名进行折半查找,要求使用非递归算法实现,成功返回此书籍的书号和价格;void bookLoveFind(char name[]);//图书信息表按指定条件进行批量修改;void bookModify();//利用快速排序按照图书价格降序排序;void bookSort();//实现最贵图书的查找;void bookExpensive();};

六、实现功能

定义一个包含图书信息(书号、书名、价格)的顺序表。读入相应的图书数据来完成图书信息表的创建,然后统计图书表中的图书个数,同时逐行输出每本图书的信息。

输入

输入 n+1 行,其中前 n 行是 n 本图书的信息(书号、书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔,价格之后没有空格。最后第 n+1 行是输入结束标志:0 0 0(空格分隔的三个 0)。其中书号和书名为字符串类型,价格为浮点数类型。

输出

总计 n+1 行,第 1 行是所创建的图书表中的图书个数,后 n 行是 n 本图书的信息(书号、

书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔。其中价格输出保留两

位小数。

输入样例:

9787302257646 程序设计基础 25.00

9787302164340 程序设计基础(第 2 版) 20.00

9787302219972 单片机技术及应用 32.00

9787302203513 单片机原理与应用技术 26.00

9787810827430 工业计算机控制技术——原理与应用 29.00

9787811234923 汇编语言程序设计教程 32.00

0 0 0

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

读入图书信息表,然后计算所有图书的平均价格,将所有低于平均价格的图书价格提高20%,所有高于或等于平均价格的图书价格提高10%,最后逐行输出价格修改后的图书信息。

输入

输入 n+1 行,其中前 n 行是 n 本图书的信息(书号、书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔,价格之后没有空格。最后第 n+1 行是输入结束标志:0 0 0(空格分隔的三个 0)。其中书号和书名为字符串类型,价格为浮点数类型。

输出

总计 n+1 行,第 1 行是修改前所有图书的平均价格,后 n 行是价格修改后 n 本图书的信息(书号、书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔。其中价格输出保留两位小数。

输入样例:

9787302257646 程序设计基础 25.00

9787302164340 程序设计基础(第 2 版) 20.00

9787302219972 数据挖掘与机器学习 32.00

9787302203513 模式识别与智能计算 26.00

9787810827430 工业计算机控制技术——原理与应用 29.00

9787811234923 操作系统教程 32.00

0 0 0

输出样例:

9787302257646 程序设计基础 30.00

9787302164340 程序设计基础(第 2 版) 24.00

9787302219972 数据挖掘与机器学习 35.20

9787302203513 模式识别与智能计算 28.60

9787810827430 工业计算机控制技术——原理与应用 31.90

9787811234923 操作系统教程 35.20

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

读入相应的图书信息表,然后查找价格最高的图书,输出相应图书的信息。

输出

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

输出样例:

2

9787302219972 数据挖掘与机器学习 35.20

9787811234923 操作系统教程 35.20

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

读入相应的图书信息表,然后根据指定的最爱图书的名字,输出相应图书的信息。

输入

输入1行,为每次待查找的最爱图书名字。

输出

若查找成功,输出k+1行,对于每次查找,第一行是最爱图书数目,同一书名的图书可能有多本,后K行是最爱图书的信息(书号、书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔,其中价格输出保留两位小数。若查找失败:只输出以下提示:抱歉,没有你的最爱!

输出样例

2

9787302257646 程序设计基础 30.00

9787302164340 程序设计基础(第 2 版) 24.00

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

读入指定的待入库的新图书的位置和信息,将新图书插入到图书表中指定的位置上,最后输出新图书入库后所有图书的信息。

输入

总计n+1行,首先输入第1行,内容仅为一个整数,代表待入库的新图书的位置序号,然后输入n行,内容为新图书的信息,书号、书名、价格用空格分隔。

输出

若插入成功,输出新图书入库后所有图书的信息(书号、书名、价格),总计n+1行,每行是一本图书的信息,书号、书名、价格用空格分隔。其中价格输出保留两位小数。

若插入失败,只输出以下提示:抱歉,入库位置非法!

输入样例:

2

9787302265436  计算机导论实验指导 18.00

输出样例:

9787302257646 程序设计基础 30.00

9787302265436 计算机导论实验指导 18.00

9787302164340 程序设计基础(第 2 版) 24.00

9787302219972 数据挖掘与机器学习 35.20

9787302203513 模式识别与智能计算 28.60

9787810827430 工业计算机控制技术——原理与应用 31.90

9787811234923 操作系统教程 35.20

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

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

输入

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

输出

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

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

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

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

输出

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

七、源码

https://blog.csdn.net/qq_52934831/article/details/118096371

数据结构实验一_图书馆信息管理系统相关推荐

  1. Java毕业设计_图书馆信息管理系统

    图书馆信息管理系统_部分源代码分享 图书馆信息管理系统mysql数据库创建语句 图书馆信息管理系统oracle数据库创建语句 图书馆信息管理系统sqlserver数据库创建语句 图书馆信息管理系统sp ...

  2. 数据结构实验报告(一)学生信息管理系统

    大二计算机学生报告的汇总 进入计算机专业以来每天的必要工作就是写报告,按照老师的话来说,我们计算机专业的学生经过长时间的训练,以后出去写代码就跟喝水一样简单.在这里我将发表部分我写的报告,仅以此怀念我 ...

  3. 武汉理工大学数据结构综合实验——图与景区信息管理系统实践

    文章目录 实验目的 主要仪器设备及耗材 一.实验要求 二.分析与设计 1.数据结构的设计 2.核心算法设计 改进DFS算法 搜索最短路径 Prim算法(构建最小生成树) 3.测试用例设计 4.测试结果 ...

  4. c语言程序设计图书管理,C语言程序设计报告 图书馆信息管理系统

    C语言程序设计报告 图书馆信息管理系统 2011 年第二阶段课程设计成果报告实训项目: 程序设计技术课程设计 学号: 0112959 姓名: 张麦华 专业: 信息管理与信息系统 实训日期:2011 年 ...

  5. 数据结构课程设计论文--学生信息管理系统

    数据结构课程设计论文--学生信息管理系统 1.学生成绩分析问题 (1)问题描述.录入并保存一个班级学生多门课程的成绩,并对成绩进行分析. (2)基本要求.a)通过键盘输入各学生的多门课程的成绩,建立相 ...

  6. 图书馆信息管理系统(毕业设计)

    图书馆信息管理系统 项目介绍 超级管理员:可以进行增加管理员,删除管理员. 管理员:可以增加书籍类,以及增加书籍.删除书籍类,以及删除书籍.给用户充值等功能. 用户:可以借书.还书,显示个人信息,模糊 ...

  7. springboot+微信小程序大学校园网上图书馆信息管理系统的设计与实现毕业设计源码091535

    目  录 摘要 1 绪论 1.1研究背景及意义 1.2开发现状 1.3系统开发技术的特色 1.4论文结构与章节安排 2大学校园网上图书馆信息管理小程序系统分析 2.1 可行性分析 2.2 系统流程分析 ...

  8. java商品信息管理实验报告_java学生信息管理系统实验报告

    java学生信息管理系统实验报告 JAVA 程序设计实验报告学 号:姓 名: 班 级: 实验.Java 课程设计--------学生信息管理系统一.实验目的 1. 掌握 Java 基本语法2. 理解面 ...

  9. 图书馆信息管理系统源代码

    学号:200318070147 二零零四年十二月二十一日 一.实训课题 1.课题名称: 图书馆信息管理系统. 2.设计要求: 设计一个简单的<图书馆信息管理系统>计算机软件. 本系统为某学 ...

最新文章

  1. mysql innodb文件_MySQL文件和Innodb引擎文件
  2. java服务器面试_如何面试筛选出动手能力强的Java服务端程序员
  3. h.264语法结构分析
  4. NFS mount.nfs: access denied by server while mounting 一个解决办法
  5. 驱动级模拟驱动级模拟:直接读写键盘的硬件端口!
  6. java笔试题递归,递归(网上搜的一些笔试题)
  7. 数据结构基础概念、逻辑结构、物理结构
  8. [Intel Edison开发板] 04、Edison开发基于nodejs和redis的服务器搭建
  9. java 基本功 —— 内存相关
  10. 让我们揭穿有关学习编码的主要神话
  11. android6要多大运存,内存多大手机才能不卡? 现在终于有了答案
  12. 【安装包】apache-tomcat-8.5.45-windows-x64
  13. MySQL并行复制的深入浅出
  14. java date 没有毫秒,java – SimpleDateFormat没有正确解析毫秒
  15. win10专业版激活方法——亲测可行!!!
  16. 以编程方式打印 XPS 文件
  17. 如何剔除数组中得空字符串 null undefined
  18. Hadoop之MRjob入门
  19. 2017 ACM ICPC Asia Regional - Daejeon Programming Constest
  20. 一入IT深似海 从此妹子为路人

热门文章

  1. SQL SERVER使用STUFF函数拼接
  2. 新手必看,关于ARM的22个常用概念
  3. 【Python常用代码归纳】
  4. MATLAB与高等数学--方程组相平面图(弹簧的阻尼振动图像)
  5. 4月10日服务器例行维护公告,4月10日服务器例行维护公告(已完成)
  6. Swagger2的配置教程
  7. CSDN车牌识别项目
  8. React ref useRef 完全指南
  9. 什么是物联网?通过例子了解物联网,物联网的层次架构,物联网的应用
  10. iocp端口断开_在完成端口IOCP模型判断客户端是否已关闭连接(掉线) | 学步园