Programación en c++ del sistema de gestión del estado de los estudiantes
#include
#include
#include
#include
# incluye usando el espacio de nombres std int i struct Student <; /p> { nombre de char[20]; sexo de char[10]; int edad,num struct sco { int phy; int matemáticas; int inglés; int computadora int vc; p> int inglés; p> }puntuación; }stu [1000]; void scan() { int u ,xe; i=0; for(u=0;u<1000;u++) { strcpy(stu[u].nombre, "/0"); strcpy(stu[u].sex,"/0"); stu[u].num=0; >stu[u].edad= 0; stu[u].score.phy=0 stu[u].score.maths=0; stu[u].score.english=0; stu[u].score.computer=0; stu[u].score.vc=0; } printf("Ingrese la información que desea ingresar en orden, primero su nombre, luego su número de identificación de estudiante, sexo, edad y sus calificaciones (para 5 materias) , este sistema almacena información sobre 1000 estudiantes para la mayor cantidad de materias. Esta sección almacena información de 1000 estudiantes y los 1000 restantes/n"); do { printf(" Ingrese el nombre del estudiante\n"); scanf("%s",&stu[i].name); printf("Ingrese el número de estudiante\n"); scanf( "%d",&stu[i].num); printf("Ingrese el género del estudiante\n"); "%s",&stu[i ].sex)&&strcmp(stu[i].sex, "niño")! =0&&strcmp(stu[i].sexo, "chica")! =0) printf("Error de entrada, por favor ingrese de nuevo"); printf("Ingrese material edad de la abolladura \n"); scanf("%d",&stu[i].age); printf("Ingrese la calificación del estudiante (5 materias)\n") printf("Física:"); scanf("%d",&stu[i]. printf("Física:") ; scanf("%d",&stu[i].score.maths printf("Computadora:"); scanf("%); d",&stu[i].score.computer); printf("Computadora: ")computadora); printf("Inglés:"); scanf("%d",&stu[i].score.inglés); printf("VC:"); scanf("%d",&stu[ i].score.vc); printf("%d\n restante",999-i); printf("0 Continúe ingresando la siguiente información del estudiante (n1); devuelve Menu(n)"); i++; if(i>=1000){printf("El espacio de almacenamiento del sistema está lleno, no puede continuar aumentando, ¡lo siento! " ) ; break;} while(scanf("%d",&xe)&&xe!=0&&xe!=1) printf("Error de entrada, ingrese nuevamente") ; if(xe==0)printf("Continúe ingresando \n" } while(xe!=1); } void watch1() { if(i==0)printf("Ingrese la información del estudiante\n primero" while( i ! =0) { int i2,j2,todos[100],promedio[100],g,a,za cambio de carácter3[10]; > for(i2=0;i2 { todo[i2]=stu[i2].score.phy+stu[i2].score.computer+stu[i2 ] .score.english+stu[i2].score.maths+stu[i2].score.vc promedio[i2]=all[i2]/5; } for(i2=0;i2 { todo[i2]=stu[i2]. for(i2=1 ; i2 { for(j2=1;j2 { si(todos[j2-1] { a=stu[j2-1].age;stu[j2-1].age=stu[j2].age;stu[j2].age=a a = stu[j2-1].score.computer;stu [j2-1].score.computer=stu[j2].score.computer;stu[j2].score.computer=a a=stu[j2-1].score.english; stu[j2-1].score.english=stu[j2].score.english;stu[j2].score.english=a a=stu[j2-1].score.maths ;stu[j2-1].score.maths=stu[j2 ].score.maths;stu[j2].score.maths=a; a=stu[j2-1].score. phy;stu[j2-1].score.phy=stu[j2]. a=stu[j2-1].score.phy;stu[j2-1].score.phy=stu [j2].score.phy=a; a=stu[j2-1].score.vc;stu[j2-1].score.vc=stu[j2].score.vc; stu[j2].score.vc=a; a=todos[j2-1];todos[j2-1]=todos[j2];todos[j2]=a; a=stu[j2-1].num;stu[j2-1].num=stu[j2].num;stu[j2].num=a a=averge[; j2-1];promedio[j2-1]=promedio[j2];promedio[j2]=a; strcpy( change3,stu[j2-1].nombre); p>strcpy(stu[j2-1].nombre,stu[j2]. strcpy(cambio3,stu[ j2-1].sexo); strcpy(stu[ j2-1].sexo,stu[j2].sexo); strcpy(stu[j2-1].sexo,stu[j2].sexo); stu[j2].sex,change3); } } } printf("Nombre del número de escuela,stu[ g].nombre,stu[g].sexo,stu[g].edad,stu[g].score.phy,stu[g].score.maths,stu[g].score.inglés,stu[g] .score.computer,stu[g].score.vc,all[g],averge[g],g+1); printf("Ingrese 0 para volver al menú"); p> p> while(scanf("%d",&za)&&za!=0) printf("Error de entrada, ingrese nuevamente"); p> if(za ==0) romper } } void watch2() { if(i= =0) printf( "Primero ingrese la información del estudiante\n"); while(i! =0) { int max[5],min[5], j,g,i2,all[100],averge[100],za,j2,a,yy[5][2 ]; cambio de carácter3[20]; r(i2=0;i2 { all[i2]=stu[i2].score.phy+stu[i2 ].score.computer+stu[i2].score. inglés+stu[i2].score.maths+stu[i2].score.vc; promedio[i2]=all[i2]/5 } for(i2=0;i2 { todo[i2]=stu[i2]. for(i2=0;i2 { for(j2=1;j2 { if(all[j2-1] { a=stu[j2-1].age;stu[j2-1].age=stu[j2].age;stu[j2] .age=a a=stu[ j2-1].score.computer;stu[j2-1].score.computer=stu[j2].score.computer;stu[j2].score.computer=a a=stu; [j2- 1].score.english;stu[j2-1].score.english=stu[j2].score.english;stu[j2].score.english=a a=; stu[j2-1].score.maths;stu[j2-1].score.maths=stu[j2].score.maths;stu[j2].score.maths=a a; =stu[j2-1].score.phy;stu[j2-1].score.phy=stu[j2].score.phy;stu[j2].score.phy=a a=stu[j2-1].score.vc;stu[j2-1].score.vc=stu[j2].score.vc;stu[j2].score.vc=a a=stu[j2-1].score.phy;stu[j2-1].score.phy=stu[j2].vc=a a=all[j2-1]; todo[j2-1]=todo[j2 ];todo[j2]=a; a=stu[j2-1].num;stu[j2-1].num=stu[j2] .num;stu[j2].num=a; a=promedio[j2-1];promedio[j2-1]=promedio[j2];promedio[j2 ]=a; > strcpy(change3,stu[j2-1].nombre); strcpy(stu[j2-1].nombre,stu[j2]. strcpy( change3,stu[j2-1].nombre); strcpy(stu[j2-1].nombre,stu[j2]. } } printf("Número de escuela Nombre Género Edad Física Matemáticas Inglés Computadora VC Puntuación total Puntuación promedio Clasificación\n"); { all[i2]=stu[i2].score.phy+stu[i2].score.computer +stu[i2].score.eng lish+stu[i2].score.maths+stu[i2].score.vc; promedio[i2]=all[i2]/5 } for(i2=0;i2 { todo[i2]=stu[i2]. for(g=0;g printf("%-6d%-10s%-5s%-5s%-5d%-5d%-5d%-5d%-5d%-5d%-5d%-5d% -5d%-5d%-5d\n",stu[g].número,stu[g].nombre,stu[g].sexo,stu[g].edad,stu[g].puntuación.phy,stu [g].score.maths,stu[g].score.English,stu[g].score.computer,stu[g].score.vc,all[g],averge[g],g+1); max[0]=0;min[0]=100; para (j=0;j { p> p> if(stu[j].score.phy>=max[0]) { max[0]=stu[j].score.phy;yy [0][0 ]=j;} if(stu[j].score.phy<=min[0]) { min[0]=stu[j ].score.phy ;yy[0][1]=j;} } max[3]=0;min[3]=100 for( j=0;j { if(stu[j].score.computer>=max[3]) { max[3]=stu[j].score.computer;yy[3][0]=j;} { if(stu[j ].score.computer <=min[ 3]) { min[3]=stu[j].score.computer;yy[3][1]=j;} } p> max[2]=0;min[2]=100 for(j=0;j { if (stu[j].score.english>=max[2]) { max[2]=stu[j].score.english;yy[2 ][0]= j;} } if(stu[j].score.english<=min[2]) { min[ 2]=stu[ j].score.english;yy[2][1]=j;} } max[1]=0;min[1]= 100; for(j=0;j { if(stu[j]. puntuación.maths>=max[ 1]) p> { max[1]=stu[j].score.maths;yy[1][0]=j;} { if(stu[ j]. if(stu[j].score.maths<=min[1]) { min[1]=stu[j]. .score.maths; yy[1][1]=j;} } max[4]=0;min[4]=100 or(j=0;j { if(stu[j].score.vc>=max[4] ) { max[4]=stu[j].score.vc;yy[4][0]=j;} } if(stu[j].score .vc<=min[4]) { min[4]=stu[j].score.vc;yy[4][1]=j;} } printf("Física max:%d %s min:%d %s\nMatemáticas max:%d %s min:%d %s\nInglés max:%d %s min:%d % s\nComputadora máx:%d %s min:%d %s\nV C max:%d %s min:%d %s\n",max[0],stu[ yy[0][0]]. nombre,min[0],stu[yy[0][1]].nombre,max[1],stu[yy[1][0]].nombre,min[1],stu[yy[1][ 1]].nombre,max[2],stu[yy[2][0]].nombre,min[2],stu[ yy[2][1]].nombre,max[3],stu[yy [3][0]].nombre,min[3],stu[aa[3][1]].nombre,max[4],stu[aa[4][0]].nombre,min[4] ,stu[yy[4][1]].name); printf ("Ingrese 0 para regresar al menú" while(scanf("%d"); ,&za) &&za!=0) printf("Error de entrada, ingrese nuevamente"); if(za==0) break } p> } void fine() { if(i==0)printf("Ingrese primero la información del estudiante\n"); p> while(i!=0) { printf("Para buscar con el número de estudiante, ingrese 0, para buscar con el nombre, ingrese 1\n"); >int i1 ,j1, num1,te=0,tc=0;char nombre1[20]; scanf("%d",&i1); =0&&i1!=1) printf("Error de entrada \n"); else if(i1==0 ) { printf("Por favor ingrese el número de estudiante"); scanf("%d",&num1); for(j1=0;j1 if (num1==stu[j1]. { printf("Nº de estudiante:%dNombre:%sGénero:%sEdad:%dFísica:%dMatemáticas:%dInglés:%dComputadora:%dVC:%dPuntuación total %d\n",stu[j1].num,stu[j1].nombre,stu[j1].sexo,stu[j1].edad,stu[j1].score.phy,stu[j1].score. matemáticas, estu [j1].score.inglés,stu[j1].score.computadora,stu[j1].score.vc,stu[j1].score.vc+stu[j1].score.computadora+stu[j1].score .inglés+stu[j1].score.maths+stu[j1].score.phy te=1 } if( te!=1) printf("No hay información para este estudiante\n"); } else if(i1==1) { printf ("Por favor ingrese el nombre del estudiante"); scanf("%s",&name1 for(j1=0;j1<); p>if(strcmp(nombre1,stu[j1].nombre)==0) { printf("Número:%dNombre:%sGénero:%sEdad:%dFísica:%dMatemáticas:%dInglés:%dComputadora:% dVC:%dPuntuación total%d\n",stu[j1].num,stu[j1].nombre,stu[j1].sexo,stu[j1].edad,stu[j1].score.phy,stu[ j1].score.maths,stu[j1].score.inglés,stu[j1].score.computer,stu[j1].score.vc,stu[j1].score.vc+stu[j1].score. computadora+stu[j1] .score.english+stu[j1].score.maths+stu[j1].score.phy tc=1 } <; /p> tc=1. if(tc!=1) printf("No hay información sobre este estudiante\n"); p>printf("Para continuar buscando ingrese 1, para regresar al menú ingrese 0" int qq; )&&qq! =0&&qq!=1) printf("Error de entrada, ingrese nuevamente"); if(qq==1)continue if( qq==0)romper; } } void se convirtió en() { if(i==0)printf ("Ingrese la información del estudiante (ingrese primero la información del estudiante)"); while(i!=0) { printf("Ingrese el número de estudiante que desea modificar). \n"); int num2,j3; scanf("%d",&num2); for(j3=0;j3<= i;j3++) if(num2==stu[ j3].num) { strcpy(stu[ j3].n ame,"/0"); printf("Vuelva a ingresar todos los datos de este estudiante, en orden, número de estudiante, nombre, sexo, edad, física, matemáticas, inglés, computadora, VC. \n"); printf("Ingresando el nombre del estudiante\n"); printf("Ingresando el nombre del estudiante\n"). scanf( "%s",&stu[j3].name); printf("Ingrese el número del estudiante\n"); scanf("%d",&stu[j3]. num); printf("Ingrese el género del estudiante \n"); while(scanf("%s",&stu[j3].sex)&&strcmp(stu[j3].sex, " boy")!=0&&strcmp(stu[j3].sex, "girl")!=0) printf("Error de entrada, por favor ingrese nuevamente"); printf( "Ingrese la edad del estudiante \n"); scanf("%d",&stu[j3].age); printf("Ingrese la calificación del estudiante (5 materias)\n "); printf("Física:"); scanf("%d",&stu[j3].score.phy); printf ("Matemáticas:"); scanf("%d",&stu[j3]. printf("Computadora:"); scanf( "%d",&stu[j3].score.computer); printf("Inglés: scanf("%d",&stu[j3]. printf("VC:"); scanf("%d",&stu[j3].score.vc); printf("Modificado correctamente "); } else("No se encontraron estudiantes para este número de estudiante, asegúrese de ingresarlo correctamente\n"); int za; printf("Ingrese 0 para regresar al menú, ingrese 1 para continuar buscando"); while(scanf("%d",&za)&&za! =0&&za!=1) printf("Ingresado incorrectamente, ingrese nuevamente"); (za==1)continuar; } } anular() { si(i==0) principe tf("Ingrese la información del estudiante \n primero"); while(i!= 0) { printf("Ingrese el número de estudiante que desea eliminar \n"); int num3,j4,i3,za; scanf("%d",&num3); for(j4=0 ;j4<=i;j4++) if( num3==stu[j4].num) { for(i3=j4;i3 { stu[i3].num=stu[i3+1]. stu[i3].num=stu[i3+1].num stu; [i3].edad=stu[i3+1].edad; strcpy( stu[i3].nombre,stu[i3+1].nombre); stu[i3].sexo,stu[i3+1].sexo); stu[i3].score.computer=stu[i3+1].score.computer; ]. stu[i3].score.english=stu[i3+1].score.english stu[i3].score.maths=stu[i3+1; ].score.maths; stu[i3].score.phy=stu[i3+1 ].score.phy stu[i3].score.vc=stu; [i3+1].score.vc; } i--; printf("Modificación exitosa\n"); } else printf("Número de estudiante no encontrado. Asegúrese de que la entrada sea correcta \n")); printf("Ingrese 0 para regresar al menú, ingrese 1 Continuar modificando"); while(scanf("%d",&za)&&za!=0&&za!=1) printf("Error de entrada. Por favor entrar de nuevo") ; if(za==0)interrumpir; if(za==1)continuar; } } } anular en() { for(;;) { if(i>1000){ printf("El almacenamiento del sistema está lleno, no se puede continuar agregando más, ¡lo siento!} printf("Ingrese la información del estudiante que se agregará, en orden: número de estudiante, nombre, sexo, edad, física, matemáticas , inglés, computadora, VC.\n"); i++; printf("Ingrese el nombre del estudiante \n"); scanf(" %s", & amp;stu[i-1].name); printf("Ingrese el número de estudiante \n"); scanf("%d", &stu[i-1] .num); printf("Ingrese el género del estudiante\n"); while(scanf("%s ",&stu[i-1].sex)&&strcmp(stu). [i-1].sex, "chico")! =0&&strcmp(stu[i-1].sex, "chica")! =0) printf("Error de entrada, por favor ingrese nuevamente" printf("Ingrese la edad del estudiante \n"); scanf("%d",&stu[i-1].age printf("Ingrese la calificación del estudiante (5 materias)\n"); printf("Física:"); ].score.phy); printf("Matemáticas:"); scanf("%d",&stu[i-1]. printf("Matemáticas:"); scanf("%d",&stu[i-1].score.maths printf("Inglés:"); /p> scanf("%d",&stu[i-1]. scanf("%d",&stu[i-1].score.English); scanf("%d",&stu[i-1].score.maths). printf("VC:"); scanf("%d"); ,&stu[i-1].score.vc); printf("Entrada exitosa, %d restantes",1000-i); {printf("El almacenamiento del sistema está lleno y no puede seguir aumentando, ¡lo siento! (¡El almacenamiento del sistema está lleno y no puede seguir aumentando, lo siento!)");break;} int zu(i>=1000 ){printf("El almacenamiento del sistema está lleno y no puede continuar aumentando, ¡lo siento! int za; printf("Ingrese 0 para regresar al menú, ingrese 1 para continuar aumentando "); while(scanf("%d",&za)&&za!=0&&za!=1) printf("Error de entrada, por favor ingrese nuevamente"); p> p> si(za==0)romper si(za==1)continuar } } p> void main() { int a,wu=0; ARCHIVO * fp fp=fopen("out.t; xt", "rb+"); if(feof(fp)!= 0)i=0; mientras(feof(fp)==0) { fread(&i,sizeof(int),1,fp); for(int m=0;m fread(&stu[m] ], sizeof(struct Student),1,fp); fread(&stu[m], "rb+"); fread(fp=fopen("out.txt"); ,1 sizeof(struct estudiante),1,fp } fclose(fp do {printf); ("************************menú principal ********************** **\n"); printf(" 1. Ingrese y almacene la información del estudiante (se eliminarán los registros anteriores)\n"); printf(" 2. Ver estudiante información (ordenada)/n" ; printf(" 3. Estadísticas de desempeño de los estudiantes/n"); printf(" 4. Buscar información de los estudiantes/n"); p> printf( " 5. Modificar información del estudiante/n"); printf(" 6. Eliminar información del estudiante/n")Eliminar información del estudiante\n"); printf(" 7. Agregar información del estudiante\n"); printf(" 8. Salir\n"); ******** *** *************************************\n "); printf("Ingrese el número de serie del artículo seleccionado:"); while(scanf("%d",&a)&&a!=0&&a!= 1& amp;&a!=2&&a!=3&&a!=4&&a!=5&&a !=6&&a!=7&&a!=8) printf("Error al escribir, escriba nuevamente"); a==1) {scan() ;} if(a==2) {watch1();} if(a==3) {watch2();} if(a==4) {fine();} if(a==5) {se convirtió();} if(a==6) {fuera( );} si(a==7 ) {into();} si(a==8) { ARCHIVO *fp; fp= fopen ("out.txt", "rb+"); fwrite(&i,sizeof(int),1,fp); for(int m=0;m fwrite(&stu[m],sizeof(struct Student),1,fp fcerrar(fp) ; romper; } } mientras(8) } } }