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.

#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();
}
}