图书管理系统pad图 | 您所在的位置:网站首页 › 图书管理系统ipo图 › 图书管理系统pad图 |
目录 一、试验任务和要求 二、算法实现方案 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 实验室设备网 版权所有 |