• Domingo 15 de Diciembre de 2024, 03:07

Autor Tema:  ejercicio en c++ final curso  (Leído 1191 veces)

saciorlux

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
ejercicio en c++ final curso
« en: Martes 1 de Junio de 2010, 14:03 »
0
estoy haciendo un curso en c++ el cual ya ha terminado pero ante la falta de tiempo he tenido que ver los ultimos temas un poco deprisa y casi sin comprenderlos y ahora me han mandado el ejercicio final para poder darme el certificado de realizacion y me falta la ultima cuestion que no soy capaz de resolver, por eso os pido un poco de ayuda ya que tengo que entregarlo ya.

el codigo es el siguiente:


// FECHA: --------------
// AUTOR: -----------------
#include <iostream>
#include <stdlib.h>
#include <cstring>
using namespace std;
//---------------Clase base Cmedio-------------------------
class Cmedio
{
protected:
char titulo[50];
float precio;
public:
Cmedio (char *s, float a)
{
strcpy(titulo,s);
precio = a;
}
virtual void mostrar() {} // función virtual vacia
};
//---------------Clase derivada Clibro-----------------------
class Clibro: public Cmedio
{
int paginas;
public:
Clibro (char *s, float a ,int p) : Cmedio (s,a)
{
paginas = p;
}
virtual void mostrar();
};
//---------------Clase derivada Ccinta---------------------
class Ccinta: public Cmedio
{
float duracion;
public:
Ccinta (char *s, float a ,float t) : Cmedio (s,a)
{
duracion = t;
}
virtual void mostrar();
};
//---------------Clase derivada Clibroe--------------------
class Clibroe: public Cmedio
{
int megabytes;
public:
Clibroe (char *s, float a, int mb) : Cmedio (s,a)
{
megabytes = mb;
}
virtual void mostrar();
};
void Clibro :: mostrar()
{
cout << "Tilulo: " << titulo << endl;
cout << "Paginas: " << paginas << endl;
cout << "Precio: " << precio << endl;
system("PAUSE");
}
void Ccinta :: mostrar()
{
cout << "Tilulo: " << titulo << endl;
cout << "Duracion: " << duracion << " minutos" << endl;
cout << "Precio: " << precio << endl;
system("PAUSE");
}
void Clibroe :: mostrar()
{
cout << "Titulo: " << titulo << endl;
cout << "Precio: " << precio << endl;
cout << "Tamaxa4o: " << megabytes << " MB " << endl;
system("PAUSE");
}
//------------- PROGRAMA PRINCIPAL--------------------
int main()
{
char * titulo = new char[30];
float precio, duracion;
int paginas, megabytes;
// CREAR LIBRO
cout << "Tilulo: "; cin >> titulo ;
cout << "Paginas: "; cin >> paginas ;
cout << "Precio: "; cin >> precio ;
Clibro libro1(titulo,precio,paginas);
// CREAR CINTA
cout << "Tilulo: "; cin >> titulo ;
cout << "Duracion: "; cin >> duracion ;
cout << "Precio: "; cin >> precio ;
Ccinta cinta1(titulo,precio,duracion);
// CREAR LIBROE
cout << "Titulo : "; cin >> titulo ;
cout << "Precio : "; cin >> precio ;
cout << "Tamaxa4o : "; cin >> megabytes ;
Clibroe libroe1(titulo,precio,megabytes);
//---------MUESTRA LOS DATOS DE CADA OBJETO-----
libro1.mostrar();
cinta1.mostrar();
libroe1.mostrar();
return 0;
}



Ejercicios propuestos:
1.- Corregir los errores sintácticos.
ya los he realizado

2.- Suponed que ahora la librería pude vender libros electrónicos, para estos libros además del título y el precio es
necesario guardar su tamaño en megabytes. Modificad el código anterior para que permita gestionar este nuevo
tipo de productos. Justificad mediante comentarios en el programa las decisiones tomadas. El programa debe crear y mostrar un libro normal, una cinta y un libro electrónico.
realizado a falta de los comentarios

3.- Teniendo presente que la función mostrar() ha sido declarada como virtual en la clase base Cmedio, cread en
el programa principal una lista heterogénea de punteros de tipo Cmedio, para los tres objetos que hemos creado
libro1, cinta1,libroe1. Mediante una estructura repetitiva mostrar los datos de cada objeto utilizando la lista de
punteros. Justificad mediante comentarios en el programa las decisiones tomadas.

este es el que no soy capaz de realizar




gracias de todas formas.

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: ejercicio en c++ final curso
« Respuesta #1 en: Martes 1 de Junio de 2010, 20:17 »
0
Cosnejo, utilia las etiquetas de [ code][ /code] (sin espacios en los corchetes) cuando puibliques codigo, mejora la legibilidad.

La verad es muy simple y directo, lo dice claro el ejercicio, pero bueno, ahi va:

Código: C++
  1.  
  2.     // Lista heterogenea de punteros
  3.     Cmedio* lista[3];
  4.     lista[0] = &libro1;
  5.     lista[1] = &cinta1;
  6.     lista[2] = &libroe1;
  7.  
  8.     // Estructura repetitiva para mostrar los datos
  9.     for (int i = 0; i < 3; i++)
  10.     {
  11.         lista[i]->mostrar();
  12.     }
  13.  
  14.  

Saludos :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

saciorlux

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: ejercicio en c++ final curso
« Respuesta #2 en: Miércoles 2 de Junio de 2010, 00:19 »
0
gracias,

como sigo estando pegado en esto, y eso que llevo toda la tarde intentando averiguar como has sacado esta lista, lo unico que me he dado cuenta es que al compilar se repite lo mismo que hacia anteriormente.