Está en la página 1de 10

TALLER CONSTRUCTORES

Ejercicio 1
/* Elaborar un aplicativo en C++, que le permita a un determinado número de clientes establecer
el tipo de vivienda que más le conviene adquirir. Para el desarrollo tenga en cuenta lo siguiente: 
El usuario debe ingresar la cantidad de clientes a evaluar.

 La constructora ofrece dos tipos de vivienda: en obra negra y con acabados. La vivienda de
obra negra se caracteriza por su dimensión en metros cuadrados y valor, mientras que la
vivienda con acabados se distingue por su valor y nivel de estrato.
 En el caso de la vivienda en obra negra el valor disminuye en un 10% de su valor original, si
su dimensión es menor a 60 metros cuadrados.
 En el caso de la vivienda con acabados el valor aumenta en un 20% de su valor original, si
su estrato es cuatro o mayor a cuatro.
 Se debe aplicar los siguientes conceptos de la POO:
a) Creación de clase dentro de una librería propia
b) Desarrollo de constructores sin parámetros y con parámetros.
c) Instanciamiento
 Se debe imprimir un reporte por pantalla con los datos de la vivienda según corresponda,
y mostrar el valor actualizado de la vivienda.

*/
#include <iostream>
#include <math.h>
using namespace std;

class obra_negra{
private://atributos
float dimension;
float valor1;
public://metodos
obra_negra(float, float); //constructor
void disminuir_precio();
~obra_negra(){}//destructor
};
class acabados{
private://atributos
float valor2;
int estrato;
public://metodos
acabados(float, int);//constructor
void aumentar_precio();
~acabados(){}//destructor
};

//constructor de la clase con acabados


acabados::acabados(float _valor2, int _estrato){
valor2 = _valor2;
estrato = _estrato;
}
//metodos de con acabados
void acabados::aumentar_precio(){
float aumento;
float nuevo_valor2;
cout<<"Digite el valor de la vivienda: "<<endl;
cin>>valor2;
cout<<"Digite su estrato: "<<endl;
cin>>estrato;
if(estrato >= 4){

aumento = valor2 * 0.2;


nuevo_valor2 = valor2 + aumento;

cout<<"\nLa vivienda con acabados consultada tiene un valor


inicial de "<<valor2<<endl;
cout<<"Su vivienda queda con un valor de:
"<<nuevo_valor2<<endl<<endl;
}else{
cout<<"\nLa vivienda con acabados consultada tiene un valor
inicial de "<<valor2<<endl;
cout<<"Su vivienda queda con un valor de: "<<valor2<<endl<<endl;
}
}

//constructor de la clase obra negra


obra_negra::obra_negra(float _dimension, float _valor1){
dimension = _dimension;
valor1 = _valor1;
}
//metodos de obra negra
void obra_negra::disminuir_precio(){
float rebaja;
float nuevo_valor1;

cout<<"Digite la dimension de la vivienda: "<<endl;


cin>>dimension;
cout<<"Digite el valor de la vivienda: "<<endl;
cin>>valor1;

if(dimension < 60 ){

rebaja = valor1 * 0.1;


nuevo_valor1 = valor1 - rebaja;
cout<<"\nla vivienda en obra negra consultada tiene un valor
inicial de "<<valor1<<endl;
cout<<"Su vivienda queda con un valor de:
"<<nuevo_valor1<<endl<<endl;
}else{
cout<<"\nla vivienda en obra negra consultada tiene un valor
inicial de "<<valor1<<endl;
cout<<"Su vivienda queda con un valor de: "<<valor1<<endl<<endl;
}
}

int main(){
int eleccion;

float dimension;
float valor1;
int numero;
float valor2;
int estrato;
obra_negra c1(dimension, valor1);
acabados v1(valor2, estrato);

int i=0;

cout<<"Digite cuantas viviendas quiere consultar: "<<endl;


cin>>numero;
for(int i=0; i<numero;i++){
cout<<"\n\n*******MENU CASAS*******"<<endl;
cout<<"1. Vivienda en obra negra"<<endl;
cout<<"2. Vivienda con acabados"<<endl;
cout<<"Digite el numero correspondiente a la vivienda a
consultar"<<endl;
cin>>eleccion;

switch(eleccion){
case 1:

c1.disminuir_precio();

break;
case 2:

v1.aumentar_precio();
break;
}
}
system("pause");
return 0;
};

Ejercicio 2

Nota: El ejercicio 2 está desarrollado diferente porque lo había


entendido diferente hasta cuando ya lo había hecho. Hice un programa
en el que el usuario ingresa la cantidad de productos a consultar,
después puede elegir si es de miscelánea o de dibujo y con respecto a
eso, el usuario ingresa el precio del producto a costo de fábrica sin
IVA, ni aranceles, ni descuentos por inventario, ni promociones, luego
el programa hace el cálculo del producto a precio de fábrica
incluyendo sobrecostos y descuentos (IVA…promociones…) y
finalmente el programa le sugiere al usuario cual es el precio que debe
pedir por el producto para cubrir con las ganancias esperadas.
Está planteado un poco diferente pero se uso la misma información.

/* Elaborar un aplicativo en C++, que le permita determinar a una papelería si el precio que se le
está cobrando a un determinado número de clientes por las compras realizadas, Programación II
Constructores Página 2 está acorde con las ganancias esperadas. Para el desarrollo tenga en
cuenta lo siguiente:

 El usuario debe ingresar la cantidad de clientes a evaluar.


 La papelería vende productos de miscelánea y de dibujo.
 Los productos de miscelánea deben pagar costos adicionales por el IVA (16%) y aranceles
del (7%); mientras que los productos para dibujo tienen un descuento del 5% por
inventario y 10% por promoción.
 En el caso de los productos de miscelánea el precio debe ser el 50% más del costo total
incluyendo recargos.
 En el caso de los productos para dibujo el precio debe ser el 30% más del costo total
incluyendo rebajas.
 Se debe aplicar los siguientes conceptos de la POO:
a) Creación de clase dentro de una librería propia.
b) Desarrollo de constructores sin parámetros y con parámetros.
c) Instanciamiento
 Se debe imprimir un reporte por pantalla con los datos del tipo producto según
corresponda, el costo total, el precio cobrado por el producto y un mensaje indicando si
cumple con el porcentaje de ganancia esperado.
*/
#include <iostream>
#include <math.h>
using namespace std;

class miscelanea{
private://atributos
float precio1;
public://metodos
miscelanea(float); //constructor
void aumentar_precio1();
~miscelanea(){}//destructor
};

class dibujo{
private://atributos
float precio2;
public://metodos
dibujo(float);//constructor
void aumentar_precio2();
~dibujo(){}//destructor
};

//constructor de la clase miscelanea


miscelanea::miscelanea(float _precio1){
precio1 = _precio1;
}
//metodos de miscelanea
void miscelanea::aumentar_precio1(){
float iva_y_aranceles;
float precio_costo1;
float aumento1;
float precio_cobrar1;

cout<<"Digite el precio del producto de miscelanea a comprar:


"<<endl;
cin>>precio1;

iva_y_aranceles = precio1 * 0.23;


precio_costo1 = precio1 + iva_y_aranceles;
cout<<"\nEl precio a costo del producto + iva y + aranceles es:
"<<precio_costo1<<endl<<endl;

aumento1 =precio_costo1 * 0.5;


precio_cobrar1 = precio_costo1 + aumento1;

cout<<"El precio que debe cobrar por el producto de miscelanea


es: "<<precio_cobrar1<<endl<<endl;

//constructor de la clase dibujo


dibujo::dibujo(float _precio2){
precio2 = _precio2;
}
//metodos de dibujo
void dibujo::aumentar_precio2(){
float inventario_y_promocion;
float precio_costo2;
float aumento2;
float precio_cobrar2;

cout<<"Digite el precio del producto de dibujo a comprar: "<<endl;


cin>>precio2;

inventario_y_promocion = precio2 * 0.15;


precio_costo2 = precio2 - inventario_y_promocion;

cout<<"\nEl precio a costo del producto de dibujo - inventario y -


promocion es: "<<precio_costo2<<endl<<endl;
aumento2 = precio_costo2 * 0.3;
precio_cobrar2 = precio_costo2 + aumento2;

cout<<"El precio que debe cobrar por el producto de dibujo es:


"<<precio_cobrar2<<endl<<endl;

int main(){
int eleccion;
float precio1;
int numero;
float precio2;
dibujo d1(precio1);
miscelanea m1(precio2);

int i=0;

cout<<"Digite cuantos productos quiere consultar: "<<endl;


cin>>numero;
for(int i=0; i<numero;i++){
cout<<"\n\n*******MENU TIPO DE PRODUCTO*******"<<endl;
cout<<"1. Miscelanea"<<endl;
cout<<"2. Dibujo"<<endl;
cout<<"Digite el numero correspondiente al producto a
consultar"<<endl;
cin>>eleccion;

switch(eleccion){
case 1:

m1.aumentar_precio1();

break;
case 2:

d1.aumentar_precio2();
break;
}
}
system("pause");
return 0;
};

También podría gustarte