Add files via upload

This commit is contained in:
Fernando Méndez
2019-06-20 13:06:16 +02:00
committed by GitHub
parent 989e433448
commit 2fd3b1e062
80 changed files with 2922 additions and 0 deletions

View File

@ -0,0 +1,12 @@
#ifdef _DEBUG
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
#ifndef DBG_NEW
#define DBG_NEW new ( _NORMAL_BLOCK , __FILE__ , __LINE__ )
#define new DBG_NEW
#endif
#endif

View File

@ -0,0 +1,82 @@
#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];
}
}

View File

@ -0,0 +1,24 @@
#ifndef H_LISTAPELICULAS_H
#define H_LISTAPELICULAS_H
#include "Pelicula.h"
//Constantes:
const int MAX_PELIS = 50;
//Tipos:
typedef struct tListaPeliculas {
tPelicula *pelicula[MAX_PELIS];
int cont;
};
//Funciones:
bool cargar(tListaPeliculas& listaPelis); //Carga la lista de pel<65>culas.
void filtrarPorActor(tListaPeliculas& listaPelis, std::string& nombre); //Genera nueva lista que contiene enlaces a las pel<65>culas donde ha participado ese actor.
void mostrar(tListaPeliculas& listaPelis); //Muestra la lista de pel<65>culas
void ordenarPorGenero(tListaPeliculas& listaPelis); //Ordenadas por g<>nero de menor a mayor.
void ordenarPorValoracion(tPelicula& pelIZQ, tPelicula& pelDER); //Ordenaci<63>n por inserci<63>n. Ordenadas por valoraci<63>n de mayor a menor.
void destruir(tListaPeliculas& listaPelis);
#endif // !H_LISTAPELICULAS_H

View File

@ -0,0 +1,42 @@
#include "Pelicula.h"
using namespace std;
bool cargar(tPelicula& pelicula, ifstream& archivo){
bool cargado = false;
pelicula.contReparto = 0;
getline(archivo, pelicula.titulo);
getline(archivo, pelicula.director);
getline(archivo, pelicula.genero);
getline(archivo, pelicula.valoracion);
archivo >> pelicula.contReparto;
archivo.ignore();
for (int i = 0; i < pelicula.contReparto; i++){
cargado = cargar(pelicula.listaReparto[i], archivo);
}
return cargado;
}
bool interviene(tPelicula& pelicula, std::string& nombre){
bool encontrado = false;
int j = 0;
while(!encontrado && j < pelicula.contReparto){
if (pelicula.listaReparto[j].nombre == nombre) {
encontrado = true;
}
else {
j++;
}
}
return encontrado;
}
void mostrar(tPelicula& pelicula){
cout << "Titulo:" << setw(5) << pelicula.titulo << endl
<< "Director: " << setw(5) << pelicula.director << endl
<< "G<EFBFBD>nero:" << setw(5) << pelicula.genero << endl
<< "Valoracion:" << setw(5) << pelicula.valoracion << endl;
}

View File

@ -0,0 +1,21 @@
#ifndef H_PELICULA_H
#define H_PELICULA_H
#include "Reparto.h"
//Constantes:
//Tipos:
typedef struct tPelicula {
std::string titulo, director, genero, valoracion;
tReparto listaReparto[MAX_ACTORES];
int contReparto;
};
//Funciones:
bool cargar(tPelicula& pelicula, std::ifstream&); //Carga una pel<65>cula.
bool interviene(tPelicula& pelicula, std::string& nombre); //True si el actor se encuentra en la pel<65>cula, false en caso contrario.
void mostrar(tPelicula& pelicula); //Muestra por pantalla el t<>tulo, director, g<>nero y valoraci<63>n de una pel<65>cula.
#endif // !H_PELICULA_H

View File

@ -0,0 +1,19 @@
#include "Reparto.h"
using namespace std;
bool cargar(tReparto& reparto, ifstream& archivo){
bool carga = false;
if (!archivo.fail()) {
getline(archivo, reparto.nombre);
carga = true;
}
return carga;
}
bool aparece(tReparto& reparto, string & nombre, int & pos){
bool encontrado = false;
return encontrado;
}

View File

@ -0,0 +1,24 @@
#ifndef H_REPARTO_H
#define H_REPARTO_H
#include <iostream>
#include <string>
#include <fstream>
#include <iomanip>
//Constantes:
const int MAX_ACTORES = 10;
//Tipos:
typedef struct tReparto {
std::string nombre;
};
//typedef tReparto tListaReparto[MAX_ACTORES];
//Funciones:
bool cargar(tReparto& reparto, std::ifstream&); //Carga la lista del reparto.
bool aparece(tReparto reparto, std::string& nombre, int& pos); //True si encuentra el nombre en la lista, false en caso contrario. Implementar de forma recursiva.
#endif // !H_REPARTO_H

View File

@ -0,0 +1,38 @@
//Examen Junio de 2016 - FP
//Grupo D
//Fernando M<>ndez Torrubiano
#include <iostream>
#include <string>
#include <fstream>
#include <iomanip>
#include <stdlib.h>
#include "ListaPeliculas.h"
#include "CheckML.h"
using namespace std;
int main() {
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF); //Detecta posibles fugas de memoria.
system("chcp 1252"); //As<41> la consola puede imprimir caracteres especiales del espa<70>ol.
system("cls");
tListaPeliculas lista;
string nombre;
if (cargar(lista)) {
cout << "Introduzca nombre del actor: ";
getline(cin, nombre);
//mostrar(lista);
filtrarPorActor(lista, nombre);
}
else {
cout << "No se ha podido cargar el archivo." << endl;
}
destruir(lista); //Libera la memoria din<69>mica.
system("PAUSE");
return 0;
}

View File

@ -0,0 +1,38 @@
4
X-MEN: Apocalipsis
Bryan Singer
Ciencia ficci<63>n
6.3
5
James McAvoy
Michael Fassbender
Jennifer Lawrence
Nicholas Hoult
Oscar Issac
La invenci<63>n de Hugo
Martin Scorsese
Aventuras
6.8
4
Asa Butterfield
Ben Kingsley
Sacha Baron Cohen
Jude Law
Noche en el museo: El secreto del fara<72>n
Shawn Levy
Comedia
5.1
5
Robin Williams
Ben Kingsley
San Stevens
Ben Stiller
Ricky Gervais
El libro de la selva
Jon Favreau
Aventuras
7.0
3
Neel Sethi
Bill Murray
Ben Kingsley