elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / Error de validación o calculo matemático en: 13 Diciembre 2016, 05:32 am
Hola!

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
  1. #include <string>
  2. #include <sstream>
  3.  
  4. using namespace std;
  5.  
  6. struct strdatos {
  7.  
  8. string cedula;
  9. string nombre;
  10. string edad;
  11. string salario;
  12.  
  13. }Empleado;
  14.  
  15.  
  16. int main () {
  17.  
  18. string mat [3][4];
  19. int f = 0;
  20. int c = 0;
  21. double aumento = 0;
  22.  
  23. int opc;
  24.  
  25. do {
  26.  
  27. system("cls");
  28. cout << "***********  Menu ******************" << endl;
  29. cout << "1 . Ingresar Datos" << endl;
  30. cout << "2. Mostrar Planilla" << endl;
  31. cout << "3. Salir" << endl << endl;
  32. cin >> opc;
  33. cout << endl;
  34.  
  35.  
  36.  
  37. switch (opc) {
  38.  
  39. case 1:
  40.  
  41. system ("cls");
  42.  
  43. for (f = 0; f <= 2; f++) {
  44.  
  45.  
  46. cout << "Ingrese Cedula ";
  47. cin >> Empleado.cedula;
  48. mat [f][0] = Empleado.cedula;
  49.  
  50. cout << "Ingrese Nombre ";
  51. cin >> Empleado.nombre;
  52. mat [f][1] = Empleado.nombre;
  53.  
  54. cout<< "Ingrese Edad ";
  55. cin >> Empleado.edad;
  56. mat [f][2] = Empleado.edad;
  57.  
  58. cout<< "Ingrese Salario ";
  59. cin >> Empleado.salario;
  60. mat [f][3] = Empleado.salario;
  61.  
  62. cout << "Empleado Ingresado" << endl << endl;
  63.  
  64. for (c = 0; c <= 3; c++){
  65.  
  66. }
  67. }
  68. break;
  69.  
  70. case 2:
  71.  
  72. for (f = 0; f <= 2; f++) {
  73. for (c = 0; c <= 3; c++){
  74.  
  75. cout << mat [f][c] << " ";
  76.  
  77. }
  78.  
  79. cout << endl;
  80.  
  81. stringstream (mat[f][3]) >> aumento;
  82.  
  83. if (aumento < 50000 ) {
  84. aumento = (aumento * 0.3) + aumento;
  85.  
  86. }else if (aumento = 50000) {
  87. aumento = (aumento * 0.15 ) + aumento;
  88.  
  89. }else if (aumento >= 50001 ) {
  90. aumento = (aumento * 0.07) + aumento;
  91.  
  92. }
  93.  
  94. cout << "El salario con el aumento es de : " << aumento << endl << endl;
  95.  
  96. }
  97.  
  98.  
  99. system ("pause");
  100.  
  101. }// Switch
  102.  
  103.  
  104. }while (opc != 3);
  105.  
  106.  
  107.  
  108.  
  109. return 0;
  110. }


Mod: Los códigos deben ir en etiquetas GeSHi, segundo aviso
2  Programación / Programación C/C++ / Re: Duda con estructuras y punteros en: 12 Diciembre 2016, 07:57 am
Genial amigo ya entendi!

Muchas Gracias por tu ayuda!!  ;D

Código
  1. cout << "Ingrese Cedula ";
  2. cin >> Empleado.cedula;
  3. Empleado.cedula = mat [f][0];

te traduzco tu código


Código:
imprimir "ingrese cedula"
Empleado.cedula ahora contendrá valor ingresado por el usuario
Empleado.cedula ahora contendrá valor ubicado en mat en la posición "f" sub indice 0

luego imprimes el contenido de mat... el problema es... nunca pusiste ningún valor en mat


Disculpa la molestia ahora tengo un pequeño problema con un calculo matemático, ocupo que todo salario mayor a 50.000 se le haga un aumento en el 7% , los demas calculos si me estan funcionando correctamente excepto el de mayor a 50.000.



   
               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;
                     
                  }

Cabe destacar que todo valor mayor a 50.000 mil me imprime con el aumento 57.500  :huh:

MOD: No hacer triple post. Usa el botón modificar.
3  Programación / Programación C/C++ / Re: Duda con estructuras y punteros en: 12 Diciembre 2016, 07:42 am
Gracias a por tu respuesta!

Aún no entiendo bien, creí que al hacer el Empleado.cedula = mat [f][0] ya lo estaba guardando en la matriz  pero cuando lo imprimo no sale nada por pantalla que seria en el case 2
4  Programación / Programación C/C++ / Duda con estructuras y punteros en: 12 Diciembre 2016, 07:23 am
Hola tengo una duda respecto al almacenamiento de datos en estructuras y creo que esto también va ligado a punteros pero no sé mucho sobre este tema.

Resulta ser que ocupo capturar los datos mediante una estructura y luego almacenarlos en una matriz, creí que lo estaba haciendo bien pero cuando quiero imprimir no me imprime nada, espero que me puedan ayudar con esto gracias. :huh:

Código
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. struct strdatos {
  7.  
  8. string cedula;
  9. string nombre;
  10. string edad;
  11. string salario;
  12.  
  13. }Empleado;
  14.  
  15.  
  16. int main () {
  17.  
  18. string mat [3][4];
  19. int f = 0;
  20. int c = 0;
  21.  
  22. int opc;
  23.  
  24. do {
  25.  
  26. system("cls");
  27. cout << "***********  Menu ******************" << endl;
  28. cout << "1 . Ingresar Datos" << endl;
  29. cout << "2. Mostrar Planilla" << endl;
  30. cout << "3. Salir" << endl << endl;
  31. cin >> opc;
  32. cout << endl;
  33.  
  34.  
  35.  
  36. switch (opc) {
  37.  
  38. case 1:
  39.  
  40. system ("cls");
  41.  
  42. for (f = 0; f <= 2; f++) {
  43.  
  44.  
  45. cout << "Ingrese Cedula ";
  46. cin >> Empleado.cedula;
  47. Empleado.cedula = mat [f][0];
  48.  
  49. cout << "Ingrese Nombre ";
  50. cin >> Empleado.nombre;
  51. Empleado.nombre = mat [f][1];
  52.  
  53. cout<< "Ingrese Edad ";
  54. cin >> Empleado.edad;
  55. Empleado.edad = mat [f][2];
  56.  
  57. cout<< "Ingrese Salario ";
  58. cin >> Empleado.salario;
  59. Empleado.salario = mat [f][3];
  60.  
  61. cout << "Empleado Ingresado" << endl << endl;
  62.  
  63. for (c = 0; c <= 3; c++){
  64.  
  65. }
  66. }
  67. break;
  68.  
  69. case 2:
  70.  
  71. for (f = 0; f <= 2; f++) {
  72. for (c = 0; c <= 3; c++){
  73.  
  74. cout << mat [f][c] << " ";
  75.  
  76. }
  77. }
  78.  
  79. }// Switch
  80.  
  81.  
  82. }while (opc != 3);
  83.  
  84.  
  85. return 0;
  86. }
  87.  


Mod: Los códigos deben ir en etiquetas GeSHi
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines