Sistema de gestión de información estudiantil (versión C)
#include "bios.h"
#include "conio.h"
#include "STRING.H"
#include "DOS.h"
#include "proceso.h"
#include "stdlib.h"
#include "math.h"
#define key_down 80
#define key_up 72
#define key_esc 1
#define key_alt_f 33
#define key_alt_x 45
#define key_enter 28
#define key_alt_c 46
#definekey_alt_e 18
# definir key_alt_s 31
#definir key_alt_d 32
#definir key_alt_r 19
#definir key_alt_p 25
#definir key_alt_o 24
estructura estudiante
{
nombre char[20];
número largo;
edad char[2];
char sexo[4];
char xibie[16];
char jiguan[50];<
estructura{
chino flotante;
inglés flotante;
matemática flotante;
total flotante;
promedio flotante;} puntuación;
estructura estudiante *siguiente;
};
estructura estudiante agente[50];
estructura estudiante *cabeza,* this1,*new1,*new2,*stud;
char numstr[40]={' ',' '};
int n=0;
int r=0;
int k=0;
núm largo;
int get_key(); int startx,int starty,int high,int width);
void new1name(void),listall(void),wfile(void),rfile(void); *insert(struct estudiante *head ,struct estudiante *stud);
gotoxy(2,8);
cprintf(" PWD:");
gotoxy(2,4);
cprintf("NOMBRE:");
scanf("%s",aaa);
gotoxy(7, 8);
while(d=getch())
{
if(d==13)
descanso;
cprintf("*");
p>
bbb[i]=d;
i++;
}
fp=fopen(" archivo1", "r");
fread(a,6,1,fp);
fread(b,6,1,fp);
fclose(fp);
for(i=0;i<=5;i++)
{
if(aaa[i]!=a[i] || bbb[i] ! =b[i])
salir(0);
}
}
ab();
}
nnn()
{union REGS inregs,outregs;
inregs.h.ah=0x2a;
intdos(&inregs, &outregs);
ventana(60,24,80,25);
fondo de texto(14);
color de texto(0);
clrscr();
cprintf("Los datos son 2004-%d-%d.\n",outregs.h.dh,outregs.h.dl);{key==key_up key | ==key_down)
{puttext(2,y,18,y+1,buf1);{p textbackground(0);
textcolor(15);
gotoxy(2,y);
cprintf("%s",f[y-2]);
}
key=get_key ();
}
if(key==key_alt_x) exit(0);
if(key==key_enter)
{switch(y-1)
{caso 1: new1name();break;
caso 2: cjlr();break;
caso 3 : cjtj();break;
caso 4 : insert(head,stud);break;
caso 5 : cjpx();break;
predeterminado :romper;
}
}
}
else
{
ventana(1,1,80,1);
puttext(2,2,19,10,buf);
textfondo(15);
color de texto(0);
gotoxy(4,1);
cprintf("%s",menú[0]);
}
if(key==key_alt_c)
{textbackground(0);
textcolor(15);
getoxy(39,1);
cprintf("%s",menú[3]);
gettext(39,2,50,7,buf1);
ventana(39 ,2,49,5);
textbackground(15);
textcolor(0);
clrscr();
ventana(39,2,49,6);
caja(39,1,4,11);
for(i=2;i<4;i++) p>
{
gotoxy(2,i).
cprintf("%s",c[i-2]);
}
gettext(39,2,49,3,buf1);
textbackground(0);
textcolor(15);
gotoxy(2, 2 );
cprintf("%s",c[0]);
y=2;
key=get_key();
mientras(key!=key_alt_x&&key!=key_enter&&key!=key_ esc)
{if(key==key_up||key==key_down)
{puttext(39 ,y,49,y+1,buf1);
if(key==key_up)
y=y==2?3:y-1;
if( clave==key_down)
y=y==3?2:y+1;
gettext(39,y,49,y+1,buf1 );
textbackground(0);
textcolor(15);
gotoxy(2,y );
cprintf(" %s",c[y-2]);
}
key=get_key();
}
if( key==key_alt_x) exit(0);
if(key==key_enter)
p> {switch(y-1)
{caso 1 :cxxs();break;
caso 2: cxcj();break;
Valor predeterminado: break;
}
}
}
else
{ventana(1,1,80,2);
puttext(39,2,49, 7,buf);
textbackground(15);
textcolor(0);
gotoxy(39,1);
cprintf(" %s",menú[3]);
}
}}
int get_key()
{ unión REGS rg;
rg.h.ah=0;
int86(0x16,&rg,&rg);
return rg.h.ah; p> p>
}
cuadro vacío (int startx, int starty, int alto, int ancho)
{ int i;
gotoxy(startx, starty);
putch( 0xda);
for(i=starty+1; i putch(0xc4 ); putch(0xbf); for(i=starty+1;i { gotoxy(startx,i ); putch(0xb3); gotoxy(ancho,i); putch(0xb3);} gotoxy(startx+1,ancho); putch(0xc0); for(i=startx+1;i putch(0xc4); putch(0xd9); Retorno; } /* void nuevo1nombre(void) { int clave; ventana(1,2, 80,25); textbackground(BLUE); clrscr(); cprintf("¿Está seguro de haber ingresado?"); key=get_key(); mientras(key!=key_alt_x && key!=key_esc) { ventana(1 ,2,80,25); textbackground(AZUL); clrscr(); new1=new2=(struct Student *)malloc(sizeof (estructura estudiante)); if(head==NULL) head=new1; else { this1=head ; while(this1->siguiente!=NULL) this1=this1->siguiente; this1->siguiente=new1; } this1=new1; printf("\nRegistro%d:",n+1); printf("\nXing Ming :"); gets(this1->name); printf("\nXue Hao:"); gets(numstr); p> p> this1->num=atol(numstr); printf("\nNian Ling:"); gets(this1->age); printf("/nXing Bie:"); gets(this1->sex); printf("/nXue Yuan:"); p> obtiene(this1->xibie); printf("/n Ji Guan:"); obtiene(this1->jiguan); n ++; this1->next=NULL; printf("¿Estás seguro de ingresar: Y/N?"); if( getch()=='n') main(); else new1name(); } }*/ void nuevo1nombre(void) { int key; char a; ventana (1, 2,80,25); textbackground( AZUL); clrscr(); cprintf("¿Está seguro de haber ingresado?") ; key=get_key(); mientras(key!=key_alt_x &&am p;tecla! =key_esc) { ventana(1,2,80,25); fondo de texto(AZUL); clrscr( ); new1=new2=(struct Student *)malloc(sizeof(struct Student)); if(head==NULL) head= nuevo1; else { this1=head; while(this1->siguiente!=NULL) this1=this1 - >siguiente; este1->siguiente=nuevo1; } este1=nuevo1; printf("\nRegistro%d :",n+1); printf("\nXing Ming:"); gets(&a); gets(this1->nombre); p> printf("\nXue Hao:"); gets(numstr); this1->num=atol(numstr); printf("\nian Ling:"); gets(this1->edad); printf("\n Xing Bie:"); consigue(this1->sexo); printf("\n Xue Yuan."); consigue(this1->xibie); printf ("\nJi Guan:"); gets(this1->jiguan); n++; this1->next=NULL; printf("¿Está seguro de ingresar: S/N?"); if(getch()=='n') main(); p> else nuevo1nombre(); } principal(); } /*listallhanshuyonglaishuchuquanburenyuandejilu*/ void listall(void) { int i=0 window(1,2) ,80,25); textbackground(1); textcolor(0); clrscr(); if( head==NULL) {cprintf("\nlista vacía.\n");return; } this1=head; hacer { cprintf("/nnúmero de registro %d\n",++i); cprintf("nombre:%s",this1->nombre) ;. cprintf(" número:%ld",this1->num); cprintf(" edad:%s",this1->edad); cprintf(" sexo: %s", this1->sexo); > cprintf(" xibie:%s",this1->xibie); cprintf(" jiguan:%s",this1->jiguan); cprintf(" chino: %6.2f",this1->score.chinese); cprintf(" inglés:%6.2f",this1->score.english); cprintf(" matemáticas: %6.2f",this1->score.math); cprintf(" total:%6.2f",this1->score. " total:%6.2f",this1->score.total) ; cprintf(" ave:%6.2f\n",this1->score.ave); this1=this1->siguiente; / /this1->next=NUL >next=NULL; } while(this1!=NULL); getch(); main(); } //*insertar struct estudiante *insert(struct estudiante *cabeza,struct estudiante *semental) { estructura estudiante *p0,*p1,*p2; p1=cabeza; p0=semental; if(cabeza= =NULL) {head=p0;p0->next=NULL;} else while((p0->num>p1->num ) && (p1->siguiente!=NULL)) {p2=p1;p1=p1->siguiente;} if(p0->num<=p1-> num) {if(head==p1) {head=p0; p0-> > } más {p2 ->siguiente=p0; p1->siguiente=p1; } } más {p1->next=p0 p0->next=NULL; } n=n+1; return(head); } void wfile(void) {FILE *fptr; char a[10]; if(n<1) {printf("\nNo puedo escribir lista vacía.\n");return;} // char a[10]; cprintf("Por favor, introduzca el nombre del archivo:"); gets(a); if((fptr=fopen(a, "wb"))== NULL) printf("\nNo puedo abrir el archivo agentes.rec\n "); más {este s1=cabeza; while(this1->next!=NULL) {fwrite( this1,sizeof(struct Student),1,fptr); this1=this1->siguiente; } // fwrite(this1,sizeof(struct Student ),1,fptr); fclose(fptr ); printf("/nArchivo de %d registros escritos.\n",n); } } getch(); main(); } //* rfile vacío rfile(void) {FILE *fptr; char b[10]; cprintf("Ingrese el nombre del archivo: "); gets(b); if((fptr=fopen(b," rb"))==NULL) printf("/nNo se puede abrir el archivo % s\n",b); else {n=0; head=(struct Student *)malloc(sizeof(struct Student) ) ; this1=cabeza; fread(this1,sizeof(struct Student),1,fptr); n++; while(1) {if(sizeof(fptr)) { fclose(fptr); this1->next=NULL;printf("/ nLectura de archivo. El número total de agentes ahora es %d\n",n); getch(); main(); }else{ this1->next=(struct Student *)malloc(sizeof(struct Student)); this1=this1->siguiente; fread(this1,sizeof(struct Student) , 1,fptr); n++; }} this1->next=NULL; //fread(this1,sizeof(struct Student), 1 ,fptr); //n++; fclose(fptr ); printf("\nArchivo leído. El número total de agentes ahora es % d. \n",n); } getch(); main(); } //*wfile /*void wfile(void) {char a[10]; ARCHIVO *fptr; if(n<1) {printf("\nNo se puede escribir una lista vacía.\n");return;} cprintf(" Ingrese el nombre del archivo:" ); gets(a); if((fptr=fopen(a, "wb"))==NULL) {cprintf(" \nNo puedo abrir el archivo ");puts(a);cprintf("\n" ); } else {fwrite(agent,sizeof (struct Student ),n,fptr); fclose(fptr); printf("/nArchivo de %d registros escritos .\n",n); } getch(); main(); } //*rfile void rfile(void) {FILE *fptr; char a[10]; cprintf("Ingrese el nombre del archivo:"); gets(a); if((fptr=fopen(a, "wb"))==NULL) {cprintf("/nNo se puede abrir el archivo ");puts(a); } else { while(fread(&agent[n],sizeof(agent[n]),1 ,fptr)==1) n++; fclose(fptr); printf("\nArchivo leído. El número total de agentes ahora es % d.\n",n); } getch(); main(); }*/ //*cjlr void cjlr(void) { struct Student *p1; long num; char ddd[5] ; char ccc[5]; ventana(1,2,80,25); fondo de texto(AZUL); clrscr (); p1=head; printf("ingrese el número del estudiante:"); scanf("%ld",&num ); if(head==NULL) { printf("\ nlist nulo! \n"); } p1=head; while(num!=p1->num && p1->siguiente!=NULL) {p1=p1->siguiente;} if(p1 ->num==num) {printf( "chino:"); scanf("%f",&p1->score.中文); // gets(ccc);printf("\n"); // p1->score.score.english=atof(numstr); //getch(); printf("matemáticas:") ; scanf("%s",ddd); // obtiene(ddd); p1->.total=p1->puntuación. chino+p1->puntuación.inglés+p1->puntuación.matemáticas; p1->puntuación.ave =(p1->puntuación.chino+p1->puntuación.inglés+p1->puntuación. matemáticas)/3.0; } getch(); main(); } //*cjlr /*void cjlr(void) {struct Student *p1; long num; char ddd[4]; ventana(1,2,80,25); fondo de texto(AZUL); clrscr(); p1=cabeza; printf("ingrese el número del estudiante:"); scanf("%ld",&num); if(head==NULL) { printf("\nlista nula!\n"); } p1=cabeza; while(num!=p1->num && p1->siguiente!=NULL) {p1=p1->siguiente;} if(p1->num= =num) {printf("chinese:"); scanf("%f",p1->score.score.chinese=atof(numstr); //getch(); printf("inglés:"); scanf("%f",p1->score.english); //gets(numstr ); //p1->score.english=atof(numstr); // getch(); printf("matemáticas:"); //scanf("%f",p1->score.math); //scanf("%f", p1->score.math); gets(ddd); p1->score.math=atof(ddd); p1->score .ave=(p1->score.chinese+p1->score.english+p1->score.math )/3.0; getch(); } getch(); main(); }*/ //*del< /p> void del() {struct estudiante *p1,*p2; número largo; ventana(1,2,80 ,25); textbackground(BLUE); clrscr(); printf("ingrese el número del estudiante:"); scanf("%ld",&num); if(head==NULL) { printf("\nlista nula! \n"); salir(1); } p1=cabeza; while(num != p1->num && p1->siguiente ! =NULL) {p2=p1;p1=p1->siguiente; } if(num==p1->num) p> {if(p1==cabeza) cabeza=p1 ->siguiente; else p2-> siguiente=p1->siguiente; printf("el %ld mensaje tiene del\n",num); n=n-1; } else p> printf("¡No se encuentra %ld!\n",num); getch(); main(); } // void cjtj(void) {struct estudiante *p; for( p=cabeza;p. =NULL;p=p! =NULL;p=p->siguiente) { p->score.total=p->score.chinese+p->score. español+p->puntuación.matemáticas; p-> puntuación.ave=p->puntuación.total/3.0; } } p> // void cjpx(void) { estructura estudiante *p,*p1; int i,j,t; temperatura flotante; for(i=0;i { p=cabeza; p1=p->siguiente; if(p->puntuación.total p- >puntuación.total=p1->puntuación.total; p1->puntuación.total=temp; } } p> } // void cxxs(void) { struct Student *p; nombre de char1[20]; ventana(1,2,80,25); fondo de texto( AZUL); clrscr(); printf("shu ru yao cha xun de x ue sheng de xing ming "); "shu ru yao cha xun de xue sheng de xing ming:"); gets(nombre1); for(p=head;p!=NULL;p=p->.next) {if(strcmp(p->nombre,nombre1)==0) {printf("xingming:%s\n",p->nombre); printf("xuehao:%ld\n",p->num); printf ("nianling: printf("xingbie:%s\n",p->sexo); printf("xibie:%s\n",p->xibie ); printf("jiguan:%s\n",p->jiguan); } } } getch(); main(); } /*chaxunchengji*/ void cxcj(void) { struct estudiante *p; char nombre2[20]; int i; ventana(1,2,80,25); textbackground(AZUL); clrscr(); printf(" shu ru yao cha xu de xue sheng de xingming:"); gets( nombre2); for(p=head;p!=NULL;p=p->siguiente) {if(strcmp(p->nombre,nombre2) ==0 ) {printf("xingming:%s\n",p->nombre); printf("chino:%6.2f\n",p->puntuación. chino); printf("inglés:%6.2f\n ",p->puntuación.inglés); printf("matemáticas:%6.2f\n",p ->puntuación.math); printf("total:%6.2f\n",p->puntuación.total); printf("ave:%6.2f\ n",p->score.ave); } } }getch(); main(); } /*dayingmugexueshen*/ lista vacía( void) { char name3[20]; int i=0; ventana(1,2,80,25); fondo de texto(AZUL); clrscr(); printf("shu ru yao da ying de xue sheng xingming:"); gets(name3); if(head==NULL) p> { printf("\lista vacía.\n"); retorno; } for(this1=head;this1!=NULL;this1=this1->siguiente) { if(strcmp(this1->nombre, nombre3)==0) {printf("/nnnúmero de registro %d\n",++i); printf("xingmming:%s\n",this1 ->nombre); printf("xuehao:printf("xingmming:%s\n",this1->num); printf("nianling:%d\n ",this1->edad); printf("xingbie:%s\n",this1->sexo); printf("xueyuan: printf("xueyuan: % s\n",this1->xibie); printf("jiguan:%s\n",this1->jiguan); printf("chino:%6.2f \n",this1->score.chinese); printf("inglés:%6.2f\n",this1->score. this1->score.english); printf("matemáticas:%6.2f\n",this1->puntuación.math); printf("total:%6.2f\n",this1->puntuación.total); p> printf("ave:%6.2f\n",this1->score.ave); } } } getch(); principal(); }