EJERCICIO DE HERENCIA DE LOS TRANSPORTES
Realizar un programa que imprima los datos de un coche, un tren y un avión con la clase vehículo utilizando herencia
#include <stdio.h>
#include <conio.h>
#include <iostream>
using namespace std;
class vehiculo{
public:
int dep, vel;
public:
void acelerar(){
cout << "Acelerar"<<endl;}
void frenar(){
cout << "Frenar"<<endl<<endl;}
};
class coche : public vehiculo{
private:
int puertas;
public:
coche(int dep1, int vel1, int puertas1){
dep=dep1;
vel=vel1;
puertas=puertas1;
}
void imprimir(){
cout<<"Deposito ="<<dep<<endl;
cout<<"Velocidad ="<<vel<<endl;
cout<<"Puertas ="<<puertas<<endl;
}
};
class tren : public vehiculo{
private:
int vagones;
public:
tren(int dep1, int vel1, int vagones1){
dep=dep1;
vel=vel1;
vagones=vagones1;
}
void imprimir(){
cout<<"Deposito ="<<dep<<endl;
cout<<"Velocidad ="<<vel<<endl;
cout<<"Vagones ="<<vagones<<endl;
}
};
class avion : public vehiculo{
private:
int puertas;
public:
void despegar(){
cout << "Despegar"<<endl;
}
void aterrizar(){
cout << "Aterrizar"<<endl;
}
avion(int dep1, int vel1, int puertas1){
dep=dep1;
vel=vel1;
puertas=puertas1;
}
void imprimir(){
cout<<"Deposito ="<<dep<<endl;
cout<<"Velocidad ="<<vel<<endl;
cout<<"Puertas ="<<puertas<<endl;
}
};
main()
{
coche a1(80,180,2);
tren a2(100,90,7);
avion a3(100,190,1);
cout << "Coche" << endl;
a1.imprimir();
a1.acelerar();
a1.frenar();
cout << "Tren" << endl;
a2.imprimir();
a2.acelerar();
a2.frenar();
cout << "Avion" << endl;
a3.imprimir();
a3.acelerar();
a3.frenar();
a3.despegar();
a3.aterrizar();
getch();
}
Blog de Programacion de 2do Informatica
miércoles, 31 de enero de 2018
CLASE 8: EJERCICIO
EJERCICIO DATOS DE UN COCHE
Realizar un programa que solicite al usuario los datos de coche (adaptar método) si el modelo del auto es anterior al 2000.
Va velocidad seran 20 * dibujados,velocidad maxima sera 120km/h, aceleracion desconocida.
Si el modelo del auto es mayor al 2000 si velocidad sera 50 *, velocidad máxima 300 km/h, aceleración 10km/s.
Realize un programa qu ingrese los datos, salga la especificacion, y que salga el programa con 0
#include <conio.h>
#include <iostream>
using namespace std;
class coche
{
private:
string matricula;
string marca;
int modelo;
int numerodepuertas;
public:
coche(string matricula1, string marca1, int modelo1, int numerodepuertas1)
{
matricula=matricula1;
marca=marca1;
modelo=modelo1;
numerodepuertas=numerodepuertas1;
}
void verdatos()
{
cout<<"Matricula:\n"<<matricula<<"\n";
cout<<"Marca:\n"<<marca<<"\n";
cout<<"Modelo:\n"<<modelo<<"\n";
cout<<"Numero de puertas:\n"<<numerodepuertas<<"\n";
}
void velocidad(int numast)
{
cout<<"Velocidad"<<endl;
for(int i=0;i<numast;i++)
{
cout<<"*";
}
}
void velocidadmaxima(int velocmax)
{
cout<<"\n";
cout<<"Velocidad maxima"<<"\n"<<velocmax<<"km/h"<<endl;
}
void aceleracion(string acelrn)
{
cout<<"Aceleracion"<<"\n"<<acelrn<<"km/s"<<endl;
}
};
int main(){
int n;
do{
string matricula;
string marca;
int modelo;
int numerodepuertas;
cout<<"Ingrese la matricula del vehiculo:"<<endl;
cin>>matricula;
cout<<"Ingrese la marca:"<<endl;
cin>>marca;
cout<<"Ingrese el modelo:"<<endl;
cin>>modelo;
cout<<"Ingrese el numero de puertas:"<<endl;
cin>>numerodepuertas;
coche a1(matricula,marca,modelo,numerodepuertas);
if(modelo<=2000){
a1.velocidad(20);
a1.velocidadmaxima(120);
a1.aceleracion("desconocido"); }
else{
a1.velocidad(50);
a1.velocidadmaxima(30);
a1.aceleracion("10"); }
a1.verdatos();
cout<<"Presione 0 si desea salir, o cualquier numero para volver a ingresar datos\n";
cin>>n;
}while(n!=0);
}
Realizar un programa que solicite al usuario los datos de coche (adaptar método) si el modelo del auto es anterior al 2000.
Va velocidad seran 20 * dibujados,velocidad maxima sera 120km/h, aceleracion desconocida.
Si el modelo del auto es mayor al 2000 si velocidad sera 50 *, velocidad máxima 300 km/h, aceleración 10km/s.
Realize un programa qu ingrese los datos, salga la especificacion, y que salga el programa con 0
#include <conio.h>
#include <iostream>
using namespace std;
class coche
{
private:
string matricula;
string marca;
int modelo;
int numerodepuertas;
public:
coche(string matricula1, string marca1, int modelo1, int numerodepuertas1)
{
matricula=matricula1;
marca=marca1;
modelo=modelo1;
numerodepuertas=numerodepuertas1;
}
void verdatos()
{
cout<<"Matricula:\n"<<matricula<<"\n";
cout<<"Marca:\n"<<marca<<"\n";
cout<<"Modelo:\n"<<modelo<<"\n";
cout<<"Numero de puertas:\n"<<numerodepuertas<<"\n";
}
void velocidad(int numast)
{
cout<<"Velocidad"<<endl;
for(int i=0;i<numast;i++)
{
cout<<"*";
}
}
void velocidadmaxima(int velocmax)
{
cout<<"\n";
cout<<"Velocidad maxima"<<"\n"<<velocmax<<"km/h"<<endl;
}
void aceleracion(string acelrn)
{
cout<<"Aceleracion"<<"\n"<<acelrn<<"km/s"<<endl;
}
};
int main(){
int n;
do{
string matricula;
string marca;
int modelo;
int numerodepuertas;
cout<<"Ingrese la matricula del vehiculo:"<<endl;
cin>>matricula;
cout<<"Ingrese la marca:"<<endl;
cin>>marca;
cout<<"Ingrese el modelo:"<<endl;
cin>>modelo;
cout<<"Ingrese el numero de puertas:"<<endl;
cin>>numerodepuertas;
coche a1(matricula,marca,modelo,numerodepuertas);
if(modelo<=2000){
a1.velocidad(20);
a1.velocidadmaxima(120);
a1.aceleracion("desconocido"); }
else{
a1.velocidad(50);
a1.velocidadmaxima(30);
a1.aceleracion("10"); }
a1.verdatos();
cout<<"Presione 0 si desea salir, o cualquier numero para volver a ingresar datos\n";
cin>>n;
}while(n!=0);
}
CLASE 7: HERENCIA
HERENCIA SIMPLE
Herencia Simple La herencia en C++ es un mecanismo de abstracción creado para
poder facilitar, y mejorar el diseño de las clases de un programa. Con ella se
pueden crear nuevas clases a partir de clases ya hechas, siempre y cuando
tengan un tipo de relación especial. En la herencia, las clases derivadas
“heredan” los datos y la función miembro de las clases base, pudiendo las
clases derivadas redefinir estos comportamientos (polimorfismo) y añadir
comportamientos nuevos propios de las clases derivadas. Para no romper el principio
de encapsulamiento (ocultar datos cuyo conocimiento no es necesario para el uso
de las clases), se proporciona un nuevo modo de visibilidad de los
datos/funciones: “protected”. Cualquier cosa que tenga visibilidad protected se
comportará como pública en la clase Base y en las que componen la jerarquía de
herencia, y como privada en las clases que NO sean de la jerarquía de la
herencia. Antes de utilizar la herencia, nos tenemos que hacer una pregunta, y
si tiene sentido, podemos intentar usar esta jerarquía: Si la frase
<claseB> ES-UN <claseA> tiene sentido, entonces estamos ante un
posible caso de herencia donde clase A será la clase base y clase B la
derivada.
EJEMPLO:
#include<conio.h>
#include <iostream>
using namespace std;
class Vehiculo {
public:
void avanza() {}
};
class Coche : public Vehiculo {
public:
void avanza(void)
{ cout << "Avanza coche." << endl; }
};
class Moto: public Vehiculo {
public:
void avanza(void)
{ cout << "Avanza moto." << endl; }
};
int main()
{
Moto t;
Coche c;
t.avanza();
c.avanza();
return 0;
}
using namespace std;
class Vehiculo {
public:
void avanza() {}
};
class Coche : public Vehiculo {
public:
void avanza(void)
{ cout << "Avanza coche." << endl; }
};
class Moto: public Vehiculo {
public:
void avanza(void)
{ cout << "Avanza moto." << endl; }
};
int main()
{
Moto t;
Coche c;
t.avanza();
c.avanza();
return 0;
}
HERENCIA MÚLTIPLE
La herencia múltiple es el mecanismo que permite al programador
hacer clases derivadas a partir, no de una sola clase base, sino de varias.
Para entender esto mejor, pongamos un ejemplo: Cuando ves a quien te atiende en
una tienda, como persona que es, podrás suponer que puede hablar, comer, andar,
pero, por otro lado, como empleado que es, también podrás suponer que tiene un
jefe, que puede cobrarte dinero por la compra, que puede devolverte el cambio.
La herencia múltiple presenta el conocido problema del diamante. Esté problema
surge cuando dos clases heredan de otra tercera y, además una cuarta clase
tiene cómo padre a las dos últimas. La primera clase padre es llamada A y las
clases B y C heredan de ella, a su vez la clase D tiene cómo padres a B y C. En
esta situación, si una instancia de la clase D llama a un método de la clase A,
¿lo heredará desde la clase B o desde la clase C? Cada lenguaje de programación
utiliza un algoritmo para tomar esta decisión
EJEMPLO:
#include <math.h>
#include <stdio.h>
class Circulo {
float radio;
public:
Circulo(float r) { radio = r; }
float area() { return M_PI*radio*radio; }
};
class Mesa {
float altura;
public:
Mesa(float a) { altura = a; }
float alto() { return altura; }
};
class MesaRedonda : public Mesa, public Circulo {
int color;
public:
MesaRedonda(float r, float a, int c);
int Color() { return color; }
};
MesaRedonda::MesaRedonda(float r, float a, int c) :
Circulo(r), Mesa(a)
{
color = c;
}
void main()
{
MesaRedonda mesa(15.0, 3.0, 5);
printf("\nLas propiedades de la mesa son:");
printf("\nAltura = %0.2f", mesa.alto());
printf("\nArea = %0.2f", mesa.area());
printf("\nColor = %d", mesa.Color());
}
NETGRAFIA:
http://www.itlalaguna.edu.mx/academico/carreras/sistemas/programacion2/CPP9C.pdf
lunes, 29 de enero de 2018
EJERCICIO EN CLASE
EJERCICIO DE COCHE CONSTRUCTORES
Realizar un programa con constructores que imprima los datos de un coche
#include <conio.h>
#include <iostream>
using namespace std;
class coche{
public:
string matricula;
string marca;
int modelo;
int numerop;
public:
coche(string matricula2, string marca2, int modelo2, int numero2){
matricula=matricula2;
marca=marca2;
modelo=modelo2;
numerop=numero2;
}
void velocidad(){
}
void velocidadMaxima(){
}
void aceleracion(){
}
void imprimir (){
cout<<matricula<<endl <<marca<<endl <<modelo<<endl <<numerop<<endl;
}
};
main (){
coche b1("BTH-7831","NISSAN",205,9);
b1.imprimir();
return 0;
}
Realizar un programa con constructores que imprima los datos de un coche
#include <conio.h>
#include <iostream>
using namespace std;
class coche{
public:
string matricula;
string marca;
int modelo;
int numerop;
public:
coche(string matricula2, string marca2, int modelo2, int numero2){
matricula=matricula2;
marca=marca2;
modelo=modelo2;
numerop=numero2;
}
void velocidad(){
}
void velocidadMaxima(){
}
void aceleracion(){
}
void imprimir (){
cout<<matricula<<endl <<marca<<endl <<modelo<<endl <<numerop<<endl;
}
};
main (){
coche b1("BTH-7831","NISSAN",205,9);
b1.imprimir();
return 0;
}
CLASE 6: EJERCICIO
EJERCICIO: DATOS PERSONALES
Realice una clase llamada datos personales que tenga 3 datos nombre, edad, estado civil.
Realice un programa que contenga un constructor por defecto que inicialize a los valores por defecto xxx -1, y desconocido, dos métodos(constructor e imprimir) y 3 atributos.
#include <iostream>
#include <conio.h>
using namespace std;
class DatosPersonales{
private:
string nombre, estadocivil;
int edad;
public:
DatosPersonales(){
edad = -1;
nombre = "x x x";
estadocivil = "Desconocido";
}
void GetDatos()
{
cout << nombre << endl;
cout << edad << endl;
cout << estadocivil;
}
};
main()
{
DatosPersonales p1;
p1.GetDatos();
getch();
}
Realice una clase llamada datos personales que tenga 3 datos nombre, edad, estado civil.
Realice un programa que contenga un constructor por defecto que inicialize a los valores por defecto xxx -1, y desconocido, dos métodos(constructor e imprimir) y 3 atributos.
#include <iostream>
#include <conio.h>
using namespace std;
class DatosPersonales{
private:
string nombre, estadocivil;
int edad;
public:
DatosPersonales(){
edad = -1;
nombre = "x x x";
estadocivil = "Desconocido";
}
void GetDatos()
{
cout << nombre << endl;
cout << edad << endl;
cout << estadocivil;
}
};
main()
{
DatosPersonales p1;
p1.GetDatos();
getch();
}
CLASE 5: CONSTRUCTORES
Objetivo: Investigar
sobre la sintaxis, para que sirve, que sea especifico y clara y con un ejemplo
de constructores que nos puede hacer mejorar los conocimientos y ampliar
nuestra mente y poder programar con facilidad.
Sintaxis
La sintaxis de un lenguaje
de programación es el conjunto de reglas que debemos seguir para que el
compilador sea capaz de reconocer nuestro programa como un programa C válido, la
sintaxis se entiende como el grupo de normas que marcan las secuencias
correctas de los elementos propios de un lenguaje de programación.
PARA QUE SIRVE
La Sintaxis sirve para
hablar y escribir correctamente. Aquellas personas que son capaces de dominar
los principios básicos de la Sintaxis, son aquellas que tenderán a expresarse y
a redactar con mayor corrección y propiedad.
Explicación de cómo funciona la sintaxis
Para que el compilador
reconozca nuestro programa debemos escribir al menos todas las palabras y
signos que no están en letra cursiva. Las partes en cursiva se reconocen usando
otras reglas sintácticas. Estas reglas definen o dicen como debe ser una lista
de sentencias. Una característica de la sintaxis del C es que los espacios en
blanco y retornos de carro que aparecen en las reglas sintácticas son
opcionales. printf() es lo que se
denomina una función estándar de C, es decir, una función que está incluida con
el compilador. Para poder usarla dentro de un programa hay que decir en el
mismo como es su forma: eso se hace incluyendo la línea #include
<stdio.h> al principio. Para poder trabajar o llamar a una función
estándar hay que conocer que necesita y qué hace. De la función printf hay que
saber:
Su nombre
Cada vez que se coloca
printf en un programa le estamos diciendo al compilador de C que queremos usar
esta función. Lo que se quiere
imprimir, que irá entre los paréntesis. En
general, la expresión (números o texto) que va entre los paréntesis de una
función se llaman parámetros de la función.
CONSTRUCTORES
Es la función que lleva el
mismo nombre que la clase y que es llamada cada vez que un objeto de la clase
es creado
* Tienen el mismo nombre que
la clase a la que pertenecen.
* No tienen tipo de retorno, y por lo
tanto no retornan ningún valor.
* No pueden ser heredados.
EJEMPLO DE CONSTRUCTOR
NETGRAFIA:
http://codigomaldito.blogspot.com/2005/11/inicializacin-con-constructores.html
CLASE 4: EL ENCAPSULAMIENTO
OBJETIVO: Investigar sobre el tema de que es el
encapsulamiento en c++ con un ejemplo claro que ayude a mejorar nuestros
conocimientos para poder entender mejor a una función clase.
El encapsulamiento
Es el proceso
de almacenar en una misma sección los elementos de una abstracción que
constituyen su estructura y su comportamiento; sirve para separar el interfaz
contractual de una abstracción y su implantación.
Para que la
abstracción funcione como debe, la implementación debe estar encapsulada, nunca está de más recordar que cada clase
debe tener dos partes, una interfaz y una implementación, tranquilo no te
asustes si no sabes que es una clase, ya llegaremos a ese tema, de momento
manténgase concentrado en la encapsulación.
Existen tres niveles de
acceso para el encapsulamiento, los cuales son:
Público
(Public): Todos pueden acceder a los datos o métodos de una clase que se
definen con este nivel, este es el nivel más bajo, esto es lo que tú quieres
que la parte externa vea.
Protegido
(Protected): Podemos decir que estás no son de acceso público, solamente son
accesibles dentro de su clase y por subclases.
Privado
(Private): En este nivel se puede declarar miembros accesibles sólo para la
propia clase.
EJEMPLO :
NETGRAFIA:
https://styde.net/encapsulamiento-en-la-programacion-orientada-a-objetos/
Suscribirse a:
Entradas (Atom)