Está en la página 1de 2

include <iostream>

#include <string>
using namespace std;

const float SUELDO_MINIMO = 1025.0;


const float DESCUENTO_LEY = 0.12;

int main() {
string nombre;
float sueldo, gratificacion, descuento, neto;
int mesesAntiguedad, mesActual;

// Entrada de datos
cout << "Ingrese el nombre del trabajador: ";
getline(cin, nombre);

cout << "Ingrese el sueldo básico del trabajador (mínimo 1025): ";
cin >> sueldo;
while (sueldo < SUELDO_MINIMO) {
cout << "Error: El sueldo ingresado es menor al mínimo legal. Por favor,
ingrese nuevamente: ";
cin >> sueldo;
}

cout << "Ingrese el número de meses de antigüedad en la empresa: ";


cin >> mesesAntiguedad;
while (mesesAntiguedad < 0) {
cout << "Error: Los meses de antigüedad no pueden ser negativos. Ingrese
nuevamente: ";
cin >> mesesAntiguedad;
}

cout << "Ingrese el mes actual (1-12): ";


cin >> mesActual;
while (mesActual < 1 || mesActual > 12) {
cout << "Error: Ingrese un valor de mes válido (1-12): ";
cin >> mesActual;
}

// Cálculo de gratificación
gratificacion = 0.0;
if (mesActual == 7 || mesActual == 12) {
gratificacion = sueldo * (static_cast<float>(mesesAntiguedad) / 6.0);
if (mesesAntiguedad > 6) {
gratificacion = sueldo;
}
}

// Cálculo de descuentos y neto


float total = sueldo + gratificacion;
descuento = total * DESCUENTO_LEY;
neto = total - descuento;

// Mostrar boleta
cout << "-------------------BOLETA DE PAGO-------------------" << endl;
cout << "Trabajador: " << nombre << endl;
cout << "Sueldo básico: " << sueldo << endl;
cout << "Gratificación: " << gratificacion << endl;
cout << "Descuentos de ley: " << descuento << endl;
cout << "Neto a pagar: " << neto << endl;
cout << "----------------------------------------------------" << endl;

return 0;
}

También podría gustarte