[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