Untitled
unknown
plain_text
a year ago
4.3 kB
22
Indexable
#include <iostream> // Incluir la biblioteca de entrada y salida estándar
#include <cstring>
#define T_MAX_CADENA 120
#define T_MAX_ALMACEN 100
using namespace std;
typedef char TCadena[T_MAX_CADENA];
// Producto/Almacen
// Pelicula/Videclub
class Pelicula {
TCadena nombre;
int stock;
public:
Pelicula(){}
void anadir(){
cout << "* Dame el nombre de la pelicula: ";
cin.getline(nombre, T_MAX_CADENA);
cout << "* Dame cuanto es el stock de esta pelicula: ";
cin >> stock;
cin.ignore();
cout << endl;
}
void mostrar() {
cout << "[PELICULA]: " << nombre << " (" << stock << " en stock)" << endl;
}
bool existePelicualConElNombre( TCadena nombrePelicula){
if (strcmp(nombre,nombrePelicula)){
return true;
}
return false;
}
void borra() {
cout << "Borrando la pelicula... '" << nombre << "'..." << endl;
strcpy(nombre, "");
stock = 0;
}
};
class Videoclub {
Pelicula peliculas[T_MAX_ALMACEN];
int peliculasAlmacenadas;
public:
Videoclub() {
peliculasAlmacenadas = 0;
}
bool anadirPeliAlVideoclub(Pelicula peli) {
// si me intenta añadir una peli, pero no me queda espacio, pos le digo que no
if (peliculasAlmacenadas > T_MAX_ALMACEN) {
return false;
}
peliculas[peliculasAlmacenadas] = peli;
peliculasAlmacenadas = peliculasAlmacenadas + 1;
return true;
}
void mostrarVideoClub(){
cout << "[VIDEOCLUB] Listado del almacen..." << endl;
for(int i=0; i<peliculasAlmacenadas; i++){
Pelicula peli = peliculas[i];
peli.mostrar();
}
}
bool buscar(TCadena nombrePelicula){
cout << "[VIDEOCLUB] buscando " << nombrePelicula << "..." << endl;
for(int i=0; i<peliculasAlmacenadas; i++){
Pelicula peli = peliculas[i];
if (peli.existePelicualConElNombre(nombrePelicula)) {
return true;
}
}
return false;
}
};
// ************************************************
// BEGIN: Definicion de funciones
// ************************************************
char menu() {
char option;
cout << endl;
cout << "************ MENU ********************" << endl;
cout << "* A.- Añadir pelicula al videoclub" << endl;
cout << "* B.- Mostrar videoclub" << endl;
cout << "* C.- Buscar" << endl;
cout << "* Q.- Salir" << endl;
cout << "**************************************" << endl;
cout << "> Selecciona opción: ";
cin >> option;
cin.ignore();
cout << "Ejecutando la acción seleccionada '" << option << "'..." << endl;
return toupper(option);
}
// ************************************************
// BEGIN: Main principal
// ************************************************
int main() {
char option;
Pelicula pelicula;
Videoclub myVideoclub;
do {
option = menu();
switch(option) {
case 'A':
cout << "Opción A" << endl;
pelicula.anadir();
myVideoclub.anadirPeliAlVideoclub(pelicula);
break;
case 'B':
cout << "Opción B" << endl;
myVideoclub.mostrarVideoClub();
break;
case 'C':
cout << "Opción C" << endl;
cout << "Que pelicula quieres busar:";
TCadena nombre;
cin.getline(nombre, T_MAX_CADENA);
if (myVideoclub.buscar(nombre)){
cout << "La peli " << nombre << " está en el almacen" << endl;
} else {
cout << "La peli " << nombre << " NO está en el almacen" << endl;
}
break;
default :
cout << "Opción no válida, elige otra" << endl;
break;
}
} while (option != 'Q');
return 0; // Retornar 0 para indicar que el programa terminó correctamente
}
Editor is loading...
Leave a Comment