[ Foro de C ]
Soy nuevo en el mundo de la programacion, y necesito realizar un programa para un incremento salarial, el programa debe desplegar un menú, donde permita el registro del nombre del trabajador, el salario que percibe mensualmente y una opción de salir.
Al registrar los datos del empleado con solo nombre y salario, el sistema debe realizar el cálculo e imprimir el nombre del trabajador, salario anterior y salario con aumento. Una vez hecho esto que regrese al menú principal para registrar otro empleado.
Mi codigo es el siguiente:
#include <iostream>
#include<conio.h>
using namespace std;
int main(void) {
double nombre, salario, nuevoSalario;
cout << "Ingresar salario y nombre del trabajador: " << endl;
cin >> salario;
do
{
if ((salario >= 4000) && (salario < 6000)){
nuevoSalario = salario + (salario * 0.30);
}
else if ((salario >= 6000 ) && (salario < 8000 ) ){
nuevoSalario = salario + (salario * 0.20);
}
else if ((salario >= 8000 ) && (salario < 10000 ) ){
nuevoSalario = salario + (salario * 0.10);
}
else if ((salario >= 10000) && (salario <= 15000 ) ){
nuevoSalario = salario + (salario * 0.05);
}
cout << "El nuevo salario del trabajador es: " << nuevoSalario << endl;
getch();
}while ( 4000);
}
Si realiza la operación pero no me permite regresar al menú para ingresar un nuevo empleado y no estoy seguro de por que.
Gracias por su ayuda
hola luis
lo primero decirte que tu pregunta quizás debería estar
en le foro de c++ ya que estas usando iostream que nada
tiene que ver con c
también decirte que la librería conio no es estándar y tu
código no sera portable, no hay tanta diferencia entre
getch y getchar, y getchar si es estándar ya que está en
stdio, una alternativa a la librería conio es ncurses y está
bien documentada
respecto a que solo te pide los datos una vez, es lo que
le estás diciendo al dejar la petición de datos fuera del
bucle do-while,
¿¿en tu código que ocurre si el salario es menor a 4000??
¿¿ que ocurre si en el segundo salario le pones un 0 ??
ten en cuenta que el while siempre será verdadero ya que
while(4000) es distinto de 0 y el bucle es infinito
por lo que veo no recibes el nombre y en caso de
recibirlo lo tienes declarado como float en vez de
declarar un array de caracteres o un string si estas
en c++, por ej char nombre[30]; en c
cuando introduces el nombre deberías por ej decirle que
para acabar introduzca un '0', comparas el primer carácter
del array si es 0 y si el segundo el '\n' entonces acabar el
programa
recuerda que declaras que main devuelve un entero y no lo
estas devolviendo con return 0;
suerte ;-)
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)