Programación vectorial
1. Definir categorías de medios.
2. Tiene dos clases derivadas: clase Libro y clase CD.
3. Entre ellos, el libro tiene atributos como nombre, cantidad vendida, número ISBN, etc.
4.CD tiene atributos como nombre, volumen de ventas, fabricante, etc.
5. Requisitos:
1) Diseñar los atributos relevantes de las tres clases anteriores.
2) Utilizar el concepto de polimorfismo en forma de funciones virtuales; Muestra información del libro y del CD.
3) Escriba una función común f() para mostrar libros y CD que hayan vendido más de 1000 copias.
4) Prueba en la función principal.
*/
# incluir & ltvector & gt
# incluir & ltstring& gt
# incluir & ltiostream & gt
Usando el espacio de nombres std
Medios de clase
{
Público:
media(){ };
~ Media(){ };
Virtual void Init (nombre de cadena, número entero)
{
m _ Nombre = nombre
m_Number =Número;
};
Virtual int GetNumber()
{
Devolver m_Number
}
Pantalla virtual vacía()
{
cout & lt& lt"Nombre:" & lt& ltm _ Nombre & lt& ltendl p>
cout & lt& lt" namber:" & lt;& ltm _ Número & lt& ltendl
}
Protegido:
Cadena m _ Nombre
int m_Número
};
Libro de clase: Medios públicos
{ p>
Público:
libro(){ };
~ Libro(){ };
void Init(nombre de cadena, número entero, ISBN de cadena)
{
Medios::Init(nombre, número);
m _ ISBN = ISBN
};
Visualización vacía ()
{
Medios::Display().
cout & lt& lt" ISBN:" & lt;& ltm_ISBN & lt& ltendl
}
Privado:
cadena de caracteres m_ISBN
};
Categoría de CD: medio público
{
Público:
CD (){ } ;
~ CD(){ };
void Init(nombre de cadena, número entero, autor de cadena)
{
Medios: :Init(nombre,número);
m_Author =Autor;
};
Pantalla vacía()
{
Medios::Pantalla().
cout & lt& ltAuthor: "& lt& ltm _ Autor & lt& ltendl
}
Privado:
Cadena m_ Autor p>
};
int main()
{
//Agregar libros y CD
Libro *b1 = Nuevo Libro ();
Libro *b2 = Nuevo Libro ();
Libro *b3 = Nuevo Libro (
b 1->; ("libro1",100,"ISBN 100");
B2->;Init("libro2",1000,"ISBN 1000");
B3->;Init ("libro3", 10000, "ISBN 10000");
CD *cd1 = CD nuevo;
CD *cd2 = CD nuevo
CD *; cd3 = nuevo CD;
CD 1->;Init("cd1",100,"autor 100");
cd2->Init("cd2",1000," autor 1000 ");
cd3->; Init("cd3 ", 10000, " autor 10000 ");
Vector & ltMedia * & gtvectMedia
vect medios . push _ back(b 1);
vect media . p>vect medios . push _ back(CD 1);
vect medios . push _ back(Cd2);
vect medios . >
//Mostrar pieza (cantidad de ventas superior a 1000)
for(int I = 0; i & ltvect media . size(); i++)
{ p>
if(vectMedia[I]->get number()>= 1000)
{
cout & lt& ltLibros o CD con ventas superiores a 1000 <endl.
vectMedia[I]-& gt;display();
}
}
Devuelve 0;
}
//Vea la imagen para ver el efecto de operación.