[ Foro de C ]

Ayuda

03-Mar-2021 09:55
Invitado (Luis)
1 Respuestas

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


03-Mar-2021 18:50
Invitado (teo)

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.)