[C con Clase] Error de division entre cero o desbordamiento

hubert1 en email.com hubert1 en email.com
Dom Mar 20 06:04:53 CET 2011


Buenas noches gente, les agradezco si me pueden ayudar con error, el  
cual estoy trabajando en Borland C++ v3.00, ya lo tengo todo montando  
pero a la hora de ejecutarlo e ingresar el valor del Cebu me muestra:  
Error de division entre cero o desbordamiento, el cual no sé como  
solucionarlo por lo cual les agradezco todas las sugerencias que me  
puedan brindar. Muchas gracias.


/*** Proyecto el Matadero El Carnicero Feroz S.A*******/
/* Creado por: Hubert Garcia Gordon                   */
/* Estudiante Ingenieria en Sistemas                  */
/* Materia: Programacion I                            */
/* Fecha de Entrega: 28/03/2011                       */
/* ****************************************************/


/*** Definicion del Problema***************************/
/* Se requiere automatizar los procesos de            */
/* registro del ganado.                               */
/* ****************************************************/


/*** ANALISIS DEL PROBLEMA*****************************/

/* DATOS DE ENTRADA************************************/
/* 1- Fecha de Sesion de trabajo.                     */
/* 2- Numero de cabezas de ganado.                    */
/* 3- Peso.                                           */
/* 4- Valor.                                          */
/******************************************************/

/* METODOS Y FORMULAS QUE SE NECESITAN                */
/* 1- cuantas cabezas de ganado ingresan (contador)   */
/* 2- Acumulado de valor de las reses x raza          */
/* 3- Acumulado del peso de las reses x raza          */
/* 4- Aplicar porcentaje de deduccion al valor        */
/* registrado de la res, segun peso y raza            */
/* de acuerdo a la siguiente tabla:                   */
/* a) Cebu: 5% si el peso es igual o menor a 400k     */
/* 7% si el peso es mayor a 400k                      */
/* b) Brahman: 5% si el peso es igual o menor         */
/* 500k, 7% si elpeso es mayor a 500k                 */
/* c) Holstein: 5% si el peso es igual o menor a      */
/* 300k, 7% si el peso es mayor a 300k                */
/* d) Mestizo: 5% si el peso es igual o menor a       */
/* 300k, 7% si el peso es mayor a 300k                */
/* Acumulado de todas las reses ingresadas en         */
/* cada sesion de trabajo.                            */
/* Acumulado del peso de todas las reses              */
/* ingresadas.                                        */
/******************************************************/

/* INFORMACION QUE SE DESEA PRODUCIR (REPORTE)*********/
/*                                                    */
/* - Nombre de la empresa                             */
/* - Fecha de Sesion                                  */
/* - Nombre de la operacion realizada:                */
/* - Reporte  de Ingreso de Ganado                    */
/* - Total de reses ingresadas por cada raza          */
/* - Total general del ganado ingresado.              */
/* - Total del peso de las reses ingresadas por raza. */
/* - Total general del peso ingresado                 */
/* - Promedio de peso por res segun raza              */
/* - Promedio de valor por res segun su raza          */
/* - En una seccion aparte:                           */
/*   1) Acumulado de deduccion por raza.              */
/*   2) Acumulado general de deducciones.             */
/*   3) Acumulado de valor neto por cada raza.        */
/******************************************************/

/* SEUDO CODIGO

   Inicio

   Digite la fecha de Sesion
   guarde la fecha

   Menu
   Escoja una opcion para el tipo de ganado que desea registrar

   1 Cebu
   2 Brahman
   3 Holstein
   4 Mestizo

   registrar numero de cabeza por opcion

   Digite el peso
   guardar peso

   Digite el valor
   guardar valor

    if peso Cebu (peso <= 400)
        deduccion 5000

        if peso cebu (peso > 400)
            deduccion 10000

    if peso Brahman (peso <= 500)
        deduccion 7000

        if peso Brahman (peso > 500)
            deduccion 15000

    if peso Holstein (peso <= 300)
        deduccion 3500

        if peso Holstein (peso > 300)
            deduccion 7000

    if peso Mestizo (peso <= 300)
        deduccion 0

        if peso Mestizo (peso > 300)
            deduccion 2500

   Almacenar en una Matriz consecutivamente
   Registros ingresados
   Codigo de raza
   peso
   valor
   Deduccion de cada res.

   Reporte mediante Matriz

    a. Nombre de la empresa.
    b. Fecha de la sesión.
    c. Nombre de la operación realizada: Registro de Ingreso de Ganado.
    d. Total de reses ingresadas por cada raza: Cebú, Brahman, Holstein,  
mestizo.
    e. Total general del ganado ingresado en la sesión de trabajo.
    f. Total del peso de las reses ingresadas, por raza.
    g. Total general del peso ingresado (todas las razas).
    h. Promedio de peso por res según su raza.
    i. Promedio de valor por res según su raza.
    j. En una sección aparte, el informe debe presentar el resumen de las  
deducciones al valor de las reses según su raza, a saber:
    1) acumulado deducción por raza,
    2) acumulado general de deducciones (todas las razas),
    3) el acumulado de valor neto por cada raza.

*/
#include <stdlib.h>
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <iomanip.h>

int opc=0, cebu=0, brahman=0,holstein=0, mestizo=0, seguir=0;
int peso = 0, valor =0, deduccion =0, vfinal=0;
char fecha[10];
int contCebu = 0, contBra = 0, contHol = 0, contMes = 0, sumaCont = 0;
int pesoCebu=0, pesoBra=0, pesoHol=0, pesoMes=0;
int valorCebu=0, valorBra=0, valorHol=0, valorMes=0;
int vfinalCebu=0, vfinalBra=0, vfinalHol=0, vfinalMes=0;
int pfinalCebu=0, pfinalBra=0, pfinalHol=0, pfinalMes=0;
int dfinalCebu=0, dfinalBra=0, dfinalHol=0, dfinalMes=0;
int vnetoCebu=0, vnetoBra=0, vnetoHol=0, vnetoMes=0;
int prompfCebu=0, prompfBra=0, prompfHol=0, prompfMes=0;
int promvfCebu=0, promvfBra=0, promvfHol=0, promvfMes=0;
int contGeneral = 0, pfinalGeneral = 0, dfinalGeneral = 0;


const int menorq400K = 5000, mayorq400k =10000;
const int menorq500K = 7000, mayorq500k =15000;
const int menorq300K = 3500, mayorq300k =7000;
const int menorq300M = 0, mayorq300M =2500;
const int tamFila = 3, tamColumna = 6;
int matrizEnteros[tamFila][tamColumna];
int resp;


void mostrarTitulo()
{
    clrscr();
    cout << "\tBienvenido al programa de registro del Matadero S.A"<<endl  
<<endl;
}

void menuPrincipal()
{

    clrscr();
    cout <<"\tElija la Opcion de lo que desea realizar."<<endl <<endl;
    cout <<"1. Registrar Ganado Cebu."<<endl;
    cout <<"2. Registrar Ganado Brahman."<<endl;
    cout <<"3. Registrar Ganado Holstein."<<endl;
    cout <<"4. Registrar Ganado Mestizo."<<endl;
    cout <<"5. Ver reporte de Cebu."<<endl;
    cout <<"6. Ver reporte de Brahman."<<endl;
    cout <<"7. Ver reporte de Holstein."<<endl;
    cout <<"8. Ver reporte de Mestizo."<<endl;
    cout <<"9. Ver reporte de General."<<endl;
    cout <<"10. Salir del programa."<<endl;
    cout <<"Presiona una opcion ==>"<<endl;
    cin >>opc;
}



void main()
{

    mostrarTitulo();

    cout <<"digite la fecha de sesion: "<<endl;
    cin >>fecha;
    do
    {


    menuPrincipal();

    switch (opc)
    {

        case 1:
            
        
            
            do
            {
                // carga matriz con datos aportados por el usuario
                for(int a = 0; a < tamFila; a++)
                {
                    clrscr();
                    cout <<"Para la cabeza de ganado Cebu digite"<<endl<<endl;
                    cout <<"El peso: "<<endl;
                    cin >>pesoCebu;
                    cout <<"El valor: "<<endl;
                    cin >>valorCebu;
                
                    // Realizar calculos
                    if (pesoCebu <= 400)
                    {
                        dfinalCebu = valorCebu - menorq400K;
                    }
                
                        else
                        {
                            dfinalCebu = valorCebu - mayorq400k;
                        }
                    
                    pfinalCebu = pfinalCebu+pesoCebu;
                    vnetoCebu = vnetoCebu+valorCebu;
                    prompfCebu = pfinalCebu/contCebu;
                    promvfCebu = vfinalCebu/contCebu;
                    contCebu++;
                
                    for( int b = 0; b < tamColumna; b++)
                    {   
                        matrizEnteros[a][b] = a+1;
                        if(b == 1) matrizEnteros[a][b] = contCebu;
                        if(b == 2) matrizEnteros[a][b] = pfinalCebu;
                        if(b == 3) matrizEnteros[a][b] = vnetoCebu;
                    }   
                

                }

            cout  << "Desea ingresar  mas datos? si/no (s/n)" << endl;
            cin >> resp;
                
                }while (resp == 's' || resp == 'S');
            break;

        case 2:
            
        
            
            do
            {
                // carga matriz con datos aportados por el usuario
                for(int c = 0; c < tamFila; c++)
                {
                    clrscr();
                    cout << "Para la cabeza de ganado Brahman digite"<<endl<<endl;
                    cout << "Digite el peso: "<<endl;
                    cin >>  pesoBra;
                    cout << "Digite el valor: "<<endl;
                    cin >>valorBra;
                        
                    // Realizar calculos
                    if (pesoBra <= 500)
                    {
                        dfinalBra = valorBra - menorq500K;
                    }
                    
                        else
                        {
                            dfinalBra = valorBra - mayorq500k;
                        }
                        
                    pfinalBra=pfinalBra+pesoBra;
                    vnetoBra=vnetoBra+valorBra;
                    prompfBra = pfinalBra/contBra;
                    promvfBra = vfinalBra/contBra;
                    contBra++;
                    
                    for(int d = 0; d < tamColumna; d++)
                    {
                        matrizEnteros[c][d] = c+1;
                        if(d == 1) matrizEnteros[c][d] = contBra;
                        if(d == 2) matrizEnteros[c][d] = pfinalBra;
                        if(d == 3) matrizEnteros[c][d] = vnetoBra;                      
                    }
                }
            cout <<"Desea ingresar mas datos? si/no (s/n)" <<endl;
            cin >> resp;
            
            }while(resp == 's' || resp == 'S');
        break;

        case 3:
            
        
            
            do
            {
            
                // Carga Matriz con datos aportados por el usuario
                for(int e = 0; e < tamFila; e++)
                {
                    clrscr();
                    cout << "Para la cabeza de ganado Holstein digite"<<endl<<endl;
                    cout << "Digite el peso: ";
                    cin >>pesoHol;
                    cout << "Digite el valor: ";
                    cin >>valorHol;
                    
                    //Realizar calculos
                    if (pesoHol <= 300)
                    {
                        dfinalHol = valorHol - menorq300K;
                    }
                    
                        else
                        {
                            dfinalHol = valorHol - mayorq300k;
                        }
                        
                    pfinalHol=pfinalHol+pesoHol;
                    vnetoHol=vnetoHol+valorHol;
                    prompfHol = pfinalHol/contHol;
                    promvfHol = vfinalHol/contHol;
                    
                    contHol++;
                
                    for(int f = 0; f < tamColumna; f++)
                    {
                        matrizEnteros[e][f] = e+1;
                        if(f == 1) matrizEnteros[e][f] = contHol;
                        if(f == 2) matrizEnteros[e][f] = pfinalHol;
                        if(f == 3) matrizEnteros[e][f] = vnetoHol;
                    }
                                        
                }
            
            cout  << "Desea ingresar  mas datos? si/no (s/n)" << endl;
            cin >> resp;
            
            }while (resp == 's' || resp == 'S');
    
    break;

        case 4:
        
    
            
            do
            {
                // carga matriz con datos aportados por el usuario
                for(int h = 0; h < tamFila; h++)
                {
                    clrscr();
                    cout << "Para la cabeza de ganado Mestizo digite"<<endl;
                    cout << "El peso: ";
                    cin >> pesoMes;
                    cout << "El valor: ";
                    cin >> valorMes;
                    
                    // Realizar calculos
                    if (pesoMes <= 300)
                    {
                        dfinalMes = valorMes - menorq300M;
                    }
                    
                    else
                    {
                        dfinalMes = valorMes - mayorq300M;
                    }
                    
                    pfinalMes=pfinalMes+pesoMes;
                    vnetoMes=vnetoMes+valorMes;
                    prompfMes = pfinalMes/contMes;
                    promvfMes = vfinalMes/contMes;
                    contMes++;
                
                    for(int g = 0; g < tamColumna; g++)
                    {
                        matrizEnteros[h][g] = h+1;
                        if(g == 1) matrizEnteros[h][g] = contCebu;
                        if(g == 2) matrizEnteros[h][g] = pfinalCebu;
                        if(g == 3) matrizEnteros[h][g] = vnetoCebu;
                    }
                }
            cout  << "Desea ingresar  mas datos? si/no (s/n)" << endl;
            cin >> resp;
            
            } while (resp == 's' || resp == 'S');
    break;



    case 5:
            // despliega datos de matriz cargados previamente
            clrscr();
            mostrarTitulo();
            cout << "Registro de Ganado para la sesion del " << fecha << endl <<  
endl;
            
            clrscr();
            cout << "CONTENIDO DEL REPORTE CEBU" << endl << endl;
            cout << "Total de  Cebu" << setw(15) << "Total del peso de Cebu" <<  
setw(18) << "Promedio de peso de  Cebu" << setw(17) << "Promedio de  
valor de  Cebu" << setw(12) << "Acumulado de deducciones de Cebu" <<  
setw(11) << "Acumulado del valor neto de  Cebu" << setw(10) << endl;

            for(int j = 0; j < tamFila; j++)
            {
                for( int k = 0; k < tamColumna; k++)
                {
                    cout << "  " << matrizEnteros[j][k] << setw(9);
                    if(k == 1) contCebu += matrizEnteros[j][k];
                    if(k == 2) pfinalCebu += matrizEnteros[j][k];
                    if(k == 3) prompfCebu += matrizEnteros[j][k];
                    if(k == 4) promvfCebu += matrizEnteros[j][k];
                    if(k == 5) dfinalCebu += matrizEnteros[j][k];
                    if(k == 6){ vnetoCebu += matrizEnteros[j][k];
                }
            }
            cout << endl;
            }

    // presenta cifras de control
    cout << endl;
    cout << "RESUMEN DE INCLUSION" << endl;
    cout << "CIFRAS DE CONTROL" << endl << endl;
     cout << "Total de Reses Ingresadas de Cebu:" << setw(12) << contCebu  
<< setw(13) <<  endl;
     cout << "Total del peso de las reses de Cebu: "   << setw(14) <<  
pfinalCebu << setw(13) << endl;
    cout << "Promedio de peso de  Cebu: "   << setw(14) << prompfCebu <<  
setw(13) << endl;
    cout << "Promedio de valor de  Cebu: "   << setw(14) << promvfCebu <<  
setw(13) << endl;
     cout << "Acumulado de deducciones de Cebu"  << setw(13) <<  
dfinalCebu << setw(13) << endl;
    cout << "Acumulado del valor neto de  Cebu: "   << setw(14) <<  
vnetoCebu << setw(13) << endl;
    
    getch();
    break;
    
    case 6:
            // despliega datos de matriz cargados previamente
            clrscr();
            mostrarTitulo();
            cout << "Registro de Ganado para la sesion del " << fecha << endl <<  
endl;
            
            clrscr();
            cout << "CONTENIDO DEL REPORTE Brahman" << endl << endl;
            cout << "Total de  Brahman" << setw(15) << "Total del peso de  
Brahman" << setw(18) << "Promedio de peso de  Brahman" << setw(17) <<  
"Promedio de valor de  Brahman" << setw(12) << "Acumulado de deducciones  
de Brahman" << setw(11) << "Acumulado del valor neto de  Brahman" <<  
setw(10) << endl;

            for(int m = 0; m < tamFila; m++)
            {
                for( int n = 0; n < tamColumna; n++)
                {
                    cout << "  " << matrizEnteros[m][n] << setw(9);
                    if(n == 1) contBra += matrizEnteros[m][n];
                    if(n == 2) pfinalBra += matrizEnteros[m][n];
                    if(n == 3) prompfBra += matrizEnteros[m][n];
                    if(n == 4) promvfBra += matrizEnteros[m][n];
                    if(n == 5) dfinalBra += matrizEnteros[m][n];
                    if(n == 6){ vnetoBra += matrizEnteros[m][n];
                }
            }
            cout << endl;
            }

    // presenta cifras de control
    cout << endl;
    cout << "RESUMEN DE INCLUSION" << endl;
    cout << "CIFRAS DE CONTROL" << endl << endl;
     cout << "Total de Reses Ingresadas de Brahman:" << setw(12) <<  
contBra << setw(13) <<  endl;
     cout << "Total del peso de las reses de Brahman: "   << setw(14) <<  
pfinalBra << setw(13) << endl;
    cout << "Promedio de peso de  Brahman: "   << setw(14) << prompfBra <<  
setw(13) << endl;
    cout << "Promedio de valor de  Brahman: "   << setw(14) << promvfBra <<  
setw(13) << endl;
     cout << "Acumulado de deducciones de Brahman: "  << setw(13) <<  
dfinalBra << setw(13) << endl;
    cout << "Acumulado del valor neto de  Brahman: "   << setw(14) <<  
vnetoBra << setw(13) << endl;
    
    getch();
    break;
    
    case 7:
            // despliega datos de matriz cargados previamente
            clrscr();
            mostrarTitulo();
            cout << "Registro de Ganado para la sesion del " << fecha << endl <<  
endl;
            
            clrscr();
            cout << "CONTENIDO DEL REPORTE Holstein" << endl << endl;
            cout << "Total de  Holstein" << setw(15) << "Total del peso de  
Holstein" << setw(18) << "Promedio de peso de  Holstein" << setw(17) <<  
"Promedio de valor de  Holstein" << setw(12) << "Acumulado de  
deducciones de Holstein" << setw(11) << "Acumulado del valor neto de   
Holstein" << setw(10) << endl;

            for(int o = 0; o < tamFila; o++)
            {
                for( int p = 0; p < tamColumna; p++)
                {
                    cout << "  " << matrizEnteros[o][p] << setw(9);
                    if(p == 1) contHol += matrizEnteros[o][p];
                    if(p == 2) pfinalHol += matrizEnteros[o][p];
                    if(p == 3) prompfHol += matrizEnteros[o][p];
                    if(p == 4) promvfHol += matrizEnteros[o][p];
                    if(p == 5) dfinalHol += matrizEnteros[o][p];
                    if(p == 6){ vnetoHol += matrizEnteros[o][p];
                }
            }
            cout << endl;
            }

    // presenta cifras de control
    cout << endl;
    cout << "RESUMEN DE INCLUSION" << endl;
    cout << "CIFRAS DE CONTROL" << endl << endl;
     cout << "Total de Reses Ingresadas de Holstein:" << setw(12) <<  
contHol << setw(13) <<  endl;
     cout << "Total del peso de las reses de Holstein: "   << setw(14) <<  
pfinalHol << setw(13) << endl;
    cout << "Promedio de peso de  Holstein: "   << setw(14) << prompfHol <<  
setw(13) << endl;
    cout << "Promedio de valor de  Holstein: "   << setw(14) << promvfHol  
<< setw(13) << endl;
     cout << "Acumulado de deducciones de Holstein: "  << setw(13) <<  
dfinalHol << setw(13) << endl;
    cout << "Acumulado del valor neto de  Holstein: "   << setw(14) <<  
vnetoHol << setw(13) << endl;
    
    getch();
    break;
    
    case 8:
            // despliega datos de matriz cargados previamente
            clrscr();
            mostrarTitulo();
            cout << "Registro de Ganado para la sesion del " << fecha << endl <<  
endl;
            
            clrscr();
            cout << "CONTENIDO DEL REPORTE Mestizo" << endl << endl;
            cout << "Total de  Mestizo" << setw(15) << "Total del peso de  
Mestizo" << setw(18) << "Promedio de peso de  Mestizo" << setw(17) <<  
"Promedio de valor de  Mestizo" << setw(12) << "Acumulado de deducciones  
de Mestizo" << setw(11) << "Acumulado del valor neto de  Mestizo" <<  
setw(10) << endl;

            for(int q = 0; q < tamFila; q++)
            {
                for( int r = 0; r < tamColumna; r++)
                {
                    cout << "  " << matrizEnteros[q][r] << setw(9);
                    if(r == 1) contMes += matrizEnteros[q][r];
                    if(r == 2) pfinalMes += matrizEnteros[q][r];
                    if(r == 3) prompfMes += matrizEnteros[q][r];
                    if(r == 4) promvfMes += matrizEnteros[q][r];
                    if(r == 5) dfinalMes += matrizEnteros[q][r];
                    if(r == 6){ vnetoMes += matrizEnteros[q][r];
                }
            }
            cout << endl;
            }

    // presenta cifras de control
    cout << endl;
    cout << "RESUMEN DE INCLUSION" << endl;
    cout << "CIFRAS DE CONTROL" << endl << endl;
     cout << "Total de Reses Ingresadas de Mestizo:" << setw(12) <<  
contMes << setw(13) <<  endl;
     cout << "Total del peso de las reses de Mestizo: "   << setw(14) <<  
pfinalMes << setw(13) << endl;
    cout << "Promedio de peso de  Mestizo: "   << setw(14) << prompfMes <<  
setw(13) << endl;
    cout << "Promedio de valor de  Mestizo: "   << setw(14) << promvfMes <<  
setw(13) << endl;
     cout << "Acumulado de deducciones de Mestizo: "  << setw(13) <<  
dfinalMes << setw(13) << endl;
    cout << "Acumulado del valor neto de  Mestizo: "   << setw(14) <<  
vnetoMes << setw(13) << endl;
    
    getch();
    break;
    
    case 9:
            // despliega datos de matriz cargados previamente
            clrscr();
            mostrarTitulo();
            cout << "Registro de Ganado para la sesion del " << fecha << endl <<  
endl;
            
            clrscr();
            cout << "CONTENIDO DEL REPORTE GENERAL" << endl << endl;
            cout << "Total general del ganado" << setw(15) << "Total general del  
peso" << setw(18) << "Acumulado general de deducciones" << setw(17)  <<  
endl;

            for(int s = 0; s < tamFila; s++)
            {
                // realizar calculos
                contGeneral = contCebu+contBra+contHol+contMes;
                pfinalGeneral = pfinalCebu+pfinalBra+pfinalHol+pfinalMes;
                dfinalGeneral = dfinalCebu+dfinalBra+dfinalHol+dfinalMes;
                
                for( int t = 0; t < tamColumna; t++)
                {
                    cout << "  " << matrizEnteros[s][t] << setw(9);
                    if(t == 1) contGeneral += matrizEnteros[s][t];
                    if(t == 2) pfinalGeneral += matrizEnteros[s][t];
                    if(t == 3) dfinalGeneral += matrizEnteros[s][t];
                    
                }
            }
            cout << endl;
            

    // presenta cifras de control
    cout << endl;
    cout << "RESUMEN DE INCLUSION" << endl;
    cout << "CIFRAS DE CONTROL" << endl << endl;
     cout << "Total general del ganado: " << setw(12) << contGeneral <<  
setw(13) <<  endl;
     cout << "Total general del peso: "   << setw(14) << pfinalGeneral <<  
setw(13) << endl;
     cout << "Acumulado general de deducciones: "   << setw(14) <<  
dfinalGeneral << setw(13) << endl;
    
    
    getch();


    break;
    
    case 10:
        cout << "Salio del sistema.";
        exit(1);
    break;
    
        default:
        cout << "Opcion incorrecta.";
        break;
    }; //switch


    cout << "Desea continuar? (s/n) si/no --> ";
    cin >> seguir;

    }while(seguir=='s' || seguir=='S');



}// fin main HGG

A Course in Miracles (Curso de milagros)
Volver a nacer es dejar que el pasado se marche, y mirar al presente sin  
condenarlo... S�lo se  
te% 
------------ próxima parte ------------

/*** Proyecto el Matadero El Carnicero Feroz S.A*******/
/* Creado por: Hubert Garcia Gordon                   */
/* Estudiante Ingenieria en Sistemas                  */
/* Materia: Programacion I                            */
/* Fecha de Entrega: 28/03/2011                       */
/* ****************************************************/


/*** Definicion del Problema***************************/
/* Se requiere automatizar los procesos de            */
/* registro del ganado.                               */
/* ****************************************************/


/*** ANALISIS DEL PROBLEMA*****************************/

/* DATOS DE ENTRADA************************************/
/* 1- Fecha de Sesion de trabajo.                     */
/* 2- Numero de cabezas de ganado.                    */
/* 3- Peso.                                           */
/* 4- Valor.                                          */
/******************************************************/

/* METODOS Y FORMULAS QUE SE NECESITAN                */
/* 1- cuantas cabezas de ganado ingresan (contador)   */
/* 2- Acumulado de valor de las reses x raza          */
/* 3- Acumulado del peso de las reses x raza          */
/* 4- Aplicar porcentaje de deduccion al valor        */
/* registrado de la res, segun peso y raza            */
/* de acuerdo a la siguiente tabla:                   */
/* a) Cebu: 5% si el peso es igual o menor a 400k     */
/* 7% si el peso es mayor a 400k                      */
/* b) Brahman: 5% si el peso es igual o menor         */
/* 500k, 7% si elpeso es mayor a 500k                 */
/* c) Holstein: 5% si el peso es igual o menor a      */
/* 300k, 7% si el peso es mayor a 300k                */
/* d) Mestizo: 5% si el peso es igual o menor a       */
/* 300k, 7% si el peso es mayor a 300k                */
/* Acumulado de todas las reses ingresadas en         */
/* cada sesion de trabajo.                            */
/* Acumulado del peso de todas las reses              */
/* ingresadas.                                        */
/******************************************************/

/* INFORMACION QUE SE DESEA PRODUCIR (REPORTE)*********/
/*                                                    */
/* - Nombre de la empresa                             */
/* - Fecha de Sesion                                  */
/* - Nombre de la operacion realizada:                */
/* - Reporte  de Ingreso de Ganado                    */
/* - Total de reses ingresadas por cada raza          */
/* - Total general del ganado ingresado.              */
/* - Total del peso de las reses ingresadas por raza. */
/* - Total general del peso ingresado                 */
/* - Promedio de peso por res segun raza              */
/* - Promedio de valor por res segun su raza          */
/* - En una seccion aparte:                           */
/*   1) Acumulado de deduccion por raza.              */
/*   2) Acumulado general de deducciones.             */
/*   3) Acumulado de valor neto por cada raza.        */
/******************************************************/

/* SEUDO CODIGO

   Inicio

   Digite la fecha de Sesion
   guarde la fecha

   Menu
   Escoja una opcion para el tipo de ganado que desea registrar

   1 Cebu
   2 Brahman
   3 Holstein
   4 Mestizo

   registrar numero de cabeza por opcion

   Digite el peso
   guardar peso

   Digite el valor
   guardar valor

	if peso Cebu (peso <= 400)
		deduccion 5000

		if peso cebu (peso > 400)
			deduccion 10000

	if peso Brahman (peso <= 500)
		deduccion 7000

		if peso Brahman (peso > 500)
			deduccion 15000

	if peso Holstein (peso <= 300)
		deduccion 3500

		if peso Holstein (peso > 300)
			deduccion 7000

	if peso Mestizo (peso <= 300)
		deduccion 0

		if peso Mestizo (peso > 300)
			deduccion 2500 

   Almacenar en una Matriz consecutivamente
   Registros ingresados
   Codigo de raza
   peso
   valor
   Deduccion de cada res.

   Reporte mediante Matriz

	a. Nombre de la empresa.
	b. Fecha de la sesión.
	c. Nombre de la operación realizada: Registro de Ingreso de Ganado.
	d. Total de reses ingresadas por cada raza: Cebú, Brahman, Holstein, mestizo.
	e. Total general del ganado ingresado en la sesión de trabajo.
	f. Total del peso de las reses ingresadas, por raza.
	g. Total general del peso ingresado (todas las razas).
	h. Promedio de peso por res según su raza.
	i. Promedio de valor por res según su raza.
	j. En una sección aparte, el informe debe presentar el resumen de las deducciones al valor de las reses según su raza, a saber:
	1) acumulado deducción por raza, 
	2) acumulado general de deducciones (todas las razas), 
	3) el acumulado de valor neto por cada raza.

*/
#include <stdlib.h>
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <iomanip.h>

int opc=0, cebu=0, brahman=0,holstein=0, mestizo=0, seguir=0;
int peso = 0, valor =0, deduccion =0, vfinal=0;
char fecha[10];
int contCebu = 0, contBra = 0, contHol = 0, contMes = 0, sumaCont = 0;
int pesoCebu=0, pesoBra=0, pesoHol=0, pesoMes=0;
int valorCebu=0, valorBra=0, valorHol=0, valorMes=0;
int vfinalCebu=0, vfinalBra=0, vfinalHol=0, vfinalMes=0;
int pfinalCebu=0, pfinalBra=0, pfinalHol=0, pfinalMes=0;
int dfinalCebu=0, dfinalBra=0, dfinalHol=0, dfinalMes=0;
int vnetoCebu=0, vnetoBra=0, vnetoHol=0, vnetoMes=0;
int prompfCebu=0, prompfBra=0, prompfHol=0, prompfMes=0;
int promvfCebu=0, promvfBra=0, promvfHol=0, promvfMes=0;
int contGeneral = 0, pfinalGeneral = 0, dfinalGeneral = 0;


const int menorq400K = 5000, mayorq400k =10000;
const int menorq500K = 7000, mayorq500k =15000;
const int menorq300K = 3500, mayorq300k =7000;
const int menorq300M = 0, mayorq300M =2500; 
const int tamFila = 3, tamColumna = 6;
int matrizEnteros[tamFila][tamColumna];
int resp;


void mostrarTitulo()
{
	clrscr();
	cout << "\tBienvenido al programa de registro del Matadero S.A"<<endl <<endl;
}

void menuPrincipal()
{

	clrscr();
	cout <<"\tElija la Opcion de lo que desea realizar."<<endl <<endl;
	cout <<"1. Registrar Ganado Cebu."<<endl;
	cout <<"2. Registrar Ganado Brahman."<<endl;
	cout <<"3. Registrar Ganado Holstein."<<endl;
	cout <<"4. Registrar Ganado Mestizo."<<endl;
	cout <<"5. Ver reporte de Cebu."<<endl;
	cout <<"6. Ver reporte de Brahman."<<endl;
	cout <<"7. Ver reporte de Holstein."<<endl;
	cout <<"8. Ver reporte de Mestizo."<<endl;
	cout <<"9. Ver reporte de General."<<endl;
	cout <<"10. Salir del programa."<<endl;
	cout <<"Presiona una opcion ==>"<<endl;
	cin >>opc;
}



void main()
{

	mostrarTitulo();

	cout <<"digite la fecha de sesion: "<<endl;
	cin >>fecha;
	do
	{


	menuPrincipal();

	switch (opc)
	{

		case 1:
			
		
			
			do
			{
				// carga matriz con datos aportados por el usuario
				for(int a = 0; a < tamFila; a++)
				{
					clrscr();
					cout <<"Para la cabeza de ganado Cebu digite"<<endl<<endl;
					cout <<"El peso: "<<endl;
					cin >>pesoCebu;
					cout <<"El valor: "<<endl;
					cin >>valorCebu;
				
					// Realizar calculos
					if (pesoCebu <= 400)
					{
						dfinalCebu = valorCebu - menorq400K;
					}
				
						else
						{
							dfinalCebu = valorCebu - mayorq400k;
						}
					
					pfinalCebu = pfinalCebu+pesoCebu;
					vnetoCebu = vnetoCebu+valorCebu;
					prompfCebu = pfinalCebu/contCebu;
					promvfCebu = vfinalCebu/contCebu;
					contCebu++;
				
					for( int b = 0; b < tamColumna; b++)
					{	
						matrizEnteros[a][b] = a+1;
						if(b == 1) matrizEnteros[a][b] = contCebu;
						if(b == 2) matrizEnteros[a][b] = pfinalCebu;
						if(b == 3) matrizEnteros[a][b] = vnetoCebu;
					}	
				

				}

			cout  << "Desea ingresar  mas datos? si/no (s/n)" << endl;
			cin >> resp;
				
           	 	}while (resp == 's' || resp == 'S');
			break;

		case 2:
			
		
			
			do
			{
				// carga matriz con datos aportados por el usuario
				for(int c = 0; c < tamFila; c++)
				{
					clrscr();
					cout <<	"Para la cabeza de ganado Brahman digite"<<endl<<endl;
					cout <<	"Digite el peso: "<<endl;
					cin >>	pesoBra;
					cout <<	"Digite el valor: "<<endl;
					cin >>valorBra;
						
					// Realizar calculos
					if (pesoBra <= 500)
					{
						dfinalBra = valorBra - menorq500K;
					}
					
						else
						{
							dfinalBra = valorBra - mayorq500k;
						}
						
					pfinalBra=pfinalBra+pesoBra;
					vnetoBra=vnetoBra+valorBra;
					prompfBra = pfinalBra/contBra;
					promvfBra = vfinalBra/contBra;
					contBra++;
					
					for(int d = 0; d < tamColumna; d++)
					{
						matrizEnteros[c][d] = c+1;
						if(d == 1) matrizEnteros[c][d] = contBra;
						if(d == 2) matrizEnteros[c][d] = pfinalBra;
						if(d == 3) matrizEnteros[c][d] = vnetoBra;						
					}
				}
			cout <<"Desea ingresar mas datos? si/no (s/n)" <<endl;
			cin >> resp;
			
			}while(resp == 's' || resp == 'S');
        break;

		case 3:
			
		
			
			do
			{
			
				// Carga Matriz con datos aportados por el usuario
				for(int e = 0; e < tamFila; e++)
				{
					clrscr();
					cout << "Para la cabeza de ganado Holstein digite"<<endl<<endl;
					cout << "Digite el peso: ";
					cin >>pesoHol;
					cout << "Digite el valor: ";
					cin >>valorHol;
					
					//Realizar calculos
					if (pesoHol <= 300)
					{
						dfinalHol = valorHol - menorq300K;
					}
					
						else
						{
							dfinalHol = valorHol - mayorq300k;
						}
						
					pfinalHol=pfinalHol+pesoHol;
					vnetoHol=vnetoHol+valorHol;
					prompfHol = pfinalHol/contHol;
					promvfHol = vfinalHol/contHol;
					
					contHol++;
				
					for(int f = 0; f < tamColumna; f++)
					{
						matrizEnteros[e][f] = e+1;
						if(f == 1) matrizEnteros[e][f] = contHol;
						if(f == 2) matrizEnteros[e][f] = pfinalHol;
						if(f == 3) matrizEnteros[e][f] = vnetoHol;
					}
										
				}
			
			cout  << "Desea ingresar  mas datos? si/no (s/n)" << endl;
			cin >> resp;
			
			}while (resp == 's' || resp == 'S');
	
	break;

		case 4:
		
	
			
			do
			{
				// carga matriz con datos aportados por el usuario
				for(int h = 0; h < tamFila; h++)
				{
					clrscr();
					cout << "Para la cabeza de ganado Mestizo digite"<<endl;
					cout << "El peso: ";
					cin >> pesoMes;
					cout << "El valor: ";
					cin >> valorMes;
					
					// Realizar calculos
					if (pesoMes <= 300)
					{
						dfinalMes = valorMes - menorq300M;
					}
					
					else
					{
						dfinalMes = valorMes - mayorq300M;
					}
					
					pfinalMes=pfinalMes+pesoMes;
					vnetoMes=vnetoMes+valorMes;
					prompfMes = pfinalMes/contMes;
					promvfMes = vfinalMes/contMes;
					contMes++;
				
					for(int g = 0; g < tamColumna; g++)
					{
						matrizEnteros[h][g] = h+1;
						if(g == 1) matrizEnteros[h][g] = contCebu;
						if(g == 2) matrizEnteros[h][g] = pfinalCebu;
						if(g == 3) matrizEnteros[h][g] = vnetoCebu;
					}
				}
			cout  << "Desea ingresar  mas datos? si/no (s/n)" << endl;
			cin >> resp;
			
            } while (resp == 's' || resp == 'S');
	break;



	case 5:
			// despliega datos de matriz cargados previamente
			clrscr();
			mostrarTitulo();
			cout << "Registro de Ganado para la sesion del " << fecha << endl << endl;
			
			clrscr();
			cout << "CONTENIDO DEL REPORTE CEBU" << endl << endl;
			cout << "Total de  Cebu" << setw(15) << "Total del peso de Cebu" << setw(18) << "Promedio de peso de  Cebu" << setw(17) << "Promedio de valor de  Cebu" << setw(12) << "Acumulado de deducciones de Cebu" << setw(11) << "Acumulado del valor neto de  Cebu" << setw(10) << endl;

			for(int j = 0; j < tamFila; j++)
			{
				for( int k = 0; k < tamColumna; k++)
				{
					cout << "  " << matrizEnteros[j][k] << setw(9);
					if(k == 1) contCebu += matrizEnteros[j][k];
					if(k == 2) pfinalCebu += matrizEnteros[j][k];
					if(k == 3) prompfCebu += matrizEnteros[j][k];
					if(k == 4) promvfCebu += matrizEnteros[j][k];
					if(k == 5) dfinalCebu += matrizEnteros[j][k];
					if(k == 6){ vnetoCebu += matrizEnteros[j][k];
				}
			}
			cout << endl;
			}

    // presenta cifras de control
    cout << endl;
    cout << "RESUMEN DE INCLUSION" << endl;
    cout << "CIFRAS DE CONTROL" << endl << endl;
    cout << "Total de Reses Ingresadas de Cebu:" << setw(12) << contCebu << setw(13) <<  endl;
    cout << "Total del peso de las reses de Cebu: "   << setw(14) << pfinalCebu << setw(13) << endl;
	cout << "Promedio de peso de  Cebu: "   << setw(14) << prompfCebu << setw(13) << endl;
	cout << "Promedio de valor de  Cebu: "   << setw(14) << promvfCebu << setw(13) << endl;
    cout << "Acumulado de deducciones de Cebu"  << setw(13) << dfinalCebu << setw(13) << endl;
	cout << "Acumulado del valor neto de  Cebu: "   << setw(14) << vnetoCebu << setw(13) << endl;
	
    getch();
	break;
	
	case 6:
			// despliega datos de matriz cargados previamente
			clrscr();
			mostrarTitulo();
			cout << "Registro de Ganado para la sesion del " << fecha << endl << endl;
			
			clrscr();
			cout << "CONTENIDO DEL REPORTE Brahman" << endl << endl;
			cout << "Total de  Brahman" << setw(15) << "Total del peso de Brahman" << setw(18) << "Promedio de peso de  Brahman" << setw(17) << "Promedio de valor de  Brahman" << setw(12) << "Acumulado de deducciones de Brahman" << setw(11) << "Acumulado del valor neto de  Brahman" << setw(10) << endl;

			for(int m = 0; m < tamFila; m++)
			{
				for( int n = 0; n < tamColumna; n++)
				{
					cout << "  " << matrizEnteros[m][n] << setw(9);
					if(n == 1) contBra += matrizEnteros[m][n];
					if(n == 2) pfinalBra += matrizEnteros[m][n];
					if(n == 3) prompfBra += matrizEnteros[m][n];
					if(n == 4) promvfBra += matrizEnteros[m][n];
					if(n == 5) dfinalBra += matrizEnteros[m][n];
					if(n == 6){ vnetoBra += matrizEnteros[m][n];
				}
			}
			cout << endl;
			}

    // presenta cifras de control
    cout << endl;
    cout << "RESUMEN DE INCLUSION" << endl;
    cout << "CIFRAS DE CONTROL" << endl << endl;
    cout << "Total de Reses Ingresadas de Brahman:" << setw(12) << contBra << setw(13) <<  endl;
    cout << "Total del peso de las reses de Brahman: "   << setw(14) << pfinalBra << setw(13) << endl;
	cout << "Promedio de peso de  Brahman: "   << setw(14) << prompfBra << setw(13) << endl;
	cout << "Promedio de valor de  Brahman: "   << setw(14) << promvfBra << setw(13) << endl;
    cout << "Acumulado de deducciones de Brahman: "  << setw(13) << dfinalBra << setw(13) << endl;
	cout << "Acumulado del valor neto de  Brahman: "   << setw(14) << vnetoBra << setw(13) << endl;
	
    getch();
	break;
	
	case 7:
			// despliega datos de matriz cargados previamente
			clrscr();
			mostrarTitulo();
			cout << "Registro de Ganado para la sesion del " << fecha << endl << endl;
			
			clrscr();
			cout << "CONTENIDO DEL REPORTE Holstein" << endl << endl;
			cout << "Total de  Holstein" << setw(15) << "Total del peso de Holstein" << setw(18) << "Promedio de peso de  Holstein" << setw(17) << "Promedio de valor de  Holstein" << setw(12) << "Acumulado de deducciones de Holstein" << setw(11) << "Acumulado del valor neto de  Holstein" << setw(10) << endl;

			for(int o = 0; o < tamFila; o++)
			{
				for( int p = 0; p < tamColumna; p++)
				{
					cout << "  " << matrizEnteros[o][p] << setw(9);
					if(p == 1) contHol += matrizEnteros[o][p];
					if(p == 2) pfinalHol += matrizEnteros[o][p];
					if(p == 3) prompfHol += matrizEnteros[o][p];
					if(p == 4) promvfHol += matrizEnteros[o][p];
					if(p == 5) dfinalHol += matrizEnteros[o][p];
					if(p == 6){ vnetoHol += matrizEnteros[o][p];
				}
			}
			cout << endl;
			}

    // presenta cifras de control
    cout << endl;
    cout << "RESUMEN DE INCLUSION" << endl;
    cout << "CIFRAS DE CONTROL" << endl << endl;
    cout << "Total de Reses Ingresadas de Holstein:" << setw(12) << contHol << setw(13) <<  endl;
    cout << "Total del peso de las reses de Holstein: "   << setw(14) << pfinalHol << setw(13) << endl;
	cout << "Promedio de peso de  Holstein: "   << setw(14) << prompfHol << setw(13) << endl;
	cout << "Promedio de valor de  Holstein: "   << setw(14) << promvfHol << setw(13) << endl;
    cout << "Acumulado de deducciones de Holstein: "  << setw(13) << dfinalHol << setw(13) << endl;
	cout << "Acumulado del valor neto de  Holstein: "   << setw(14) << vnetoHol << setw(13) << endl;
	
    getch();
	break;
	
	case 8:
			// despliega datos de matriz cargados previamente
			clrscr();
			mostrarTitulo();
			cout << "Registro de Ganado para la sesion del " << fecha << endl << endl;
			
			clrscr();
			cout << "CONTENIDO DEL REPORTE Mestizo" << endl << endl;
			cout << "Total de  Mestizo" << setw(15) << "Total del peso de Mestizo" << setw(18) << "Promedio de peso de  Mestizo" << setw(17) << "Promedio de valor de  Mestizo" << setw(12) << "Acumulado de deducciones de Mestizo" << setw(11) << "Acumulado del valor neto de  Mestizo" << setw(10) << endl;

			for(int q = 0; q < tamFila; q++)
			{
				for( int r = 0; r < tamColumna; r++)
				{
					cout << "  " << matrizEnteros[q][r] << setw(9);
					if(r == 1) contMes += matrizEnteros[q][r];
					if(r == 2) pfinalMes += matrizEnteros[q][r];
					if(r == 3) prompfMes += matrizEnteros[q][r];
					if(r == 4) promvfMes += matrizEnteros[q][r];
					if(r == 5) dfinalMes += matrizEnteros[q][r];
					if(r == 6){ vnetoMes += matrizEnteros[q][r];
				}
			}
			cout << endl;
			}

    // presenta cifras de control
    cout << endl;
    cout << "RESUMEN DE INCLUSION" << endl;
    cout << "CIFRAS DE CONTROL" << endl << endl;
    cout << "Total de Reses Ingresadas de Mestizo:" << setw(12) << contMes << setw(13) <<  endl;
    cout << "Total del peso de las reses de Mestizo: "   << setw(14) << pfinalMes << setw(13) << endl;
	cout << "Promedio de peso de  Mestizo: "   << setw(14) << prompfMes << setw(13) << endl;
	cout << "Promedio de valor de  Mestizo: "   << setw(14) << promvfMes << setw(13) << endl;
    cout << "Acumulado de deducciones de Mestizo: "  << setw(13) << dfinalMes << setw(13) << endl;
	cout << "Acumulado del valor neto de  Mestizo: "   << setw(14) << vnetoMes << setw(13) << endl;
	
    getch();
	break;
	
	case 9:
			// despliega datos de matriz cargados previamente
			clrscr();
			mostrarTitulo();
			cout << "Registro de Ganado para la sesion del " << fecha << endl << endl;
			
			clrscr();
			cout << "CONTENIDO DEL REPORTE GENERAL" << endl << endl;
			cout << "Total general del ganado" << setw(15) << "Total general del peso" << setw(18) << "Acumulado general de deducciones" << setw(17)  << endl;

			for(int s = 0; s < tamFila; s++)
			{
				// realizar calculos
				contGeneral = contCebu+contBra+contHol+contMes;
				pfinalGeneral = pfinalCebu+pfinalBra+pfinalHol+pfinalMes;
				dfinalGeneral = dfinalCebu+dfinalBra+dfinalHol+dfinalMes;
				
				for( int t = 0; t < tamColumna; t++)
				{
					cout << "  " << matrizEnteros[s][t] << setw(9);
					if(t == 1) contGeneral += matrizEnteros[s][t];
					if(t == 2) pfinalGeneral += matrizEnteros[s][t];
					if(t == 3) dfinalGeneral += matrizEnteros[s][t];
					
				}
			}
			cout << endl;
			

    // presenta cifras de control
    cout << endl;
    cout << "RESUMEN DE INCLUSION" << endl;
    cout << "CIFRAS DE CONTROL" << endl << endl;
    cout << "Total general del ganado: " << setw(12) << contGeneral << setw(13) <<  endl;
    cout << "Total general del peso: "   << setw(14) << pfinalGeneral << setw(13) << endl;
    cout << "Acumulado general de deducciones: "   << setw(14) << dfinalGeneral << setw(13) << endl;
	
	
    getch();


	break;
	
	case 10:
		cout << "Salio del sistema.";
		exit(1);
	break;
	
		default:
		cout << "Opcion incorrecta.";
		break;
    }; //switch


	cout << "Desea continuar? (s/n) si/no --> ";
	cin >> seguir;

    }while(seguir=='s' || seguir=='S');



}// fin main HGG


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