Tengo el siguiente problema en el case 2, ocupo hacer una validacion de "salarios" todos los calculos me estan funcionando excepto el de mayor a 50 mil, lo que debe de hacer esa validación es que todo salario mayor a 50 mil , se le aumenta un 7% pero no lo esta haciendo, de hecho todo monto que pongo mayor a 50 mil me imprime por pantalla 57500 cabe destacar que las demas validaciones si me estan funcionando.
Código:
Código
#include <string> #include <sstream> using namespace std; struct strdatos { string cedula; string nombre; string edad; string salario; }Empleado; int main () { string mat [3][4]; int f = 0; int c = 0; double aumento = 0; int opc; do { system("cls"); cout << "*********** Menu ******************" << endl; cout << "1 . Ingresar Datos" << endl; cout << "2. Mostrar Planilla" << endl; cout << "3. Salir" << endl << endl; cin >> opc; cout << endl; switch (opc) { case 1: system ("cls"); for (f = 0; f <= 2; f++) { cout << "Ingrese Cedula "; cin >> Empleado.cedula; mat [f][0] = Empleado.cedula; cout << "Ingrese Nombre "; cin >> Empleado.nombre; mat [f][1] = Empleado.nombre; cout<< "Ingrese Edad "; cin >> Empleado.edad; mat [f][2] = Empleado.edad; cout<< "Ingrese Salario "; cin >> Empleado.salario; mat [f][3] = Empleado.salario; cout << "Empleado Ingresado" << endl << endl; for (c = 0; c <= 3; c++){ } } break; case 2: for (f = 0; f <= 2; f++) { for (c = 0; c <= 3; c++){ cout << mat [f][c] << " "; } cout << endl; stringstream (mat[f][3]) >> aumento; if (aumento < 50000 ) { aumento = (aumento * 0.3) + aumento; }else if (aumento = 50000) { aumento = (aumento * 0.15 ) + aumento; }else if (aumento >= 50001 ) { aumento = (aumento * 0.07) + aumento; } cout << "El salario con el aumento es de : " << aumento << endl << endl; } system ("pause"); }// Switch }while (opc != 3); return 0; }
Mod: Los códigos deben ir en etiquetas GeSHi, segundo aviso