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