Vous êtes sur la page 1sur 8

UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN

Facultad de Ingeniería FAIN


Escuela Profesional de Ingeniería en Informática y Sistemas
Programación Avanzada - II semestre – 2018
Laboratorio:
Funciones Virtuales y Polimorfismo
DOCENTE: Ing. Hugo Manuel Barraza Vizcarra
ESTUDIANTE:
Ian Nathaniel Zarate Romero 2015–11007
Ejercicio 1

#include<iostream.h>
#include<stdlib.h>
#include<math.h>

class Figuras {
protected:
char identificar[25];
float area, x, y;
int fig;
public:
virtual void Calcular_Area() {};
virtual void Dibujar_Figura();
virtual void Identificar();
};

void Figuras::Dibujar_Figura() {
cout<<" No hay dibujo disponible..."<<endl;
}
void Figuras::Identificar() {
cout<<endl<<" Nombre Figura: "<<identificar<<endl;
cout<<" El Area es: "<<area<<endl;
}
class Rectangulo:public Figuras {
protected:
float base, altura;
public:
Rectangulo(float b, float a);
void Calcular_Area();
void Dibujar_Figura();
void Identificar();
};
Rectangulo::Rectangulo(float b, float a) {
base = b;
altura = a;
strcpy(identificar,"Rectangulo");
}
void Rectangulo::Calcular_Area() {
area=(base*altura);
}
void Rectangulo::Dibujar_Figura() {
cout<<endl;
cout<<" **************"<<endl;
cout<<" * *"<<endl;
cout<<" * * Altura ="<<altura<<endl;
cout<<" * *"<<endl;
cout<<" **************"<<endl;
cout<<" Base = "<<base<<endl;
}
void Rectangulo::Identificar() {
Figuras::Identificar();
cout<<endl<<" Sus datos son: "<<endl;
}

class Triangulo:public Figuras {


protected:
float base, altura;
public:
Triangulo(float b, float a);
void Calcular_Area();
void Dibujar_Figura();
void Identificar();
};
Triangulo::Triangulo(float b, float a) {
base=b;
altura=a;
strcpy(identificar,"Triangulo");
}
void Triangulo::Calcular_Area() {
area=((base*altura)/2);
}
void Triangulo::Dibujar_Figura() {
cout<<" * "<<endl;
cout<<" * * "<<endl;
cout<<" * * Altura = "<<altura<<endl;
cout<<" * * "<<endl;
cout<<" *********"<<endl;
cout<<" Base = "<<base<<endl;
}
void Triangulo::Identificar() {
Figuras::Identificar();
cout<<endl<<" Sus datos son: "<<endl<<endl;
}

class Rombo:public Figuras {


protected:
float dimn, dimy;
public:
Rombo(float b, float a);
void Calcular_Area();
void Dibujar_Figura();
void Identificar();
};
Rombo::Rombo(float b, float a) {
dimn=b;
dimy=a;
strcpy(identificar,"Rombo");
}
void Rombo::Calcular_Area() {
area=(dimn*dimy);
}
void Rombo::Dibujar_Figura() {
cout<<" * "<<endl;
cout<<" * * "<<endl;
cout<<" * * Diagonal"<<endl;
cout<<" * * Mayor = "<<dimy<<endl;
cout<<" * * "<<endl;
cout<<" * * "<<endl;
cout<<" * "<<endl;
cout<<" Diagonal"<<endl;
cout<<" Menor = "<<dimn<<endl;
}
void Rombo::Identificar() {
Figuras::Identificar();
cout<<endl<<" Sus datos son: "<<endl<<endl;
}
int main() {
int fig;
float a,b;
do {
cout<<"**Menu**"<<endl;
cout<<"Digite la Figura que desea Calcular:"<<endl;
cout<<"1. Rectangulo 2. Triangulo 3. Rombo 4. Salir del Programa"<<endl;
cin>>fig;
do {
if(fig!=4) {
cout<<"Ingrese las medidas:"<<endl;
if(fig==3) {
cout<<"Medida de la Diagonal Mayor: "; cin>>a;
cout<<"Medida de la Diagonal Menor: "; cin>>b;
}
else {
cout<<"Ingrese la Altura: "; cin>>a;
cout<<"Ingrese la Base: "; cin>>b;
}
}
Rectangulo Rec(b,a);
Triangulo Tri(b,a);
Rombo Rom(b,a);
switch(fig) {
case 1:
Rec.Calcular_Area();
Rec.Identificar();
Rec.Dibujar_Figura();
break;
case 2:
Tri.Calcular_Area();
Tri.Identificar();
Tri.Dibujar_Figura();
break;
case 3:
Rom.Calcular_Area();
Rom.Identificar();
Rom.Dibujar_Figura();
break;
case 4:
cout<<"Cerrando"<<endl;
break;
default:
cout<<"No es opcion valida."<<endl;
break;
}
} while(fig > 4 || fig < 0);
if(fig!=4) {
cout<<"¿Desea seguir usando el programa?"<<endl;
cout<<"1. Si 2. No"<<endl; cin>>fig;
fig=fig+2;
}
if(fig==4)
system("PAUSE > nul");
} while(fig!=4);
}

CAPTURA
Ejercicio 2
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
#include<cstring>

class Biblioteca {
protected:
int r;
public:
virtual void Insertar_Datos() {};
virtual void Mostrar_Datos(char *) {};
};

class Libros:public Biblioteca {


protected:
char Libro[100], Autor[100], Fecha[30],Nombre[100];
int Paginas;
public:
void Insertar_Datos();
void Mostrar_Datos(char *);
};
void Libros::Insertar_Datos() {
cout<<"Indroduzca el Nombre del Libro: "<<endl;cin>>Libro;
cout<<"Digite el Nombre del Autor del Libro: "<<endl; cin>>Autor;
cout<<"Digite la Fecha de Publicacion: "<<endl; cin>>Fecha;
cout<<"Digite Numero de Paginas: "<<endl; cin>>Paginas;
}
void Libros::Mostrar_Datos(char *Nomb) {
strcpy(Nombre,Nomb);
r=strcmp(Nombre,Libro);
if(r==0) {
cout<<"Nombre del Libro: "<<Libro<<endl;
cout<<"Autor del Libro: "<<Autor<<endl;
cout<<"Fecha de Publicacion: "<<Fecha<<endl;
cout<<"Numero de Paginas: "<<Paginas<<endl;
}
}

class Revistas:public Biblioteca {


protected:
char Revista[100], Autor[100], Fecha[30],Nombre[100];
int Paginas;
public:
void Insertar_Datos();
void Mostrar_Datos(char *);
};
void Revistas::Insertar_Datos() {
cout<<"Indroduzca el Nombre del Revista: "<<endl; cin>>Revista;
cout<<"Digite el Nombre del Autor del Revista: "<<endl; cin>>Autor;
cout<<"Digite la Fecha de Publicacion: "<<endl; cin>>Fecha;
cout<<"Digite Numero de Paginas: "<<endl; cin>>Paginas;
}
void Revistas::Mostrar_Datos(char *Nomb) {
strcpy(Nombre,Nomb);
r=strcmp(Nombre,Revista);
if(r==0) {
cout<<"Nombre del Revista: "<<Revista<<endl;
cout<<"Autor del Revista: "<<Autor<<endl;
cout<<"Fecha de Publicacion: "<<Fecha<<endl;
cout<<"Numero de Paginas: "<<Paginas<<endl;
}
}

class Articulos:public Biblioteca {


protected:
char Articulo[100], Autor[100], Fecha[30],Nombre[100];
int Paginas;
public:
void Insertar_Datos();
void Mostrar_Datos(char *);
};
void Articulos::Insertar_Datos() {
cout<<"Indroduzca el Nombre del Articulo: "<<endl; cin>>Articulo;
cout<<"Digite el Nombre del Autor del Articulo: "<<endl; cin>>Autor;
cout<<"Digite la Fecha de Publicacion: "<<endl; cin>>Fecha;
cout<<"Digite Numero de Paginas: "<<endl; cin>>Paginas;
}
void Articulos::Mostrar_Datos(char *Nomb) {
strcpy(Nombre,Nomb);
if(strcmp(Nombre,Articulo)==0) {
cout<<"Nombre del Articulo: "<<Articulo<<endl;
cout<<"Autor del Articulo: "<<Autor<<endl;
cout<<"Fecha de Publicacion: "<<Fecha<<endl;
cout<<"Numero de Paginas: "<<Paginas<<endl;
}
}

void main(void) {
int op, di, cont=0, i=0, j;
char Nb[100];
Libros Lb[100];
Revistas Rv[100];
Articulos At[100];
do {
cout<<"** Menu **"<<endl;
cout<<"1. Ingresar Datos 2. Visualizar Dato 3. Salir de la Aplicacion"<<endl;
cin>>op;
switch(op) {
case 1:
do {
cout<<"Dato a Ingresar:"<<endl<<"1. Libro 2. Revista 3. Articulo."<<endl;
cin>>di;
switch(di) {
case 1:
Lb[i].Insertar_Datos();
break;
case 2:
Rv[i].Insertar_Datos();
break;
case 3:
At[i].Insertar_Datos();
break;
default:
cout<<"Opcion Ingresada No Valida."<<endl;
break;
}
} while(di==4);
break;
case 2:
do {
cout<<"Dato a Visualizar:"<<endl<<"1. Libro 2. Revista 3. Articulo."<<endl;
cin>>di;
switch(di) {
case 1:
cout<<"Nombre del Libro: ";
cin>>Nb;
system("CLS");
for(j=0;j<cont;j++) {
Lb[j].Mostrar_Datos(Nb);
}
break;
case 2:
cout<<"Nombre del Revista: ";
cin>>Nb;
system("CLS");
for(j=0;j<cont;j++) {
Rv[j].Mostrar_Datos(Nb);
}
break;
case 3:
cout<<"Nombre del Articulo: ";
cin>>Nb;
system("CLS");
for(j=0;j<cont;j++) {
At[j].Mostrar_Datos(Nb);
}
break;
default:
cout<<"Opcion ingresada no valida."<<endl;
break;
}
} while(di==4);
break;
default:
if(op==3)
cout<<"Cerrando Programa..."<<endl;
else
cout<<"Opcion Invalida."<<endl;
break;
}
if(op==1){
cont++;
i++;
}
if(op==2) {
cout<<"Desea usar el Programa:"<<endl;
cout<<"1. Si 2. No"<<endl;
cin>>op;
op=op+1;
}
else {
system("PAUSE >nul");
}
system("CLS");
} while(op!=3);
getch();
}
CAPTURAS

Vous aimerez peut-être aussi