Вы находитесь на странице: 1из 12

1/12

GUIA DE LABORATORIO N 7
PROGRAMACION ORIENTADA AL OBJETO
OBJETIVOS
Al finalizar la presente practica, el estudiante ser capaz de poder definir una clase
con sus respectivos datos y funciones miembros, incluir constructores y
destructores, para finalmente crear objetos y realizar la programacin POO.
Ejem 1.
#include <iostream>
#include <stdlib.h>
// Declarando la estructura, la misma puede tener datos y funciones miembro
struct cuadrado
{
//datos miembro
float lado;
//funciones miembro
void inicio(float a) {lado=a;}
double area() {return lado*lado;}
double perimetro() {return 4.0*lado;}
double semiperimetro() {return perimetro()/2.0;}
};
// Programa principal
int main()
{
cuadrado x; // instanciar un objeto cuadrado
flota a;
cout Ingrese un numero:; cin>>a;
x.inicio(a);
cout << "Area : " << x.area() << endl;
cout << "Perimetro : " << x.perimetro() << endl;
cout << "Semiperimetro: "<<x.semiperimetro() << endl;
system("PAUSE");
} // fin del programa principal
Ejem 2.
#include <iostream>
#include <stdlib.h>
//Declarando la clase
class cuadrado
{
public:
void inicio(float a) {lado=a;}
double area() {return lado*lado;}

Prof.:Ing. Felix Huari E.

Algoritmos y Programacin

2/12
double perimetro() {return 4*lado;}
double semiperimetro(){return perimetro()/2.0;} private:
float lado;
};
//Programa principal
int main()
{
cuadrado x; // x es objeto de la clase cuadrado
flota a;
cout Ingrese un numero:; cin>>a;
x.inicio(a);
cout << "Area : " << x.area() << endl;
cout << "Perimetro : " << x.perimetro() << endl;
cout << "Semiperimetro: "<<x.semiperimetro() << endl;
system("PAUSE");
}// Fin del programa principal
Ejem 3.
#include <iostream>
#include <stdlib.h>
class cuadrado
{
private:
float lado; // el dato miembrolado es privado
public:
cuadrado(float a) {lado = a;} // declarando y definiendo un constructor
double area() {return lado*lado;}
double perimetro() {return 4*lado;}
double semiperimetro(){return perimetro()/2.0;}
}; // fin de la clase
// Programa principal
int main()
{
flota a;
cout Ingrese un numero:; cin>>a;
/* Declarando un objeto x de la clase cuadrado y activando el constructor */
cuadrado x(a);
cout << "Area : " << x.area() << endl;
cout << "Perimetro : " << x.perimetro() << endl;
cout << "Semiperimetro: "<<x.semiperimetro() << endl;
system("PAUSE");
}// Fin del program principal
Ejem 4.
#include <iostream>
#include <stdlib.h>
Prof.:Ing. Felix Huari E.

Algoritmos y Programacin

3/12
class cuadrado
{
private:
float lado;
public: cuadrado() {}; // constructor vacio
cuadrado(float a) {lado = a;} // constructor
double area() {return lado*lado;}
double perimetro() {return 4*lado;}
double semiperimetro(){return perimetro()/2.0;}
}; // Fin de la clase
//Programa principal
int main()
{
flota n;
cout Ingrese un numero:; cin>>n;
cuadrado x; // activando constructor vacio
x = cuadrado(n); // activando el segundo constructor
cout << "Area : " << x.area() << endl;
cout << "Perimetro : " << x.perimetro() << endl;
cout << "Semiperimetro: "<<x.semiperimetro() << endl;
system("PAUSE");
}// Fin del programa principal
Ejem 5.
#include <iostream>
#include <stdlib.h>
// muestra el uso del operador de resolucion o ambito ::
class cuadrado
{
private:
float lado;
public :
cuadrado(){} // constructor vacio
cuadrado(float); // constructor con parametros
double area();
double perimetro();
double semiperimetro();
~cuadrado(); // destructor
};//Fin de la clase
// usando el operador de resolucion o ambito ::
// Definiendo el constructor cuadrado
cuadrado :: cuadrado(float a)
{
lado = a;
}
// definiendo el destructor cuadrado
cuadrado :: ~cuadrado()
Prof.:Ing. Felix Huari E.

Algoritmos y Programacin

4/12
{
cout<<"Objeto cuadrado destruyendose...!" <<endl;
}
//Definiendo la funcion miembro Area
double cuadrado :: area()
{
return lado*lado;
}
//Definiendo la funcion miembro Permetro
double cuadrado::perimetro()
{
return 4*lado;
}
//Definiendo la funcion miembro semiperimetro
double cuadrado :: semiperimetro()
{
return perimetro()/2.0;
}
//Programa principal
int main()
{
cuadrado x; // activando el constructor vacio
flota n;
cout Ingrese un numero:; cin>>n;
x = cuadrado(n); //activando el constructor con parametros
cout << "Area : " << x.area() << endl;
cout << "Perimetro : " << x.perimetro() << endl;
cout << "Semiperimetro: "<<x.semiperimetro() << endl;
system("PAUSE");
} // Fin del programa principal
Ejem 6.
#include <iostream>
#include <stdlib.h>
// Declarando una clase
class TipoRecta
{ private:
float x1,x2,y1,y2,m1,m2;
public:
void Lectura();
void Pendiente(int);
void VerEcuacion();
int VerificaTipoRecta();
};
//Programa principal
int main()
Prof.:Ing. Felix Huari E.

Algoritmos y Programacin

5/12
{

TipoRecta P;
int k;
cout<<"DATOS PARA LA RECTA L1\n";
P.Lectura();
P.Pendiente(0);
P.VerEcuacion();
cout<<"DATOS PARA LA RECTA L2\n";
P.Lectura();
P.Pendiente(1);
P.VerEcuacion();
k=P.VerificaTipoRecta();
if(k==0)
cout<<"L1 y L2 son paralelas\n";
else if(k==1)
cout<<"L1 y L2 son perpendiculares\n";
else
cout<<"L1 y L2 no son paralelas ni perpendiculares\n";
system("PAUSE");
} // fin del programa principal
//Definicion de las funciones miembro de la clase
void TipoRecta::Lectura()
{
cout<<"Coordenada de eje x1:";cin>>x1;
cout<<"Coordenada de eje y1:";cin>>y1;
cout<<"Coordenada de eje x2:";cin>>x2;
cout<<"Coordenada de eje y2:";cin>>y2;
}
void TipoRecta::Pendiente(int i)
{
if(i==0)
m1=(y2-y1)/(x2-x1);
else
m2=(y2-y1)/(x2-x1);
}
void TipoRecta::VerEcuacion()
{
cout<<"\nLa Recta es:(Y-"<<y1<<")="<<m1<<"(X-"<<x1<<")"<<endl;
}
int TipoRecta::VerificaTipoRecta()
{
if(m1==m2)
return 0;
else if(m1*m2==-1)
Prof.:Ing. Felix Huari E.

Algoritmos y Programacin

6/12
return 1;
else
return 2;
}
Ejem 7
#include <iostream>
#include <stdlib.h>
//Muestra el uso de las funciones set y get
//Declarando la clase
class punto
{
private:
int x;
int y;
public :
void setX(int); //establecer coordenada X
void setY(int); //establecer coordenada Y
int getX(); // devolver coordenada X
int getY(); // devolver coordenada Y
};// Fin de la clase
//Definiendo las funciones miembros
//Definiendo la funcion miembro setX
void punto :: setX(int a)
{
x = a;
}
//Definiendo la funcion miembro setY
void punto :: setY(int b)
{
y = b;
}
//Definiendo la funcion miembro getX
int punto::getX()
{
return x;
}
//Definiendo la funcion miembro getY
int punto::getY()
{
return y;
}
//Progrma principal
int main()
{
punto p; // creando el objeto punto
int a,b;
Prof.:Ing. Felix Huari E.

Algoritmos y Programacin

7/12
cout<<Ingrese las cordenada de un punto (a,b):;cin>>a>>b;
p.setX(a);
p.setY(b);
cout<<"La coordenada es P(<<p.getX()<<,<<p.getY()<<)<< endl;
system("PAUSE");
}// Fin de progrma principal
Ejem 8.
#include <iostream>
#include <stdlib.h>
#include <iomanip.h>
#define LINEA "-----------------"
//Declarando la clase
class complex
{
private:
float real;
float imag;
public :
complex() {} // constructor vacio
complex(float a,float b); // constructor con parametros
void print();
//Funcion miembro suma es amiga
friend complex suma(complex x,complex y);
};// Fin de la clase
//Definiendo las funciones miembro de la clase
//Definiendo el constructor
complex :: complex(float a,float b)
{
real=a;
imag=b;
}
//Definendo la funcion miembro print
void complex :: print()
{
cout<<setprecision(2)<<setw(5)<<real<<" + "<<setprecision(2)<<setw(5)<<imag<<"i"<<endl;

}
//definicion de la funcion amiga
complex suma(complex x,complex y)
{
complex z;
z.real=x.real+y.real;
z.imag=x.imag+y.imag;
return z;

Prof.:Ing. Felix Huari E.

Algoritmos y Programacin

8/12
}
//Programa principal
int main()
{
float a,b,c,d;
cout<<Coordenadas del primer punto A (a,b):;cin>>a>>b;
cout<<Coordenadas del segundo punto B (a,b):;cin>>c>>d;
complex A(a,b), B(c,d);
complex C;
A.print(); cout<<"\t\t+" <<endl;
B.print();
C=suma(A,B);
cout<<LINEA<< endl;
C.print();cout<<endl; system("PAUSE");
}
Ejem 9.
#include <iostream>
#include <stdlib.h>
#define BIRTH Feliz Cumpleaos..
// un ejemplo sencillo de una clase
class Dia
{
public:
void print();
int mes;
int dia;
};// Fin de la clase
void Dia :: print() // Definicion de la funcion miembro print
{
cout<<" mes = "<<mes<<" dia = "<<dia<<endl;
}
//Programa principal
int main()
{
Dia hoy, happy; // objetos de la clase Dia
cout<<"Ingrese el dia de hoy "; cin>>hoy.dia;
cout<<"Ingrese el dia de mes "; cin>>hoy.mes;
cout<<"Ingrese el dia y mes de su cumpleaos ";
cin>>happy.dia>>happy.mes;
cout<<"El dia de hoy es: ";hoy.print();
cout<<"El dia de su cumpleaos es: "; happy.print();
if (hoy.dia == happy.dia && hoy.mes == happy.mes)
cout<<BIRTH<<endl;
else
cout<<"Que tengas un lindo dia.....\n"<<endl;
Prof.:Ing. Felix Huari E.

Algoritmos y Programacin

9/12
system("PAUSE");
} //Fin de programa principal
Ejem 10.
/*Uno de los canones de la POO es el ocultamiento de la informacin. El siguiente
ejemplo consta de dos archivos: el primero un archivo header TIME1.H donde se
declara la clase TIME para objetos que guarden hora, minuto, segundo y un
archivo fuente TIME1.CPP donde se encuentra las definiciones de las funciones
miembro de la clase TIME y la funcin main para probar la clase.*/
// Archivo time1.h
#ifndef TIME1_H
#define TIME1_H
// Declaracion de la clase time
class Time
{
int hora; // 0 - 23
int minuto; // 0 59
int segundo; // 0 59
public:
Time(); // constructor
void setTime(int, int , int); // establecer hora, minuto, segundo
void printUniversal(); // imprime la hora en formato universal
void printStandard(); // imprime la hora en formato estandar
};//Fin de la clase
#endif
// Archivo time1.
#include <iostream>
#include <stdlib.h>
#include "time1.h"
/* El constructor Time inicializa a cero los datos miembro, asegura que todos los
objetos de Time inicien en un estado consistente */
//Definiendo las funciones miembro de la clase
//Definiendo el constructor
Time :: Time()
{
hora=0;
minuto=0;
segundo=0;
}
/* Establecer un nuevo valor de hora para Time en formato universal. Realiza
pruebas de validez sobre los datos. Establece a cero los valores no validos */
void Time :: setTime(int h,int m, int s) //Definiendo la funcion miembro setTime
{
hora = ( h >= 0 && h < 24 )? h :0;
minuto = ( m >= 0 && m < 60 )? m :0;
segundo = ( s >= 0 && h < 60 )? s :0;

Prof.:Ing. Felix Huari E.

Algoritmos y Programacin

10/12
}
// Definiendo la funcion miembro printUniversal
void Time :: printUniversal()
{
cout<<(hora < 10 ? "0" : "")<<hora<<":"<<(minuto < 10 ? "0" : "")<<minuto
<<":"<<(segundo<10 ? "0":"")<<segundo;
}
//Definiendo la funcion miembro printStandard
void Time :: printStandard()
{
cout<<((hora == 0 || hora == 12) ? 12 : hora % 12)
<<":"<<(minuto < 10 ? "0" : "")<<minuto<<":"<<(segundo < 10 ? "0" : "")
<<segundo<<(hora < 12 ? " AM":" PM");
}
//Programa principal
int main()
{
int mh,mm,ms;
Time t; // crea el objeto t de la clase Time
cout<<"La hora universal inicial es: "; t.printUniversal();
cout<<"\nLa hora estandar inicial es: "; t.printStandard();
// utilizando setTime()
cout<<"\nIngrese la hora (hh,mm,ss) ";cin>>mh>>mm>>ms;
t.setTime(mh,mm,ms);
cout<<"\n\nLa hora universal despues de setTime es: ";
t.printUniversal(); cout<<"\nLa hora estandar despues de setTime es: ";
t.printStandard();
// intentando valores no validos para el objeto t
t.setTime(100,100,100);
cout<<"\n\nDespues de intentar ingresar valores no validos:\n"
<<"Hora universal: ";
t.printUniversal(); cout<<"\nHora estandar: "; t.printStandard();
cout<<endl<<endl;
system("PAUSE");
}

PROBLEMAS PROPUESTOS
1. Escribir un programa que permita implementar la clase llamada Number, de tal
manera que se pueda escribir un numero en letras y luego en numeracin
romana.

Number
Numero
Letras[80]
VerNumeroLetras()
VerNumeroRomano()

Prof.:Ing. Felix Huari E.

Algoritmos y Programacin

11/12

2. Escribir un programa que permita realizar la operaciones bsicas con 2


matrices que almacenan nmeros enteros. Las operaciones a consignar son la
suma, resta , transpuesta. Para ello debemos ingresar el orden de la matriz.

Matrices
n,m
A[N][M], B[N][M],C[N][M]

Suma()
Resta()
Transpuesta()
VerMatriz()
3. Una empresa tiene una fuerza de ventas de N vendedores, y por cada
vendedor se ingresan los siguientes datos codigo, apellidos, nombres, las
ventas diarias hechas (5 dias), se pide implementar un programa usando una
clase para realizar lo siguiente:
Escribir los datos de los N vendedores incluido las ventas totales
semanal.
Escribir los datos de los N vendedores incluido las ventas totales diarias
Escribir los datos ordenados alfabticamente
Escribir los datos ordenados por las ventas totales semanales.

DatoAlumno
m,n
Cod[8]
Ape[25]
Nom[25]
Ventas[N][M]

CapturaDatos()
VtaTotalSemanal()
VtaTotalDiaria()
OrdenaAlfa()
OrdenaTotalSemanal()
VerListadoInicial()
VerListadoFinal()

4. Implementar una clase llamada TipoNumero, de tal manera que pueda


verificar si es un numero es primo, es un numero perfecto, capica. Disee la

Prof.:Ing. Felix Huari E.

Algoritmos y Programacin

12/12
clase e incluya los datos y funciones miembro necesarios para posteriormente
escribir el programa.
5. Implementar un programa que permita validar la fecha, para ella defina una
clase llamada Fecha con los datos y funciones miembros necesarios. Adems
el programa debe mostrar la fecha del da siguiente.
6. Implementar una clase llamada TarjetaBingo, de tal manera que genere una
cartilla de bingo, los nmeros del bingo deben estar comprendido entre 1 y 50.
Incluir los datos y funciones miembros necesarios.
7. Implementar un programa utilizando clases de tal manera que simule una hoja
del Excel (primera pantalla), de tal manera que al pulsar las teclas
direccionales se desplace el puntero de celda. Si estamos en la celda A1 al
pulsar flecha arriba o flecha a izquierda no debe avanzar el puntero de celda.
Considere las funciones y datos necesarios necesarias.

Prof.:Ing. Felix Huari E.

Algoritmos y Programacin

Вам также может понравиться