Realizar un programa para una tienda de muebles. La clase padre debe llamarse Mueble con sus atributos, y derivados de ellos debera heredar sus atributos a los distintos tipos de muebles. Debera mostrar en un menu la informacion de los tipos de muebles
Aquí te muestro un ejemplo de cómo podrías implementar el programa en C++: ```cpp #include <iostream> #include <string> // Clase padre Mueble class Mueble { protected: std::string marca; std::string modelo; double precio; std::string descripcion; public: Mueble(std::string marca, std::string modelo, double precio, std::string descripcion) : marca(marca), modelo(modelo), precio(precio), descripcion(descripcion) {} std::string getMarca() const { return marca; } std::string getModelo() const { return modelo; } double getPrecio() const { return precio; } std::string getDescripcion() const { return descripcion; } }; // Clase hija Silla class Silla : public Mueble { private: int numeroAsientos; std::string material; public: Silla(std::string marca, std::string modelo, double precio, std::string descripcion, int numeroAsientos, std::string material) : Mueble(marca, modelo, precio, descripcion), numeroAsientos(numeroAsientos), material(material) {} int getNumeroAsientos() const { return numeroAsientos; } std::string getMaterial() const { return material; } }; // Clase hija Mesa class Mesa : public Mueble { private: int numeroPlazas; std::string material; public: Mesa(std::string marca, std::string modelo, double precio, std::string descripcion, int numeroPlazas, std::string material) : Mueble(marca, modelo, precio, descripcion), numeroPlazas(numeroPlazas), material(material) {} int getNumeroPlazas() const { return numeroPlazas; } std::string getMaterial() const { return material; } }; // Clase hija Camara class Camara : public Mueble { private: int capacidad; std::string tipo; public: Camara(std::string marca, std::string modelo, double precio, std::string descripcion, int capacidad, std::string tipo) : Mueble(marca, modelo, precio, descripcion), capacidad(capacidad), tipo(tipo) {} int getCapacidad() const { return capacidad; } std::string getTipo() const { return tipo; } }; // Función para mostrar la información de un mueble void mostrarMueble(const Mueble& mueble) { std::cout << "Marca: " << mueble.getMarca() << std::endl; std::cout << "Modelo: " << mueble.getModelo() << std::endl; std::cout << "Precio: $" << mueble.getPrecio() << std::endl; std::cout << "Descripción: " << mueble.getDescripcion() << std::endl; } // Función para mostrar la información de un silla void mostrarSilla(const Silla& silla) { mostrarMueble(silla); std::cout << "Número de asientos: " << silla.getNumeroAsientos() << std::endl; std::cout << "Material: " << silla.getMaterial() << std::endl; } // Función para mostrar la información de una mesa void mostrarMesa(const Mesa& mesa) { mostrarMueble(mesa); std::cout << "Número de plazas: " << mesa.getNumeroPlazas() << std::endl; std::cout << "Material: " << mesa.getMaterial() << std::endl; } // Función para mostrar la información de una cámara void mostrarCamara(const Camara& camara) { mostrarMueble(camara); std::cout << "Capacidad: " << camara.getCapacidad() << " litros" << std::endl; std::cout << "Tipo: " << camara.getTipo() << std::endl; } int main() { // Crear muebles Silla silla("IKEA", "Silla 1", 50.0, "Silla de oficina", 1, "Madera"); Mesa mesa("IKEA", "Mesa 1", 100.0, "Mesa de oficina", 4, "Madera"); Camara camara("IKEA", "Camara 1", 200.0, "Camara de oficina", 20, "Acero"); // Mostrar opciones del menú std::cout << "Menú de muebles:" << std::endl; std::cout << "1. Silla" << std::endl; std::cout << "2. Mesa" << std::endl; std::cout << "3. Cámara" << std::endl; std::cout << "4. Salir" << std::endl; // Bucle para mostrar la información de los muebles int opcion; while (true) { std::cout << "Ingrese la opción del menú: "; std::cin >> opcion; switch (opcion) { case 1: mostrarSilla(silla); break; case 2: mostrarMesa(mesa); break; case 3: mostrarCamara(camara); break; case 4: std::cout << "Adiós!" << std::endl; return 0; default: std::cout << "Opción inválida. Por favor, ingrese una opción válida." << std::endl; } } return 0; } ``` Este programa define las clases `Mueble`, `Silla`, `Mesa` y `Camara`, cada una con sus respectivos atributos y métodos. La función `mostrarMueble` muestra la información de un mueble en general, mientras que las funciones `mostrarSilla`, `mostrarMesa` y `mostrarCamara` muestran la información específica de cada tipo de mueble. En el `main`, se crean objetos de cada tipo de mueble y se muestra un menú para que el usuario pueda seleccionar la opción que desee. Según la opción seleccionada, se muestra la información correspondiente del mueble.