Calcular el salario de un empleado programando en c++?

El enunciado es el sig, calcular el sueldo de un empleado, introduciendo la cantidad de horas, y el valor de las horas, si el trabajador excede de 40 horas el valor por hora es de tres veces el valor normal.

Tengo el sig, código pero me da un error, en la parte donde me debería mostrar la cantidad de horas extras, salen valores remotos pero hace la operación correctamente, y ni idea, apenas estoy aprendiendo..!

#include <iostream>
#include <iomanip>
using namespace std;
int main ()
{
cout<<setw(50)<<"*********************************"<<endl;
cout<<setw(50)<<"* Salario Por Horas Trabajadas *"<<endl;
cout<<setw(50)<<"*********************************"<<endl;
cout<<setw(50)<<" "<<endl;
float ht, ch, he, sn,sb, hre, che;
cout <<"Ingrese Horas Trabajas:";
cin >> ht;
cout <<"Ingrese El Costo Por Horas :";
cin >> ch;
if ( ht > 40)
{
hre = ht - 40;
sb = ht * ch;
che = hre*ch;
hre = che*3;
sn = sb + hre;
cout<<"-------------------------------------"<<endl;
cout<<"Las Horas Extras Son:"<<hre<<endl;
cout<<"El Sueldo Base Es:" <<sb<<endl;
cout<<"El Sueldo Neto Es:" <<sn<<endl;
}
else
{
sn= ht*ch;
cout<<"-------------------------------------"<<endl;
cout<<"Usted No Tiene Horas Extras Trabajadas"<<endl;
cout<<"El Sueldo Es:" <<sn<<endl;
}
return 0;
}

Respuesta
2

Tu principal error es no utilizar nombres mas descriptivos para las variables. Analiza este código y dime si no esta mas claro de esta forma

 

Otra forma de escribir este código es de la siguiente forma

#include <iostream>
#include <iomanip>
using namespace std;
// Define el numero maximo de horas semanales
#define MAX_HORAS_SEMANALES 40
void imprimir_cabecera() {
 cout << setw(50) << "*********************************" << endl;
 cout << setw(50) << "* Salario Por Horas Trabajadas *" << endl;
 cout << setw(50) << "*********************************" << endl;
 cout << setw(50) << " "<<endl;
}
int entrada_usuario (char* cadena) {
 int valor_a_devolver;
 cout << cadena;
 cin >> valor_a_devolver;
 return (valor_a_devolver);
}
void imprimir (char* cadena, int valor) {
 cout << cadena << valor << endl;
}
int calcular_sueldo_base (int horas, int coste) {
// Si el numero de horas trabajadas es mayor que el maximo de horas semanales
 // el sueldo base sera el maximo de horas semanales por el coste por hora
 if (horas > MAX_HORAS_SEMANALES)
 return (MAX_HORAS_SEMANALES * coste);
 // Si el numero de horas trabajadas es menor que el maximo de horas semanales
 // el sueldo base sera el numero de horas trabajadas por el coste por hora
 else
 return (horas * coste);
}
int calcular_horas_extras (int horas) {
// Si el numero de horas trabajadas es mayor que el maximo de horas semanales
 // el numero de horas extras sera la diferencia entre ambos
 if (horas > MAX_HORAS_SEMANALES)
 return (horas - MAX_HORAS_SEMANALES);
 // si el numero de horas trabajadas es menor que el maximo de horas semanales
 // el numero de horas extras sera 0
 else
 return (0);
}
int main ()
{
 // Declaramos las variables a utilizar con nombres significativos
 int horas_trabajadas, coste_hora, horas_extras, sueldo_neto,sueldo_base, incremento_horas_extras, coste_hora_extra;
 // Imprimimos la cabecera
 imprimir_cabecera();
 // Pedimos al usuario que introduzca las horas trabajadas
 horas_trabajadas = entrada_usuario ("Ingrese horas trabajadas: ");
 // Pedimos al usuario que introduzca el coste por hora
 coste_hora = entrada_usuario ("Ingrese el coste por hora: ");
 // Calculamos el sueldo base
 sueldo_base = calcular_sueldo_base (horas_trabajadas, coste_hora);
 // Calculamos el numero de horas extras
 horas_extras = calcular_horas_extras (horas_trabajadas);
 // Calculamos el incremento por horas extras
 incremento_horas_extras = horas_extras * coste_hora * 3;
 // Calculamos el sueldo neto
 sueldo_neto = sueldo_base + incremento_horas_extras;
 // Imprimimos las horas extras
 imprimir ("Las horas extras son: ", horas_extras);
 // Imprimimos el sueldo base
 imprimir ("El sueldo base es: ", sueldo_base);
 // Imprimimos el sueldo neto
 imprimir ("El sueldo neto es: ", sueldo_neto);
 // Salimos del programa
 return 0;
}

1 respuesta más de otro experto

Respuesta

.- A un Congreso de Ing. Industrial asistieron personas de diferentes edades y sexos. Construir un algoritmo dadas las edades y sexos de las personas. Calcular:
-Cuántas personas asistieron al congreso
-Cuántos hombres y cuántas mujeres
-Promedio de edades por sexo
-La edad de la persona más joven que asistió
-No se permiten menores de edad al congreso
-Ingresar datos hasta que se ingrese la edad cero (c++) Arreglos

.- A un Congreso de Ing. Industrial asistieron personas de diferentes edades y sexos. Construir un algoritmo dadas las edades y sexos de las personas. Calcular:
-Cuántas personas asistieron al congreso
-Cuántos hombres y cuántas mujeres
-Promedio de edades por sexo
-La edad de la persona más joven que asistió
-No se permiten menores de edad al congreso
-Ingresar datos hasta que se ingrese la edad cero (c++) Arreglos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas