图书管理系统pad图 您所在的位置:网站首页 图书管理系统ipo图 图书管理系统pad图

图书管理系统pad图

#图书管理系统pad图| 来源: 网络整理| 查看: 265

目录

一、试验任务和要求

二、算法实现方案

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

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

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

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

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

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

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

三、设计程序的主要功能

1.图书基本信息添加模块

2.图书基本信息查询模块

3.图书基本信息修改模块

4.图书基本信息删除模块

四、程序中所用的数据结构

1.链表操作

2.顺序存储结构

五、算法的伪代码 

 六.算法代码

1.book.cpp

2.book2.cpp

3.book.h

一、试验任务和要求

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

根据指定图书个数,逐个输入图书信息;逐个显示图书表中所有图书的相关信息;能根据指定的待入库的新图书的位置和信息,将新图书插入到图书表中指定的位置;根据指定的待出库的旧图书的位置,将该图书从图书表中删除;能统计表中图书个数;实现图书信息表的图书去重;实现最爱书籍查询,根据书名进行折半查找,要求使用非递归算法实现,成功返回此书籍的书号和价格;图书信息表按指定条件进行批量修改;利用快速排序按照图书价格降序排序;实现最贵图书的查找; 二、算法实现方案 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行,为每次待查找的最爱图书名字。

输出

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

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

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

输入

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

输出

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

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

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

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

输入

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

输出

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

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

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

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

输出

总计输出m+1行(mnumber)          显示本图书信息不存在,请您重新输入

         要么          输出的图书信息如下

case 4:  //修改功能          输入需要修改的第几本图书信息

case 5:  //插入功能            输出您选择要插入新图书的位置           if(inset_numnumber)            输出输入的插入位置超出原有范围请重新输入            for(int i=number;i>=inset_num;i--)            Book[i]=Book[i-1];           要么            for(int i=number;i>=inset_num;i--)            Book[i]=Book[i-1];            输出将要插入新位置的图书相关信息(编号、书名、作者、出版社):  

 六.算法代码 1.book.cpp #include "book.h" #include #include using namespace std; #include"book.h" #pragma once SqList::SqList() { cout B[length].no; cin >> B[length].price; if (B[length].name[0] == '0' && B[length].no[0] == '0' && B[length].price == 0.0) break; } for (int i = 0; i < length; i++) elem[i] = B[i]; cout > MostLove.name; MostLove.price = 0; } void SqList::Cout() { for (int len = 0; len < length; len++) { cout.setf(ios::fixed); cout


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有