数据结构:实现图书信息管理系统

您所在的位置:网站首页 数据结构用什么实现的 数据结构:实现图书信息管理系统

数据结构:实现图书信息管理系统

2024-07-11 16:43:34| 来源: 网络整理| 查看: 265

数据结构:顺序表实现图书信息管理系统

大一的数据结构实验拖延了相当长一段时间,最近老师终于让我们实验形式完成一次数据结构作业,我把自己的渣程序放在这里,希望能对肝实验的同学提供帮助,也希望各位大神路过的时候能指出我的不足

实验要求 一、基本要求

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

2、将图书按照价格降序排序,逐行输出排序后每本图书的信息。

3、将所有低于平均价格的图书价格提高 20%,所有高于或等于平均价格的图书价格提高 10%,最后逐行输出价格修改后的图书信息。

4、输出逆序存储后每本图书的信息。

5、查找价格最高的图书,输出相应图书的信息。

6、根据指定的最爱图书的名字,查找最爱的图书,输出相应图书的信息。

7、根据指定的最佳位置的序号,查找该位置上的图书,输出相应图书的信息。

8、将新图书插入到图书表中指定的位置上。

9、根据指定的待出库的旧图书的位置,将该图书从图书表中删除,最后输出 该图书出库后的所有图书的信息。

二、老师要求

1、尽量用同一个表实现上述功能

2、可自行增加该系统功能

三、个人附加功能

1、以彩色界面呈现该系统

2、可一键清空所有数据

3、可按作者查找书籍(作者名需完整)

4、读取文件中的书籍信息并存入系统

5、可临时输入数据

6、以保留两位小数形式显示价格(怎么感觉这么多余。。。)

实现代码

头文件以及定义顺序表和书籍结构

#include #include #include #include #include #include #include #include #define maxsize 30 using namespace std; typedef struct { //定义结构体:book int num; //序号 char name[maxsize]; //书名 float price; //价格 char writer[maxsize]; //作者 char time[11]; //出版时间 }book; typedef struct{ book *data; //数据存储域 int length; //长度域 }linklist;

创建空表

void init(linklist &L) { L.data=(book*)malloc(maxsize*sizeof(book)); L.length=0; //开创空间后再设置长度为0 }

输出信息

void printflist(linklist &L) { int i; for(i=0;i int k; if(iL.length+1) //指定元素位置过于奇特 return false; for(k=i;k int i,j; int n=L.length; linklist t; for(i=0;i if(L.data[i].price double sum=0; int i; for(i=0;i if(L.data[i].priceL.data[i].price=L.data[i].price*11/10;} } coutS.data[i]=L.data[i];} for(i=0;i int i,n=0; char bookname[20]; coutbookname; int num=L.length; for(i=0;i n++; cout if(strcmp(L.data[i].writer,bookname)==0) { n++; coutreturn false;} i--;//对应下标状态; for(j=L.length;j>i;j--) {L.data[j]=L.data[j-1];}//i后所有元素在顺序表上向后移动一位 strcpy(L.data[i].name,e.name); L.data[i].price=e.price; strcpy(L.data[i].writer,e.writer);//将e放入第i位 strcpy(L.data[i].time,e.time); L.length=L.length+1; return true; }

查找最贵的书

bool findmax(linklist &L) { if(L.length=0) {return false;} int i=1,index=0; float exp=L.data[0].price; while(i exp=L.data[i].price; index=i; } } coutcout L.data[L.length].num=L.length+1; cout cout linklist L; book e; init(L); int choice; do{ char a; system("cls"); //刷屏函数,用于返回主菜单,保持页面整洁 system("color E0"); //页面颜色为黄底黑字 meau(); cin>>choice; switch(choice){ case 1:init(L); input(L); break; case 2:coute.name>>e.price>>e.writer>>e.time; coute.num; insert(L,e.num,e); break; case 3:printflist(L); coutz; if(deletelist(L,z)==1) coutdeletelist(L,i1);} cout break; } case 7:moneychange(L); couta; if(a=='b'||a=='B'){ break; } case 8:chaname(L); couta; if(a=='b'||a=='B'){ break; } case 9:chawriter(L); couta; if(a=='b'||a=='B'){ break; } case 10:blacktowhite(L); couta; if(a=='b'||a=='B'){ break; } case 11:pricejiang(L); couta; if(a=='b'||a=='B'){ break; } case 12:input(L); couta; if(a=='b'||a=='B'){ break; } } }while(choice!=0); return 0; }

运行结果 创建表格 上述界面按Y之后 在这里插入图片描述 在这里插入图片描述

实验结果与分析

该程序历时3小时完成,其中我遇到了较多困难,如文件无法读入、程序运行时崩溃、显示信息时只显示了乱码等情况,程序前期运行过程中有很多的失误,导致了效率低下;但最终我还是通过询问老师,查阅书籍等方式改正了错误,实验结果的正确性也得到了验证。虽说可能仍存在一些不足之处,我也会虚心接受,在过程中力求做到尽可能的完善



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭