Advertisement
Guest User

Untitled

a guest
Oct 21st, 2016
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.09 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <locale.h>
  3.  
  4. int main()
  5. {
  6. /* Importamos los carácteres especiales */
  7. setlocale(LC_CTYPE, "Spanish");
  8.  
  9. /* Declaración e inicialización de variables */
  10. char* nombre[21], apellido1[21], apellido2[21]; // Datos empleado
  11. char cat; // Datos empleado
  12. int edad, hijos, horas; // Datos empleado
  13. float sueldobase, sueldobruto, sueldoneto; // Datos sueldo
  14. int descuentolab; // Descuentos
  15. int complementoedad, complementofamiliar, complementoprod; // Complementos
  16. float complementoextra; // Complementos
  17. float ss, irpf, retencion; // Impuestos
  18. int porcent; // Porcentaje IRPF
  19.  
  20.  
  21. complementoedad = 0;
  22. complementofamiliar = 0;
  23. descuentolab = 0;
  24. ss = 0.05; // (-)5%
  25.  
  26. /* Limpieza del terminal */
  27. system("cls");
  28.  
  29. /* Introducción de datos */
  30. printf("Introduzca su nombre y apellidos: ");
  31. scanf("%s %s %s", nombre, apellido1, apellido2);
  32. fflush(stdin);
  33. printf("Introduzca su sueldo base: ");
  34. scanf("%f", &sueldobase);
  35. printf("Introduzca su edad: ");
  36. scanf("%d", &edad);
  37. printf("Introduzca su n%cmero de hijos: ", 163);
  38. scanf("%d", &hijos);
  39. fflush(stdin);
  40. printf("Introduzca su categor%ca: ", 161);
  41. scanf("%c", &cat);
  42. printf("Introduzca el n%cmero de horas de trabajo por d%ca: ", 163, 161);
  43. scanf("%d", &horas);
  44.  
  45. /* Cálculos */
  46. cat = toupper(cat);
  47.  
  48. /* Detector de errores */
  49. if ((horas < 4) || (horas > 11))
  50. {
  51. printf("\nIntroduzca un n%cmero de horas trabajadas correcto.", 163);
  52. return 0;
  53. }
  54.  
  55. if ((cat != 'A') && (cat != 'B') && (cat != 'C'))
  56. {
  57. printf("\nIntroduzca una categor%ca correcta.", 161);
  58. return 0;
  59. }
  60.  
  61. if ((edad < 18) || (edad > 65))
  62. {
  63. printf("\nIntroduzca una edad correcta.");
  64. return 0;
  65. }
  66.  
  67. if (hijos > 15)
  68. {
  69. printf("\nIntroduzca un n%cmero de hijos correcto.", 163);
  70. return 0;
  71. }
  72.  
  73. /* Sueldo bruto */
  74. if ((edad < 25) || (edad > 50))
  75. {
  76. complementoedad = 180;
  77. }
  78. if (hijos != 0)
  79. {
  80. complementofamiliar = (hijos * 60);
  81. }
  82. if (((cat == 'B') && (hijos > 5)) || ((cat == 'C') && (hijos > 3)))
  83. {
  84. complementoextra = 0.05; // 5%
  85. complementoextra = sueldobase * complementoextra;
  86. }
  87. if (horas > 8)
  88. {
  89. complementoprod = 70;
  90. }
  91. else
  92. {
  93. complementoprod = 30;
  94. }
  95. if ((cat == 'A') && (horas < 8))
  96. {
  97. descuentolab = ((8 - horas) * 40);
  98. }
  99.  
  100. sueldobruto = sueldobase + complementoextra + complementoedad + complementofamiliar + complementoprod - descuentolab;
  101.  
  102. /* Sueldo neto */
  103. if (sueldobruto < 700)
  104. {
  105. porcent = 12;
  106. irpf = 0.12;
  107. }
  108. else
  109. if ((sueldobruto > 700) && (sueldobruto <= 1200))
  110. {
  111. porcent = 15;
  112. irpf = 0.15;
  113. }
  114. else
  115. {
  116. porcent = 18;
  117. irpf = 0.18;
  118. }
  119.  
  120. retencion = 1 - (irpf + ss);
  121. ss = sueldobruto * ss;
  122. irpf = sueldobruto * irpf;
  123. sueldoneto = sueldobruto * retencion;
  124.  
  125. /* Muestra en pantalla de los resultados */
  126.  
  127. printf("\n\n\n\nDATOS GENERALES:");
  128. printf("\nNombre: \t%s %s %s", &nombre, &apellido1, &apellido2);
  129. printf("\nEdad: \t\t%d", edad);
  130. printf("\nN%c de hijos: \t%d", 248, hijos);
  131. printf("\nCategor%ca: \t%c", 161, cat);
  132. printf("\nDedicaci%cn: \t%d", 162, horas);
  133.  
  134. printf("\n\nSUELDO BRUTO:");
  135. printf("\nSueldo Base.................:\t%10.2f euros.", sueldobase);
  136. printf("\nComplementos y Descuentos: ");
  137. printf("\nComplemento de Edad: \t\t%10d euros.", complementoedad);
  138. printf("\nComplemento Familiar: \t\t%10d euros.", complementofamiliar);
  139. printf("\nComplemento Extraordinario: \t%10.2f euros.", complementoextra);
  140. printf("\nComplemento de Productividad: \t%10d euros.", complementoprod);
  141. printf("\nDescuento Laboral: \t\t%10d euros.", descuentolab);
  142. printf("\n\t\t\t\t------------------");
  143. printf("\nIMPORTE TOTAL (Sueldo Bruto): \t%10.2f euros.", sueldobruto);
  144.  
  145. printf("\n\nSUELDO NETO:");
  146. printf("\nSueldo Bruto: \t\t\t%10.2f euros.", sueldobruto);
  147. printf("\nSeguridad Social (5%): \t\t%10.2f euros.", ss);
  148. printf("\nIRPF (%d): \t\t\t%10.2f euros.", porcent, irpf);
  149. printf("\n\t\t\t\t------------------");
  150. printf("\nIMPORTE TOTAL (Sueldo Neto): \t%10.2f euros.", sueldoneto);
  151.  
  152. /* Finalización */
  153. printf("\n\nPulse <intro> para acabar...");
  154. fflush(stdin);
  155. getchar();
  156. return 0;
  157. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement