Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Varios programas en 1 solo con Menú

Estas en el tema de Varios programas en 1 solo con Menú en el foro de C/C++ en Foros del Web. Hola a todos, Bueno, he realizado una serie de programas. digamos 12 programas, pero ahora el profe pide que se genere un menú para esos ...
  #1 (permalink)  
Antiguo 22/02/2011, 14:46
 
Fecha de Ingreso: diciembre-2007
Mensajes: 31
Antigüedad: 16 años, 4 meses
Puntos: 0
Pregunta Varios programas en 1 solo con Menú

Hola a todos,

Bueno, he realizado una serie de programas. digamos 12 programas, pero ahora el profe pide que se genere un menú para esos programas.


Como mencione en otro hilo, soy nuevo en esto del c++, pense hacerlo usando la sentencia "switch" pero me han confundido un poco al decirme que es que tengo que llamar a cada programa usando funciones.

Bueno, vine a buscar ideas, por favor, si tienes conocimiento del tema te pido me ayudes a darme ideas, como podría hacer este menu y llamarlo con funciones,

GRACIAS.
  #2 (permalink)  
Antiguo 22/02/2011, 15:05
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Varios programas en 1 solo con Menú

A cada main de cada programa llamalos de otra forma. Luego en ese swicth llamas a esa funcion. Lo que tenesu que hacer tambien es poner todos los programas en el mismo programa. No hace falta pegues todo en un mismo archivo sino cambia la forma en compilarlo.
  #3 (permalink)  
Antiguo 22/02/2011, 15:17
 
Fecha de Ingreso: diciembre-2007
Mensajes: 31
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Varios programas en 1 solo con Menú

Bien, lo de cambiar el nombre de main por una función y llamarla me es algo familiar, podrías por favor regalarme un ejemplo pequeño?, mientras buscare el tema de funciones.

Cita:
Lo que tenesu que hacer tambien es poner todos los programas en el mismo programa. No hace falta pegues todo en un mismo archivo sino cambia la forma en compilarlo.
Eso si no lo entendí =S

Gracias de antemano por la ayuda brindada
  #4 (permalink)  
Antiguo 22/02/2011, 15:49
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Varios programas en 1 solo con Menú

Si este era tu programa:
Código C++:
Ver original
  1. int main()
  2. {
  3.    int a = 10;
  4. }

ahora seria este:

Código C++:
Ver original
  1. int programa1()
  2. {
  3.    int a = 10;
  4. }
  5. int main()
  6. {
  7.    programa1();
  8. }
  #5 (permalink)  
Antiguo 22/02/2011, 16:20
 
Fecha de Ingreso: diciembre-2007
Mensajes: 31
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Varios programas en 1 solo con Menú

super bueno el ejemplo, voy a ponerlo en practica y ya te contare, todos los programas deben estar en el mismo programa verdad?, osea, un documento con todo el código?
  #6 (permalink)  
Antiguo 22/02/2011, 16:29
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Varios programas en 1 solo con Menú

A eso me referia con lo segundo que no entendiste... se sabes compilar bien no hace falta que este todo en el mismo archivo.

Que compilador estas usando?
  #7 (permalink)  
Antiguo 22/02/2011, 16:31
 
Fecha de Ingreso: diciembre-2007
Mensajes: 31
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Varios programas en 1 solo con Menú

bueno amigo mira, esto es lo que hice apra prbarlo, pero cuando lo ejecuto me pide que digite el numero, como solo tengo el 1, pues digito 1 y doy ENTER,

y vuelve a preguntarme que programa quiero y asi mil veces, que estoy haciendo mal?


Gracias


Código C++:
Ver original
  1. #include<iostream>
  2. using namespace std;
  3.  
  4. //============================================== Ejercicio 1 =================================================================
  5. int programa1()
  6. {
  7.    
  8.     char time[5], time2[5], *clock, *clock2;
  9.     int hh,mm;
  10.     cout << "Introdice una Hora en el formato llamado Militar. \n\n de notacion de 24 horas 00:00 al 24:59 \n\n\n";
  11.     cout << "Escribe la Hora: ";
  12.     cin >> time; //Guarda el contenido en time
  13.     strcpy (time2, time); // Copia el contenido de time
  14.     clock = strtok (time,":"); //Separa la cadena en los elementos antes de :
  15.     clock2 = strtok (NULL,":"); //Separa la cadena en los elementos despues de :
  16.     hh=atoi(clock); //Realiza un cambio de char a int
  17.     mm=atoi(clock2); //Igualmente realiza un cambio de char a int
  18.    
  19.     if (strlen(time2)!= 5 && clock==NULL || clock2==NULL)
  20.     {
  21.        cout << "\n\nOoOopsss..... ERROR\n\n";
  22.        cout << "Intentalo de nuevo, esta vez usa el siguiente formato HH:MM\n\n";
  23.        cout << "Ammm.... has escuchado de la Horamilitar?, más o menos asi:\n\n";
  24.        cout << "\n\n";
  25.        cout << "Hora 22:00 y la respuesta en notacion de 12 horas h:m \n\n";
  26.        cout << "Las 22:00 es lo mismo que 10:00 \n\n";
  27.        
  28.        
  29.     }
  30.     else
  31.         if (hh>=0 && hh<=24 && mm>=0 && mm<60)
  32.            if (hh<=12)
  33.            {
  34.               hh=hh;
  35.               cout << "\n\nLas "<<time2<<" es lo mismo que " <<hh<< ":" <<clock2<<"\n\n" ;
  36.            }
  37.            else
  38.            {
  39.                hh-=12;
  40.                hh=hh;
  41.                cout << "\n\nLas "<<time2<<" es lo mismo que " <<hh<<":"<<clock2<<"\n\n" ;
  42.            }
  43.         else
  44.         {
  45.             printf("OoOoPsss... Creo que has introducido mal la hora.\n");        
  46.         }  
  47.    
  48.     system("pause");
  49.     return 0;
  50. }
  51. //============================================== FIN Ejercicio 1 ===========================================================
  52.  
  53. int main()
  54. {
  55. char opcion;
  56.  
  57. //El menu
  58. cout<<"ÍÍÍÍÍÍÍÍÍÍÍÍÍÍ PROGRAMAS ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ";
  59. cout<<"\n\n Ejercicio 1\t\t"; cout<<"Ejercicio 2";
  60. cout<<"\n\n Ejercicio 3\t\t"; cout<<"Ejercicio 4";
  61. cout<<"\n\n Ejercicio 5\t\t"; cout<<"Ejercicio 6";
  62. cout<<"\n\n Ejercicio 7\t\t"; cout<<"Ejercicio 8";
  63. cout<<"\n\n Ejercicio 9\t\t"; cout<<"Ejercicio 10";
  64. cout<<"\n\n Ejercicio 11\t\t"; cout<<"Ejercicio 12";
  65.  
  66.  
  67. do
  68. {
  69.   cout<<"\n\n Dijita el numero del ejercicio que quiere ver: ";
  70.   cin>>opcion;//se elige la opcion segun menu
  71.  
  72.   switch(opcion)// donde se le da los distintos casos a la variable opcion
  73.   {
  74.  
  75.    case 1:
  76.    
  77.    int programa1();
  78.  
  79.    break;
  80.  
  81.  
  82.  
  83.   }
  84. }
  85. while(opcion!='o');//cuando la letra sea o, sale del programa
  86. }

en esta fracción:

Código C++:
Ver original
  1. case 1:
  2.    
  3.    int programa1();
  4.  
  5.    break;

si le quito el int me sale error :S
  #8 (permalink)  
Antiguo 22/02/2011, 16:41
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Varios programas en 1 solo con Menú

Primero que todo no va el int ese. Ami no me da error si lo saco.
Segundo el problema esta uqe opcion es del tipo char y vos en el switch pones un uno comun, osea entero, debes ponerlo entre comillas. Asi '1'
  #9 (permalink)  
Antiguo 22/02/2011, 16:50
 
Fecha de Ingreso: diciembre-2007
Mensajes: 31
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Varios programas en 1 solo con Menú

Biennnn, perfecto, ese era el problema, el entero que tenia y el char que declaraba. quite el int y todo funciona perfecto, MUCHÍSIMAS GRACIAS.


Para terminar, quiciera preguntar si hay alguna forma de usar varios archivos es decir que cada programa este en archivo diferente , y llamarlos de alguna forma, como para que no se vea tanto código en 1 solo archivo.


Bueno, pero si eso me complica la vida mejor lo dejo así como voy, solo decime que me recomiendas.

y muchas gracias por tu ayuda,
  #10 (permalink)  
Antiguo 22/02/2011, 16:54
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Varios programas en 1 solo con Menú

Tenes que cambiar la forma de compilar te he dicho....que compilador estas usando o que entorno de programacion?
  #11 (permalink)  
Antiguo 22/02/2011, 16:58
 
Fecha de Ingreso: diciembre-2007
Mensajes: 31
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Varios programas en 1 solo con Menú

ok, mira es este,

/* Creado, Compilado y ejecutado en DEV C++ 4.9.9.2*/
  #12 (permalink)  
Antiguo 22/02/2011, 17:11
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Varios programas en 1 solo con Menú

Tenes que crear un proyecto y agregar los diferentes archivos. Tambien vas a tener que hacer un archivo de cabecera ".h" de esta forma:

Código C++:
Ver original
  1. // archivo: programa1.h
  2. int programa1();

Código C++:
Ver original
  1. // archivo: programa1.c
  2. int programa1()
  3. {
  4.    int a = 10;
  5. }

Código C++:
Ver original
  1. //archivo: main,c
  2. int main()
  3. {
  4.    programa1();
  5. }
  #13 (permalink)  
Antiguo 22/02/2011, 17:22
 
Fecha de Ingreso: diciembre-2007
Mensajes: 31
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Varios programas en 1 solo con Menú

Bien ya mirare ese punto de compilación,

en el momento se me presento un inconveniente, creo qeu es el ultimo para que el programa pueda correr,

Como son 12 programas, el menu lega a 12,

cuando pasa caso 9 y sigue al 10


Código C++:
Ver original
  1. case '10':
  2.         programa10();
  3.     break;

Me presenta un error de múltiples caracteres, según lo que lei rápidamente por ahí en la Web, el compilador no sabe si tomar el 1 o el siguiente numero por lo que crea un error de múltiples caracteres. Pero en lo que leí no me daban solución.

Tienes idea de como puedo arreglar ese error?.

=) espero no estar molestando tanto

RE-EDITADO: Bueno ya lo corregí, cambie de CHAR y lo puse INT y saque de las ' ' los números del CASE, pero me gustaría saber como hubiera podido hacer con char.

Si no hay tiempo, no te preocupes, ya me has ayudado, y funciona correcto, =)

Ya tienes tu karma muchas gracias :)

Última edición por juand210; 22/02/2011 a las 17:29
  #14 (permalink)  
Antiguo 22/02/2011, 17:29
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Varios programas en 1 solo con Menú

Yo te recomiendo lo siguiente, cambia el tipo de datos para la variable opcion a int y sacale las comillas a los case.
Asi deberia funcionar:
Código C++:
Ver original
  1. int main()
  2. {
  3. int opcion;
  4. cin>>opcion;
  5. switch(opcion)
  6. {
  7.   case 1:
  8.                 programa1();
  9.                 break;
  10. }
  11. }
  #15 (permalink)  
Antiguo 22/02/2011, 17:31
 
Fecha de Ingreso: diciembre-2007
Mensajes: 31
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Varios programas en 1 solo con Menú

jejejeej creo que segunditos antes había reeditado el post anterior, eso fue lo que hice.


MUCHISISMAS gracias amigo, bueno, seguiré terminare 1 solo archivo con todo y después pruebo compilarlo como proyecto para aprender.

GRACIAS :)
  #16 (permalink)  
Antiguo 03/03/2015, 20:03
 
Fecha de Ingreso: marzo-2015
Mensajes: 1
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Varios programas en 1 solo con Menú

este es de matrices con un menu
#include<conio.h>
#include<stdio.h>
#include<iostream>

int main ()
{
int a, b,M[10][10],N[10][10], R [10][10], i, j, c, d, x, y, u ,v, opc;
printf(" Menu\n");
printf("Ingrese 1 para visualzar la matriz\n");
printf("Ingrese 2 para la matriz transpuesta\n");
printf("Ingrese 3 para la suma de matrices\n");
printf("Ingrese 4 para la resata de matrices\n");
printf("Ingrese 5 para la multiplicaciones de matrices\n");
scanf("%d",&opc);

switch(opc)
{
case 1 :
printf("Ingrese numero de filas: ");
scanf("%d", &a);
printf("Ingrese numero de columnas: ");
scanf("%d", &b);

for (i = 0; i < a; i++){
for (j = 0; j < b; j++){
printf("Asigne un valor a [%d][%d]: ", i + 1, j + 1);
scanf("%d", &M[i][j]);
}
}

printf("\n\tMatriz \n");

for (i = 0; i < a; i++){
printf("\n");
for (j = 0; j < b; j++){
printf("%d", M[i][j]);
}
}
break ;


case 2:
printf("Ingrese numero de filas: ");
scanf("%d", &a);
printf("Ingrese numero de columnas: ");
scanf("%d", &b);

for (i = 0; i < a; i++){
for (j = 0; j < b; j++){
printf("Asigne un valor a [%d][%d]: ", i + 1, j + 1);
scanf("%d", &M[i][j]);
}
}


printf("\n\n\tMatriz Transpuesta\n");


if (a == b){
for (i = 0; i < a; i++){
printf("\n");
for (j = 0; j < b; j++){
printf("%6d", M[j][i]);
}
}
}

else {
c = a;
d = b;
for (i = 0; i < d; i++){
printf("\n");
for (j = 0; j < c; j++){
printf("%6d", M[j][i]);
}
}
}
break ;

case 3 :
printf("Matriz Numero 1: \n");
printf("Ingrese numero de filas: ");
scanf("%d", &a);
printf("Ingrese numero de columnas: ");
scanf("%d", &b);
printf("Matriz Numero 2: \n");
printf("Ingrese numero de filas: ");
scanf("%d", &x);
printf("Ingrese numero de columnas: ");
scanf("%d", &y);

while((x!=a)||(y!=b))
{
printf("Las matrices no tienen la misma dimencion\n");
printf("Matriz Numero 1: \n");
printf("Ingrese numero de filas: ");
scanf("%d", &a);
printf("Ingrese numero de columnas: ");
scanf("%d", &b);
printf("Matriz Numero 2: \n");
printf("Ingrese numero de filas: ");
scanf("%d", &x);
printf("Ingrese numero de columnas: ");
scanf("%d", &y);
}
for (i = 0; i < a; i++){
for (j = 0; j < b; j++){
printf("Asigne un valor a la matriz 1 a [%d][%d]: ", i + 1, j + 1);
scanf("%d", &M[i][j]);
}
}

for (i = 0; i < a; i++)
{
for (j = 0; j < b; j++)
{
printf("Asigne un valor a la matriz 2 a [%d][%d]: ", i + 1, j + 1);
scanf("%d", &N[i][j]);

}
}


for (i = 0; i < a; i++)
{
printf("\n");
for (j = 0; j < b; j++)
{

R[i][j]= M[i][j]+N[i][j];
printf("%6d",R[i][j]);


}
}

break;
case 4:
printf("Matriz Numero 1: \n");
printf("Ingrese numero de filas: ");
scanf("%d", &a);
printf("Ingrese numero de columnas: ");
scanf("%d", &b);
printf("Matriz Numero 2: \n");
scanf("%d", &x);
printf("Ingrese numero de columnas: ");
scanf("%d", &y);

while((x!=a)||(y!=b))
{
printf("Las matrices no tienen la misma dimencion\n");
printf("Matriz Numero 1: \n");
printf("Ingrese numero de filas: ");
scanf("%d", &a);
printf("Ingrese numero de columnas: ");
scanf("%d", &b);
printf("Matriz Numero 2: \n");
printf("Ingrese numero de filas: ");
scanf("%d", &x);
printf("Ingrese numero de columnas: ");
scanf("%d", &y);
}
for (i = 0; i < a; i++){
for (j = 0; j < b; j++){
printf("Asigne un valor a la matriz 1 a [%d][%d]: ", i + 1, j + 1);
scanf("%d", &M[i][j]);
}
}

for (i = 0; i < a; i++)
{
for (j = 0; j < b; j++)
{
printf("Asigne un valor a la matriz 2 a [%d][%d]: ", i + 1, j + 1);
scanf("%d", &N[i][j]);

}
}


for (i = 0; i < a; i++)
{
printf("\n");
for (j = 0; j < b; j++)
{

R[i][j]= M[i][j]-N[i][j];
printf("%6d",R[i][j]);


}
}

break;
case 5:
printf("Matriz Numero 1: \n");
printf("Ingrese numero de filas: ");
scanf("%d", &a);
printf("Ingrese numero de columnas: ");
scanf("%d", &b);
printf("Matriz Numero 2: \n");
printf("Ingrese numero de filas: ");
scanf("%d", &x);
printf("Ingrese numero de columnas: ");
scanf("%d", &y);

while(b!=x)
{
printf("Las matrices no tienen la misma dimencion\n");
printf("Matriz Numero 1: \n");
printf("Ingrese numero de filas: ");
scanf("%d", &a);
printf("Ingrese numero de columnas: ");
scanf("%d", &b);
printf("Matriz Numero 2: \n");
printf("Ingrese numero de filas: ");
scanf("%d", &x);
printf("Ingrese numero de columnas: ");
scanf("%d", &y);
}
for (i = 0; i < a; i++){
for (j = 0; j < b; j++){
printf("Asigne un valor a la matriz 1 a [%d][%d]: ", i + 1, j + 1);
scanf("%d", &M[i][j]);
}
}

for (x = 0; x < a; x++)
{
for (y = 0; y < b; y++)
{
printf("Asigne un valor a la matriz 2 a [%d][%d]: ", x + 1, y + 1);
scanf("%d", &N[x][y]);

}
}



for(i=0;i<a;i++){
for(j=0;j<y;j++){
R[i][j]=0;
for(int k=0;k<b;k++){
R[i][j]=(R[i][j]+(M[i][k]*N[k][j]));
}
}
}

for (i = 0; i < a; i++){
printf("\n");
for (j = 0; j < y; j++){
printf("%6d", R[i][j]);
}
}
break;


}

getch();

}
  #17 (permalink)  
Antiguo 04/03/2015, 01:38
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Varios programas en 1 solo con Menú

Cita:
Iniciado por asbatk Ver Mensaje
este es de matrices con un menu
No revivas hilos que llevan 4 años muertos. Gracias.

Etiquetas: c++, c/cpp, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 07:53.