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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Programa en c++ me muestra falsos valores y no cierra
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Programa en c++ me muestra falsos valores y no cierra  (Leído 2,998 veces)
jonny03

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Programa en c++ me muestra falsos valores y no cierra
« en: 7 Diciembre 2014, 20:59 pm »

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:
Código:
#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!!


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Programa en c++ me muestra falsos valores y no cierra
« Respuesta #1 en: 7 Diciembre 2014, 21:31 pm »

intentaste ejecutarlo en el debugger de tu ide para revisarlo paso a paso?


En línea

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

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Programa en c++ me muestra falsos valores y no cierra
« Respuesta #2 en: 7 Diciembre 2014, 21:47 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
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Programa en c++ me muestra falsos valores y no cierra
« Respuesta #3 en: 7 Diciembre 2014, 21:58 pm »

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


bueno revisandolo yo tienes

linea 98
Código:
if(menu1=3)

ya no se el otro error, no me sale, tendrás que decirme los pasos cuando te salió
En línea

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


Desconectado Desconectado

Mensajes: 1.075



Ver Perfil WWW
Re: Programa en c++ me muestra falsos valores y no cierra
« Respuesta #4 en: 7 Diciembre 2014, 22:13 pm »

Usa elseif en vez de tantos if anidados.

PD: Esto es C, no C++.
« Última modificación: 7 Diciembre 2014, 22:16 pm por mDrinky » En línea

Un byte a la izquierda.
BitsPuke

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Programa en c++ me muestra falsos valores y no cierra
« Respuesta #5 en: 7 Diciembre 2014, 22:30 pm »

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

Código
  1. while (menu!=4){
  2. ...
  3. if (menu!=4){ ... }
  4. if (menu==1){ ... }
  5. ...
  6. if (menu==4){ ... }
  7.  
  8. }
  9.  

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

jonny03

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Programa en c++ me muestra falsos valores y no cierra
« Respuesta #6 en: 8 Diciembre 2014, 02:08 am »

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)

Código:
#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
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines