Created
October 21, 2014 00:14
-
-
Save josegomezr/518cbc0908f0126a4ecb to your computer and use it in GitHub Desktop.
Calculadora de Salarios
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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