Ejemplo completo del uso de funciones en C.

Programa:
Programa para calcular el Salario Neto semanal con el uso de funciones

Propósito del Programa:
«Calcular el salario neto semanal de varios trabajadores bajo ciertas condiciones».

Variables de Entrada:
– Nombre del trabajador, tarifa normal, horas trabajadas

Variables de Salida:
– Salario Bruto, salario neto, impuestos.
– No. Total de trabajadores, No. de trabajadores que laboraron horas extras, No. de trabajadores que NO laboraron
horas extras, costo total de la nómina, porentaje que representa el pago de la jornada extraordinaria.

[c]
/* Programa para calcular el Salario Neto semanal con el uso de funciones

Propósito del Programa:
"Calcular el salario neto semanal de varios trabajadores bajo ciertas condiciones".

Variables de Entrada:
– Nombre del trabajador, tarifa normal, horas trabajadas

Variables de Salida:
– Salario Bruto, salario neto, impuestos.
– No. Total de trabajadores, No. de trabajadores que laboraron horas extras, No. de trabajadores que NO laboraron
horas extras, costo total de la nómina, porentaje que representa el pago de la jornada extraordinaria.
*/

#include <stdio.h>
#include <stdlib.h>

//Variables
float salariobruto(float horastrabajadas, float tarifanormal);
void totalimpuestos(float salariobruto);

float he,se,so;
char nombre[50];

main()
{
float ht,tano,sb,cn,sn,i,tse,pp;
char respuesta,tarifa[6],horas[6];
int nte,te,nt, validarsal,validarhrs;

nt=0;
te=0;
nte=0;
cn=0;
tse=0;
pp=0;

printf("Bienvenido al Programa para Calcular el Salario neto semanal de trabajadores.\n\n");

do
{
validarsal=0;
printf("Ingrese la tarifa normal: ");
scanf(" %s",tarifa);
if(atof(tarifa))
{
validarsal=1;
printf("\nLa tarifa fue registrada.\n\n");
tano=atof(tarifa);
}
else
{
printf("\nLa tarifa no es valida. Favor de corregirla.\n\n");
}
}while(validarsal!=1);

do
{
nt=nt+1;
printf("\nIngrese el nombre del trabajador: ");
scanf(" %[^\n]",nombre); /* Obtenido del ejemplo 4.8 Pág. 95 del Gottfried */

do
{
validarhrs=0;
printf("Ingrese el numero de horas trabajadas: ");
scanf(" %s",horas);
if(atof(horas)) {
validarhrs=1;
printf("\nEl numero de horas trabajadas fue registrado.\n\n");
ht=atof(horas);
}
else {
printf("\nEl numero de horas trabajadas no es valida. Favor de corregirla.\n\n");
}
}while(validarhrs!=1);

sb=salariobruto(ht,tano);
if(ht<=35)
{
nte=nte+1;
cn=cn+sb;
}
else
{
te=te+1;
he=ht-35;
se=he*1.5*tano;
tse=tse+se;
cn=cn+sb;
}
totalimpuestos(sb);
printf("Si desea otro trabajador,escriba S o s para si,o cualquier otro caracter \n diferente de S o s para no, despues oprima ENTER: ");
scanf(" %c", &respuesta);
} while(respuesta==’s’||respuesta==’S’);

pp=(tse*100)/cn;
printf("\n El numero de trabajadores cuyos datos se procesaron fueron: %3d\n",nt) ;
printf(" El numero de trabajadores que laboraron horas extra fueron:%3d\n",te) ;
printf(" El numero de trabajadores que NO laboraron horas extra fueron: %3d\n",nte) ;
printf(" El costo total de la nomina fue: %3.2f\n", cn);
printf(" El porcentaje que representa el pago de jornada extraordinaria fue: %3.2f%c\n\n", pp,37); /* Para mostrar el caracter % */
printf(" FIN DEL PROGRAMA. ");
system("pause");
}

//Funciones
float salariobruto(float horastrabajadas, float tarifanormal)
{
float salariobruto;
if(horastrabajadas<=35) {
salariobruto=tarifanormal*horastrabajadas;
return (salariobruto);
}
else
{
so=35*tarifanormal;
he=horastrabajadas-35;
se=he*1.5*tarifanormal;
salariobruto=so+se;
return (salariobruto);
}
}

void totalimpuestos(float salariobruto)
{
float salarioneto,impuesto;
if(salariobruto<=50)
{
impuesto=0;
salarioneto=salariobruto;
printf("\n\nDatos del trabajador %s:\nEl salario bruto fue: %.2f\nEl salario neto fue: %.2f\nLos impuestos fueron: %.2f\n\n",nombre,salariobruto,salarioneto, impuesto);
}
else
{
if(salarioneto<=90)
{
impuesto=(salariobruto-50)*0.25;
salarioneto=salariobruto-impuesto;
printf("\n\nDatos del trabajador %s:\nEl salario bruto fue: %.2f\nEl salario neto fue: %.2f\nLos impuestos fueron: %.2f\n\n",nombre,salariobruto,salarioneto, impuesto);
}
else
{
impuesto=(salariobruto-90)*0.45;
impuesto=impuesto+10;
salarioneto=salariobruto-impuesto;
printf("\n\nDatos del trabajador %s:\nEl salario bruto fue: %.2f\nEl salario neto fue: %.2f\nLos impuestos fueron: %.2f\n\n",nombre,salariobruto,salarioneto, impuesto);
}
}
return;
}
[/c]

Deja un comentario