Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - HardForo

#81
Programación C/C++ / Re: AYUDA C++
26 Abril 2016, 16:43 PM
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:

Código (cpp) [Seleccionar]

Menu m = Menu("OS");
m.set_option("Windows");
m.set_option("Mac OS");
m.set_option("Linux");


O..

Código (cpp) [Seleccionar]

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:


Código (cpp) [Seleccionar]

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:

Código (cpp) [Seleccionar]

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
#82
Programación C/C++ / Re: AYUDA C++
26 Abril 2016, 01:57 AM
Creo que no me entiendes @MAFUS  :huh:

Citar
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 ?  :silbar:
(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
#83
Programación C/C++ / Re: AYUDA C++
26 Abril 2016, 01:42 AM
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.
#84
Programación C/C++ / Re: AYUDA C++
26 Abril 2016, 01:27 AM
   
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.
#86
Reservas espacio para solo una instancia del struct:

Sletras[0].caracteres=(Acaracteres *)malloc(sizeof(Acaracteres));

cuando si N contiene la cantidad que quieres reservar en un comienzo, debes hacer:

Sletras[0].caracteres=(Acaracteres *)malloc( N * sizeof(Acaracteres));


Obviamente queda pendiente arregles el como accedes al interior de tu struct pero la sintaxis no es la correcta porque se te olvida que Acaracteres tiene letra y debes acceder a ese miembro ya sea como:  (*puntero_a_struct).letra ó puntero_a_struct->letra


PD: con el programa completo podria ver si logro que compile
#87
Bueno amigo con malloc() estas reservando espacio para un puntero simple pero luego lo quieres acceder como si tuviera mas dimensiones:

Código (cpp) [Seleccionar]
Sletras[0].caracteres[cuenta][sigcar]=0;

Sino me equivoco, estas usando un indice de mas ([sigcar]) y justamente por eso te dice esto:

Citar
no match for 'operator[]' in

#88
Para no caer en un "problema XY", dinos mejor QUE QUIERES LOGRAR con IniLetra8x8()

Te aclaro que si hay una matriz de tamaño fijo (8x8) no tiene sentido que la crees con punteros, no hay el "ahorro" (que existe cuando haces una matriz mas grande por si las dudas)

Por otro lado si IniLetra8x8() maneja una matriz de tamaño variable en filas o columnas, no deberia llamarse asi.



EDIT: no sabia lo que querias hacer...... lo siento
#89
Hay un tema con un pin sobre menus, sin embargo te voy a dar una respuesta:

Puedes hacer algo muy simple asi:

Código (cpp) [Seleccionar]

#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;
}


#90
Gracias fary,..... me aburre un poco el tema de las expresiones regulares asi que si quieres sacarme el tema de encima en Perl estaria perfecto  ;D