/*****************************
Taller extracurricular de programación C
UNAM-FCA
Programa:4 
Objetivo: 
Escriba un programa en C que calcule el salario neto de un empleado, usando:
Una constante para la tasa de ISR (Impuesto Sobre la Renta). Defina el valor.
Una constante para la tasa de aportación al IMSS. Defina el valor.
Una variable para el sueldo bruto.
Variables para los descuentos y el sueldo neto.
Comente cada parte del programa: definición de constantes, definición de variables, entrada de datos (nombre del empleado y su sueldo bruto), cálculos y salida (mensaje: "Recibo de Nomina", Nombre del empleado, Sueldo bruto, Descuento ISR, Descuento IMSS, Sueldo neto).
Fecha: 12 de Octubre de 2026
Programador: Paul Genaro Rodriguez Perez
*****************************/

#include <stdio.h>
#include <locale.h>

/* ===== Definición de constantes ===== */
const float ISR = 0.10f;     // tasa de ISR (10%)
const float IMSS = 0.05f;    // tasa de aportación al IMSS (5%)

int main(){
    /* ===== Definición de variables ===== */
    char nombre[50];         // nombre del empleado
    float sueldo_bruto;      // sueldo bruto del empleado
    float descuento_ISR;     // descuento por ISR
    float descuento_IMSS;    // descuento por IMSS
    float sueldo_neto;       // sueldo neto del empleado
    char texto[40];          // monto con formato de moneda para imprimir

    setlocale(LC_NUMERIC, "en_US.UTF-8"); // permite separar miles con comas usando %'

    /* ===== Entrada de datos ===== */
    printf("Ingrese el nombre del empleado: ");
    scanf(" %49[^\n]", nombre); // lee el nombre completo, con espacios (máximo 49 caracteres)
    printf("Ingrese el sueldo bruto del empleado: ");
    scanf("%f", &sueldo_bruto);  // lee el sueldo bruto

    /* ===== Cálculos ===== */
    descuento_ISR = sueldo_bruto * ISR;                          // descuento de ISR
    descuento_IMSS = sueldo_bruto * IMSS;                        // descuento de IMSS
    sueldo_neto = sueldo_bruto - descuento_ISR - descuento_IMSS; // sueldo neto

    /* ===== Salida ===== */
    // cada monto se arma primero en "texto" como "$10,000.00 MXN" y luego se imprime alineado
    printf("\n+--------------------------------------------+\n");
    printf("|              Recibo de Nomina              |\n");
    printf("+--------------------------------------------+\n");
    printf("| %-20s %21.21s |\n", "Nombre del empleado:", nombre);
    printf("+--------------------------------------------+\n");
    sprintf(texto, "$%'.2f MXN", sueldo_bruto);
    printf("| %-20s %21s |\n", "Sueldo bruto:", texto);
    sprintf(texto, "$%'.2f MXN", descuento_ISR);
    printf("| %-20s %21s |\n", "Descuento ISR:", texto);
    sprintf(texto, "$%'.2f MXN", descuento_IMSS);
    printf("| %-20s %21s |\n", "Descuento IMSS:", texto);
    printf("+--------------------------------------------+\n");
    sprintf(texto, "$%'.2f MXN", sueldo_neto);
    printf("| %-20s %21s |\n", "Sueldo neto:", texto);
    printf("+--------------------------------------------+\n");

    return 0;
}
