Codigo multilistas en c++
Enviado por oscarmurillo • 6 de Octubre de 2017 • Tareas • 1.971 Palabras (8 Páginas) • 922 Visitas
#include <iostream>
#include <string>
#include <cstdlib>
#include <stdio.h>
#include <conio.h>
#include <windows.h>
/*
Oscar Murillo Vasquez 625741
*/
using namespace std;
class Libro{
public:
Libro();//
string nombre;
int id;
Libro *sig;
};
class Categoria{
public:
Categoria();
string nombre;
int id;
int cantidadLibros;
Categoria *sig;
Libro *cabLibro;
Libro *ultimoLibro;
void agregarLibro(Libro *nuevo,string nombre, int id);//
Libro *existeLibro(int id);//
void eliminarLibroDeUnaCategoria(int id);
};
class Sede{
public:
Sede();//
string nombre;
int id;
int cantidadCategorias;
Categoria *cabCategoria;
Categoria *ultimaCategoria;
Sede *sigSede;
void agregarCategoria(Categoria *nuevo,string nombre,int id);//
Categoria *existeCategoria(int id);//
void mostrarCategoriasDeUnaSede();//
void mostrarCategoriasYLibrosDeUnaSede();//
void eliminarUnaCategoria(int id);//
};
class Lista{
public:
Lista();//
Sede *cab;
Sede *ultimo;
void crearSede(Sede *nuevo,string nombre,int id);//
void mostrarTodo();//
void mostrarSedes();//
Sede *existeSede(int id);//
void eliminarSede(int id);//
void sedeConMayorCategoriasYEjemplares();
};
void menu(Lista *lista);
void cstdlib(Lista *lista);
void setColor(int i);
HANDLE hCon;
Sede::Sede(){
cabCategoria=NULL;
ultimaCategoria=NULL;
sigSede=NULL;
cantidadCategorias=0;
}
Lista::Lista(){
cab=NULL;
ultimo=NULL;
}
Libro::Libro(){
sig=NULL;
}
Categoria::Categoria(){
cantidadLibros=0;
sig=NULL;
cabLibro=NULL;
ultimoLibro=NULL;
}
Sede *Lista::existeSede(int id){
Sede *aux = cab;
if(aux == NULL){
return NULL;
}
while(aux != NULL){
if(aux->id == id){
return aux;
}else{
aux=aux->sigSede;
}
}
return NULL;
}
Categoria *Sede::existeCategoria(int id){
Categoria *aux = cabCategoria;
if(aux == NULL){
return NULL;
}
while(aux != NULL){
if(aux->id == id){
return aux;
}else{
aux=aux->sig;
}
}
return NULL;
}
Libro *Categoria::existeLibro(int id){
Libro *aux = cabLibro;
if(aux == NULL){
return NULL;
}
while(aux != NULL){
if(aux->id == id){
return aux;
}else{
aux=aux->sig;
}
}
return NULL;
}
void Lista::crearSede(Sede *nuevo,string nombre,int id){
if(cab == NULL){
...