Programa en c++ me muestra falsos valores y no cierra

Iniciado por jonny03, 7 Diciembre 2014, 20:59 PM

0 Miembros y 1 Visitante están viendo este tema.

jonny03

Buenas, estoy creando un programa para una tarea de programacion en c++ el problema es que me da unos pequeños problemas que hasta el momento no encuentro la solucion, lo que pasa es que cuando entro a la sección de reportes generales me deve mostrar todo el 0 pero la fila 10 me muestra valores que yo nunca ingrese, deben aparecer en 0 hasta que desde el menu principal entre en "comprar" y les de un valor.
Tambien tengo un problema que cuando en el menu principal escojo la opcion 4 para salir se va directo al menu de reportes y eso no deve pasar, llego a ustedes intentando ver si me pueden ayudar.
les dejo el codigo:
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int menu1, menu2, menu3, bodega, mariscos, sumacompra, venta, restaventa, x, y, z, v;
    int bm[10][4];
    sumacompra=0;
    restaventa=0;
    bodega=1;
    mariscos=1;
    for(z=0; z<11; z++)
    {
        for(v=0; v<5; v++)
        {
            bm[z][v]=0;
        }
    }
    menu1=0;
    while(menu1!=4)
    {
        system("cls");
        printf("\n----------Menu principal----------");
        printf("\n\t1)Comprar\n\t2)Vender\n\t3)Reportes\n\t4)Salir");
        printf("\n\nEscoje un menu: ");
        scanf("%d",&menu1);
        if(menu1>4)
        {
            printf("\nOpcion invalida escoge otra opcion: ");
            scanf("%d",&menu1);
        }
        else
        {
            if(menu1==1)
            {
                printf("\n----------Comprar----------");
                printf("\nEn que bodega desea almacenar? (1-10)\nBodega: ");
                scanf("%d",&bodega);
                if (bodega>10)
                {
                    printf("No existe esa bodega, solo existen 10\n");
                    system("pause");
                }
                else
                {
                    printf("\nEscoja un tipo de mariscos:\n\t1)Pulpo\t\t2)Camaron\n\t3)Calamar\t4)Caracol\nOpcion: ");
                    scanf("%d",&mariscos);
                    if (mariscos>4)
                    {
                        printf("\nNo existe ese marisco");
                        system("pause");
                    }
                    else
                    {
                        printf("Cuantos Kilos? ");
                        scanf("%d",&bm[0][0]);
                        printf("Se han almacenado %d Kg\n",bm[0][0]);
                        bm[bodega][mariscos]=bm[0][0]+bm[bodega][mariscos];
                        sumacompra=bm[0][0]+sumacompra;
                        system("pause");
                    }
                }
            }
            else
            {
                if(menu1==2)
                {
                    printf("\n----------Venta----------");
                    printf("\nDe que bodega desea Comprar? (1-10) ");
                    scanf("%d",&bodega);
                    if(bodega>10)
                    {
                        printf("\nNo existe esa bodega\n");
                        system("pause");
                    }
                    else
                    {
                        printf("\n\t1)Pulpo\t\t2)Camaron\n\t3)Calamar\t4)Caracol");
                        printf("\n\nQue tipo de marisco desea comprar? ");
                        scanf("%d",&mariscos);
                        if(mariscos>4)
                        {
                            printf("\nNo existe esa opcion...\n");
                            system("pause");
                        }
                        else
                        {
                            printf("\nCuantos Kilos? ");
                            scanf("%d",&bm[0][0]);
                            printf("\nSe an restado %d Kg de la bodega\n",bm[0][0]);
                            bm[bodega][mariscos]=bm[bodega][mariscos]-bm[0][0];
                            restaventa=bm[0][0]-restaventa;
                            system("pause");
                        }
                    }
                }
                else
                {
                    if(menu1=3)
                    {
                        menu2=0;
                        while(menu2!=4)
                        {
                            menu3=0;
                            printf("\n----------Reportes----------");
                            printf("\n\n\t1)Inventario\t\t2)Ventas\n\t3)Compras\t\t4)Regresar");
                            printf("\n\nEntra en un menu: ");
                            scanf("%d",&menu2);
                            if(menu2>4)
                            {
                                printf("\nOpcion no valida\n");
                                system("pause");
                            }
                            else
                            {
                                if(menu2==1)
                                {
                                    while(menu3!=4)
                                    {
                                        printf("\n----------Inventarios----------");
                                        printf("\n\n\t1)General\t\t2)Bodega\n\t3)Marisco\t\t4)Regresar");
                                        printf("\n\nEscoje una opcion: ");
                                        scanf("%d",&menu3);
                                        if(menu3>4)
                                        {
                                            printf("\nNo existe esa opcion...\n");
                                            system("pause");
                                        }
                                        else
                                        {
                                            if(menu3==1)
                                            {
                                                printf("\nBodega\t\tPulpo\t\tCamaron\t\tCalamar\t\tCaracol\n");
                                                for(x=1; x<11; x++)
                                                {
                                                    printf("\n%d",x);
                                                    for(y=1; y<5; y++)
                                                    {
                                                        printf("\t\t%d",bm[x][y]);
                                                    }
                                                }
                                            }
                                            printf("\n");
                                            system("pause");
                                        }
                                    }
                                }
                            }
                        }
                        printf("\n");
                        system("pause");
                    }
                }
            }
        }
    }
    return 0;
}




Ayuda porfa!!

engel lex

intentaste ejecutarlo en el debugger de tu ide para revisarlo paso a paso?
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

jonny03

Cita de: engel lex en  7 Diciembre 2014, 21:31 PM
intentaste ejecutarlo en el debugger de tu ide para revisarlo paso a paso?

Ya lo intente solo que en el Code Blocks me aparece la opcion bloqueada, no la puedo iniciar asi

engel lex

es raro que no te deje usar el debugger, deberias revisar tu configuracion...


bueno revisandolo yo tienes

linea 98
if(menu1=3)

ya no se el otro error, no me sale, tendrás que decirme los pasos cuando te salió
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

fary

#4
Usa elseif en vez de tantos if anidados.

PD: Esto es C, no C++.
Un byte a la izquierda.

BitsPuke

Yo lo primero que haria es quitar los else porque entre tantas llaves te haces un lio:

Código (cpp) [Seleccionar]

while (menu!=4){
...
if (menu!=4){ ... }
if (menu==1){ ... }
...
if (menu==4){ ... }

}


Probablemente tu problema sea que has metido un if dentro de un else que no era o algo por el estilo.

jonny03

Muchas gracias a todos, ya lo resolvi, esta completo
dejo aqui el codigo por si alguien mas lo necesita (aun tiene un pequeño problema que cuando en "informes" entras a "compra" o "venta" y luego regresas de nuevo a "informes" e intentas entrar a "general" no lo reconoce, la solucion es precionar 4 para regresar al menu "reportes" y lo vuelves a intentar, no afecta en mucho)

#include <stdio.h>
#include <stdlib.h>
int main()
{
   int menu1, menu2, menu3, bodega, mariscos, sumacompra, venta, restaventa, x, y, z, v;
   int cpulpo, ccamaron, ccalamar, ccaracol, vpulpo, vcamaron, vcalamar, vcaracol;
   int bm[11][5];
   vpulpo=0; vcamaron=0; vcalamar=0; vcaracol=0;
   cpulpo=0; ccamaron=0; ccalamar=0; ccaracol=0;
   sumacompra=0;
   restaventa=0;
   bodega=1;
   mariscos=1;
   menu1=0;
   for(z=0; z<11; z++)
   {
       for(v=0; v<5; v++)
       {
           bm[z][v]=0;
       }
   }
   while(menu1!=4)
   {
       system("cls");
       printf("\n----------Menu principal-----------");
       printf("\n\t1)Comprar\n\t2)Vender\n\t3)Reportes\n\t4)Salir");
       printf("\n\nEscoje un menu: ");
       scanf("%d",&menu1);
       if(menu1>4)
       {
           printf("\nOpcion invalida escoge otra opcion: ");
           scanf("%d",&menu1);
       }
       if(menu1==1)
       {
           system("cls");
           printf("\n--------------Comprar--------------");
           printf("\nEn que bodega desea almacenar? (1-10)\nBodega: ");
           scanf("%d",&bodega);
           while(bodega>10)
           {
               printf("\nNo existe esa bodega, solo existen 10\nEn que bodega desea almacenar? (1-10)\nBodega: ");
               scanf("%d",&bodega);
           }
           printf("\nEscoja un tipo de mariscos:\n\t1)Pulpo\t\t2)Camaron\n\t3)Calamar\t4)Caracol\nOpcion: ");
           scanf("%d",&mariscos);
           while(mariscos>4)
           {
               printf("\nNo existe ese marisco\nEscoja un tipo de mariscos: ");
               scanf("%d",&mariscos);
           }
           printf("Cuantos Kilos? ");
           scanf("%d",&bm[0][0]);
           printf("Se han almacenado %d Kg\n",bm[0][0]);
           if(mariscos==1)
           {
               cpulpo=cpulpo+bm[0][0];
           }
           if(mariscos==2)
           {
               ccamaron=ccamaron+bm[0][0];
           }
           if(mariscos==3)
           {
               ccalamar=ccalamar+bm[0][0];
           }
           if(mariscos==4)
           {
               ccaracol=ccaracol+bm[0][0];
           }
           bm[bodega][mariscos]=bm[0][0]+bm[bodega][mariscos];
           sumacompra=sumacompra+bm[0][0];
           system("pause");
       }
       if(menu1==2)
       {
           system("cls");
           printf("\n---------------Venta---------------");
           printf("\nDe que bodega desea Comprar? (1-10) ");
           scanf("%d",&bodega);
           while(bodega>10)
           {
               printf("\nNo existe esa bodega, solo existen 10\nEn que bodega desea comprar? (1-10)\nBodega: ");
               scanf("%d",&bodega);
           }
           printf("\n\t1)Pulpo\t\t2)Camaron\n\t3)Calamar\t4)Caracol");
           printf("\n\nQue tipo de marisco desea comprar? ");
           scanf("%d",&mariscos);
           while(mariscos>4)
           {
               printf("\nNo existe ese marisco\nEscoja un tipo de mariscos: ");
               scanf("%d",&mariscos);
           }
           printf("\nCuantos Kilos? ");
           scanf("%d",&bm[0][0]);
           printf("\nSe an restado %d Kg de la bodega\n",bm[0][0]);
           if(mariscos==1)
           {
               vpulpo=vpulpo+bm[0][0];
           }
           if(mariscos==2)
           {
               vcamaron=vcamaron+bm[0][0];
           }
           if(mariscos==3)
           {
               vcalamar=vcalamar+bm[0][0];
           }
           if(mariscos==4)
           {
               vcaracol=vcaracol+bm[0][0];
           }
           bm[bodega][mariscos]=bm[bodega][mariscos]-bm[0][0];
           restaventa=restaventa+bm[0][0];
           system("pause");
       }
       if(menu1==3)
       {
           while(menu2!=4)
           {
               system("cls");
               printf("\n-------------Reportes--------------");
               printf("\n\n\t1)Inventario\t\t2)Ventas\n\t3)Compras\t\t4)Regresar");
               printf("\n\nEntra en un menu: ");
               scanf("%d",&menu2);
               if(menu2>4)
               {
                   printf("\nOpcion no valida\n");
                   system("pause");
               }
               if(menu2==1)
               {
                   while(menu3!=4)
                   {
                       system("cls");
                       printf("\n------------Inventarios------------");
                       printf("\n\n\t1)General\t\t2)Bodega\n\t3)Marisco\t\t4)Regresar");
                       printf("\n\nEscoje una opcion: ");
                       scanf("%d",&menu3);
                       if(menu3>4) //opcion invalida
                       {
                           printf("\nNo existe esa opcion...\n");
                           system("pause");
                       }
                       if(menu3==1) //Reporte General
                       {
                           printf("\nBodega\t\tPulpo\t\tCamaron\t\tCalamar\t\tCaracol\n");
                           for(x=1; x<11; x++)
                           {
                               printf("\n%d",x);
                               for(y=1; y<5; y++)
                               {
                                   printf("\t\t%d Kg",bm[x][y]);
                               }
                           }
                           printf("\n\n");
                           system("pause");
                       }
                       if(menu3==2) //Reporte por Bodega
                       {
                           printf("\nEscoje una de las 10 bodegas para inspeccionar: ");
                           scanf("%d",&bodega);
                           if(bodega>10)
                           {
                               printf("\nNo existe esa bodega, solo existen 10\nEscoje una de las 10 (1-10)\nBodega: ");
                               scanf("%d",&bodega);
                           }
                           if(bodega<11)
                           {
                               printf("\nBodega\t\tPulpo\t\tCamaron\t\tCalamar\t\tCaracol\n");
                               printf("  %d",bodega);
                               for(y=1; y<5; y++)
                               {
                                   printf("\t\t%d Kg",bm[bodega][y]);
                               }
                           }
                           printf("\n\n");
                           system("pause");
                       }
                       if(menu3==3) //Reporte por marisco
                       {
                           printf("\n\t1)Pulpo\t\t\t2)Camaron\n\t3)Calamar\t\t4)Caracol");
                           printf("\n\nEscoje una clase de marisco: ");
                           scanf("%d",&mariscos);
                           if(mariscos>10)
                           {
                               printf("\nNo existe ese marisco, escoje una opcion valida");
                               scanf("%d",&bodega);
                               printf("\n\nEscoje una clase de marisco: ");
                               scanf("%d",&mariscos);
                           }
                           if(mariscos==1) //Reporte de Pulpo
                           {
                               printf("\n\nBodega\t\tKg de Pulpo");
                               for(x=1; x<11; x++)
                               {
                                   printf("\n  %d\t\t  %d Kg",x,bm[x][1]);
                               }
                           }
                           if(mariscos==2) //Reporte de Camaron
                           {
                               printf("\n\nBodega\t\tKg de Camaron");
                               for(x=1; x<11; x++)
                               {
                                   printf("\n  %d\t\t  %d Kg",x,bm[x][2]);
                               }
                           }
                           if(mariscos==3) //Reporte de Calamar
                           {
                               printf("\n\nBodega\t\tKg de Calamar");
                               for(x=1; x<11; x++)
                               {
                                   printf("\n  %d\t\t  %d Kg",x,bm[x][3]);
                               }
                           }
                           if(mariscos==4) //Reporte de Caracol
                           {
                               printf("\n\nBodega\t\tKg de Caracol");
                               for(x=1; x<11; x++)
                               {
                                   printf("\n  %d\t\t  %d Kg",x,bm[x][4]);
                               }
                           }
                           printf("\n\n");
                           system("pause");
                       }
                   }
               }
               if(menu2==2)
               {
                   printf("\n\n-----Venta total por mariscos------\nPulpo\t\tCamaron\t\tCalamar\t\tCaracol\t\tTotal\n");
                   printf("%d Kg\t\t%d Kg\t\t%d Kg\t\t%d Kg\t\t%d Kg\n\n",vpulpo,vcamaron,vcalamar,vcaracol,restaventa);
                   system("pause");
               }
               if(menu2==3)
               {
                   printf("\n\n-----Compra total por mariscos-----\nPulpo\t\tCamaron\t\tCalamar\t\tCaracol\t\tTotal\n");
                   printf("%d Kg\t\t%d Kg\t\t%d Kg\t\t%d Kg\t\t%d Kg\n\n",cpulpo,ccamaron,ccalamar,ccaracol,sumacompra);
                   system("pause");
               }
           }
       }
       menu2=0;
       menu3=0;
   }
}


Pueden cerrar el post :D