Proyecto final " login.cpp " correspondiente al Obj. 2.2 valor 15%
Hacer un programa para calcular el volumen de figuras geométricas empleando polimorfismo, basado en POO (programación orientada a objetos), para calcular el volumen correspondiente.
Indicaciones:
Escribe un programa que ofrezca un menú de opciones, mediante el cual se pueda seleccionar calcular el volumen de las figuras geométricas: cubo, cilindro, cono y esfera. Una vez seleccionada la opción, que permita solicitar y leer el nombre de la figura y los datos necesarios para calcular el volumen correspondiente, imprimir el nombre de la figura y el volumen.
Volumen de cubo = Arista3
Volumen de cilindro = π r2 h
Volumen de cono = 1 / 3 π r2 h
Volumen de esfera = 4 / 3 π r3
Debe ofrecer el siguiente menú de opciones para solicitar la opción deseada.
VOLUMENES FIGURAS GEOMÉTRICAS
1. CUBO
2. CILINDRO
3. CONO
4. ESFERA
OPCION:
La idea es que se use una superclase abstracta Figura que contendrá el dato nombre y los métodos para establecerlo y obtenerlo; además el dato volumen, un método abstracto para calcular el volumen y un método para obtenerlo e imprimirlo. De esa superclase derivar cuatro subclases: Cubo, Cilindro,Cono y Esfera; en cada una de las cuales se heredarán los datos y los métodos de la superclase Figura. Cada subclase de éstas, deberá tener sus propios datos y los métodos necesarios para establecerlos; además del método calcular el volumen de la figura correspondiente. En virtud de que calcular volumen es un método abstracto heredado de la superficie abstracta Figura, cada una de las subclases derivadas, lo deberá implementar de acuerdo con la forma que le corresponda; aplicando el polimorfismo.
Nota: Para poder ejecutar este programa deberá pedir un nombre de usuario y una contraseña, como método de seguridad.
miércoles, 19 de junio de 2013
miércoles, 22 de mayo de 2013
Lista de programas de la Unidad 3. Herencia y sobrecarga de operadores
- asigna.cpp ---|
- arreglo.cpp |-> programas para Práctica 15
- arrebidi.cpp ---|
- pract16.cpp -> programa que calcula areas de figuras geometricas
- pract17.cpp -> programa que calcula la nómina de empleados
- paso.cpp
- devuelto.cpp
- puntero.cpp
- herencia.cpp -> Todos estos programas son tomados
- herenpub.cpp ---> para evaluar las practicas 18, 19 y 20
- herenpu2.cpp
- herenpri.cpp
- herenjer.cpp
- herenmul.cpp
- virtual.cpp
- sobrecar.cpp
- fecha.cpp
- fecha2.cpp
- argumen.cpp
- suma.cpp
- operab.cpp
- operalog.cpp
- unario.cpp -------> ultimo programa de sobrecarga
- fsecuen.cpp --------->Manejo de ficheros (Archivos) secuencia
- fbinario.cpp fichero binario escritura
- fbinlec.cpp fichero binario de lectura
- faleator.cpp fichero aleatorio
- entrada.cpp --------> usando el metodo ifstream y ofstream
- salida.cpp
- login.cpp -----------> Proyecto final del objetivo 2.2 <-----------------
Práctica 17. Manejo de clases basado en POO (programación orientada a objetos)
El sueldo quincenal se calcula:
Elaborar un programa que permita procesar los empleados de la empresa e imprimir el siguiente
reporte:
Reporte de nomina quincenal
RFC Nombre Depto. Puesto Sueldo Quincena
XXXXX XXXXXXXXXXXXXXXXXXXX XXXXXXX XXXXXXXX 99,999.99
XXXXX XXXXXXXXXXXXXXXXXXXX XXXXXXX XXXXXXXX 99,999.99
Total 999 empleados
Propósito de la práctica: Realiza un programa que maneje clases basado en POO (programación orientada a objetos) para el cálculo de nómina de empleados.
En una empresa automotriz se tienen 3 tipos de empleados: administrativos, mecanicos y vendedores. En general, para todos los empleados se tiene los datos RFC (Registro Federal de Contribuyentes), el nombre, el departamento y el puesto. En particular; para el empleado administrativo se tiene el dato sueldo mensual; para el mecánico se tiene el precio del trabajo, tantas veces como trabajos haya realizado; y para el vendedor se tiene el precio del auto, por cada auto que vendió.
El sueldo quincenal se calcula:
- Para el administrativo, sueldo mensual entre 2.
- Para el mecánico, el 4% del valor total.
- Para el vendedor, el salario mínimo, mas el 2 porciento del valor de la venta realizada.
Elaborar un programa que permita procesar los empleados de la empresa e imprimir el siguiente
reporte:
Reporte de nomina quincenal
RFC Nombre Depto. Puesto Sueldo Quincena
XXXXX XXXXXXXXXXXXXXXXXXXX XXXXXXX XXXXXXXX 99,999.99
XXXXX XXXXXXXXXXXXXXXXXXXX XXXXXXX XXXXXXXX 99,999.99
Total 999 empleados
La idea es que se use una superclase Empleado que contendrá los datos RFC, el nombre, el departamento, y el puesto; y los métodos para establecer y obtener cada uno de los datos. De esa superclase derivar tres subclases: EmpAdmvo, EmpMecánico y EmpVendedor; en cada una de las cuales se heredarán los datos y los métodos de la superclase; además, cada subclase de estas, deberán tener sus propios datos y métodos para establecer los datos necesario, calcular el sueldo quincenal correspondiente y obtenerlo para imprimirlo. Asimismo, deberá haber una clase controlador que permita leer los datos y utilice el modelo para representar y solucionar el problema.
martes, 7 de mayo de 2013
Práctica 15. Manejo de componentes del lenguaje orientados a objetos.
- asigna.cpp
- arreglo.cpp
- arrebidi.cpp
Práctica 16. Manejo de herencia basado en POO.
Elabore un programa que ofrezca un menú de opciones, mediante el cual se pueda escoger calcular el área de las figuras geométricas; triangulo, cuadrado, rectángulo y círculo.
Una vez seleccionada la opción, que permita solicitar y leer el nombre de la figura y los datos necesarios para calcular el área correspondiente e imprimir el nombre de la figura y el área.
Área de triangulo = (Base * Altura) / 2
Área de cuadrado = Lado²
Área de circulo = pi * radio²
Área de rectángulo = Base * Altura
Debe ofrecer el siguiente menú de opciones, donde está solicitando la opción deseada.
ÁREAS DE FIGURAS GEOMÉTRICAS
1. TRIANGULO
2. CUADRADO
3. RECTANGULO
4. CIRCULO
5. FIN
OPCION:
lunes, 6 de mayo de 2013
Cuestionario de la Unidad 1. Desarrollo de programas orientados a objetos
Actividad: Descarga el cuestionario del objetivo 1.2 para evaluación
Aquí puedes descargar el archivo: https://www.dropbox.com/s/ovnqj9slwkb5wf7/Objetivo1.2.pdf
Actividad: Descarga el cuestionario del objetivo 1.2 para evaluación
Aquí puedes descargar el archivo: https://www.dropbox.com/s/ovnqj9slwkb5wf7/Objetivo1.2.pdf
lunes, 29 de abril de 2013
Práctica 14. Realizar un programa que emplee clases, basado en POO (programación orientada a objetos) para calcular el perímetro y el área de un rectángulo. Deben verificar que longitud y ancho contengan números reales y que el valor de ancho sea menor o igual que veinte, de lo contrario mostraran el valor de cero.
El programa debe mostrar una salida en pantalla como la siguiente:
Las formulas para usar son: Área =base*altura, Perímetro =Lado+Lado+Lado+Lado.
La clase utiliza estas variables a= altura, b=ancho o base.
class rectangulo {
float a,b;
float Area,Perimetro;
public:
void area(float a,float b);
void perimetro(float a,float b);
};
El programa debe mostrar una salida en pantalla como la siguiente:
Las formulas para usar son: Área =base*altura, Perímetro =Lado+Lado+Lado+Lado.
La clase utiliza estas variables a= altura, b=ancho o base.
class rectangulo {
float a,b;
float Area,Perimetro;
public:
void area(float a,float b);
void perimetro(float a,float b);
};
miércoles, 24 de abril de 2013
Práctica 13. Consiste en sumar y restar números complejos de la forma a(x,y) donde "x" es la parte real y "y" la parte imaginaria, ejemplo: a(1,1) y b(2,2) el resultado de la suma seria c(3,3) y de la resta c(-1,-1), utiliza función constructora, punteros, funciones miembro, clases y objetos.
Editar el programa en turbo c++ y corregir errores sin ayuda del Profesor.
#include<iostream.h>
#include<conio.h>
//SUNMA Y RESTA DE NUMEROS COMPLEJOS DE LA FORMA a(x,y)
class complejo{
double real;
double comp;
public:
complejo();
complejo(double);
complejo(double,double);
complejo *suma(complejo&);
complejo *resta(complejo&);
double getreal();
double getcomp();
};
complejo::complejo()
{
real=0;
comp=0;
}
complejo::complejo(double real)
{
this->real=real;
comp=0;
}
complejo::complejo(double real,double comp)
{
this->real=real;
this->comp=comp;
}
complejo *complejo::suma(complejo &otro)
{return new complejo(this->real+otro.real,this->comp+otro.comp);}
complejo *complejo::resta(complejo &otro)
{return new complejo(this->real-otro.real,this->comp-otro.comp);}
double complejo::getreal()
{return this->real;}
double complejo::getcomp()
{return this->comp;}
void main()
{clrscr();
double x,y,x1,y1;
cout<<"Dame los 2 valores del numero complejo a(x,y)"<<endl;
cin>>x>>y;
cout<<"Dame los 2 valores del numero complejo b(x1,y1)"<<endl;
cin>>x1>>y1;
complejo a(x,y);
complejo b(x1,y1);
cout<<"Estos son los numeros complejos a("<<a.getreal()<<","<<a.getcomp()
<<") y b("<<b.getreal()<<","<<b.getcomp()<<")\n\n";
complejo *s=a.suma (b);
cout<<"La suma es:("<<s->getreal()<<","<<s->getcomp()<<")\n\n";
complejo *r=a.resta (b);
cout<<"La resta es:("<<r->getreal()<<","<<r->getcomp()<<")";
delete s,r;
getch();
}
Editar el programa en turbo c++ y corregir errores sin ayuda del Profesor.
#include<iostream.h>
#include<conio.h>
//SUNMA Y RESTA DE NUMEROS COMPLEJOS DE LA FORMA a(x,y)
class complejo{
double real;
double comp;
public:
complejo();
complejo(double);
complejo(double,double);
complejo *suma(complejo&);
complejo *resta(complejo&);
double getreal();
double getcomp();
};
complejo::complejo()
{
real=0;
comp=0;
}
complejo::complejo(double real)
{
this->real=real;
comp=0;
}
complejo::complejo(double real,double comp)
{
this->real=real;
this->comp=comp;
}
complejo *complejo::suma(complejo &otro)
{return new complejo(this->real+otro.real,this->comp+otro.comp);}
complejo *complejo::resta(complejo &otro)
{return new complejo(this->real-otro.real,this->comp-otro.comp);}
double complejo::getreal()
{return this->real;}
double complejo::getcomp()
{return this->comp;}
void main()
{clrscr();
double x,y,x1,y1;
cout<<"Dame los 2 valores del numero complejo a(x,y)"<<endl;
cin>>x>>y;
cout<<"Dame los 2 valores del numero complejo b(x1,y1)"<<endl;
cin>>x1>>y1;
complejo a(x,y);
complejo b(x1,y1);
cout<<"Estos son los numeros complejos a("<<a.getreal()<<","<<a.getcomp()
<<") y b("<<b.getreal()<<","<<b.getcomp()<<")\n\n";
complejo *s=a.suma (b);
cout<<"La suma es:("<<s->getreal()<<","<<s->getcomp()<<")\n\n";
complejo *r=a.resta (b);
cout<<"La resta es:("<<r->getreal()<<","<<r->getcomp()<<")";
delete s,r;
getch();
}
domingo, 21 de abril de 2013
Este es el código de la práctica 12 Método de búsqueda Binaria
#include<iostream.h>
#include<conio.h>
#define max 50 //este valor depende del usuario
void ingresarArreglo(float A[max],int n)
{ int i;
for(i=0;i<n;i++)
{ cout<<"A["<<i+1<<"]=";
cin>>A[i];
}
cout<<endl;
}
void reportarVector(float V[max],int n)
{ int i;
for(i=0;i<n;i++)//recorre el arreglo
{ cout<<V[i]<<" ";
}
cout<<endl;
}
//función de ordenación por el método de selección
void ordenarSeleccion(float V[max],int n)
{ int i,j,k;
float temp;
for(i=0;i<n-1;i++)
{ k=i;
temp=V[i];//el primer valor del arreglo lo asignamos a un temporal
//para luego compararlo con los demás valores del arreglo hasta encontrar el menor valor
for(j=i+1;j<n;j++)
{ if(V[j]<temp)//si encontramos un valor que sea menor que el primer valor del arreglo (temp)
//entonces intercambiamos de posición,los mismos pasos se repetirán hasta que arreglo sea ordenado completamente
{ k=j;
temp=V[j];
}
}
V[k]=V[i];
V[i]=temp;
}
}
//funcion de busqueda binaria,solo funciona para arreglos ordenados
int busquedaBinaria(float V[max],int n ,int dato)
{ int mitad,izq,der;
izq=0;
der=n-1;
while(izq<=der)//el elemento que esta ala izquierda debe de ser menor que el de la derecha
{ mitad=(izq+der)/2;//calculamos el elemento central del arreglo hasta encontrar el valor buscado
if(dato>V[mitad])//si el elemento buscado es mayor que el centro entonces buscamos en la segunda mitad del arreglo
izq=mitad+1;//el primer valor del arreglo pasa hacer la mitad mas 1
else if(dato<V[mitad])//si el elemento buscado buscado es menor que la mitad entonces buscamos en la primera mitad del arreglo
der=mitad-1;
else
return mitad; //retornamos el elemento encontrado
}
return -1;//el elemento no existe en el arreglo
}
void main()
{ float A[max];
int n,dato;
int pos;
clrscr();
cout<<"Ingrese numero de elementos: ";
cin>>n;
ingresarArreglo(A,n);
cout<<"Vector ingresado"<<endl;
reportarVector(A,n);
cout<<endl;
ordenarSeleccion(A,n);
cout<<"El vector ordenado: "<<endl;
reportarVector(A,n);
cout<<endl;
cout<<"Ingrese numero a buscar: ";
cin>>dato;
pos=busquedaBinaria(A,n,dato);
{ if(pos==-1)
cout<<"El dato no esta en el arreglo"<<endl;
else
cout<<"El dato se encontro en la posicion: "<<pos+1<<endl; //Se imprime la posición del elemento
} //encontrado
getch();
}
#include<iostream.h>
#include<conio.h>
#define max 50 //este valor depende del usuario
void ingresarArreglo(float A[max],int n)
{ int i;
for(i=0;i<n;i++)
{ cout<<"A["<<i+1<<"]=";
cin>>A[i];
}
cout<<endl;
}
void reportarVector(float V[max],int n)
{ int i;
for(i=0;i<n;i++)//recorre el arreglo
{ cout<<V[i]<<" ";
}
cout<<endl;
}
//función de ordenación por el método de selección
void ordenarSeleccion(float V[max],int n)
{ int i,j,k;
float temp;
for(i=0;i<n-1;i++)
{ k=i;
temp=V[i];//el primer valor del arreglo lo asignamos a un temporal
//para luego compararlo con los demás valores del arreglo hasta encontrar el menor valor
for(j=i+1;j<n;j++)
{ if(V[j]<temp)//si encontramos un valor que sea menor que el primer valor del arreglo (temp)
//entonces intercambiamos de posición,los mismos pasos se repetirán hasta que arreglo sea ordenado completamente
{ k=j;
temp=V[j];
}
}
V[k]=V[i];
V[i]=temp;
}
}
//funcion de busqueda binaria,solo funciona para arreglos ordenados
int busquedaBinaria(float V[max],int n ,int dato)
{ int mitad,izq,der;
izq=0;
der=n-1;
while(izq<=der)//el elemento que esta ala izquierda debe de ser menor que el de la derecha
{ mitad=(izq+der)/2;//calculamos el elemento central del arreglo hasta encontrar el valor buscado
if(dato>V[mitad])//si el elemento buscado es mayor que el centro entonces buscamos en la segunda mitad del arreglo
izq=mitad+1;//el primer valor del arreglo pasa hacer la mitad mas 1
else if(dato<V[mitad])//si el elemento buscado buscado es menor que la mitad entonces buscamos en la primera mitad del arreglo
der=mitad-1;
else
return mitad; //retornamos el elemento encontrado
}
return -1;//el elemento no existe en el arreglo
}
void main()
{ float A[max];
int n,dato;
int pos;
clrscr();
cout<<"Ingrese numero de elementos: ";
cin>>n;
ingresarArreglo(A,n);
cout<<"Vector ingresado"<<endl;
reportarVector(A,n);
cout<<endl;
ordenarSeleccion(A,n);
cout<<"El vector ordenado: "<<endl;
reportarVector(A,n);
cout<<endl;
cout<<"Ingrese numero a buscar: ";
cin>>dato;
pos=busquedaBinaria(A,n,dato);
{ if(pos==-1)
cout<<"El dato no esta en el arreglo"<<endl;
else
cout<<"El dato se encontro en la posicion: "<<pos+1<<endl; //Se imprime la posición del elemento
} //encontrado
getch();
}
Este es el código del programa de la práctica 11 Método de búsqueda secuencial
#include<iostream.h>
#include<conio.h>
#define max 50 //este valor depende del usuario
void ingresarArreglo(int A[max],int n)
{ int i;
for(i=0;i<n;i++)
{ cout<<"A["<<i+1<<"]=";
cin>>A[i];
}
cout<<endl;
}
void reportarVector(int V[max],int n)
{ int i;
for(i=0;i<n;i++)//recorre el arreglo
{ cout<<V[i]<<" ";
}
cout<<endl;
}
//funcion de ordenacion por el metodo de seleccion
void ordenarSeleccion(int V[max],int n)
{ int i,j,k;
float temp;
for(i=0;i<n-1;i++)
{ k=i;
temp=V[i];//el primer valor del arreglo lo asignamos a un temporal
//para luego compararlo con los demas valores del arreglo hasta encontrar el menor valor
for(j=i+1;j<n;j++)
{ if(V[j]<temp)//si encontramos un valor que sea menor que el primer valor del arreglo (temp)
//entonces intercambiamos de posicion,los mismos pasos se repetira hasta que arreglo sea ordenado completamente
{ k=j;
temp=V[j];
}
}
V[k]=V[i];
V[i]=temp;
}
}
//funcion de busqueda secuencial, solo funciona para arreglos ordenados y desordenados
int busquedaSecuencial(int A[max], int n, int dato)
{ int i;
for(i=0;i<n;i++) //Buscar por todo el arreglo
{ if (A[i]==dato) //si el elemento del arreglo es igual al dato buscado
return i; //regresa la posicion del elemento buscado
}
return -1; //Si no error
}
void main()
{ int A[max];
int n,dato;
int pos;
clrscr();
cout<<"Ingrese numero de elementos: ";
cin>>n;
ingresarArreglo(A,n);
cout<<"Vector ingresado"<<endl;
reportarVector(A,n);
cout<<endl;
ordenarSeleccion(A,n);
cout<<"El vector ordenado: "<<endl;
reportarVector(A,n);
cout<<endl;
cout<<"Ingrese numero a buscar: ";
cin>>dato;
pos=busquedaSecuencial(A,n,dato);
{ if(pos==-1)
cout<<"El dato no esta en el arreglo"<<endl;
else
cout<<"El dato se encontro en la posicion: "<<pos+1<<endl; //Se imprime la posición del elemento
} //encontrado
getch();
}
#include<iostream.h>
#include<conio.h>
#define max 50 //este valor depende del usuario
void ingresarArreglo(int A[max],int n)
{ int i;
for(i=0;i<n;i++)
{ cout<<"A["<<i+1<<"]=";
cin>>A[i];
}
cout<<endl;
}
void reportarVector(int V[max],int n)
{ int i;
for(i=0;i<n;i++)//recorre el arreglo
{ cout<<V[i]<<" ";
}
cout<<endl;
}
//funcion de ordenacion por el metodo de seleccion
void ordenarSeleccion(int V[max],int n)
{ int i,j,k;
float temp;
for(i=0;i<n-1;i++)
{ k=i;
temp=V[i];//el primer valor del arreglo lo asignamos a un temporal
//para luego compararlo con los demas valores del arreglo hasta encontrar el menor valor
for(j=i+1;j<n;j++)
{ if(V[j]<temp)//si encontramos un valor que sea menor que el primer valor del arreglo (temp)
//entonces intercambiamos de posicion,los mismos pasos se repetira hasta que arreglo sea ordenado completamente
{ k=j;
temp=V[j];
}
}
V[k]=V[i];
V[i]=temp;
}
}
//funcion de busqueda secuencial, solo funciona para arreglos ordenados y desordenados
int busquedaSecuencial(int A[max], int n, int dato)
{ int i;
for(i=0;i<n;i++) //Buscar por todo el arreglo
{ if (A[i]==dato) //si el elemento del arreglo es igual al dato buscado
return i; //regresa la posicion del elemento buscado
}
return -1; //Si no error
}
void main()
{ int A[max];
int n,dato;
int pos;
clrscr();
cout<<"Ingrese numero de elementos: ";
cin>>n;
ingresarArreglo(A,n);
cout<<"Vector ingresado"<<endl;
reportarVector(A,n);
cout<<endl;
ordenarSeleccion(A,n);
cout<<"El vector ordenado: "<<endl;
reportarVector(A,n);
cout<<endl;
cout<<"Ingrese numero a buscar: ";
cin>>dato;
pos=busquedaSecuencial(A,n,dato);
{ if(pos==-1)
cout<<"El dato no esta en el arreglo"<<endl;
else
cout<<"El dato se encontro en la posicion: "<<pos+1<<endl; //Se imprime la posición del elemento
} //encontrado
getch();
}
miércoles, 10 de abril de 2013
Lista de programas y practicas de la UNIDAD 2
- pract5.cpp Estos son los demás programas del obj. 1.2.1
- pract6.cpp
- barra.cpp
- ventana.cpp
- pract7.cpp
- pract8.cpp
- pract9.cpp Estos son los métodos de ordenamiento
- pract10.cpp -----------------------------------------
- pract11.cpp Estos son los métodos de búsqueda
- pract12.cpp ----------------------------------------
- construc.cpp
- destruc.cpp
- pract13.cpp Suma y resta de números complejos
- conspara.cpp
- conspar2.cpp
- pract14.cpp Calcula Área y Perímetro de un rectángulo
- inline.cpp
- mult.cpp
Lista de programas de repaso y practicas de la UNIDAD 1
- dias.cpp Estos son los programas que deben tener hasta ahora en el obj. 1.1.1
- trescal.cpp
- octal.cpp
- peligro.cpp
- if.cpp
- while.cpp
- contador.cpp
- conta10.cpp
- for1.cpp
- for10.cpp
- fact.cpp
- sumas.cpp
- ecuacion.cpp
- tabla.cpp
- dowhile.cpp
- mat.cpp
- pract1.cpp Estos son los programas de las practicas realizadas obj. 1.2.1
- pract2.cpp
- pract3.cpp
- pract4.cpp
miércoles, 20 de marzo de 2013
Objetivo 1.1 Actividad a realizar: Leer los temas y contestar las preguntas relacionadas con sus propias palabras. "Uso de modelos para el diseño de programas orientados a objetos". Enviar sus preguntas y respuestas al siguiente correo: srdea@yahoo.com.mx
valor de la actividad 30%
Por otro lado, una instancia de una clase es otra forma de llamar a un objeto. En realidad no existe diferencia entre un objeto y una instancia. Sólo que el objeto es un término más general, pero los objetos y las instancias son ambas representación de una clase.
valor de la actividad 30%
- ¿Qué es un caso de uso?
- ¿Qué es una clase?
- ¿Qué es un objeto?
TEMAS:
- Casos de uso
- Definición teórica de clase
Por otro lado, una instancia de una clase es otra forma de llamar a un objeto. En realidad no existe diferencia entre un objeto y una instancia. Sólo que el objeto es un término más general, pero los objetos y las instancias son ambas representación de una clase.
- Objetos
Suscribirse a:
Entradas (Atom)