83 lines
2.0 KiB
C++
83 lines
2.0 KiB
C++
|
#include "ListaPeliculas.h"
|
||
|
using namespace std;
|
||
|
|
||
|
|
||
|
bool cargar(tListaPeliculas & listaPelis){
|
||
|
bool carga = false;
|
||
|
ifstream archivo;
|
||
|
int numPelis = 0;
|
||
|
|
||
|
listaPelis.cont = 0;
|
||
|
archivo.open("peliculas.txt");
|
||
|
if (archivo.is_open()) {
|
||
|
archivo >> numPelis;
|
||
|
archivo.ignore();
|
||
|
while ((!archivo.fail()) && (listaPelis.cont < numPelis)){
|
||
|
listaPelis.pelicula[listaPelis.cont] = new tPelicula;
|
||
|
carga = cargar(*listaPelis.pelicula[listaPelis.cont], archivo);
|
||
|
listaPelis.cont++;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return carga;
|
||
|
}
|
||
|
|
||
|
void filtrarPorActor(tListaPeliculas & listaPelis, std::string & nombre){
|
||
|
tListaPeliculas listaAUX;
|
||
|
listaAUX.cont = 0;
|
||
|
|
||
|
for (int i = 0; i < listaPelis.cont; i++) {
|
||
|
if (interviene(*listaPelis.pelicula[i], nombre)) {
|
||
|
listaAUX.pelicula[listaAUX.cont] = listaPelis.pelicula[i];
|
||
|
listaAUX.cont++;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
ordenarPorGenero(listaAUX);
|
||
|
mostrar(listaAUX);
|
||
|
|
||
|
}
|
||
|
|
||
|
void mostrar(tListaPeliculas& listaPelis){
|
||
|
for (int i = 0; i < listaPelis.cont; i++){
|
||
|
mostrar(*listaPelis.pelicula[i]);
|
||
|
cout << "---" << endl;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void ordenarPorGenero(tListaPeliculas& listaPelis){
|
||
|
tPelicula* AUX;
|
||
|
int cont;
|
||
|
|
||
|
for (int i = 0; i < listaPelis.cont; i++) {
|
||
|
cont = i;
|
||
|
while ((cont > 0) && (listaPelis.pelicula[cont]->genero <= listaPelis.pelicula[cont - 1]->genero)) { //
|
||
|
if (listaPelis.pelicula[cont]->genero == listaPelis.pelicula[cont - 1]->genero) {
|
||
|
ordenarPorValoracion(*listaPelis.pelicula[cont - 1], *listaPelis.pelicula[cont]);
|
||
|
}
|
||
|
else {
|
||
|
AUX = listaPelis.pelicula[cont];
|
||
|
listaPelis.pelicula[cont] = listaPelis.pelicula[cont - 1];
|
||
|
listaPelis.pelicula[cont - 1] = AUX;
|
||
|
}
|
||
|
cont--;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void ordenarPorValoracion(tPelicula& pelIZQ, tPelicula& pelDER){
|
||
|
tPelicula AUX;
|
||
|
|
||
|
if (pelIZQ.valoracion < pelDER.valoracion) {
|
||
|
AUX = pelIZQ;
|
||
|
pelIZQ = pelDER;
|
||
|
pelDER = AUX;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void destruir(tListaPeliculas & listaPelis){
|
||
|
for (int i = 0; i < listaPelis.cont; i++){
|
||
|
delete listaPelis.pelicula[i];
|
||
|
}
|
||
|
}
|