Skip to content

Instantly share code, notes, and snippets.

@josegomezr
Created October 21, 2014 00:14
Show Gist options
  • Save josegomezr/518cbc0908f0126a4ecb to your computer and use it in GitHub Desktop.
Save josegomezr/518cbc0908f0126a4ecb to your computer and use it in GitHub Desktop.
Calculadora de Salarios
#include <stdio.h>
/***** CONSTANTES *****/
/*
Las constantes dentro del programa (aquellos numeros que solo sirvan para producir OTROS numeros)
las defines con la siguiente sintaxis
#define <nombre de la constante> <valor>
::Consideraciones::
Los nombres de las constantes por lo general
se escriben en MAYUSCULAS para evitar confundirlos
con los de las variables
*/
#define COSTO_PRIMA_HIJOS 0.0
#define COSTO_CESTATICKET 0.0
#define PORCENTAJE_IVSS 3
#define PORCENTAJE_FAOV 8
#define PORCENTAJE_LPH 6
#define PORCENTAJE_PF 2
int main()
{
/***** VARIABLES *****/
/*
Ya sabes la sintaxis para definir variables.
La clave aquí, es que declares lo que necesitas OBLIGATORIAMENTE para que el prog funcione.
*/
float horasTrabajadas=0.0;
float horasExtra=0.0;
float costoHoraTrabajada= 0.0;
int CantHijos=0;
float costoHoraExtra=0.0;
/*
Esto no es mas que recolección de datos.
EL error que había aqui era que la función *scanf* recibe 2 parametros.
1. el formato de dato que recibirá
[*] %d -> numeros enteros
[*] %f -> numeros reales/decimales
[*] %c ->caracteres
2. la (o las, uso avanzado) variable donde escribirá lo que recogió
Para poder escribir en una variable, la debes pasar por referencia.
TL;DR (Long Story Short)-- Ponle un Ampersand (&) delante si es int/char/float.
*/
printf("Indique las Horas Trabajadas:");
scanf("%f", &horasTrabajadas);
printf("Indique las Horas Extra:");
scanf("%f", &horasExtra);
printf("Costo por Hora Trabajada:");
scanf("%f", &costoHoraTrabajada);
printf("Cantidad de Hijos:");
scanf("%d", &CantHijos);
printf("Costo por Hora Extra:");
scanf("%f", &costoHoraExtra);
/*
IDEM as arriba, declaro las variables como las vaya necesitando.
*/
float sueldoBase=0.0;
float salarioNeto=0.0;
float descIVSS=0.0;
float descPF=0.0;
float descLPH=0.0;
float descFAOV=0.0;
float cestaTicket=0.0;
/** PROCESO **/
/* Aqui hacemos el proceso de nuestro programa (en este caso son operaciones matemáticas) */
sueldoBase = horasTrabajadas*costoHoraTrabajada;
if(horasExtra>0){
sueldoBase=sueldoBase+(horasExtra*costoHoraExtra);
}
descIVSS=(sueldoBase*(PORCENTAJE_IVSS/100));
descFAOV=(sueldoBase*(PORCENTAJE_FAOV/100));
descLPH=(sueldoBase*(PORCENTAJE_LPH/100));
descPF=(sueldoBase*(PORCENTAJE_PF/100));
salarioNeto=sueldoBase-(descIVSS+descLPH+descFAOV+descPF);
salarioNeto=salarioNeto+(COSTO_PRIMA_HIJOS*CantHijos)+(cestaTicket*horasTrabajadas);
/* Imprimo un mensaje final con el resultado
Nota como *printf* no necesita de referencias, (no le pones el ampersand).
Porque el SOLO LEE DATOS DE LA VARIABLE
*/
printf("Salario Neto %f\n", salarioNeto);
getchar();
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment