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(); }