[C con Clase] Operacion Matematica

Pedro Osorio pedroosorio777 en gmail.com
Sab Abr 2 20:52:45 CEST 2011


La respuesta es que estas usando en turbo C++, donde el int es de 16
bits y no 32 bits.
Con un int de 16 bits sólo puedes almacenar como máximo hasta 32767.
Usa un compilador diferente y solucionas tu problema

El 02/04/11, hubert garcia <hubert1 en email.com> escribió:
> Buen dia, de antemano les agradezco sus recomendaciones para solucionar esta
> situacion, el programa ya esta listo con cero errores y me funciona normal,
> pero tengo un problema con una operacion matematica, la ventaja es que con
> solucionar uno se soluciona todo.
>
>  A manera de prueba estoy revisando el case 1 donde le puse cout para que me
> mostrar lo que estaba almacenando. El usuario debe digitar un salario, por
> ejemplo 700000 y donde le digo que me muestre el salario digitado por el
> usuario pone: -20896 luego tiene que realizar una operacion matematica el
> cual es hace una deduccion donde me pone 113 y por ultimo mostrar el salario
> neto, donde pone: -21009
>
>  Esta operacion esta correcta, sin embargo no es el resultado que ando
> buscando ya que deberia ser de esta manera:
>
>  Salario Bruto = 700000
>  Deduccion = 84000
>  Salario Neto = 616000
>
>  De verdad se les agradece la ayuda que me puedan brindar.
>
>
>  clrscr();
> mostrarTitulo("CATEGORIA DE EMPLEADO ADMINISTRATIVO");
>  cout <<"Digite el salario reportado: ";
>  cin >> salBrutoAdm;
>  cout <<"salario Bruto"<<salBrutoAdm<<endl;
>  getch();
>  montoDeducAdm= montoDeduccionAdm(salBrutoAdm);
>  cout<<"Monto Deduccion"<<montoDeducAdm<<endl;
>  getch();
>  salNetoAdm= salarioBrutoAdm(salBrutoAdm, montoDeducAdm);
>  cout <<"Salario Neto"<<salNetoAdm<<endl;
>  getch();
>  break;
>
>
>
>
>  /* TAREA 2 /
>  / Creado por: Hubert Garcia Gordon /
>  / Estudiante Ingenieria en Sistemas /
>  / Materia: Programacion 1  /
>  / Fecha de Entrega: 04/04/2011 /
>  /*/
>
>  /* TAREA 2 /
>  / Creado por: Hubert Garcia Gordon /
>  / Estudiante Ingenieria en Sistemas /
>  / Materia: Programacion 1  /
>  / Fecha de Entrega: 04/04/2011 /
>  /*/
>
>  #include <stdio.h>
>  #include <string.h>
>  #include <conio.h>
>  #include <iostream.h>
>
>  int salBrutoAdm = 0, salBrutoOfi= 0, salBrutoGene = 0;
>  int salNetoAdm=0, salNetoOfi=0, salNetoGene=0;
>  int montoDeducAdm=0, montoDeducOfi=0, montoDeducGene=0;
>  int totalSalarioB=0, totalSalarioN=0, totalDeducc=0;
>  int contEmpleado=0, categoriaEmpl=0;
>  int monDeducc=0;
>  char seguir;
>  char fecha[10];
>  int opc;
>
>  void tituloPrincipal()
>  {
>
>  clrscr();
>  cout << endl << endl;
>  cout << "***************************************" <<endl;
>  cout << "EMPRESA LOS 3 CERDITOS S.A " <<endl;
>  cout << "Donde esta la carnita... " <<endl;
>  cout << "***************************************" <<endl<<endl<<endl;
>  cout <<" Ingrese la fecha de la sesion: ";
>  cin >> fecha;
>  cout <<endl;
>  cout << "Digite cualquier tecla para continuar..." << endl;
>  getch();
>  }
>
>  void mostrarTitulo(char msg[30])
>  {
>
>  clrscr();
>  cout << endl << endl;
>  cout << " ***************************************************" <<endl;
>  cout <<  msg <<endl;
>  cout << " ***************************************************"
> <<endl<<endl<<endl;
>
>  }
>
>  int categoriaEmpleado()
>  {
>
>  clrscr();
>  cout << endl << endl;
>  cout <<"Seleccione una categoria de empleado " << endl << endl;
>  cout <<"1. Administrativo " << endl;
>  cout <<"2. Oficinista " << endl;
>  cout <<"3. Servicios Generales"<<endl;
>  cout <<"4. Reportes"<<endl;
>  cout <<"5. Salir" <<endl;
>  cin >> opc;
>
>  return opc;
>  }
>
>  int salarioBrutoAdm(int a, int b )
>  {
>  clrscr();
>  a-=b;
>
>  return a;
>  }
>
>  int montoDeduccionAdm(int montoDeducAdm)
>  {
>  clrscr();
>  montoDeducAdm = ((salBrutoAdm*12)/100);
>
>  return montoDeducAdm;
>  }
>
>  int salarioBrutoOfi(int salBrutoOfi)
>  {
>  clrscr();
>  salBrutoOfi = salBrutoOfi-montoDeducOfi;
>
>  return salBrutoOfi;
>  }
>
>  int montoDeduccionOfi(int montoDeducOfi)
>  {
>  clrscr();
>  montoDeducOfi = ((salBrutoOfi*9)/100);
>
>  return montoDeducOfi;
>  }
>
>  int salarioBrutoGene(int salBrutoGene)
>  {
>  clrscr();
>  salBrutoGene = salBrutoGene-montoDeducGene;
>
>  return salBrutoGene;
>  }
>
>  int montoDeduccionGene(int montoDeducGene)
>  {
>  clrscr();
>  montoDeducGene = ((salBrutoGene*7)/100);
>
>  return montoDeducGene;
>  }
>
>  void main()
>  {
>
>  tituloPrincipal();
>
>  while (opc != 5)
>  {
>
>  categoriaEmpleado();
>
>  switch(opc)
>  {
>  case 1:
>
>  clrscr();
> mostrarTitulo("CATEGORIA DE EMPLEADO ADMINISTRATIVO");
>  cout <<"Digite el salario reportado: ";
>  cin >> salBrutoAdm;
>  cout <<"salario Bruto"<<salBrutoAdm<<endl;
>  getch();
>  montoDeducAdm= montoDeduccionAdm(salBrutoAdm);
>  cout<<"Monto Deduccion"<<montoDeducAdm<<endl;
>  getch();
>  salNetoAdm= salarioBrutoAdm(salBrutoAdm, montoDeducAdm);
>  cout <<"Salario Neto"<<salNetoAdm<<endl;
>  getch();
>  break;
>
>  case 2:
>  mostrarTitulo("CATEGORIA DE EMPLEADO OFICINISTA");
>  cout <<"Digite el salario reportado: ";
>  cin >> salBrutoOfi;
>  montoDeducOfi= montoDeduccionOfi(salBrutoOfi);
>  salNetoOfi= salarioBrutoOfi(salBrutoOfi);
>  break;
>
>  case 3:
>  mostrarTitulo("CATEGORIA DE EMPLEADO SERVICIO GENERAL");
>  cout <<"Digite el salario reportado: ";
>  cin >> salBrutoGene;
>  montoDeducGene= montoDeduccionGene(salBrutoGene);
>  salNetoGene= salarioBrutoGene(salBrutoGene);
>  break;
>
>  case 4:
>  mostrarTitulo("INFORME DE REGISTROS");
>  mostrarTitulo("DONDE ESTA LA CARNITA");
>  cout <<"Fecha de Sesion: " << fecha <<endl<<endl;
>
>  totalSalarioB = salBrutoAdm + salBrutoOfi + salBrutoGene;
>  totalSalarioN = salNetoAdm + salNetoOfi + salNetoGene;
>  totalDeducc = montoDeducAdm + montoDeducOfi + montoDeducGene;
>
>  cout <<"Total de salarios brutos ingresados: "<< totalSalarioB<<endl;
>  cout <<"Total de salarios netos calculados: "<< totalSalarioN<<endl;
>  cout <<"Total de deducciones calculadas: "<< totalDeducc<<endl;
>  cout <<"Total de registros procesados: "<<contEmpleado<<endl<<endl;
>  cout << "Digite cualquier tecla para continuar..." << endl;
>  getch();
>
>  break;
>
>  case 5:
>  mostrarTitulo("Salio del sistema...");
>  break;
>
>  default:
>  mostrarTitulo("Opcion Incorrecta....");
>  break;
>
>  }// fin switch
>  contEmpleado++;
>  }
>
>  }//HGG 2011
>




Más información sobre la lista de distribución Cconclase