Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/05/2009, 18:50
alandres
 
Fecha de Ingreso: diciembre-2007
Ubicación: valencia
Mensajes: 38
Antigüedad: 16 años, 5 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();
}