Untitled

 avatar
unknown
plain_text
10 days ago
4.3 kB
4
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
}










Leave a Comment