#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
const int NLIBROS = 100;
const int NBIBLIOS = 1;
char *namescuels[] = {
"ESIME",
"ESIT",
"ESIQIE"
};
// ************** Clase Libro **********************
class Libro
{
char nombre[20];
char autor[20];
char editorial[20];
int edicion;
public:
void ObtenerDatos ();
void ImprimeLibro();
};
void Libro::ObtenerDatos ()
{
cout<<"Dame el nombre del libro \n";
gets(nombre);
cout<<"Dame el autor \n";
gets(autor);
cout<<"Dame la editorial \n";
gets(editorial);
cout<<"Dame el numero de edicion \n";
cin>>edicion;
}
void Libro::ImprimeLibro()
{
cout<<"NOMBRE: "<<nombre<<"\n";
cout<<"AUTOR: "<<autor<<"\n";
cout<<"EDITORIAL: "<<editorial<<"\n";
cout<<"EDICION: "<<edicion<<"\n";
}
// ************** Clase Biblioteca *****************
class Biblioteca
{
Libro libros[NLIBROS];
int nLibros;
public:
Biblioteca () { nLibros = 0; }
void ObtenerLibros (int nlibros);
void ImprimeLibros();
};
void Biblioteca::ObtenerLibros (int nlibros)
{
clrscr();
for(int i=0;i<nlibros;i++)
libros[i].ObtenerDatos ();
}
void Biblioteca::ImprimeLibros()
{
for(int i=0;i<nLibros;i++)
{
libros[i].ImprimeLibro ();
getch();
}
}
// ************** Clase Escuela ****************
class Escuela
{
Biblioteca bibliotecas[NBIBLIOS];
char nombre[10];
public:
void PonNombre (char *name) { strcpy (nombre, name); }
char *DameNombre () { return nombre; }
void ObtenerBiblios ();
};
void Escuela::ObtenerBiblios ()
{
for (int i = 0; i < NBIBLIOS; i++) {
cout << nombre << ": Datos de la bilioteca #" << i + 1 << "\n";
do
{
int opc2, contact;
clrscr();
cout<<"1. Introducir Datos\n\n";
cout<<"2. Imprimir Datos\n\n";
cout<<"3. Salir\n\n";
cout<<"Escoge: ";
cin>>opc2;
switch(opc2)
{
case 1:
cout<<"Cuantos contactos vas a introducir? ";
cin>>contact;
bibliotecas[i].ObtenerLibros (contact);
break;
case 2:
bibliotecas[i].ImprimeLibros();
break;
case 3:
char opc3;
cout<<"Quieres regresar al menu principal?\n";
cin>>opc3;
if(opc3=='s')
return;
break;
default:
cout<<"Vuelve a intentarlo";
getch();
break;
}
}
while(1);
}
}
// *************************************************
const int nescuelas = sizeof (namescuels) / sizeof (char **);
Escuela escuelas[nescuelas];
int menu(void)
{
int opc;
clrscr();
for (int i = 0; i < nescuelas; i++)
cout<< i + 1 << ". " << escuelas[i].DameNombre () << "\n\n";
cout<< i + 1 << ". Salir\n\n";
cout<<"Escoge: ";
cin>>opc;
return(opc);
}
void main(void)
{
for (int i = 0; i < nescuelas; i++)
escuelas[i].PonNombre (namescuels[i]);
int opc;
do
{
opc=menu();
if (opc > nescuelas) {
cout<<"Vuelve a intentarlo";
getch();
} else if (opc == nescuelas) {
cout<<"Adios";
getch();
} else
escuelas[i].ObtenerBiblios ();
} while(opc!=nescuelas);
}