Mostrando entradas con la etiqueta de. Mostrar todas las entradas
Mostrando entradas con la etiqueta de. Mostrar todas las entradas

Pruebas PacMan

Primeras pruebas a color del juego del Comecocos. Sólo está implementado el movimiento del PacMan comiendo los círculos y las frutas y el paso de un lado al otro por el pasillo. Faltan los fantasmas y la dinámica de persecución y choques... 
Desarrollado para LINUX en Code::Blocks. No os correrá correctamente en Wine...
///Carrega de llibreries
#include<stdio.h>
#include<stdlib.h>
#include <termios.h>

static struct termios old, new;

///variables globals
int punts=0,vides=2,nivell=1,atac=0;
int matriu[24][28]={
35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,
35,46,46,46,46,46,46,46,46,46,46,46,46,35,35,46,46,46,46,46,46,46,46,46,46,46,46,35,
35,67,35,35,35,35,46,35,35,35,35,35,46,35,35,46,35,35,35,35,35,46,35,35,35,35,67,35,
35,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,35,
35,46,35,35,35,35,46,35,35,46,35,35,35,35,35,35,35,35,46,35,35,46,35,35,35,35,46,35,
35,46,46,46,46,46,46,35,35,46,46,46,46,35,35,46,46,46,46,35,35,46,46,46,46,46,46,35,
35,35,35,35,35,35,46,35,35,35,35,35,32,35,35,32,35,35,35,35,35,46,35,35,35,35,35,35,
32,32,32,32,32,35,46,35,35,32,32,32,32,32,32,32,32,32,32,35,35,46,35,32,32,32,32,32,
32,32,32,32,32,35,46,35,35,32,35,35,35,32,32,35,35,35,32,35,35,46,35,32,32,32,32,32,
35,35,35,35,35,35,46,35,35,32,35,32,32,32,32,32,32,35,32,35,35,46,35,35,35,35,35,35,
101,32,32,32,32,32,46,32,32,32,35,32,32,32,32,32,32,35,32,32,32,46,32,32,32,32,32,101,
35,35,35,35,35,35,46,35,35,32,35,32,32,32,32,32,32,35,32,35,35,46,35,35,35,35,35,35,
32,32,32,32,32,35,46,35,35,32,35,35,35,35,35,35,35,35,32,35,35,46,35,32,32,32,32,32,
32,32,32,32,32,35,46,35,35,32,32,32,32,32,32,32,32,32,32,35,35,46,35,32,32,32,32,32,
35,35,35,35,35,35,46,35,35,32,35,35,35,35,35,35,35,35,32,35,35,46,35,35,35,35,35,35,
35,46,46,46,46,46,46,46,46,46,46,46,46,35,35,46,46,46,46,46,46,46,46,46,46,46,46,35,
35,46,35,35,35,35,46,35,35,35,35,35,46,35,35,46,35,35,35,35,35,46,35,35,35,35,46,35,
35,67,46,46,35,35,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,35,35,46,46,67,35,
35,35,35,46,35,35,46,35,35,46,35,35,35,35,35,35,35,35,46,35,35,46,35,35,46,35,35,35,
35,46,46,46,46,46,46,35,35,46,46,46,46,35,35,46,46,46,46,35,35,46,46,46,46,46,46,35,
35,46,35,35,35,35,35,35,35,35,35,35,46,35,35,46,35,35,35,35,35,35,35,35,35,35,46,35,
35,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,35,
35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35};
int X,Y,V,Z;
int punts,vides,nivell;

/// Declaració de funcions
/* Initialize new terminal i/o settings */
void initTermios(int echo){
  tcgetattr(0, &old); /* grab old terminal i/o settings */
  new = old; /* make new settings same as old settings */
  new.c_lflag &= ~ICANON; /* disable buffered i/o */
  new.c_lflag &= echo ? ECHO : ~ECHO; /* set echo mode */
  tcsetattr(0, TCSANOW, &new); /* use these new terminal i/o settings now */
}
/* Restore old terminal i/o settings */
void resetTermios(void){
  tcsetattr(0, TCSANOW, &old);
}
/* Read 1 character - echo defines echo mode */
char getch_(int echo){
  char ch;
  initTermios(echo);
  ch = getchar();
  resetTermios();
  return ch;
}
/* Read 1 character without echo */
char getch(void){
  return getch_(0);
}
/* Read 1 character with echo */
char getche(void){
  return getch_(1);
}
/* Funció que reemplaça el gotoxy de conio.h */
void gotoxy(int x, int y){
    printf("%c[%d;%df",0x1B,y,x);
}
/* Funció que reemplaça l'ordre delay o retard */
void delay(int del){
    int c,d;
    for (c=1;c<= del;c++) {
        for (d=1;d <=del;d++){
        }
    }
}
/* Funció per presentar la pantalla */
void mostra(){
int i,j;

for(i=0;i<24;i++){
        printf("ntt");
        for(j=0;j<28;j++){
            if(matriu[i][j]==35){
                printf("e[104m e[0m");
            }
            if(matriu[i][j]==46){
                printf("e[96m*e[0m");
            }
            if(matriu[i][j]==64){
if(atac>0){
printf("e[5me[93m@e[0m");
                }
                else{
printf("e[93m@e[0m");
                }
            }
            if(matriu[i][j]==111){
                printf(" ");
            }
            if(matriu[i][j]==32||matriu[i][j]==101){
                printf(" ");
            }
            if(matriu[i][j]==67){
                printf("e[96m█e[0m");
            }
        }
    }
    gotoxy(49,2);
    printf("e[93m+---------------+e[0m");
    gotoxy(49,3);
    printf("e[93m│   COMECOCOS   │e[0m");
    gotoxy(49,4);
    printf("e[93m+---------------+e[0m");
    gotoxy(49,5);
    printf("Punts:  %d",punts);
    gotoxy(49,6);
    printf("Vides:  %d",vides);
    gotoxy(49,7);
    printf("Nivell: %d",nivell);
    gotoxy(49,10);
    printf("e[90mPosició X=%d Y=%de[0m",X,Y);
    gotoxy(49,11);
    printf("e[90mCaracter: %ce[0m",matriu[X][Y]);
    gotoxy(100,29);
}
/* Funcio dreta */
void dreta(){

    if(matriu[X][Y+1]!=35){
        system("clear");
        if(matriu[X][Y+1]==46){
            punts++;
        }
        if(matriu[X][Y+1]==67){
            atac=1;
            punts=punts+10;
        }
        matriu[X][Y+1]=matriu[X][Y];
        matriu[X][Y]=32;
        Y++;
        if(matriu[10][27]==64){
            matriu[10][27]=32;
            matriu[10][0]=64;
            X=10;
            Y=0;
            atac=0;
        }
        mostra();
    }

}
/* Funcio esquerra */
void esquerra(){
    if(matriu[X][Y-1]!=35){
        system("clear");
        if(matriu[X][Y-1]==46){
            punts++;
        }
        if(matriu[X][Y-1]==67){
            atac=1;
            punts=punts+10;
        }
        matriu[X][Y-1]=matriu[X][Y];
        matriu[X][Y]=32;
        Y--;
        if(matriu[10][0]==64){
            matriu[10][0]=32;
            matriu[10][27]=64;
            X=10;
            Y=27;
            atac=0;
        }
        mostra();
    }
}
/* Funcio adalt */
void adalt(){
    if(matriu[X-1][Y]!=35){
        system("clear");
        if(matriu[X-1][Y]==46){
            punts++;
        }
        if(matriu[X-1][Y]==67){
            atac=1;
            punts=punts+10;
        }
        matriu[X-1][Y]=matriu[X][Y];
        matriu[X][Y]=32;
        X--;
        mostra();
    }
}
/* Funcio baix */
void baix(){
    if(matriu[X+1][Y]!=35){
        system("clear");
        if(matriu[X+1][Y]==46){
            punts++;
        }
        if(matriu[X+1][Y]==67){
            atac=1;
            punts=punts+10;
        }
        matriu[X+1][Y]=matriu[X][Y];
        matriu[X][Y]=32;
        X++;
        mostra();
    }
}
/* Funció MAIN del programa */
int main(void){
int i,j,x,y,m;
char opcio;

X=13;Y=14;
matriu[X][Y]=64;
    mostra();
    while(opcio!='q'&&opcio!='Q'){
        opcio=getch();///scanf("%c",&opcio);
        switch(opcio){
        case 'd':
            dreta();
        break;
        case'C':
            dreta();
        break;
        case 'e':
            esquerra();
        break;
        case'D':
            esquerra();
        break;
        case 'a':
            adalt();
        break;
        case'A':
            adalt();
        break;
        case 'b':
            baix();
        break;
        case'B':
            baix();
        break;
        }
    }
    return 0;
}

Día de la semana

Dada una fecha, el programa dice el día de la semana al que corresponde.

#include <iostream>
#include <cstdlib>
#include <cmath>
using namespace std;

bool bisies (int fecha);
int bisiesant (int fecha2);

int main()
{
    /* Declaración de variables */
   
    int ano,dia;
    int mes;
    int total;
    int i;
    int sol;
   
    /* Entrada de datos */
   
    cout<<"Introduzca el año de la fecha que desee estudiar"<<endl;
    cin>>agno;
    cout<<"Introduzca el numero del mes"<<endl;
    cin>>mes;
    cout<<"Introduzca el numero del dia"<<endl;
    cin>>dia;
   
    /* Procedimiento */
   
    total=30*(mes-1);
    total=total+dia;
   
    if (mes>2)
       {if (bisies(agno))
           {total=total-1;}
       else
           {total=total-2;}}
   
    if (mes<=7)   
       {total=total+mes/2;}
    else
        {total=total+4+(mes-7)/2;}
   
    i=1900;
   
    while (i<agno)
          {
          total=total+365;
          i++;
          }
   
    total=total+bisiesant(agno);
       
    sol=total%7;
   
    /* Salida de resultados */
   
    cout<<"La fecha introducida corresponde con un ";
    switch (sol)
    {
           case 1:
           {cout<<"lunes"<<endl;}
           break;
           case 2:
           {cout<<"martes"<<endl;}
           break;
           case 3:
           {cout<<"miercoles"<<endl;}
           break;
           case 4:
           {cout<<"jueves"<<endl;}
           break;
           case 5:
           {cout<<"viernes"<<endl;}
           break;
           case 6:
           {cout<<"sabado"<<endl;}
           break;
           case 0:
           {cout<<"domingo"<<endl;}      
    }
   
    system("PAUSE");
    return 0;
}

bool bisies(int fecha)
{
     bool bisiesto;
    
     if ((fecha%100)==0)
        {if ((fecha%400)==0)
            {bisiesto=true;}
         else
            {bisiesto=false;}}
     else
         {if ((fecha%4)==0)
             {bisiesto=true;}
         else
         {bisiesto=false;}}
        
     return bisiesto;
}

int bisiesant(int fecha2)
{
    int j,k;
   
    k=0;

    j=1900;
    while (j<fecha2)
        {
                    if (bisies(j))
                    k++;
                    j++;
        }
       
    return k;

}

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]='