Lenguaje C
Descripción La empresa INNOVA School paga a sus docentes por el servicio de enseñanza un sueldo mensual de acuerdo a su condición de trabajo (contratado, estable) y además si tiene maestría y doctorado de acuerdo a la siguiente tabla:
Sin grado | Maestría | Doctorado
Estable | 2000 | 3000 | 4000
Contratado | 1000 | 2000 | 3000

La institución tiene como política de dar un bono en función al sueldo bruto de aquellos docentes estables en función al número de hijos que tiene, a continuación, vamos a mostrarles una tabla con el resumen de porcentaje de bonos.
Número de hijos | % bono
1 a 2 | 10_%
3 a 5 | 15%
6 a mas | 20%

Además, a todos los empleados se les descuenta el 6% de sus ingresos (sueldo bruto mensual y bono) por concepto de AFP.
Desarrollar el algoritmo que permita calcular el sueldo neto a recibir por un docente, correspondiente a un mes determinado.

a. Cálculo del sueldo bruto mensual.
b. Cálculo del bono.
c. Cálculo del sueldo neto mensual de un docente.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main (void)
{
    int condicion_de_trabajo, grado;
    float AFP, bono, numero_de_hijos, sueldo_bruto_mensual, sueldo_neto_mensual;
    char tecla_repetir;
    do {
        system ("cls");
        printf ("Ingrese el valor de numero de hijos: ");
        scanf ("%f", &numero_de_hijos);
        printf ("Seleccione el valor de condicion de trabajo.\n");
        printf ("\t1.- Estable\n");
        printf ("\t2.- Contratado\n");
        printf ("\t: ");
        do {
            scanf ("%d", &condicion_de_trabajo);
            if (condicion_de_trabajo<1||condicion_de_trabajo>2)
                printf ("Valor incorrecto. Ingréselo nuevamente.: ");
        } while (condicion_de_trabajo<1||condicion_de_trabajo>2);
        printf ("Seleccione el valor de grado.\n");
        printf ("\t1.- Sin grado\n");
        printf ("\t2.- Maestría\n");
        printf ("\t3.- Doctorado\n");
        printf ("\t: ");
        do {
            scanf ("%d", &grado);
            if (grado<1||grado>3)
                printf ("Valor incorrecto. Ingréselo nuevamente.: ");
        } while (grado<1||grado>3);
        sueldo_bruto_mensual=0;
        if(condicion_de_trabajo==1&&grado==1)
            sueldo_bruto_mensual=2000;
        if(condicion_de_trabajo==1&&grado==2)
            sueldo_bruto_mensual=3000;
        if(condicion_de_trabajo==1&&grado==3)
            sueldo_bruto_mensual=4000;
        if(condicion_de_trabajo==2&&grado==1)
            sueldo_bruto_mensual=1000;
        if(condicion_de_trabajo==2&&grado==2)
            sueldo_bruto_mensual=2000;
        if(condicion_de_trabajo==2&&grado==3)
            sueldo_bruto_mensual=3000;
        bono=0;
        if(numero_de_hijos>=1&&numero_de_hijos<3)
            bono=sueldo_bruto_mensual*0.1;
        if(numero_de_hijos>=3&&numero_de_hijos<6)
            bono=sueldo_bruto_mensual*0.15;
        if(numero_de_hijos>=6)
            bono=sueldo_bruto_mensual*0.2;
        AFP=(sueldo_bruto_mensual+bono)*0.06;
        sueldo_neto_mensual=sueldo_bruto_mensual+bono-AFP;
        printf ("Valor de AFP: %g\n", AFP);
        printf ("Valor de bono: %g\n", bono);
        printf ("Valor de sueldo bruto mensual: %g\n", sueldo_bruto_mensual);
        printf ("Valor de sueldo neto mensual: %g\n", sueldo_neto_mensual);
        putchar ('\n');
        printf ("\250Desea repetir el proceso? (S/N): ");
        do {
            tecla_repetir = getch();
        } while (tecla_repetir!='s' && tecla_repetir!='n' && tecla_repetir!='S' && tecla_repetir!='N');
    } while (tecla_repetir=='s' || tecla_repetir=='S');
    return EXIT_SUCCESS;
}