¿Puedo usar C++ para crear mi propio software de programación?
//main()
#ifndef LIBRARY_H
#includelt;iostreamgt;
#includelt;stringgt;
#includelt;iomanipgt;
#include lt;fstreamgt;
#include "book.h"
#define MAXSIZE 100 //Máximo de biblioteca número de libros
usando el espacio de nombres std;
clase Biblioteca
{
privado:
Libro Libros [ MAXSIZE];
int num; //El número actual de libros
public:
Library()
~Library( );
int In_Book(Libro c); //Insertar libro
int Out_BookN(char *b); //Eliminar libro
void Show_Book() ; //Mostrar todos los libros de la biblioteca
void Change_Book(int b, Libro B); //Modificar el libro
void BookSort() //Según el libro. número de grande a grande Ordenación pequeña
int Search_BookNo(char *b); //Buscar por número de libro
int Search_BookName(char *s); /p>
int Seach_BookWriter(char *s); //Buscar por autor
int Seach_Bookmoney(int a, int b); //Buscar por rango de precios
void; dataSave(); // Almacenar datos
void dataRead(); //Leer datos
};
Biblioteca:: Biblioteca()
{
dataRead();
}
Biblioteca::~Biblioteca()
{
dataSave() ;
}
int Biblioteca::In_Book(Libro c)
{
if(numgt;MAXSIZE -1) p>
{ coutlt;lt;"¡La biblioteca está llena! ";
devuelve 0;
}
if(Seach_BookNo(c.GetNo())==-1)
{ num;
Libros[num]=c;
dataSave();
devuelve 1;
{
coutlt;lt;"¡Este ISBN ya existe! "lt;lt;endl;
devuelve 0;<
/p>
}
}
int Biblioteca::Out_BookN(char *b)
{
int i, j;
i=Seach_BookNo(b);
if(i!=-1)
{
for(j= i;jlt;=num;j)
Libros[j]=Libros[j 1];
num--;
dataSave();
return 1;
}
else
{coutlt;lt;"¡No existe tal libro!"lt;lt;endl ;
return 0;}
}
void Library::Show_Book()
{
int i;
for(i=0;ilt;=num;i)
Libros[i].Print();
coutlt;lt;endl ;
}
int Biblioteca::Seach_BookNo(char *b)
{
int
for (i=0;ilt;=num;i)
if(Libros[i].ifLibroNo(b))
{Libros[i].Print();
p>return i;}
return -1
}
int Biblioteca:: Search_BookName(char* s)
{
int i, count=0
for(i=0; ilt; =num; i )
if( Libros[i] .ifBName(s))
{Libros[i].Print()
recuento
}
recuento de retornos;
}
int Biblioteca:: Seach_BookWriter(char* s)
{
int i, recuento=0 ;
for(i=0;ilt;=num;i)
if(Libros[i].ifWriter(s))
{Libros[ i].Imprimir ();
recuento
}
devolver recuento
}
int; Biblioteca::Seach_Bookmoney (int a, int b)
{
int i, count=0
for(i=0; ilt; =num; ; i )
if(Libros[i].ifmoney(a, b))
{Libros[i].Print()
contar;
}
país de retorno
t;
}
void Library::Change_Book(int b, Libro B)
{
Libros[b]=B ;
dataSave();
}
void Library::dataSave() //Función de almacenamiento de datos, escribe read[] en el archivo Book.dat en
{
fstream file("Book.dat",ios::out);
for (int i=0; ilt;=num; i )
file.write((char *)&Books[i],sizeof(Books[i]));
file.close();
}
void Library::dataRead() //Constructor, lee Book.dat en read[]
{
Book s ;
num=-1;
fstream file("Book.dat", ios::in);
while (1)
{
file.read((char *)amp; s, sizeof(s));
if (!file) break
num; >
Libros[num]=s;
}
file.close();
}
void Biblioteca: :BookSort() //Clasificación de burbujas, de pequeña a grande
{
int i, j
Libro B
for(i=0;ilt;=num;i)
for(j=0;jlt;=num-i-1;j)
if(strcmp(Libros[ j].GetNo(), Libros[j 1].GetNo())gt 0)
{
B=Libros[j];
Libros[j]=Libros[j 1]
Libros[j 1]=B
}
dataSave() ;
}
#endif
//book.h
#ifndef BOOK_H
#includelt;
#includelt;stringgt;
#includelt;iomanipgt;
#include lt;fstreamgt;
usando el espacio de nombres std; >clase Libro
{
privado:
char Bname[20]; //Nombre del libro
char Writer[20]; //Autor
char BookNo[7]; //Número de libro
dinero flotante /
/precio
público:
Libro(char *N="*****", char *W="***", char *BN="000000", float M=0.00);
void Print(); //Mostrar
int ifBookNo(char *b); //Juzga si el número del libro es el mismo que b p>
char* GetNo(); //Obtener el número del libro
int ifBName(char* s); //Determinar si el título del libro es el mismo que s
int ifWriter(char* s); //Juzga si el autor es el mismo que s
int ifmoney(int a, int b); //Juzga si el precio está entre a y b p>
};
Libro::Libro(char *N, char *W, char *BN, float M)
{
strcpy (Bnombre, N);
strcpy(Escritor, W);
strcpy(LibroNo, BN
dinero=M; p>}
void Libro ::Print()
{
coutlt;lt;BookNolt;lt;setw(10)lt;lt;"Libro título: "lt;lt;Bnamelt;lt;setw (5)lt;lt;"Autor:"lt;lt;Writerlt;lt;"Precio:"lt;lt;moneylt;lt;endl;
}
int Libro :: ifLibroNo(char* b)
{
if(strcmp(LibroNo, b)==0)
devuelve 1;
else
devuelve 0
}
char* Libro::GetNo() p>
{
return LibroNo;
}
int Libro::ifBName(char* s)
{
if(strcmp(Bname, s)==0)
devuelve 1
si no, devuelve 0
}
int Libro::ifWriter(char* s)
{
if(strcmp(Writer, s)==0)
devuelve 1 ;
else devuelve 0
}
int Libro::ifmoney(int a, int b)
{
if(moneygt;=aamp;amp ;moneylt;=b)
devuelve 1;
si no, devuelve 0;
}
#endif
//library.h
#ifndef LIBRARY_H
#includelt;iostreamgt;
#includelt; cadenagt;
>#includelt;iomanipgt;
#include lt;fstreamgt;
#include "book.h"
#define MAXSIZE 100 //Número máximo de almacenamiento de la biblioteca de libros
usando el espacio de nombres std;
clase Biblioteca
{
privado:
Libro Libros[MAXSIZE ];
int num; //El número actual de libros
public:
Biblioteca()
~Biblioteca();
int In_Book(Libro c); //Insertar libro
int Out_BookN(char *b); //Eliminar libro
void Show_Book(); //Mostrar todos los libros de la biblioteca
void Change_Book(int b, Book B); //Modificar libros
void BookSort() //Ordenar por número de libro de grande a small
int Search_BookNo(char *b); //Buscar por número de libro
int Search_BookName(char *s); //Buscar por nombre de libro
int Seach_BookWriter (char *s); //Buscar por autor
int Seach_Bookmoney(int a, int b); //Buscar por rango de precios
void dataSave(); Datos de almacenamiento
void dataRead(); //Leer datos
};
Biblioteca::Biblioteca()
{ p >
dataRead();
}
Biblioteca::~Biblioteca()
{
dataSave();
}
int Biblioteca::In_Book(Libro c)
{
if(numgt;MAXSIZE-1)
{ coutlt;lt;"¡La biblioteca está llena! ";
devuelve 0;
}
if(Seach_BookNo(c.GetNo())==-1)
{ num;
Libros[num]=c;
dataSave();
devuelve 1;
{
coutlt;lt;"¡Este ISBN ya existe! "lt;lt;endl;
return 0;
}
}
int Biblioteca::Out_BookN(char *b)
{
int i, j;
i=Seach_BookNo(b);
if(i!=-1)
{
for(j=i;jlt;=num;j)
Libros[j]=Libros[ j 1];
num--;
dataSave();
devuelve 1; > else
{coutlt;lt;"¡No existe tal libro!"lt;lt;endl;
return 0;}
}
void Library::Show_Book()
{
int i
for(i=0; ilt; =num; i)
Libros[i].Print();
coutlt;
}
int Biblioteca::Seach_BookNo(char; *b )
{
int i
for(i=0; ilt; =num; i )
si( Libros[ i].ifBookNo(b))
{Libros[i].Print();
return i;}
return -1; /p >
}
int Biblioteca:: Search_BookName(char* s)
{
int i, count=0;
for(i=0;ilt;=num;i)
if(Libros[i].ifBNombre(s))
{Libros[i].Print(
recuento;
}
retorno recuento
}
int Biblioteca:: Seach_BookWriter( char* s)
{
int i, count=0
for(i=0; ilt; =num; i )
if(Libros[i].ifWriter(s))
{Libros[i].Print()
recuento
}
recuento de retornos
}
int Biblioteca:: Search_Bookmoney(int a, int b)
{
int i, count=0;
for(i=0; ilt; =num; i )
if(Libros[i].ifmoney(a, b))
{Libros[i].Print();
recuento
}
retorno recuento
}
void Library::Change_Book(int b, Libro B)
{
Libros[b]=B;
dataSave () ;
}
vo
id Library::dataSave() // Función de almacenamiento de datos, escribe read[] en el archivo Book.dat
{
fstream file("Book.dat", ios: : out);
for (int i=0; ilt; =num; i)
file.write((char *)amp; Libros[i], tamaño de(Libros [ i]));
file.close();
}
void Library::dataRead() //Constructor, convierte Book.dat Read en leer[]
{
Libro s;
num=-1
fstream file("Book.dat ",ios ::in);
while (1)
{
file.read((char *)amp;s,sizeof(s) ); /p>
if (!file) break
num ;
Libros[num]=s
}
file.close();
}
void Library:: BookSort() //Clasificación de burbujas, de pequeña a grande
{
int i, j;
Libro B;
for(i=0; ilt; =num; i)
for (j=0 ;jlt;=num-i-1;j)
if(strcmp(Libros[j].GetNo(), Libros[j 1].GetNo())gt; 0)
{
B=Libros[j]
Libros[j]=Libros[j 1]
Libros[j 1]=B;
}
guardar datos();
}
#endif