Título: Programa en c++ me muestra falsos valores y no cierra
Publicado por: jonny03 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: #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; } (http://www.lawebdelprogramador.com/usr/179000/179764/5484ae4692cdf-problema1.JPG) (http://www.lawebdelprogramador.com/usr/179000/179764/5484ae4b4e646-problema2.JPG) Ayuda porfa!!
Título: Re: Programa en c++ me muestra falsos valores y no cierra
Publicado por: engel lex en 7 Diciembre 2014, 21:31 pm
intentaste ejecutarlo en el debugger de tu ide para revisarlo paso a paso?
Título: Re: Programa en c++ me muestra falsos valores y no cierra
Publicado por: jonny03 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
Título: Re: Programa en c++ me muestra falsos valores y no cierra
Publicado por: engel lex 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 ya no se el otro error, no me sale, tendrás que decirme los pasos cuando te salió
Título: Re: Programa en c++ me muestra falsos valores y no cierra
Publicado por: fary en 7 Diciembre 2014, 22:13 pm
Usa elseif en vez de tantos if anidados.
PD: Esto es C, no C++.
Título: Re: Programa en c++ me muestra falsos valores y no cierra
Publicado por: BitsPuke en 7 Diciembre 2014, 22:30 pm
Yo lo primero que haria es quitar los else porque entre tantas llaves te haces un lio: 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.
Título: Re: Programa en c++ me muestra falsos valores y no cierra
Publicado por: jonny03 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) #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
|