Autor
|
Tema: AYUDA C++ (Leído 3,791 veces)
|
Themegajordan
Desconectado
Mensajes: 10
|
Necesito ayuda por favor no se como hacer un menu de ociones para entrar a una opcion y luego a otra y finalmente a otra Hasta ahora he colocado esto: #include <iostream> #include <conio.h>
using namespace std;
int main(){ int opciones; cout << "TIPO DE FABRICANTE" << endl; cout << "================" << endl; cout << "1. Microsoft \n"; cout << "2. Apple" << endl; cout << "3. Linux" << endl; cout << "Ingrese su Opcion: "; cin >> opciones;
system("cls");
_getch(); return 0; }
|
|
« Última modificación: 25 Abril 2016, 01:29 am por Themegajordan »
|
En línea
|
|
|
|
HardForo
Desconectado
Mensajes: 219
HardForo.com
|
Hay un tema con un pin sobre menus, sin embargo te voy a dar una respuesta: Puedes hacer algo muy simple asi: #include <iostream> #include <conio.h> using namespace std; int main(){ char op[2]; while (op[0]!='0'){ cout << "TIPO DE FABRICANTE" << endl << "================" << endl << "1. Microsoft" << endl << "2. Apple" << endl << "3. Linux" << endl << endl << "Ingrese su Opcion: "; cin >> op; printf ("\nHas seleccionado %c\n\n",op[0]); getchar(); } getchar(); return 0; }
|
|
« Última modificación: 28 Abril 2016, 02:52 am por boctulus »
|
En línea
|
HardForo: foro de Hardware y programación Se buscan Mods y colaboradores *
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
Lástima que el trabajo sea en C++, porqué sé muy poco de ese lenguaje, pero aquí te enseño un código en C el cuál tienes los datos separados de la lógica, una función menú genérica y un main limpio. #include <stdio.h> #include <stdlib.h> #include <ctype.h> /* Estas tablas facilitan los posteriores cambios en las opciones */ /* En las opciones de menú poner siempre al final un NULL, ya que * es lo que espera la función para trabajar con estos argumentos. */ const char *fabricantes[] = {"Microsoft", "Apple", "Linux", NULL}; const char *productos[] = {"Sistema operativo", "Lenguaje de programación", NULL}; const char *dispositivo[] = {"Celulares", "Tablas", "Otros", NULL}; const int precios_microsoft[] = { /* Sistema operativo */ 1500, /* Lenguaje de Programación */ /* Celulares */ 1800, /* Tablas */ 1200, /* Otros */ 900}; const int precios_apple[] = { /* Sistema operativo */ 2500, /* Lenguaje de Programación */ /* Celulares */ 1900, /* Tablas */ 1800, /* Otros */ 1600}; const int precios_linux[] = { /* Sistema operativo */ 1000, /* Lenguaje de Programación */ /* Celulares */ 100, /* Tablas */ 150, /* Otros */ 50}; int menu(const char *titulo, const char *empresa, const char **opciones) { int i = 0; int respuesta; do { /* Imprimiendo el título del menú */ if(empresa) /* Imprimiendo opciones del menú */ while(opciones[i] != NULL) { printf(" %2i. %s\n", i + 1, opciones [i ]); ++i; } --i; /* Adquiriendo la opción deseada */ /* Control de errores de la entrada por teclado */ respuesta -= '0' + 1; else respuesta = -1; if(respuesta > i) respuesta = -1; if(respuesta == -1) { i = 0; printf("*** OPCION INCORRECTA ***\n"); } } while(respuesta == -1); /* Un poco bonito, que también puede formar parte del menú... */ /* Devuelvo la opción elegida */ return respuesta; } int main() { int respuesta; const char *fabricante; const int *lista_de_precios; respuesta = menu("Elija fabricante", NULL, fabricantes); fabricante = fabricantes[respuesta]; switch(respuesta) { case 0: lista_de_precios = precios_microsoft; break; case 1: lista_de_precios = precios_apple; break; case 2: lista_de_precios = precios_linux; break; } respuesta = menu("Elija el producto de", fabricante, productos); if(respuesta == 1) respuesta = menu("Elija el dispositivo de", fabricante, dispositivo) + 1; printf("El precio del producto es: %i", lista_de_precios [respuesta ]); return 0; }
|
|
« Última modificación: 26 Abril 2016, 09:48 am por MAFUS »
|
En línea
|
|
|
|
HardForo
Desconectado
Mensajes: 219
HardForo.com
|
respuesta = menu("Elija fabricante", NULL, fabricantes); fabricante = fabricantes[respuesta];
El problema de esa implementacion @MAFUS es que no tienes una forma de salir de esos bucles, por lo demas muy bien.
|
|
« Última modificación: 26 Abril 2016, 01:30 am por boctulus »
|
En línea
|
HardForo: foro de Hardware y programación Se buscan Mods y colaboradores *
|
|
|
|
HardForo
Desconectado
Mensajes: 219
HardForo.com
|
Como sale tu programa (de un bucle infinito de opciones) de un menu o un submenu ?
No hay una opcion 'salir' que serviria para salir de un sub-menu o salir del programa segun donde te encuentres. Tu programa solo puede ir en una dirección y asi no funciona ningun sistema.
Pero no lo tomes a mal, es solo un detalle que puedes arreglar en 1 o 2 linea seguro.
|
|
« Última modificación: 26 Abril 2016, 16:40 pm por boctulus »
|
En línea
|
HardForo: foro de Hardware y programación Se buscan Mods y colaboradores *
|
|
|
|
HardForo
Desconectado
Mensajes: 219
HardForo.com
|
Creo que no me entiendes @MAFUS C:\C>menu_mafus
Elija fabricante :
1. Microsoft 2. Apple 3. Linux
Opcion >> 0 *** OPCION INCORRECTA ***
Elija fabricante :
Opcion >>
*** OPCION INCORRECTA ***
Elija fabricante :
Opcion >>
*** OPCION INCORRECTA ***
Cual se supone es la forma de salir de ahi ? y si sales .... entonces que asignas cuando haces.... fabricante = fabricantes[respuesta];
Basura ? accedes con cualquier banana a un array fabricantes ? (en caso de que puedas salir, claro) Como te decia.... es facil cambiar eso: tienes que tener una opcion que sea de salida y ademas tienes que acceder a un array primero habiendo chequeado el indice es valido
|
|
« Última modificación: 26 Abril 2016, 02:04 am por boctulus »
|
En línea
|
HardForo: foro de Hardware y programación Se buscan Mods y colaboradores *
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
Podría poner una opción para salir si no se quisiera marcar un fabricante o uno de los productos en posterioridad. Pero ya es muy tarde, las 2 de la mañana . Eso sí, el programa te dejará seguir si eliges una opción correcta.
|
|
|
En línea
|
|
|
|
HardForo
Desconectado
Mensajes: 219
HardForo.com
|
Con objetos todo es más fácil.... el código queda muy simple .. solo mirar el main() Si queremos crear el menu de empresas tecnologicas: Menu m = Menu("OS"); m.set_option("Windows"); m.set_option("Mac OS"); m.set_option("Linux");
O.. Menu m; m.set_title("OS"); m.set_option("Windows"); m.set_option("Mac OS"); m.set_option("Linux");
Por supuesto el titulo es opcional, pero especificar las teclas asignadas a cada opcion a veces no es opcional: Menu m = Menu("Frutas"); m.set_option("Mango"); m.set_option("Mandarina",'N'); m.set_option("Manzana",'A'); m.set_option("Peras");
y nada quita que uses numeros como letras: Menu m = Menu("Frutas"); m.set_option("Mango",'1'); m.set_option("Mandarina",'2'); m.set_option("Manzana",'3'); m.set_option("Peras",'4');
He habilitado 3 modos distintos de "enumeracion" a saber : NUMERICO, ALFABETICO y AUTO; se eligen en el constructor Dejo el codigo completo aqui
|
|
« Última modificación: 28 Abril 2016, 03:00 am por boctulus »
|
En línea
|
HardForo: foro de Hardware y programación Se buscan Mods y colaboradores *
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Ayuda] Necesito ayuda para crear un buen video uso AF y Flash.
Diseño Gráfico
|
XXXXXX
|
1
|
5,510
|
11 Noviembre 2009, 00:17 am
por Sub_Cero
|
|
|
Ayuda por davor ayuda os ruego ayuda XD (SOLUCIONADO)
Hardware
|
XxRekcahlExX
|
6
|
10,590
|
24 Mayo 2010, 00:56 am
por Aprendiz-Oscuro
|
|
|
AYUDA -.- ahora no entro más en 4chan (tengo una duda, ayuda por favor)
Foro Libre
|
Draklit
|
6
|
8,768
|
15 Octubre 2010, 03:14 am
por Draklit
|
|
|
sist lince indumentaria ayuda ayuda!!!!!!!!!! problemon que hice en le trabajo
Software
|
paola03
|
1
|
4,954
|
11 Marzo 2011, 01:09 am
por charola42
|
|
|
[PYTHON][AYUDA][ERROR] Necesito ayuda para instalar PyGTK 2 en windows 7
Scripting
|
Noxware
|
2
|
7,631
|
20 Septiembre 2014, 00:05 am
por Noxware
|
|