Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <locale.h>
- int main()
- {
- /* Importamos los carácteres especiales */
- setlocale(LC_CTYPE, "Spanish");
- /* Declaración e inicialización de variables */
- char* nombre[21], apellido1[21], apellido2[21]; // Datos empleado
- char cat; // Datos empleado
- int edad, hijos, horas; // Datos empleado
- float sueldobase, sueldobruto, sueldoneto; // Datos sueldo
- int descuentolab; // Descuentos
- int complementoedad, complementofamiliar, complementoprod; // Complementos
- float complementoextra; // Complementos
- float ss, irpf, retencion; // Impuestos
- int porcent; // Porcentaje IRPF
- complementoedad = 0;
- complementofamiliar = 0;
- descuentolab = 0;
- ss = 0.05; // (-)5%
- /* Limpieza del terminal */
- system("cls");
- /* Introducción de datos */
- printf("Introduzca su nombre y apellidos: ");
- scanf("%s %s %s", nombre, apellido1, apellido2);
- fflush(stdin);
- printf("Introduzca su sueldo base: ");
- scanf("%f", &sueldobase);
- printf("Introduzca su edad: ");
- scanf("%d", &edad);
- printf("Introduzca su n%cmero de hijos: ", 163);
- scanf("%d", &hijos);
- fflush(stdin);
- printf("Introduzca su categor%ca: ", 161);
- scanf("%c", &cat);
- printf("Introduzca el n%cmero de horas de trabajo por d%ca: ", 163, 161);
- scanf("%d", &horas);
- /* Cálculos */
- cat = toupper(cat);
- /* Detector de errores */
- if ((horas < 4) || (horas > 11))
- {
- printf("\nIntroduzca un n%cmero de horas trabajadas correcto.", 163);
- return 0;
- }
- if ((cat != 'A') && (cat != 'B') && (cat != 'C'))
- {
- printf("\nIntroduzca una categor%ca correcta.", 161);
- return 0;
- }
- if ((edad < 18) || (edad > 65))
- {
- printf("\nIntroduzca una edad correcta.");
- return 0;
- }
- if (hijos > 15)
- {
- printf("\nIntroduzca un n%cmero de hijos correcto.", 163);
- return 0;
- }
- /* Sueldo bruto */
- if ((edad < 25) || (edad > 50))
- {
- complementoedad = 180;
- }
- if (hijos != 0)
- {
- complementofamiliar = (hijos * 60);
- }
- if (((cat == 'B') && (hijos > 5)) || ((cat == 'C') && (hijos > 3)))
- {
- complementoextra = 0.05; // 5%
- complementoextra = sueldobase * complementoextra;
- }
- if (horas > 8)
- {
- complementoprod = 70;
- }
- else
- {
- complementoprod = 30;
- }
- if ((cat == 'A') && (horas < 8))
- {
- descuentolab = ((8 - horas) * 40);
- }
- sueldobruto = sueldobase + complementoextra + complementoedad + complementofamiliar + complementoprod - descuentolab;
- /* Sueldo neto */
- if (sueldobruto < 700)
- {
- porcent = 12;
- irpf = 0.12;
- }
- else
- if ((sueldobruto > 700) && (sueldobruto <= 1200))
- {
- porcent = 15;
- irpf = 0.15;
- }
- else
- {
- porcent = 18;
- irpf = 0.18;
- }
- retencion = 1 - (irpf + ss);
- ss = sueldobruto * ss;
- irpf = sueldobruto * irpf;
- sueldoneto = sueldobruto * retencion;
- /* Muestra en pantalla de los resultados */
- printf("\n\n\n\nDATOS GENERALES:");
- printf("\nNombre: \t%s %s %s", &nombre, &apellido1, &apellido2);
- printf("\nEdad: \t\t%d", edad);
- printf("\nN%c de hijos: \t%d", 248, hijos);
- printf("\nCategor%ca: \t%c", 161, cat);
- printf("\nDedicaci%cn: \t%d", 162, horas);
- printf("\n\nSUELDO BRUTO:");
- printf("\nSueldo Base.................:\t%10.2f euros.", sueldobase);
- printf("\nComplementos y Descuentos: ");
- printf("\nComplemento de Edad: \t\t%10d euros.", complementoedad);
- printf("\nComplemento Familiar: \t\t%10d euros.", complementofamiliar);
- printf("\nComplemento Extraordinario: \t%10.2f euros.", complementoextra);
- printf("\nComplemento de Productividad: \t%10d euros.", complementoprod);
- printf("\nDescuento Laboral: \t\t%10d euros.", descuentolab);
- printf("\n\t\t\t\t------------------");
- printf("\nIMPORTE TOTAL (Sueldo Bruto): \t%10.2f euros.", sueldobruto);
- printf("\n\nSUELDO NETO:");
- printf("\nSueldo Bruto: \t\t\t%10.2f euros.", sueldobruto);
- printf("\nSeguridad Social (5%): \t\t%10.2f euros.", ss);
- printf("\nIRPF (%d): \t\t\t%10.2f euros.", porcent, irpf);
- printf("\n\t\t\t\t------------------");
- printf("\nIMPORTE TOTAL (Sueldo Neto): \t%10.2f euros.", sueldoneto);
- /* Finalización */
- printf("\n\nPulse <intro> para acabar...");
- fflush(stdin);
- getchar();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement