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

Menu --> submenu--> y volver al submenu...pero....

Estas en el tema de Menu --> submenu--> y volver al submenu...pero.... en el foro de C/C++ en Foros del Web. Hola a todos, antes gracias por leer el mensaje y spero q alguien me eche un cable con ste problema q tengo... mi código es ...
  #1 (permalink)  
Antiguo 23/05/2009, 18:50
 
Fecha de Ingreso: diciembre-2007
Ubicación: valencia
Mensajes: 38
Antigüedad: 16 años, 4 meses
Puntos: 0
Menu --> submenu--> y volver al submenu...pero....

Hola a todos, antes gracias por leer el mensaje y spero q alguien me eche un cable con ste problema q tengo...

mi código es el siguiente.... Tengo 2 problemas, el primero es q cuando me aprece el menu principal (colegio,universidad,master,doctorado,salir).. imaginemos q le doy a '1' entro a colegio, y hay un submenu (numero de aulas,numero de profesores, numero de auxiliares, salir)...y elijo 'a' (numero de aulas) relleno todo lo q pido, mediante un fichero enlazado con una structura... me pregunta varias veces si quiero ingresar mas registros, si elijo 's' sobreescribe al anterior, nose borra el registro anterior....

el segundo problema es: imaginemos q sigo en "numero de aulas" ingreso todos los registros q quiero o solamente uno, y cuando me pregunta si quiero ingresar otro le digo 'n' pero no me manda al submenu, tengo q seguir presionando 2 o 3 veces y me regresa al MENU PRINCIPAL....

spero q halla sido claro con mi problema... gracias...y saludos..


Código:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <time.h>
#include <string.h>

COORD cxy;
#define posicion(x,y) {(cxy.X)= (x); (cxy.Y)= (y); SetConsoleCursorPosition((GetStdHandle(STD_OUTPUT_HANDLE)), (cxy) );}


FILE *e;

struct aula_primaria
 {char id_primaria[20],secundaria[20],telefono[10];}es;


void Numero_aulas(int PostX, int PostY)
{
 system("cls");
 char respuesta;
 
 f=fopen("totales.dat","wb");
 do{
 
posicion(PosX,PosY+0); printf("el contenido de aulas es: ");
 
posicion(PosX,PosY+4);printf("aula 1: "); posicion(40,29);gets(es.id_primaria);
posicion(PosX,PosY+6);printf("aula 2: "); posicion(40,31);gets(es.secundaria);
posicion(PosX,PosY+8);printf("telefono : "); posicion(40,33);gets(es.telefono);

 fwrite(&es,sizeof(es),1,f);
 
posicion(PosX,PosY+15);printf("Ingresar otra aula? s/n: ");
 
 respuesta=getche();
 getche();printf("\n");
 
 }while(respuesta!='n'); 
 fclose(f);
}


void Colegio()
{
 system("cls");
 char respuesta;
  
 posicion(30,25);printf("1.-   Colegio");
 posicion(32,28);printf("a.-   Numero de aulas.");
 posicion(32,30);printf("b.-   Numero de profesores.");
 posicion(32,32);printf("c.-   Numero de auxiliares.");
 posicion(32,35);printf("s.-   Salir.");
 
 do{respuesta=getch();
  if(respuesta=='a')
  Numero_aulas(15,25);
  if(respuesta=='b')
  Numero_profesores();
  if(respuesta=='c')
  Nuevo_auxiliares();
 
 }while(respuesta!='s'); 

}



/*Contenido del Menú*/
int Mostrar_menu(int PostX, int PostY)
{ 
 int opcion;
 posicion(PostX,PostY+3); printf("1.-   Colegio.");
 posicion(PostX,PostY+5); printf("2.-   Universidad.");
 posicion(PostX,PostY+7); printf("3.-   Master.");
 posicion(PostX,PostY+9); printf("4.-   Doctorado.");
 posicion(PostX,PostY+11); printf("5.-   Salir");
 do{opcion=getch();} while(opcion<'1'||opcion>'5');
 return opcion;   
}

/*Mostrando el Menú*/
void Menu_Principal()
{
int seleccion;

    do{system("cls");
       switch(seleccion=Mostrar_menu(30,25))
        {case '1':Colegio();break;
         case '2':Universidad();break;
         case '3':Master();break;
         case '4':Doctorado();break;         
        }
    }while(seleccion!='5');
}

main()
{
system("cls");Menu_Principal();
}
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:49.