3/23/2017

Ejercicio 45

Se necesita calcular el valor de impuesto para la cantidad madera que llevara un transportador , el subtotal y el total a pagar teniendo en cuenta la siguiente tabla.

Tabla Colaborador: Juan Mauricio Arrieta López

#include <iostream>
// se incluye la clase Transportador para despues llamar a sus métodos
#include "Transportador.h"

using namespace std;

int main(void)
{
    // Creo un objeto de la clase Transportador (Instanciación)
    Transportador *obj = new Transportador();
    // declaro 1 variable de tipo entero llamada cantidad
    int cantidad;
    // se le pide al usuario que digite la cantidad de roble que llevara el transportador
    cout << "Digite cantidad de madera de roble que llevara" << endl;
    cout << ">> ";
    // se guarda la cantidad en la variable cantidad
    cin >> cantidad;
    // se encapsula la cantidad de madera de roble
    obj->setCantidadRoble(cantidad);
    // se le pide al usuario que digite la cantidad de cedro que llevara el transportador
    cout << "Digite cantidad de madera de cedro que llevara" << endl;
    cout << ">> ";
    // se guarda la cantidad en la variable cantidad
    cin >> cantidad;
    // se encapsula la cantidad de madera de cedro
    obj->setCantidadCedro(cantidad);
    // se le pide al usuario que digite la cantidad de tolua que llevara el transportador
    cout << "Digite cantidad de madera de tolua que llevara" << endl;
    cout << ">> ";
    // se guarda la cantidad en la variable cantidad
    cin >> cantidad;
    // se encapsula la cantidad de madera de tolua
    obj->setCantidadTolua(cantidad);
    cout << endl;
    // se imprime toda la informacion en pantalla, el \t sirve para tabular al momento de imprimir en pantalla es decir:
    // identa o le da sangria a el texto...
    cout << "|[Producto]"        << "\t\t|" << "[Cantidad]"          <<   "\t|" << "[Valor unitario]" <<     "\t|" << "[Valor total]" << endl;
    cout << "|Madera de Roble"   << "\t|" << obj->getCantidadRoble() << "\t\t|" << "$2000"            << "\t\t\t|" << "$" << obj->valorTotalRoble() << endl;
    cout << "|Madera de Cedro"   << "\t|" << obj->getCantidadCedro() << "\t\t|" << "$3000"            << "\t\t\t|" << "$" << obj->valorTotalCedro() << endl;
    cout << "|Madera de Tolua"   << "\t|" << obj->getCantidadTolua() << "\t\t|" << "$1500"            << "\t\t\t|" << "$" << obj->valorTotalTolua() << endl;
    cout << "--------------------------------------------------------------------------------------------------------" << endl;
    cout << "\t\t\t\t\t\t\t\t" << "Subtotal"        << "\t$" << obj->subtotal() << endl;
    cout << "\t\t\t\t\t\t\t\t" << "Impuesto (19%)"  << "\t$" << obj->valorImpuesto() << endl;
    cout << "\t\t\t\t\t\t\t\t" << "Total a pagar"   << "\t$" << obj->totalPagar() << endl;
}

#ifndef TRANSPORTADOR_H
#define TRANSPORTADOR_H


class Transportador
{
    public:
        Transportador();
        virtual ~Transportador();
        // métodos publicos de la clase
        void setCantidadRoble(int val);
        int getCantidadRoble();
        void setCantidadCedro(int val);
        int getCantidadCedro();
        void setCantidadTolua(int val);
        int getCantidadTolua();
        int valorTotalRoble();
        int valorTotalCedro();
        int valorTotalTolua();
        int subtotal();
        int valorImpuesto();
        int totalPagar();
    protected:

    private:
        // atributos privados de la clase
        int cantidad_roble;
        int cantidad_cedro;
        int cantidad_tolua;
};

#endif // TRANSPORTADOR_H

#include "Transportador.h"

Transportador::Transportador()
{
    // le asigno valores por defecto a los atributos de la clase en el contructor
    cantidad_roble = 0;
    cantidad_cedro = 0;
    cantidad_tolua = 0;
}

Transportador::~Transportador()
{
    //dtor
}


// implementacion de los métodos setters y getters de los atributos de la clase
void Transportador::setCantidadRoble(int val)
{
    cantidad_roble = val;
}

int Transportador::getCantidadRoble()
{
    return cantidad_roble;
}

void Transportador::setCantidadCedro(int val)
{
    cantidad_cedro = val;
}

int Transportador::getCantidadCedro()
{
    return cantidad_cedro;
}

void Transportador::setCantidadTolua(int val)
{
    cantidad_tolua = val;
}

int Transportador::getCantidadTolua()
{
    return cantidad_tolua;
}

// métodos para calcular el valor total de cada madera
int Transportador::valorTotalRoble()
{
    // se retorna la cantidad de madera de roble y se multiplica por 2000
    return getCantidadRoble() * 2000;
}

int Transportador::valorTotalCedro()
{
    // se retorna la cantidad de madera de cedro y se multiplica por 3000
    return getCantidadCedro() * 3000;
}

int Transportador::valorTotalTolua()
{
    // se retorna la cantidad de madera de tolua y se multiplica por 1500
    return getCantidadTolua() * 1500;
}

// método para calcular el subtotal de la venta
int Transportador::subtotal()
{
    // el subtotal es el valor total de la madera por el valor unitario de ella, sumada con el resultado de las demas...
    return valorTotalRoble() + valorTotalCedro() + valorTotalTolua();
}

int Transportador::valorImpuesto()
{
    // la formula para calcular el valor del impuesto es: el subtotal
    // por el porcentaje del impuesto en este caso sera 19% valor del IVA
    return subtotal() * 0.19;
}

// método para calcular el total
int Transportador::totalPagar()
{
    // se retorna el valor del subtotal mas el valor del impuesto
    return subtotal() + valorImpuesto();
}

// se importa paquete JOptionPane para dibujar un cuadro de dialogo en pantalla
// que muestre información o para llenar información
import javax.swing.JOptionPane;


import javax.swing.JOptionPane;

public class Main
{
    public static void main(String[] args)
    {
        // creo un objeto de la clase Transportador (Instanciación)
        Transportador obj = new Transportador();
        // declaro 1 variable de tipo entero llamada cantidad
        int cantidad;
        // se le pide al usuario que digite la cantidad de roble que llevara el transportador
        cantidad = Integer.parseInt(JOptionPane.showInputDialog("Digite cantidad de madera de roble que llevara"));
        // se encapsula la cantidad de madera de roble
        obj.setCantidadRoble(cantidad);
        // se le pide al usuario que digite la cantidad de cedro que llevara el transportador
        cantidad = Integer.parseInt(JOptionPane.showInputDialog("Digite cantidad de madera de cedro que llevara"));
        // se encapsula la cantidad de madera de cedro
        obj.setCantidadCedro(cantidad);
        // se le pide al usuario que digite la cantidad de tolua que llevara el transportador
        cantidad = Integer.parseInt(JOptionPane.showInputDialog("Digite cantidad de madera de tolua que llevara"));
        // se encapsula la cantidad de madera de tolua
        obj.setCantidadTolua(cantidad);
        // se imprime toda la informacion en pantalla
        JOptionPane.showMessageDialog(null,
                "Producto: Madera de Roble" + "\n" +
                "Cantidad: " + obj.getCantidadRoble() + "\n" +
                "Valor unitario: $2000" + "\n" +
                "Valor total: $" + obj.valorTotalRoble());
        JOptionPane.showMessageDialog(null,
                "Producto: Madera de Cedro" + "\n" +
                "Cantidad: " + obj.getCantidadCedro() + "\n" +
                "Valor unitario: $3000" + "\n" +
                "Valor total: $" + obj.valorTotalCedro());
        JOptionPane.showMessageDialog(null,
                "Producto: Madera de Tolua" + "\n" +
                "Cantidad: " + obj.getCantidadTolua() + "\n" +
                "Valor unitario: $1500" + "\n" +
                "Valor total: $" + obj.valorTotalTolua());
        JOptionPane.showMessageDialog(null,
                "Subtotal: $" + obj.subtotal() + "\n" +
                "Impuesto (19%): $" + obj.valorImpuesto() + "\n" +
                "Total a pagar: $" + obj.totalPagar() + "\n");
    }
}

public class Transportador
{
    // atributos privados de la clase
    private int cantidad_roble;
    private int cantidad_cedro;
    private int cantidad_tolua;
    
    public Transportador()
    {
        // le asigno valores por defecto a los atributos de la clase en el contructor
        cantidad_roble = 0;
        cantidad_cedro = 0;
        cantidad_tolua = 0;
    }
    
    // implementacion de los métodos setters y getters de los atributos de la clase
    public void setCantidadRoble(int val)
    {
        cantidad_roble = val;
    }

    public int getCantidadRoble()
    {
        return cantidad_roble;
    }

    public void setCantidadCedro(int val)
    {
        cantidad_cedro = val;
    }

    public int getCantidadCedro()
    {
        return cantidad_cedro;
    }

    public void setCantidadTolua(int val)
    {
        cantidad_tolua = val;
    }

    public int getCantidadTolua()
    {
        return cantidad_tolua;
    }

    // métodos para calcular el valor total de cada madera
    public int valorTotalRoble()
    {
        // se retorna la cantidad de madera de roble y se multiplica por 2000
        return getCantidadRoble() * 2000;
    }

    public int valorTotalCedro()
    {
        // se retorna la cantidad de madera de cedro y se multiplica por 3000
        return getCantidadCedro() * 3000;
    }

    public int valorTotalTolua()
    {
        // se retorna la cantidad de madera de tolua y se multiplica por 1500
        return getCantidadTolua() * 1500;
    }

    // método para calcular el subtotal de la venta
    public int subtotal()
    {
        // el subtotal es el valor total de la madera por el valor unitario de ella, sumada con el resultado de las demas...
        return valorTotalRoble() + valorTotalCedro() + valorTotalTolua();
    }

    public double valorImpuesto()
    {
        // la formula para calcular el valor del impuesto es: el subtotal
        // por el porcentaje del impuesto en este caso sera 19% valor del IVA
        return subtotal() * 0.19;
    }

    // método para calcular el total
    public double totalPagar()
    {
        // se retorna el valor del subtotal mas el valor del impuesto
        return subtotal() + valorImpuesto();
    }
}