创建一个图书信息管理的顺序表,数据有书本序号、书名、价格,以及对顺序表的增删改查的操作(c++)

这篇具有很好参考价值的文章主要介绍了创建一个图书信息管理的顺序表,数据有书本序号、书名、价格,以及对顺序表的增删改查的操作(c++)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

题目:

创建一个书本信息的顺序表,数据有书本序号、书名、价格,以及对顺序表的增删改查的操作。

一、创建顺序表

typedef struct
{
	char no[20];
	char name[50];
	float price;
 } book;
typedef struct {
	book *elem; //存储空间的基地址
	int length; //当前长度
} SqList;

二、顺序表的初始化+输入

Status InitList(SqList &L) { //算法2.1 顺序表的初始化
	//构造一个空的顺序表L
	
	L.elem = new book[MAXSIZE]; //为顺序表分配一个大小为MAXSIZE的数组空间
	if (!L.elem)
		exit(OVERFLOW); //存储分配失败退出
	L.length = 0; //空表长度为0
//	int i,n;
//	cout<<"请输入n的值:"<<endl;
//	cin>>n;
///	cout<<"请输入他们的值:"<<endl;
//	cout<<"书号"<<" "<<"书名"<<" "<<"价格"<<endl; //也可在开辟空间里创建输入 
///	for(int i;i<n;i++)
//	{
//		cin>>L.elem[i].name>>L.elem[i].no>>L.elem[i].price ;
//		L.length++;
//	}
	return OK;
}
void show(SqList &L)//输入信息 
{
L.length = 0; //空表长度为0
	int i,n;
	cout<<"请输入n的值:"<<endl;
	cin>>n;
	cout<<"请输入他们的值:"<<endl;
	cout<<"书号"<<" "<<"书名"<<" "<<"价格"<<endl; 
	for(int i;i<n;i++)
	{
		cin>>L.elem[i].no>>L.elem[i].name>>L.elem[i].price ;
		L.length++;
	}
}

三、顺序表的取值

Status GetElem(SqList L, int i, book &e) {//算法2.2 顺序表的取值
if(i<1||i>L.length ) return ERROR;
e=L.elem[i-1] ;
cout<<e.no<<"  "<<e.name<<"  "<<e.price<<endl;
return OK;
	//TODO
}

四、顺序表的查找

int LocateElem(SqList L, book e) { //算法2.3 顺序表的查找
	//顺序表的查找 
	for(int i=0;i<L.length ;i++)
	if(!strcmp(L.elem[i].no,e.no))//这里按书号cha no[10],来查找; 
	//重点,重点,重点。需要用#include<string.h>,strcmp比较两个字符串是否相等,相等则为0;
	//如果按照float,int  price(非数组)来查找,直接 int LocateElem(SqList L, book e) { //算法2.3 顺序表的查找
	//顺序表的查找 
//	for(int i=0;i<L.length ;i++)
	//if(L.elem[i].price==e.price))即可; 
     return i+1;
return 0;
}

五、顺序表的插入

Status ListInsert(SqList &L, int i, book e) { //算法2.4 顺序表的插入
	//在顺序表L中第i个位置之前插入新的元素e
	//i值的合法范围是1<=i<=L.length+1
	if((i<1)||(i>L.length +1)) return ERROR;
	if(L.length ==MAXSIZE)return ERROR;
	for(int j=L.length -1;j>=i-1;j--)
	L.elem[j+1]=L.elem [j];
	L.elem[i-1]=e;
	++L.length ;
	return OK;
}

六、顺序表的删除

Status ListDelete(SqList &L, int i) { //算法2.5 顺序表的删除
	//在顺序表L中删除第i个元素,并用e返回其值
	//i值的合法范围是1<=i<=L.length

	//TODO
	
	if((i<1)||(i>L.length ))return ERROR;
	for(int j=i;j<=L.length -1;j++)
	L.elem[j-1]=L.elem [j];
	--L.length ;
	return OK;
	
}

七、顺序表的输出

void VisitList(SqList L)//输出所有元素 
{ 
	int i;
	for(i=0;i<L.length;i++)
cout<<L.elem[i].no<<"  "<<L.elem[i].name<<"  "<<L.elem[i].price<<endl;
	cout<<endl;
}

全部代码:

#include<iostream>
#include<stdlib.h>
#include<fstream>
#include<string>
#include<iomanip>
using namespace std;
#include <string.h>
#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef int Status; //Status 是函数返回值类型,其值是函数结果状态代码。
typedef int ElemType; //ElemType 为可定义的数据类型,此设为int类型

#define MAXSIZE 100			//顺序表可能达到的最大长度
typedef struct
{
	char no[20];
	char name[50];
	float price;
 } book;
typedef struct {
	book *elem; //存储空间的基地址
	int length; //当前长度
} SqList;

Status InitList(SqList &L) { //算法2.1 顺序表的初始化
	//构造一个空的顺序表L
	
	L.elem = new book[MAXSIZE]; //为顺序表分配一个大小为MAXSIZE的数组空间
	if (!L.elem)
		exit(OVERFLOW); //存储分配失败退出
	L.length = 0; //空表长度为0
//	int i,n;
//	cout<<"请输入n的值:"<<endl;
//	cin>>n;
///	cout<<"请输入他们的值:"<<endl;
//	cout<<"书号"<<" "<<"书名"<<" "<<"价格"<<endl; //也可在开辟空间里创建输入 
///	for(int i;i<n;i++)
//	{
//		cin>>L.elem[i].name>>L.elem[i].no>>L.elem[i].price ;
//		L.length++;
//	}
	return OK;
}
void show(SqList &L)//输入信息 
{
L.length = 0; //空表长度为0
	int i,n;
	cout<<"请输入n的值(数据的个数):"<<endl;
	cin>>n;
	cout<<"请输入他们的值:"<<endl;
	cout<<"书号"<<" "<<"书名"<<" "<<"价格"<<endl; 
	for(int i;i<n;i++)
	{
		cin>>L.elem[i].no>>L.elem[i].name>>L.elem[i].price ;
		L.length++;
	}
}
Status GetElem(SqList L, int i, book &e) {//算法2.2 顺序表的取值
if(i<1||i>L.length ) return ERROR;
e=L.elem[i-1] ;
cout<<e.no<<"  "<<e.name<<"  "<<e.price<<endl;
return OK;
	//TODO
}
int LocateElem(SqList L, book e) { //算法2.3 顺序表的查找
	//顺序表的查找 
	for(int i=0;i<L.length ;i++)
	if(!strcmp(L.elem[i].no,e.no))//这里按书号cha no[10],来查找; 
	//重点,重点,重点。需要用#include<string.h>,strcmp比较两个字符串是否相等,相等则为0;
	//如果按照float,int  price(非数组)来查找,直接 int LocateElem(SqList L, book e) { //算法2.3 顺序表的查找
	//顺序表的查找 
//	for(int i=0;i<L.length ;i++)
	//if(L.elem[i].price==e.price))即可; 
     return i+1;
return 0;
}
Status ListInsert(SqList &L, int i, book e) { //算法2.4 顺序表的插入
	//在顺序表L中第i个位置之前插入新的元素e
	//i值的合法范围是1<=i<=L.length+1
	if((i<1)||(i>L.length +1)) return ERROR;
	if(L.length ==MAXSIZE)return ERROR;
	for(int j=L.length -1;j>=i-1;j--)
	L.elem[j+1]=L.elem [j];
	L.elem[i-1]=e;
	++L.length ;
	return OK;
}
Status ListDelete(SqList &L, int i) { //算法2.5 顺序表的删除
	//在顺序表L中删除第i个元素,并用e返回其值
	//i值的合法范围是1<=i<=L.length

	//TODO
	
	if((i<1)||(i>L.length ))return ERROR;
	for(int j=i;j<=L.length -1;j++)
	L.elem[j-1]=L.elem [j];
	--L.length ;
	return OK;
	
}
void VisitList(SqList L)//输出所有元素 
{ 
	int i;
	for(i=0;i<L.length;i++)
cout<<L.elem[i].no<<"  "<<L.elem[i].name<<"  "<<L.elem[i].price<<endl;
	cout<<endl;
}
int main()
{
	SqList S;
	book e;
	InitList(S)	;//建空表 
	show(S);//输入 
cout<<"输出Book的全部数据:"<<endl;
VisitList(S);//输出 
cout<<"取值,取值第一个数据的值"<<endl; 
GetElem(S,1,e);
cout<<"查找,这里按照书号char no[]来查找:"<<endl;
cin>>e.no;//关键需要给 LocateElem(S,e)中给; 
if(LocateElem(S,e)==0)
cout<<"没有找到e.no的数据"<<endl;
else
cout<<"找到e.no了,位置在"<<LocateElem(S,e)<<endl;
cout<<"在第二个位置中插入书号,书名,价格" <<endl;
cin>>e.no>>e.name>>e.price;
ListInsert(S,2,e);
cout<<"插入后的结果为"<<endl;
VisitList(S);//输出
cout<<"删除第二个数据后,结果为"<<endl;
ListDelete(S,2);
VisitList(S);//输出 
cout<<"输出数据长度为:";
cout<<S.length;
}


结果:

定义一个包含图书信息的顺序表,C++,c++,c语言,数据结构,算法定义一个包含图书信息的顺序表,C++,c++,c语言,数据结构,算法


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了创建一个书本信息的顺序表,数据有书本序号、书名、价格,以及对顺序表的增删改查的操作。文章来源地址https://www.toymoban.com/news/detail-724542.html

到了这里,关于创建一个图书信息管理的顺序表,数据有书本序号、书名、价格,以及对顺序表的增删改查的操作(c++)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用eclipse创建一个图书管理系统(2)---------逻辑的实现

    就像使用C语言写代码一样。比如要用 ​​​​​​ C语言写一个小游戏的代码,我们的逻辑实现是在哪里实现的啊?是不是在一个test.c源文件里面啊?没错,就是的!在之前的文章里,我说过我定义的Main函数就像C语言里的test.c文件一样!所以,为了不打自己的脸。那我便在

    2024年02月02日
    浏览(24)
  • 【数据库课设】图书馆资源管理系统 源码+流程图+结构设计(借还图书 逾期罚款 图书管理 读者管理 信息查询)python实现

    一个管理员编号对应一个密码,且需要有管理员注册密匙。 可以在图书信息表中录入、修改、删除图书。 可以在图书信息表中查询书籍。 可以编辑图书借阅、归还信息。 可以编辑欠款信息。 可以编辑读者信息表。 图书馆注册,获得读者编号。 可以在图书信息表中查阅书籍

    2024年02月10日
    浏览(32)
  • 图书信息管理系统(JAVA版)连接MySQL数据库+GUI

    本次项目是实现的一个图书信息管理系统,功能算不上太多,但也比较齐全。 随着社会的发展,人们对知识的需求也在不断增长。书籍作为人们获取并增长知识的主要途径,使得书城,书店在人们的生活中占有了一定的位置。但是近几年,随着书量的不断增长,造成了图书挤

    2024年02月04日
    浏览(40)
  • 将Java与数据库连接起来(配置idea),实现一个简单的图书管理系统

    目录 1.通过connector连接Java和Mysql数据库 (1)首先配置idea (2)如何把java和mysql连接起来 1.简单连接 2.认识PrepareStatement 2.实现简单的图书管理系统 (1)创建数据库jdbc,并且创建出book表  (2)在idea中书写代码将mysql与java连接,实现基本的增删改查 1.JdbcUtiles类,一个使用jdbc的工具

    2024年02月11日
    浏览(33)
  • 创建图书表book,保存图书的信息,要求使用InnoDB引擎存储

    我们基于图书馆管理数据库dblibrary,现需要在该数据库中完成创建和管理表的操作。 操作项目如下: 先用MySQL8.0环境 (1)创建图书表book,保存图书的信息。图书表book结构如下表所示。要求使用InnoDB引擎存储。 图书表book结构 字段名称 字段内容 数据类型 长度 说明 Bookid 图

    2024年02月08日
    浏览(28)
  • 基于链式存储结构的图书信息表的创建和输出

     #includeiostream #includestring.h #includeiomanip #define OK 1 #define ERROR 0 #define OVERFLOW -2 using namespace std; typedef struct {//图书信息定义     char no[20];    //图书ISBN     char name[50];   //图书名字     float price;   //图书价格 }Book; typedef struct LNode {//图书信息表的链式存储结构     Book data;    

    2024年02月06日
    浏览(29)
  • 安卓期末大作业——图书信息管理系统

    前言 随着信息技术的高速发展,科技逐渐走进各行各业,帮助人们快速、便利地完成一些工作。BMS系统是基于Android移动设备的应用软件,该系统能够帮助用户在家里通过手机查看相应图书馆的馆藏情况,而不用到图书馆中查找。同时该系统还能够帮助管理员更加方便的查阅

    2024年02月03日
    浏览(32)
  • 图书信息管理系统(python,sqlite)

           sqlite数据库具体的结构设计和数据的截图放最后,因为图片有点多,但是能更好的帮助大家理解和实现该系统  目录 一、任务描述 二、功能实现 三、数据库设计​编辑 四、程序流程图(某些新加功能没有)  五、python代码(带注释) 六、具体数据库结构设计截图

    2024年02月03日
    浏览(36)
  • 基于Python的图书信息管理系统

    进入21世纪以来,信息技术从根本上推动了图书馆的飞速发展,计算机和计算机管理系统已成为图书馆进行图书管理的主要设备和系统。虽然目前很多大型的图书馆已经有一整套比较完善的管理系统,但是在一些中小型的图书馆中,大部分工作仍需手工完成,工作起来效率比

    2024年02月04日
    浏览(43)
  • 实验一 基于线性表的图书信息管理

    仅供参考学习,C语言书写 严蔚敏老师数据结构第二版C语言版实验一,可复制直接运行 以下是输入的数据(严老师课本提供的数据) 欢迎大家私信,一起讨论 1、基于顺序表存储结构的图书信息表的创建和输出 9787302257646 程序设计基础 25.00 9787302164340 程序设计基础(第2版) 2

    2024年02月08日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包