Base de datos de alumnos

Base de datos de alumnos, materias, calificaciones en formato de texto sencillo.

#include"stdio.h"
#include"conio.h"
#include"ctype.h"
#include"dos.h"
#include"string.h"

#define CIERTO 0
#define Falso 1

struct Alumnos{char No_COntrol[10]; char N[19];    char A_Paterno[14];
                   char A_Materno[14];  char Grado[8]; char Grupo[2];
                   char Sexo[2];        char Edad[3]; char carreras[20];};
struct Materias{char clave[14]; char nombre[63]; char creditos[15];};
struct Calificaciones{char C_materia[14]; char No_Control[10]; char pri_par[3];
                              char seg_par[3]; char ter_par[3]; char cur_par[3];};

static union REGS raton1,raton2;
void recuadros(int col,int fil,int col1,int fil1,int color);
void raton(int forma);
void centrar(int col,int fil);
void lectura(void);
void pantalla(void);
void menuAltas(void);
void menuBajas(void);
void menuConsultas(void);
int menu(void);
void Altas(int x);
void Bajas(int x);
void consultas(int x);
void marcos(int col,int fil,int col1,int fil1);
int seleccion(int col,int fil,int col1,int fil1,int color,int n,char tex1[], char tex2[], char tex3[]);
char *cajatexto(int col,int fil,int cantidad,int color);
void alumnos(void);
void materias(void);
void bajasAlumnos(void);
void bajasMaterias(void);
void bajasCalificaciones(void);
void consultasMaestros(void);
void consultasAlumnos(void);
void calificaciones(void);
void pantallaAlumnos(void);
void pantallaMaterias();
void pantallaCalificaciones(void);
void del(int x);
void logo(void);
FILE *buscar(FILE *archivo);
FILE *buscar1(FILE *archivo);
int xpos,ypos,boton;

struct Alumnos R;
struct Materias M;
struct Calificaciones C;

main()
            {
             int x;
             pantalla();
             logo();
             menu();
             centrar(40,12);
             raton(1);
             do{
                lectura();
                if(boton==1)
                  {if(ypos==1)
                         {if(xpos==77){ gotoxy(77,1);textbackground(7);textcolor(4);cprintf("%c",254); sleep(1); break;}}
                   if(ypos==1)
                         {if(xpos>=2 && xpos<=12)
                            {raton(0); recuadros(2,1,12,1,4); textcolor(1); textbackground(4); gotoxy(5,1); cprintf("ALTAS");sleep(1);
                             raton(1); menuAltas(); x=seleccion(4,3,20,5,4,3,"ALUMNOS","MATERIAS","CALIFICASIONES");menu(); recuadros(2,2,79,24,0); Altas(x); x=0;
                             recuadros(2,2,79,24,0); logo(); centrar(1,1);}
                          if(xpos>=13 && xpos<=23)
                            {raton(0); recuadros(13,1,23,1,4); textcolor(1); textbackground(4); gotoxy(16,1); cprintf("BAJAS"); sleep(1);
                             raton(1); menuBajas(); x=seleccion(14,3,30,5,4,3,"ALUMNOS","MATERIAS","CALIFICASIONES"); menu(); recuadros(2,2,79,24,0); Bajas(x);x=0;
                             recuadros(2,2,79,24,0); logo(); centrar(1,1);}
                          if(xpos>=24 && xpos<=38)
                            {raton(0); recuadros(25,1,38,1,4); textcolor(1); textbackground(4); gotoxy(27,1); cprintf("CONSULTAS"); sleep(1);
                             raton(1); menuConsultas(); x=seleccion(26,3,37,4,4,1,"ALUMNOS"," "," ");menu(); recuadros(2,2,79,24,0); consultas(x); recuadros(2,2,79,24,0);
                             logo(); centrar(1,1);x=0;}
                          if(xpos>=39 && xpos<=49)
                            {raton(0); recuadros(39,1,49,1,4); textcolor(1); textbackground(4); gotoxy(42,1); cprintf("AYUDA"); sleep(1);
                             centrar(39,4);raton(1); menu();}
                         }
                  }
             }while(1);raton(0);}
void logo(void)
            {
             recuadros(10,5,13,22,1);recuadros(5,6,24,6,1);recuadros(13,4,17,21,4);recuadros(5,4,25,5,4);
             recuadros(28,5,31,22,1);recuadros(35,6,44,6,1);recuadros(31,4,35,22,4);recuadros(35,4,45,5,4);
             recuadros(36,13,44,13,1);recuadros(35,11,45,12,4);recuadros(28,22,44,22,1);recuadros(35,20,45,21,4);
             recuadros(48,5,51,22,1);recuadros(51,4,55,21,4);recuadros(48,22,54,22,1);
            }
void consultasMaestros(void)
            { FILE *archivo;char c[10];
              int leidos,m=1,m2=1,m3=0;
              struct Calificaciones tem[100];
              struct Materias tem2[100];
              archivo=fopen("Cali.dat","a+");if(archivo==NULL){clrscr(); textcolor(4 | 128); cprintf("ERROR: Al abrir archivo surgio un error inesperado");}
              recuadros(3,3,78,9,1);           textcolor(0);             marcos(3,3,78,8);
              recuadros(5,4,28,4,7);           recuadros(55,4,76,4,7);
              recuadros(5,6,15,6,7);           recuadros(30,4,53,4,7);
              recuadros(17,6,26,6,7);          recuadros(36,6,41,6,7);
              recuadros(43,6,48,6,7);          recuadros(28,6,34,6,7);
              textcolor(15);textbackground(1); gotoxy(13,5);cprintf(" NOMBRE ");
              gotoxy(33,5);cprintf(" APELLIDO PATERNO ");
              gotoxy(57,5);cprintf(" APELLIDO MATERNO ");
              gotoxy(5,7);cprintf("No. CONTROL");
              gotoxy(20,7);cprintf("GRADO");   gotoxy(37,7);cprintf("SEXO");
              gotoxy(29,7);cprintf("GRUPO");   gotoxy(44,7);cprintf("EDAD");
          strcpy(c,cajatexto(5,6,8,2));rewind(archivo);
              while(!(feof(archivo)))
                   { leidos=fread(&C,sizeof(C),1,archivo);
                         if(leidos)
                           {if((strcmp(c,C.No_Control))==0)
                              { strcpy(tem[m].C_materia,C.C_materia);
                                   strcpy(tem[m].No_Control,C.No_Control);
                                   strcpy(tem[m].pri_par,C.pri_par);
                                   strcpy(tem[m].seg_par,C.seg_par);
                                   strcpy(tem[m].ter_par,C.ter_par);
                                   strcpy(tem[m].cur_par,C.cur_par);m++;}
                           }
                  } fclose(archivo);m=1;
             archivo=fopen("Materias.dat","a+");if(archivo==NULL){clrscr(); textcolor(4 | 128); cprintf("ERROR: Al abrir archivo surgio un error inesperado");}
          rewind(archivo);
              while(!(feof(archivo)))
                   { leidos=fread(&M,sizeof(M),1,archivo);
                         if(leidos)
                           {if((strcmp(tem[m].C_materia,M.clave))==0)
                              {  strcpy(tem2[m2].clave,tem[m].C_materia);
                                    strcpy(tem2[m2].nombre,M.nombre);
                                    strcpy(tem2[m2].creditos,M.creditos);m2++;m3=0;}m++;
                           }
                  } fclose(archivo);
              archivo=fopen("ALUMNOS.dat","a+");if(archivo==NULL){clrscr(); textcolor(4 | 128);cprintf("ERROR: Al abrir archivo surgio un error inesperado");getch();exit(0);}
          rewind(archivo);
              while(!(feof(archivo)))
                   { leidos=fread(&R,sizeof(R),1,archivo);
                         if(leidos)
                           {if((strcmp(c,R.No_COntrol))==0)
                              { gotoxy(6,4);cprintf("%s",R.N);
                                   gotoxy(31,4);cprintf("%s",R.A_Paterno);
                                   gotoxy(55,4);cprintf("%s",R.A_Materno);
                                   gotoxy(18,6);cprintf("%s",R.Grado);
                                   gotoxy(29,6);cprintf("%s",R.Grupo);
                                   gotoxy(37,6);cprintf("%s",R.Sexo);
                                   gotoxy(44,6);cprintf("%s",R.Edad);
                              }
                           }
                  } fclose(archivo);
            recuadros(66,22,77,22,1); recuadros(54,22,64,22,1);recuadros(41,22,52,22,1);
            textcolor(15); textbackground(1); gotoxy(55,22); cprintf("SIGUIENTE");
            gotoxy(68,22); cprintf("ANTERIOR");gotoxy(42,22);cprintf("REGRESAR");
            m=1;
            for(;;)
               { lectura();
                 if(m3==0)
                   {if((strcmp(tem[m].C_materia,tem2[m].clave))==0)
                                        {textbackground(7);textcolor(0);del(9);
                                         gotoxy(51,10);cprintf("%s",tem2[m].clave);
                                         gotoxy(6,10); cprintf("%s",tem2[m].nombre);
                                         gotoxy(64,10);cprintf("%s",tem2[m].creditos);
                                         gotoxy(35,12);cprintf("%s",tem[m].pri_par);
                                         gotoxy(43,12);cprintf("%s",tem[m].seg_par);
                                         gotoxy(51,12);cprintf("%s",tem[m].ter_par);
                                         gotoxy(59,12);cprintf("%s",tem[m].cur_par);m3++;
                                        }
                   }
                 if(boton==1)
                   {if(ypos==22)
                          { if(xpos>=66 && xpos<=77)
                              {recuadros(66,22,77,22,4); textcolor(0); textbackground(4); gotoxy(68,22); cprintf("ANTERIOR");sleep(1);
                               recuadros(66,22,77,22,1);textcolor(15); textbackground(1);gotoxy(68,22); cprintf("ANTERIOR");
                               if(m>1)
                                    {m--;sleep(1);
                          if((strcmp(tem[m].C_materia,tem2[m].clave))==0)
                                        {textbackground(7);textcolor(0);del(9);
                                         gotoxy(51,10);cprintf("%s",tem2[m].clave);
                                         gotoxy(6,10); cprintf("%s",tem2[m].nombre);
                                         gotoxy(64,10);cprintf("%s",tem2[m].creditos);
                                         gotoxy(35,12);cprintf("%s",tem[m].pri_par);
                                         gotoxy(43,12);cprintf("%s",tem[m].seg_par);
                                         gotoxy(51,12);cprintf("%s",tem[m].ter_par);
                                         gotoxy(59,12);cprintf("%s",tem[m].cur_par);m3++;
                                        }
                                    }
                               else{textcolor(0);textbackground(7);gotoxy(3,22);cprintf("YA NO HAY REGISTROS ANTERIORES"); sleep(1);
                                       recuadros(3,22,40,22,0);}
                          }
                          if(xpos>=54 && xpos<=64)
                              {recuadros(54,22,64,22,4); textcolor(0); textbackground(4); gotoxy(55,22); cprintf("SIGUIENTE");sleep(1);
                       recuadros(54,22,64,22,1); textcolor(15); textbackground(1); gotoxy(55,22); cprintf("SIGUIENTE");
                               if(m<m2-1){m++;
                       if((strcmp(tem[m].C_materia,tem2[m].clave))==0)
                                        {textbackground(7);textcolor(0);del(9);
                                         gotoxy(51,10);cprintf("%s",tem2[m].clave);
                                         gotoxy(6,10); cprintf("%s",tem2[m].nombre);
                                         gotoxy(64,10);cprintf("%s",tem2[m].creditos);
                                         gotoxy(35,12);cprintf("%s",tem[m].pri_par);
                                         gotoxy(43,12);cprintf("%s",tem[m].seg_par);
                                         gotoxy(51,12);cprintf("%s",tem[m].ter_par);
                                         gotoxy(59,12);cprintf("%s",tem[m].cur_par);m3++;
                                        }  }
                               else {textcolor(0);textbackground(7);gotoxy(3,22);cprintf("YA NO HAY REGISTROS SIGUIENTES"); sleep(1);
                                        recuadros(3,22,40,22,0);}
                              }
                          if(xpos>=41 && xpos<=52)
                            {break;}
                          }
                   }
              m3=1; }
            }
void del(int x)
            { recuadros(3,x,78,x+5,1);          textcolor(0);marcos(3,x,78,x+5);
              recuadros(5,x+1,45,x+1,7);         recuadros(47,x+1,60,x+1,7);
              recuadros(62,x+1,72,x+1,7);
              textcolor(15);textbackground(1); gotoxy(15,x+2);cprintf(" NOMBRE DE LA MATERIA");
              gotoxy(51,x+2);cprintf("CLAVE");  gotoxy(63,x+2); cprintf("CREDITOS");
              gotoxy(33,x+4);cprintf("PRIMERO"); gotoxy(49,x+4);cprintf("TERCERO");
              gotoxy(57,x+4);cprintf("CUARTO");  gotoxy(41,x+4);cprintf("SEGUNDO");
              recuadros(33,x+3,39,x+3,7);        recuadros(41,x+3,47,x+3,7);
              recuadros(49,x+3,55,x+3,7);        recuadros(57,x+3,63,x+3,7);
            }
void consultas(int x)
            {if(x==1){consultasMaestros();}}
void bajasCalificaciones(void)
            { int x,leidos,en=Falso;char c[10],c1[10];
              FILE *archivo,*archtem,*alumat;
              archivo=fopen("Cali.dat","a+");if(archivo==NULL){clrscr(); textcolor(4 | 128); cprintf("ERROR: Al abrir archivo surgio un error inesperado");}
              archtem=fopen("Calitem.dat","a+");if(archtem==NULL){clrscr(); textcolor(4 | 128);cprintf("ERROR: Al abrir archivo surgio un error inesperado");getch();exit(0);}
              for(x=0;x<=22;x++) { M.clave[x]=M.nombre[x]=M.creditos[x]=''; }
              for(x=0;x<=22;x++) { C.C_materia[x]=C.No_Control[x]=C.pri_par[x]=C.seg_par[x]=C.ter_par[x]=C.cur_par[x]=''; }
              for(x=0;x<=22;x++) { R.N[x]=R.A_Paterno[x]=R.A_Materno[x]=R.No_COntrol[x]=R.Sexo[x]=R.Edad[x]=R.Grado[x]=R.Grupo[x]=R.carreras[x]=''; }
              pantallaCalificaciones();strcpy(c,cajatexto(5,4,10,2));
              strcpy(c1,cajatexto(19,4,10,2));
          rewind(archivo);
              while(!(feof(archivo)))
                   { leidos=fread(&C,sizeof(C),1,archivo);
                         if(leidos)
                           {if(((strcmp(c,C.C_materia))==0) && (strcmp(c1,C.No_Control)==0))
                              { gotoxy(35,4);cprintf("%s",C.pri_par);
                                   gotoxy(45,4);cprintf("%s",C.seg_par);
                                   gotoxy(51,4);cprintf("%s",C.ter_par);
                                   gotoxy(57,4);cprintf("%s",C.cur_par);en=CIERTO;break;}
                           }
                  }
             if(en==CIERTO)
               { alumat=fopen("Materias.dat","a+");if(archivo==NULL){clrscr(); textcolor(4 | 128); cprintf("ERROR: Al abrir archivo surgio un error inesperado");}
             rewind(archivo);
                 while(!(feof(archivo)))
                   { leidos=fread(&M,sizeof(M),1,alumat);
                         if(leidos)
                           {if(((strcmp(M.clave,C.C_materia))==0))
                              { gotoxy(6,13);cprintf("%s",M.nombre);
                                   gotoxy(63,13);cprintf("%s",M.creditos);
                                   gotoxy(50,13);cprintf("%s",M.clave);break;
                              }
                           }
                  }fclose(alumat);
                 alumat=fopen("ALUMNOS.dat","a+");if(archivo==NULL){clrscr(); textcolor(4 | 128); cprintf("ERROR: Al abrir archivo surgio un error inesperado");}
             rewind(archivo);
                 while(!(feof(archivo)))
                   { leidos=fread(&R,sizeof(R),1,alumat);
                         if(leidos)
                           {if(((strcmp(R.No_COntrol,C.No_Control))==0))
                              { textcolor(0);gotoxy(6,8);cprintf("%s",R.N);gotoxy(31,8);cprintf("%s",R.A_Paterno);
                                   gotoxy(56,8);cprintf("%s",R.A_Materno);gotoxy(6,10);cprintf("%s",R.No_COntrol);
                                   gotoxy(18,10);cprintf("%s",R.Grado);gotoxy(29,10);cprintf("%s",R.Grupo);
                                   gotoxy(44,10);cprintf("%s",R.Edad);gotoxy(37,10);cprintf("%s",R.Sexo);break;
                              }
                           }
                  }fclose(alumat);
               }
             else
                {   recuadros(3,19,45,23,7);marcos(3,19,45,23);gotoxy(5,20);cprintf("ERROR :");
                        gotoxy(5,21);cprintf("NOSE ENCONTRARON LAS CLAVES QUE A ");
                        gotoxy(5,22);cprintf("SOLICITADO VERIFIQUE QUE SEAN CORRECTAS"); sleep(5); recuadros(3,19,45,23,0);}
              recuadros(66,18,77,18,1); recuadros(54,18,64,18,1);
              textcolor(15); textbackground(1); gotoxy(56,18); cprintf("ELIMINAR");
              gotoxy(68,18); cprintf("REGRESAR");
        do
                {lectura();
                 if(boton==1)
                   { if(ypos==18)
                           {if(xpos>=54 && xpos<=66 && en==CIERTO)
                              { recuadros(54,18,64,18,4); textcolor(0); textbackground(4); gotoxy(56,18); cprintf("ELIMINAR");sleep(1);
                        rewind(archivo);
                                   while(!(feof(archivo)))
                                    { leidos=fread(&C,sizeof(C),1,archivo);
                                      if(leidos)
                                        {if(((strcmp(c,C.C_materia))==0) && (strcmp(c1,C.No_Control)==0))
                                               { }
                                         else {fwrite(&C,sizeof(C),1,archtem);}
                                        }
                                    }
                                   break;}
                            if(xpos>=66 && xpos<=77)
                              {recuadros(66,18,77,18,4); textcolor(0); textbackground(4); gotoxy(68,18); cprintf("REGRESAR");raton(0);sleep(1);
                               recuadros(2,2,79,24,0);raton(1);break;}
                           }
                         }
                 }while(1);
            fclose(archivo);fclose(archtem);
            if(en==CIERTO)
              {remove("Cali.dat");rename("Calitem.dat","Cali.dat");}
            else{remove("Calitem.dat");}
            }
void bajasMaterias(void)
            { FILE *archivo,*archtem,*cal;int x,leidos,n=2; char c[10];
              archivo=fopen("Materias.dat","a+");if(archivo==NULL){clrscr(); textcolor(4 | 128); cprintf("ERROR: Al abrir archivo surgio un error inesperado");}
              archtem=fopen("Mattem.dat","a+");if(archtem==NULL){clrscr(); textcolor(4 | 128);cprintf("ERROR: Al abrir archivo surgio un error inesperado");getch();exit(0);}
              for(x=0;x<=22;x++) { M.clave[x]=M.nombre[x]=M.creditos[x]=''; }
         pantallaMaterias();strcpy(c,cajatexto(47,4,11,2));
          rewind(archivo);
             while(!(feof(archivo)))
                   { leidos=fread(&M,sizeof(M),1,archivo);
                         if(leidos)
                           {if((strcmp(c,M.clave))==0)
                              {
                               gotoxy(6,4);cprintf("%s",M.nombre);
                               gotoxy(63,4);cprintf("%s",M.creditos);break;}
                           }
                   }
         recuadros(66,13,77,13,1); recuadros(54,13,64,13,1);
             textcolor(15); textbackground(1); gotoxy(56,13); cprintf("ELIMINAR");
             gotoxy(68,13); cprintf("REGRESAR");
             do
               { lectura();
             if(boton==1)
                          {if(ypos==13)
                           {if(xpos>=54 && xpos<=66)
                              { recuadros(54,13,64,13,4); textcolor(0); textbackground(4); gotoxy(56,13); cprintf("ELIMINAR");sleep(1);
                        for(x=0;x<=22;x++) { C.C_materia[x]=C.No_Control[x]=C.pri_par[x]=C.seg_par[x]=C.ter_par[x]=C.cur_par[x]=''; }
                                   cal=fopen("cali.dat","a+");
                                   rewind(cal);
                                   while(!(feof(cal)))
                                      { leidos=fread(&C,sizeof(C),1,cal);
                                       if(leidos)
                                         {if((strcmp(c,C.C_materia))==0)
                                                 {n=CIERTO;break;}
                                          else{n=Falso;}
                                         }
                                       }fclose(cal);
                                   rewind(archivo);
                                   while(!(feof(archivo)) && n==Falso)
                                      { leidos=fread(&M,sizeof(M),1,archivo);
                                       if(leidos)
                                         {if((strcmp(c,M.clave))!=0)
                                                 {fwrite(&M,sizeof(M),1,archtem);}
                                         }
                                       }
                                   break;
                                   }
                            if(xpos>=66 && xpos<=77)
                              {recuadros(66,13,77,13,4); textcolor(0); textbackground(4); gotoxy(68,13); cprintf("REGRESAR");raton(0);sleep(1);
                               recuadros(2,2,79,24,0);raton(1);break;}
                           }
                 }
               }while(1);
        fclose(archivo);fclose(archtem);
                 if(n==CIERTO)
                   {recuadros(3,19,45,23,7);marcos(3,19,45,23);gotoxy(5,20);cprintf("ERROR EL ALUNO TIENE CALIFICACIONES");
                        gotoxy(5,21);cprintf("NO PUEDES ELIMINARLO HASTA QUE ELIMINES");
                        gotoxy(5,22);cprintf("SUS CALIFICACIONES"); sleep(5); recuadros(3,19,45,23,0);}
                        else if(n==Falso){remove("Materias.dat");rename("Mattem.dat","Materias.dat");}
                        remove("Mattem.dat");
            }
void bajasAlumnos(void)
            { FILE *archivo,*archtem,*cal;
              int leidos,n=2,x;char c[10];
              archivo=fopen("ALUMNOS.dat","a+");if(archivo==NULL){clrscr(); textcolor(4 | 128);cprintf("ERROR: Al abrir archivo surgio un error inesperado");getch();exit(0);}
                 archtem=fopen("ALUMtem.dat","a+");if(archtem==NULL){clrscr(); textcolor(4 | 128);cprintf("ERROR: Al abrir archivo surgio un error inesperado");getch();exit(0);}
                 for(x=0;x<=22;x++) { R.N[x]=R.A_Paterno[x]=R.A_Materno[x]=R.No_COntrol[x]=R.Sexo[x]=R.Edad[x]=R.Grado[x]=R.Grupo[x]=R.carreras[x]=''; }
                 pantallaAlumnos(); strcpy(c,cajatexto(5,6,8,2));
             rewind(archivo);
                 while(!(feof(archivo)))
                   { leidos=fread(&R,sizeof(R),1,archivo);
                         if(leidos)
                           {if((strcmp(c,R.No_COntrol))==0)
                              {textcolor(0);gotoxy(6,4);cprintf("%s",R.N);gotoxy(31,4);cprintf("%s",R.A_Paterno);
                               gotoxy(56,4);cprintf("%s",R.A_Materno);
                               gotoxy(18,6);cprintf("%s",R.Grado);gotoxy(29,6);cprintf("%s",R.Grupo);
                               gotoxy(44,6);cprintf("%s",R.Edad);gotoxy(37,6);cprintf("%s",R.Sexo);
                               recuadros(52,6,70,6,7);gotoxy(52,6);cprintf("%s",R.carreras);break;}
                           }
                   }
             recuadros(66,13,77,13,1); recuadros(54,13,64,13,1);
                 textcolor(15); textbackground(1); gotoxy(56,13); cprintf("ELIMINAR");
                 gotoxy(68,13); cprintf("REGRESAR");
                 do
                   {lectura();
                        if(boton==1)
                          {if(ypos==13)
                           {if(xpos>=54 && xpos<=66)
                              { recuadros(54,13,64,13,4); textcolor(0); textbackground(4); gotoxy(56,13); cprintf("ELIMINAR");sleep(1);
                        for(x=0;x<=22;x++) { C.C_materia[x]=C.No_Control[x]=C.pri_par[x]=C.seg_par[x]=C.ter_par[x]=C.cur_par[x]=''; }
                                   cal=fopen("cali.dat","a+");
                                   rewind(cal);
                                   while(!(feof(cal)))
                                      { leidos=fread(&C,sizeof(C),1,cal);
                                       if(leidos)
                                         {if((strcmp(c,C.No_Control))==0)
                                                 {n=CIERTO;break;}
                                         }
                                       else{n=Falso;}
                                       }fclose(cal);
                                   rewind(archivo);
                                   while(!(feof(archivo)) && n==Falso)
                                      { leidos=fread(&R,sizeof(R),1,archivo);
                                       if(leidos)
                                         {if((strcmp(c,R.No_COntrol))!=0)
                                                 {fwrite(&R,sizeof(R),1,archtem);}
                                         }
                                       }
                                   break;
                                   }
                            if(xpos>=66 && xpos<=77)
                              {recuadros(66,13,77,13,4); textcolor(0); textbackground(4); gotoxy(68,13); cprintf("REGRESAR");raton(0);sleep(1);
                               recuadros(2,2,79,24,0);raton(1);break;}
                           }
                          }
                   }while(1);
                 fclose(archivo);fclose(archtem);
                 if(n==CIERTO)
                   {recuadros(3,19,45,23,7);marcos(3,19,45,23);gotoxy(5,20);cprintf("ERROR EL ALUNO TIENE CALIFICACIONES");
                        gotoxy(5,21);cprintf("NO PUEDES ELIMINARLO HASTA QUE ELIMINES");
                        gotoxy(5,22);cprintf("SUS CALIFICACIONES"); sleep(5); recuadros(3,19,45,23,0);}
                        else if(n==Falso){remove("ALUMNOS.dat");rename("ALUMtem.dat","ALUMNOS.dat");}
            remove("ALUMtem.dat");
            }
void Bajas(int x)
            {
             if(x==1){bajasAlumnos();}
             else if(x==2){bajasMaterias();}
             else if(x==3){bajasCalificaciones();}
            }
void pantallaCalificaciones(void)
            { recuadros(3,3,78,16,1); textcolor(0);marcos(3,3,78,6);marcos(3,7,78,16);
              recuadros(5,4,17,4,7); recuadros(19,4,31,4,7);
              recuadros(33,4,39,4,7); recuadros(41,4,47,4,7);
              recuadros(49,4,55,4,7); recuadros(57,4,63,4,7);
              recuadros(5,8,28,8,7);  recuadros(55,8,76,8,7);
              recuadros(5,10,15,10,7);  recuadros(30,8,53,8,7);
              recuadros(17,10,26,10,7); recuadros(36,10,41,10,7);
              recuadros(43,10,48,10,7); recuadros(28,10,34,10,7);
              recuadros(5,13,45,13,7); recuadros(47,13,60,13,7);
              recuadros(62,13,72,13,7);
          textcolor(15); textbackground(1);gotoxy(5,5);cprintf("CLAVE MATERIA");
              gotoxy(19,5);cprintf("CLAVE ALUMNO"); gotoxy(33,5);cprintf("PRIMERO");
              gotoxy(41,5);cprintf("SEGUNDO");gotoxy(49,5);cprintf("TERCERO");
              gotoxy(57,5);cprintf("CUARTO");gotoxy(13,9);cprintf(" NOMBRE ");
              gotoxy(33,9);cprintf(" APELLIDO PATERNO ");
              gotoxy(57,9);cprintf(" APELLIDO MATERNO ");
              gotoxy(5,11);cprintf("No. CONTROL");
              gotoxy(20,11);cprintf("GRADO"); gotoxy(37,11);cprintf("SEXO");
              gotoxy(29,11);cprintf("GRUPO"); gotoxy(44,11);cprintf("EDAD");
              gotoxy(15,14);cprintf(" NOMBRE DE LA MATERIA");
              gotoxy(51,14);cprintf("CLAVE"); gotoxy(63,14); cprintf("CREDITOS");
            }
void pantallaAlumnos(void)
            { recuadros(3,3,78,11,1);  textcolor(0);marcos(3,3,78,11);
              recuadros(5,4,28,4,7);  recuadros(55,4,76,4,7);
              recuadros(5,6,15,6,7);  recuadros(30,4,53,4,7);
              recuadros(17,6,26,6,7); recuadros(36,6,41,6,7);
              recuadros(43,6,48,6,7); recuadros(28,6,34,6,7);
              textcolor(15);textbackground(1);gotoxy(13,5);cprintf(" NOMBRE ");
              gotoxy(33,5);cprintf(" APELLIDO PATERNO ");
              gotoxy(57,5);cprintf(" APELLIDO MATERNO ");
              gotoxy(5,7);cprintf("No. CONTROL");
              gotoxy(20,7);cprintf("GRADO"); gotoxy(37,7);cprintf("SEXO");
              gotoxy(29,7);cprintf("GRUPO"); gotoxy(44,7);cprintf("EDAD");
            }
void pantallaMaterias()
            { recuadros(3,3,78,8,1); textcolor(0);marcos(3,3,78,8);
              recuadros(5,4,45,4,7); recuadros(47,4,60,4,7);
              recuadros(62,4,72,4,7);
              textcolor(15);textbackground(1);gotoxy(15,5);cprintf(" NOMBRE DE LA MATERIA");
              gotoxy(51,5);cprintf("CLAVE"); gotoxy(63,5); cprintf("CREDITOS");
            }
FILE *buscar1(FILE *archivo)
            {int leidos;rewind(archivo);
             while(!(feof(archivo)))
                   { leidos=fread(&M,sizeof(M),1,archivo);
                         if(leidos)
                           {if((strcmp(M.clave,C.C_materia))==0)
                              {break;}
                           }
                   }return archivo;}
FILE *buscar(FILE *archivo)
            {int leidos; rewind(archivo);
             while(!(feof(archivo)))
                   { leidos=fread(&R,sizeof(R),1,archivo);
                         if(leidos)
                           {if((strcmp(R.No_COntrol,C.No_Control))==0)
                              {break;}
                           }
                   }return archivo;}
void calificaciones(void)
            { FILE *archivo;int x,leidos,encontrados[2],n=Falso;
              FILE *aux;encontrados[0]=Falso;encontrados[1]=Falso;
              archivo=fopen("cali.dat","a+");
              if(archivo==NULL){clrscr(); textcolor(4 | 128); cprintf("ERROR: Al abrir archivo surgio un error inesperado");}
              for(x=0;x<=22;x++) { C.C_materia[x]=C.No_Control[x]=C.pri_par[x]=C.seg_par[x]=C.ter_par[x]=C.cur_par[x]=''; }
          for(x=0;x<=22;x++) { M.clave[x]=M.nombre[x]=M.creditos[x]=''; }
              pantallaCalificaciones();

              strcpy(C.C_materia,cajatexto(5,4,10,2));
          strcpy(C.No_Control,cajatexto(19,4,10,2));
              regresar:
              aux=fopen("Materias.dat","a+");
              while(!(feof(aux)))
                   { leidos=fread(&M,sizeof(M),1,aux);
                         if(leidos)
                           {if((strcmp(M.clave,C.C_materia))==0)
                              {gotoxy(6,13);cprintf("%s",M.nombre);gotoxy(48,13);cprintf("%s",M.clave);
                               gotoxy(63,13);cprintf("%s",M.creditos);encontrados[1]=CIERTO;break;
                              }
                           }
                   }
              fclose(aux);
              aux=fopen("ALUMNOS.dat","a+");
              while(!(feof(aux)))
                   { leidos=fread(&R,sizeof(R),1,aux);
                         if(leidos)
                           {if((strcmp(R.No_COntrol,C.No_Control))==0)
                              {textcolor(0);gotoxy(6,8);cprintf("%s",R.N);gotoxy(31,8);cprintf("%s",R.A_Paterno);
                               gotoxy(56,8);cprintf("%s",R.A_Materno);gotoxy(6,10);cprintf("%s",R.No_COntrol);
                               gotoxy(18,10);cprintf("%s",R.Grado);gotoxy(29,10);cprintf("%s",R.Grupo);
                               gotoxy(44,10);cprintf("%s",R.Edad);gotoxy(37,10);cprintf("%s",R.Sexo);
                               encontrados[0]=CIERTO;break;}
                           }
                   }
              fclose(aux);
          recuadros(66,18,77,18,1); recuadros(54,18,64,18,1);
              textcolor(15); textbackground(1); gotoxy(56,18); cprintf("GUARDAR");
              gotoxy(68,18); cprintf("REGRESAR");
              if(encontrados[0]==CIERTO && encontrados[1]==CIERTO)
              {
              strcpy(C.pri_par,cajatexto(33,4,4,2)); strcpy(C.seg_par,cajatexto(41,4,4,2));
              strcpy(C.ter_par,cajatexto(49,4,4,2)); strcpy(C.cur_par,cajatexto(57,4,4,2));
              n=CIERTO;
              }
              else {recuadros(3,19,45,23,7);marcos(3,19,45,23);gotoxy(5,20);cprintf("ERROR UNO DE LOS DATOS PROPORCIONADOS");
                        gotoxy(5,21);cprintf("ES ERRONEO VERIFIQUE PORFAVOR QUE ESTE ");
                        gotoxy(5,22);cprintf("CORRECTO GRACIAS"); sleep(2); recuadros(3,19,45,23,0);}
          do
                {lectura();
                 if(boton==1)
                   { if(ypos==18)
                           {if(xpos>=54 && xpos<=66 && n==CIERTO)
                              { recuadros(54,18,64,18,4); textcolor(0); textbackground(4); gotoxy(56,18); cprintf("GUARDAR");sleep(1);
                                   fwrite(&C,sizeof(C),1,archivo);break;}
                            if(xpos>=66 && xpos<=77)
                              {recuadros(66,18,77,18,4); textcolor(0); textbackground(4); gotoxy(68,18); cprintf("REGRESAR");raton(0);sleep(1);
                               recuadros(2,2,79,24,0);raton(1);break;}
                           }
                          if(ypos==4)
                            { if(xpos>=5 && xpos<=17){for(x=0;x<=11;x++){C.C_materia[x]='';} strcpy(C.C_materia,cajatexto(5,4,10,2));goto regresar;}
                              else if(xpos>=19 && xpos<=31){for(x=0;x<=11;x++){C.No_Control[x]='';} strcpy(C.No_Control,cajatexto(19,4,10,2)); goto regresar;}
                              else if(xpos>=33 && xpos<=39){for(x=0;x<=5;x++){C.pri_par[x]='';}strcpy(C.pri_par,cajatexto(33,4,4,2));}
                              else if(xpos>=41 && xpos<=47){for(x=0;x<=5;x++){C.seg_par[x]='';}strcpy(C.seg_par,cajatexto(41,4,4,2));}
                              else if(xpos>=49 && xpos<=55){for(x=0;x<=5;x++){C.ter_par[x]='';}strcpy(C.ter_par,cajatexto(49,4,4,2));}
                              else if(xpos>=57 && xpos<=63){for(x=0;x<=5;x++){C.cur_par[x]='';}strcpy(C.cur_par,cajatexto(57,4,4,2));}
                            }
                         }
                 }while(1);
                 fclose(archivo);}
void materias(void)
            { FILE *archivo;int x,leidos,e=Falso;
              struct Materias tem;
              archivo=fopen("Materias.dat","a+");
              if(archivo==NULL){clrscr(); textcolor(4 | 128); cprintf("ERROR: Al abrir archivo surgio un error inesperado");}
              for(x=0;x<=22;x++) { M.clave[x]=M.nombre[x]=M.creditos[x]=''; }
              pantallaMaterias();
              gotoxy(33,3); cprintf("  ALTAS DE MATERIAS  ");
              strcpy(M.nombre,cajatexto(5,4,38,2)); strcpy(M.clave,cajatexto(47,4,11,2));
              strcpy(M.creditos,cajatexto(62,4,8,2));
              atras:
              rewind(archivo);
              while(!(feof(archivo)))
                   { leidos=fread(&tem,sizeof(tem),1,archivo);
                         if(leidos)
                           {if((strcmp(tem.clave,M.clave))==0)
                              {recuadros(3,15,45,18,7);textcolor(0);marcos (3,15,45,18);gotoxy(5,16);cprintf("ERROR LA CLAVE DE LAMATERIA");
                               gotoxy(5,17);cprintf("YA SE A DADO DE ALTA CON ANTERIORIDAD");
                               sleep(2);recuadros(3,15,45,18,0);e=CIERTO; break;}
                           }
                   }
          recuadros(66,10,77,10,1); recuadros(54,10,64,10,1);
              textcolor(15); textbackground(1); gotoxy(56,10); cprintf("GUARDAR");
              gotoxy(68,10); cprintf("REGRESAR");
          do
                {lectura();
                 if(boton==1)
                   { if(ypos==10 && e==Falso)
                           {if(xpos>=54 && xpos<=66)
                              { recuadros(54,10,64,10,4); textcolor(0); textbackground(4); gotoxy(56,10); cprintf("GUARDAR");sleep(1);
                                   fwrite(&M,sizeof(M),1,archivo);break;}
                            if(xpos>=66 && xpos<=77)
                              {recuadros(66,10,77,10,4); textcolor(0); textbackground(4); gotoxy(68,10); cprintf("REGRESAR");raton(0);sleep(1);
                               recuadros(2,2,79,24,0);raton(1);break;}
                           }
                          if(ypos==4)
                            { if(xpos>=5 && xpos<=45){for(x=0;x<=63;x++){M.nombre[x]='';} strcpy(M.nombre,cajatexto(5,4,38,2));}
                              else if(xpos>=47 && xpos<=60){for(x=0;x<=14;x++){M.clave[x]='';} strcpy(M.clave,cajatexto(47,4,11,2)); e=1;goto atras;}
                              else if(xpos>=62 && xpos<=72){for(x=0;x<=15;x++){M.creditos[x]='';}strcpy(M.creditos,cajatexto(62,4,8,2));}
                            }
                         }
                 }while(1);
          fclose(archivo);
            }
void alumnos(void)
            { FILE *archivo;
              int x,carrera=1,leidos,e=Falso;
              struct Alumnos tem;
              for(x=0;x<=22;x++) { R.N[x]=R.A_Paterno[x]=R.A_Materno[x]=R.No_COntrol[x]=R.Sexo[x]=R.Edad[x]=R.Grado[x]=R.Grupo[x]=R.carreras[x]=''; }
              archivo=fopen("ALUMNOS.dat","a+");if(archivo==NULL){clrscr(); textcolor(4 | 128);cprintf("ERROR: Al abrir archivo surgio un error inesperado");getch();exit(0);}
              pantallaAlumnos();
              strcpy(R.N,cajatexto(5,4,21,2)); strcpy(R.A_Paterno,cajatexto(30,4,21,2));
              strcpy(R.A_Materno,cajatexto(55,4,20,2)); strcpy(R.No_COntrol,cajatexto(5,6,8,2));
              strcpy(R.Grado,cajatexto(17,6,7,2)); strcpy(R.Grupo,cajatexto(28,6,4,2));
              strcpy(R.Sexo,cajatexto(36,6,3,2)); strcpy(R.Edad,cajatexto(43,6,3,2));
              a:
              rewind(archivo);
              while(!(feof(archivo)))
                   { leidos=fread(&tem,sizeof(tem),1,archivo);
                         if(leidos)
                           {if((strcmp(tem.No_COntrol,R.No_COntrol))==0)
                              {recuadros(3,15,45,18,7);textcolor(0);marcos (3,15,45,18);gotoxy(5,16);cprintf("ERROR LA CLAVE DE LAMATERIA");
                               gotoxy(5,17);cprintf("YA SE A DADO DE ALTA CON ANTERIORIDAD");
                               sleep(2);recuadros(3,15,45,18,0);e=CIERTO;break;}
                           }
                   }
              recuadros(66,13,77,13,1); recuadros(54,13,64,13,1);
              textcolor(15); textbackground(1); gotoxy(56,13); cprintf("GUARDAR");
              gotoxy(68,13); cprintf("REGRESAR");
              textcolor(15);marcos(50,6,77,10);gotoxy(51,7);cprintf("[þ] Ing. en Sistemas");
              gotoxy(51,8);cprintf("[þ] Ing. en Industrias");gotoxy(51,9);cprintf("[þ] Administracion");
              do
                {lectura();
                 if(boton==1)
                   { if(ypos==4) {if(xpos>=5 && xpos<=28)  {for(x=0;x<=18;x++){ R.N[x]=''; }strcpy(R.N,cajatexto(5,4,21,2));}
                                         if(xpos>=30 && xpos<=53) {for(x=0;x<=14;x++){ R.A_Paterno[x]=''; }strcpy(R.A_Paterno,cajatexto(30,4,21,2));}
                                         if(xpos>=55 && xpos<=76) {for(x=0;x<=14;x++){ R.A_Materno[x]=''; }strcpy(R.A_Materno,cajatexto(55,4,20,2)); }}
                         else if(ypos==6) {if(xpos>=5 && xpos<=15){for(x=0;x<=10;x++){ R.No_COntrol[x]=''; }strcpy(R.No_COntrol,cajatexto(5,6,8,2)); e=Falso; goto a;}
                                        if(xpos>=17 && xpos<=26)  {for(x=0;x<=7;x++){ R.Grado[x]=''; }strcpy(R.Grado,cajatexto(17,6,7,2));}
                                        if(xpos>=28 && xpos<=34)  {for(x=0;x<=1;x++){ R.Grupo[x]=''; }strcpy(R.Grupo,cajatexto(28,6,4,2));}
                                        if(xpos>=36 && xpos<=41)  {for(x=0;x<=1;x++){ R.Sexo[x]=''; }strcpy(R.Sexo,cajatexto(36,6,3,2));}
                                        if(xpos>=43 && xpos<=48)  {for(x=0;x<=1;x++){ R.Edad[x]=''; }strcpy(R.Edad,cajatexto(43,6,3,2));}}
                   else if(xpos==52)
                         {if(ypos==7){carrera=CIERTO; textcolor(4);gotoxy(52,7);cprintf("þ");strcpy(R.carreras,"ING. EN SISTEMAS");}
                          else if(ypos==8){carrera=CIERTO;textcolor(4);gotoxy(52,8);cprintf("þ");strcpy(R.carreras,"ING. EN INSDUSTRIAS");}
                          else if(ypos==9){carrera=CIERTO;textcolor(4);gotoxy(52,9);cprintf("þ");strcpy(R.carreras,"ADMINISTRACION");}
                         }
                         else if(ypos==13 && carrera==CIERTO)
                           {if(xpos>=54 && xpos<=66 && e==Falso)
                              { recuadros(54,13,64,13,4); textcolor(0); textbackground(4); gotoxy(56,13); cprintf("GUARDAR");sleep(1);
                                   fwrite(&R,sizeof(R),1,archivo);break;}
                            if(xpos>=66 && xpos<=77)
                              {recuadros(66,13,77,13,4); textcolor(0); textbackground(4); gotoxy(68,13); cprintf("REGRESAR");raton(0);sleep(1);
                               recuadros(2,2,79,24,0);raton(1);break;}
                           }
                   else if(carrera==Falso){textcolor(0);recuadros(3,14,40,17,7); gotoxy(4,15);cprintf("No PUEDES GUARDAR NI REGRESAR");
                            marcos(3,14,40,17);gotoxy(4,16);cprintf("HASTA QUE SELECCIONES UNA CARRERA"); sleep(1); recuadros(3,14,40,17,0);}
                   }
                }while(1);
              fclose(archivo);
            }
void Altas(int x){if(x==1){ alumnos(); }
                          else if(x==2){ materias(); }
                          else if(x==3){calificaciones();}}
char *cajatexto(int col,int fil,int cantidad,int color)
            {int x,z;
             char frace[60];

             for(z=0;z<=cantidad;z++){frace[z]='