Dev - C++ - Necesito ayuda con un menú

 
Vista:
sin imagen de perfil
Val: 17
Ha disminuido 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Necesito ayuda con un menú

Publicado por Albert (6 intervenciones) el 20/10/2020 18:00:51
La cosa es que soy nuevo en c++ y mi Profesor me pidió que convierta a función un programa y que le agregue un menú como el que anexaré a continuación:

menu

El programa es este:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include <iomanip>
#include <stdio.h>
#include <iostream>
#include <conio.h>
#include <stdlib.h>
using namespace std;
int insertar( float datoen, int *tope);
int extraer (float *datosal, int *tope);
/* DEFINICION DE VARIABLES */
#define limite 20
float pila [ limite];
int main(void)
{
  int i, tope, exito;
  char select = ' ';
  float datoen, datosal;
  tope = -1;
  while (select != '4')
   {
     system("cls");
     cout <<endl<<  " PROGRAMA QUE SIMULA UNA PILA UTILIZANDO ARREGLOS "<<endl;
     cout <<  "   SELECCIONE LA OPERACION CON PILAS "  << endl<< endl;
     cout <<  "   INSERTAR UN DATO EN LA PILA    (1)"  << endl;
     cout <<  "   EXTRAER UN DATO DE LA PILA     (2)"  << endl;
     cout <<  "   DESPLEGAR EL ESTADO DE LA PILA (3)"  << endl;
     cout <<  "   SALIR DEL PROGRAMA             (4)"  << endl;
     cout <<  " OPCION SELECCIONADA??  " ;
     cin >> select ;
     switch(select)
      {
        case '1':   //inserción de un dato en la pila
         cout << "\n \n TECLEA EL DATO QUE SERA INSERTADO EN LA PILA : ";
         cin >> datoen;
         exito =insertar(datoen, &tope);
         if( exito == 0)  cout <<" \n  !!! LA INSERCCION FUE CORRECTA !!!";
         system ("pause") ; break;
       case '2': // extracción de un dato de la pila
         exito = extraer (&datosal,&tope);
         if(exito == 0){setprecision(14.5); cout << "DATO EXTRAIDO = " << datosal;}
         cout << endl;
         system ("pause");
         break;
       case '3': // desplega el arreglo que contiene la pila
        system ("cls");
        cout <<"\n  EL ESTADO DE LA PILA ES EL SIGUIENTE ";
        cout <<endl<< "   POSICION          VALOR"<< endl;
        if (tope < 0)
         { cout <<"\n  !!!! LA PILA ESTA VACIA !!!!"<<endl;
          system("pause"); break;}
        for(i = tope; i>=0 ; i--)printf("\n     %4i      %12.4f",i,pila[i]);
        cout << endl; system ("pause");
        break;
       case '4': // opción de salida
         cout << endl<< " !!! HASTA PRONTO  !!!! " ;
         goto fin;
      default:
        {cout << endl<< " *******ERROR  LA OPCION: " << select
              << " no existe ****"; getch(); break; }
      }
   }
  fin:
  return 0; system("pause"); // termina función principal
   }
  int insertar (float dato, int *tope)
   {
     if(*tope >= (limite-1))
 
      {
       cout << "\n LA PILA ESTA LLENA, NO SE PUDO INSERTAR EL NUEVO DATO";
       return -1;
      }
    (*tope)++;
    pila[(*tope)]= dato;
    return 0;
   }
 
   int extraer( float *dato, int *tope)
    {
     if(*tope < 0)
       {
         cout <<endl<< "\n  LA PILA ESTA VACIA, NO SE PUEDEN EXTRAER ELEMENTOS ";
         return -1;
       }
       (*dato) = pila[ (*tope)];
       pila [(*tope)] = 0;
       (*tope)--;
       return 0;
     }
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Necesito ayuda con un menú

Publicado por Alfil (1444 intervenciones) el 21/10/2020 07:28:10
El esquema sería este, solo tienes que añadir cada función a la opción correspondiente del submenú.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include <iostream>
 
using namespace std;
 
void menu();
void subMenu();
 
int main()
{
    menu();
 
    return 0;
}
 
void menu()
{
    char opcion;
 
    do {
        cout << "\nMenu de opciones: "
             << "\n1.- Pila"
             << "\n2.- Salir"
             << "\n\nOpcion: ";
 
        cin >> opcion;
 
        switch (opcion)
        {
            case '1':
                subMenu();
                break;
 
            case '2':
                cout << "\n\nFIN DEL PROGRAMA" << endl;
                break;
 
            default:
                cout << "\n\nOPCION NO VALIDA" << endl;
                break;
 
        }
 
    } while (opcion != '2');
}
 
void subMenu()
{
    char opcion;
 
    do {
        cout << "\nSIMULAR UNA PILA CON ARREGLOS: "
             << "\n1.- Insertar en la Pils"
             << "\n2.- Extraer de la Pila"
             << "\n3.- Estado de la Pila"
             << "\n4.- Volver"
             << "\n\nOpcion: ";
 
        cin >> opcion;
 
        switch (opcion)
        {
            case '1':
                break;
 
            case '2':
                break;
 
            case '3':
                break;
 
            case '4':
                break;
 
            default:
                cout << "\n\nOPCION NO VALIDA" << endl;
                break;
 
        }
 
    } while (opcion != '4');
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 17
Ha disminuido 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Necesito ayuda con un menú

Publicado por Blacky (6 intervenciones) el 21/10/2020 18:42:09
Intente solo agregar el case '1' pero me marca el error de undefined reference to insertar(float,in)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include <iostream>
#include <iomanip>
#include <stdio.h>
#include <iostream>
#include <conio.h>
#include <stdlib.h>
using namespace std;
#define limite 20
   float pila [ limite];
int insertar( float datoen, int *tope);
int extraer (float *datosal, int *tope);
void menu();
void subMenu();
char select = ' ';
int main()
{
    menu();
 
    return 0;
}
 
void menu()
{
    char opcion;
 
    do {
    	system("cls");
        cout << "\nMenu de opciones: "
             << "\n1.- Pila"
             << "\n2.- Salir"
             << "\n\nOpcion: ";
 
        cin >> opcion;
 
        switch (opcion)
        {
            case '1':
                subMenu();
                break;
 
            case '2':
                cout << "\n\nFIN DEL PROGRAMA" << endl;
                break;
 
            default:
                cout << "\n\nOPCION NO VALIDA" << endl;
                break;
 
        }
 
    } while (opcion != '2');
}
float datoen, datosal;
int insertar( float datoen, int *tope);
int extraer (float *datosal, int *tope);
int i, tope, exito;
void subMenu()
{
    do {
        cout <<endl<<  " PROGRAMA QUE SIMULA UNA PILA UTILIZANDO ARREGLOS "<<endl;
         cout <<  "   SELECCIONE LA OPERACION CON PILAS "  << endl<< endl;
         cout <<  "   INSERTAR UN DATO EN LA PILA    (1)"  << endl;
         cout <<  "   EXTRAER UN DATO DE LA PILA     (2)"  << endl;
         cout <<  "   DESPLEGAR EL ESTADO DE LA PILA (3)"  << endl;
         cout <<  "   SALIR DEL PROGRAMA             (4)"  << endl;
         cout <<  " OPCION SELECCIONADA??  " ;
         cin >> select ;
 
        switch (select)
        {
            case '1':
            	cout << "\n \n TECLEA EL DATO QUE SERA INSERTADO EN LA PILA : ";
            	cin >> datoen;
            	exito =insertar(datoen, &tope);
            	if( exito == 0)  cout <<" \n  !!! LA INSERCCION FUE CORRECTA !!!";
                break;
 
            case '2':
                break;
 
            case '3':
                break;
 
            case '4':
                break;
 
            default:
                cout << "\n\nOPCION NO VALIDA" << endl;
                break;
 
        }
 
    } while (select != '4');
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Necesito ayuda con un menú

Publicado por Alfil (1444 intervenciones) el 21/10/2020 19:03:44
Solo has puesto las cabeceras de las funciones, debes definir también las funciones en si (el código de cada función).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 17
Ha disminuido 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Necesito ayuda con un menú

Publicado por Blacky (6 intervenciones) el 21/10/2020 19:06:05
Ya pude, muchas gracias, de verdad lo digo, me ayudaste bastante.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar