Red de conocimiento informático - Conocimiento informático - Código fuente del sistema de selección de cursos experimental

Código fuente del sistema de selección de cursos experimental

# incluir & ltstdio.h & gt

# incluir & ltstdlib.h & gt

# incluir & ltconio.h & gt

# incluir & ltdos. h & gt

# include & ltstring.h & gt

#define LEN sizeof(estructura estudiante)

#Formato de definición" %-8d %-15s %-12.1lf %-1lf %-1lf %-12.1lf %-1lf \ n "

#Definir datos stu[i]. número,stu[i]. Nombre, Stu[yo]. elec,stu[i]. expe,stu[i]. Zona Caliente, Stu[i]. Suma

Estructura estudiante/*Estructura que define el desempeño del estudiante*/

{ int num/*Student ID */

char name[15];/* Nombre*/

Doble selección; /*Curso electivo*/

Doble tarifa; /*Clase experimental*/

Doble zona caliente; */

Doble suma; /*Puntuación total*/

};

Estructura estudiante estu[50] /*Definir matriz de estructura*/

void in ()/*Ingresar información de calificaciones del estudiante*/

void show() /*Mostrar información del estudiante*/

void order() ;/* Ordenar por puntuación total*/

void del();/*Eliminar información de puntuación del estudiante*/

void modificar();/*Modificar información de puntuación del estudiante*/

void menu(); /*menú principal*/

void insert(); /*insertar información del estudiante*/

void total();/* Calcular el total número de personas*/

void search();/*Buscar información del estudiante*/

Void main()/* función principal*/

{ int n;

menu();

scanf("%d ", & ampn); /*Ingrese el número de la función seleccionada*/

Cuando ( sustantivo)

{cambiar (n)

{ caso 1:en(); descanso;

Caso 2: búsqueda() descanso;

p >

Caso tres: del(); break;

Caso cuatro: modificar(); break;

Caso cinco: insert();

Caso 6: orden(); romper;

Caso 7: total(); romper

; > Predeterminado: break

}

getch();

menu() /*Mostrar la interfaz del menú nuevamente después de ejecutar esta función*/

scanf("%d ", & ampn);

}

}

Nulo in()/*Ingrese la información del estudiante*/

{ int i, m = 0; /*m es el número de registros*/

char ch[2];

FILE * fp/*define puntero de archivo* /

If ((FP = fopen ("data.

txt "," a+")= = null)/*Abrir el archivo especificado*/

{

printf("No se puede abrir\n ");

Regresar;

}

Y (!feof(fp))

{

if(fread(& amp;stu [ m], LEN, 1, fp)==1)

m++; /*Calcular el número de registros actuales*/

}

fclose(FP );

If (m==0)

printf("¡Sin registro!\n ");

Otro

{

System("cls");

show() /*Llama a la función show para mostrar la información original*/

}

if((fp=fopen("data.txt "," wb"))==NULL)

{

printf("No se puede abrir\n");

{

printf("no se puede abrir\n");

p>

return;

}

for(I = 0;i<m;i++)

fwrite(& stu[i] , LEN, 1, FP /*Escribe información en el archivo de disco especificado*/

printf("Por favor ingrese (s/n):");

scanf( "%s ", ch);

While (strcmp (ch, " y ") == 0 || strcmp (ch, " y))== 0)/* Determinar si se ingresa nueva información* /

{

printf(" número:" );

scanf("%d", & Stu[m].num);/ *Ingrese el ID del estudiante */

for(I = 0;i<m;i++)

if (Stu[i].num==stu[m].Number)

{

printf("El número ya existe, presione cualquier botón para ¡continuar!");

getch();

fclose(FP );

Regresar;

}

printf(" nombre:");

scanf("%s ", stu[ m].Nombre);/*Ingrese el nombre del estudiante*/

printf(" electiva :");

scanf("%lf ", & ampStu[m]. elec); /*Ingrese la puntuación del curso optativo*/

printf("Experimento: ");

scanf("%lf ", & Stu[m]. expe);/*Ingrese los resultados de la clase experimental*/

printf("Curso requerido:");

scanf("%lf ", & ampStu[m]. requ);/*Ingrese los puntos del curso requeridos*/

Stu[m]. suma=stu[m]. Electrónica+Estudiante[m]. expe+stu. Canción caliente /*Calcular puntuación total*/

if(fwrite(&stu[m], LEN, 1, fp)!=1)/*Escribe la información recién ingresada en el archivo de disco especificado. */

{

printf("¡No se puede guardar!");

getch();

}

Otros

{

printf("¡%s se ha guardado!\n ", Stu[m].

nombre);

m++;

}

printf("¿Continuar? (s/n):); /*Preguntar si desea continuar*/

scanf("%s ", ch);

}

fclose(FP);

printf("¡Está bien!\ n " ) ;

}

Visualización no válida()

{ ARCHIVO * fp

int i, m = 0;

fp=fopen("data.txt","Rb");

Y (!feof(fp))

{

if( fread (& stu[m],LEN,1,fp)==1)

m++;

}

fclose(FP);

m++; p>

printf("número nombre experimento electivo suma obligatoria \ t \ n "

for(I = 0;i<m;i++)

>{

printf(formato, datos);/*Imprimir información en el formato especificado*/

}

}

Nulo menu()/* Función personalizada para implementar la función de menú*/

{

System ("cls");

printf(" \ n \ n \ n \ n ") ;

printf(" \ t \ t |-ESTUDIANTE-| \ n ");

printf("\t\t|\t 0. salir | \ n ") ;

printf("\t\t|\t 1. Registro de entrada | \ n ");

printf("\t\t|\t 2. Buscar registro | \ n ");

printf("\t\t|\t 3. Eliminar registros | \n ");

printf("\t\ t|\t 4 . Modificar registro | \ n ");

printf("\t\t|\t 5. Insertar registro | \ n ");

printf( "\t\t |\t 6. orden | \ n ");

printf("\t\t|\t 7. número | \ n "); printf("\t\t|\t 8.

mostrar | n ");

printf(" \ t \ t |-| \ n \ n ");

printf(" \ t \ t \ tselect(0 - 8):");

}

Voideorder ()/*Función de clasificación personalizada*/

{ FILE * fp

Estructura estudiante t;

int i=0,j=0,m=0;

if((fp=fopen("data.txt "," r+")= = NULL )

{

printf("¡No se puede abrir!\n ");

Regresar;

}

And(!feof(fp))

if(fread(& stu[m],LEN,1,fp)==1)

m++; p>fclose(FP);

If (m==0)

{

printf("¡Sin registro!\n ");

Regresar;

}

if((fp=fopen("data.txt "," wb"))==NULL)

{

printf("No se puede abrir\n ");

return;}

for(I = 0; i<m -1; i++)

for(j = I+1; j & ltm; J++)/*comparación e intercambio de puntuaciones de doble ciclo*/

if (Stu[i] .sum & ltStu[j]. suma)

{ t = stu[I]; stu[I]= stu[j]; stu[j]= t;}

if((fp=fopen(" data.txt "," wb"))==NULL)

{ printf("No se puede abrir\n"); return;}

for(I = 0;i<m; I++)/*Reescribe el contenido reorganizado en el archivo de disco especificado*/

if(fwrite(&stu[i], LEN, 1, fp)! =1)

{

printf("¡%s no se puede guardar!\n ");

getch();

}

fclose( FP);

printf("Guardar correctamente\ n ");

}

Void del()/*función de eliminación personalizada*/

{ ARCHIVO * fp

int snum, I, j, m = 0

char ch[2];

if((fp=; fopen("data.txt "," r+")== NULL)

{ printf("No se puede abrir\n" }

Y (! feof(FP))if(fread(& stu[m],LEN,1,FP)== 1)m++;

fclose(FP);

if ( m= =0)

{

printf("¡Sin registro! \ n ");

Devolver

}

printf("Ingrese un número:");

scanf("%d ", &snum);

for(I = 0;I<m; i++)

if(snum==stu[i]).

Número)

Pausa;

printf("Estudiante encontrado, ¿eliminar? (s/n)");

scanf("%s ", ch) ;

If (strcmp (ch, " y") == 0 || strcmp (ch, " y)) = = 0)/*Determinar si se debe eliminar*/

for (j = I; j & ltm; j++)

stu[j]= stu[j+1] /*Mover el último registro a la posición del registro anterior*/

;

m-;/*El número total de registros menos 1*/

if((fp=fopen("data.txt","wb"))==NULL)

{ printf("No se puede abrir\n "); return }

for(j = 0; j & ltm; J++)/*Reescribe los registros modificados en el archivo de disco especificado*/

if(fwrite(&stu[j],LEN,1,fp)!=1)

{ printf("¡No se puede guardar!\n ");

getch();}

fclose(FP);

printf("¡Eliminación exitosa!\n ");

}

Búsqueda nula()/*función de búsqueda personalizada*/

{ FILE * fp

int snum, I, m = 0;

char ch [2];

if((fp=fopen("data.txt "," Rb ")== NULL)

{ printf("No se puede abrir\n "); return;}

Y (!feof(FP))if(fread(&stu[m],LEN,1,FP)== 1)m++;

fclose( FP);

if(m==0) {printf("¡Sin registro!\n "); return;}

printf("Por favor, ingrese un número: ");

scanf("%d ",&snum);

for(I = 0;i<m;i++)

If(snum ==stu[i] ).

num)/*Compruebe si el número de estudiante ingresado está en el registro*/

{ printf("¿Estudiante encontrado, mostrar? (y/n)"); % s ", ch);

if(strcmp(ch," Y")==0||strcmp(ch," Y))== = 0)

{

printf("número nombre experimento electivo suma obligatoria \ t \ n ");

printf(formato, datos /*Envía los resultados encontrados en el formato especificado*/<); /p>

Descanso;

}

}

if(i==m) printf("¡Estudiante no encontrado!\n "); /* No se encontró información*/

}

Modificación nula()/*Función de modificación personalizada*/

{ FILE * fp

int i, j, m=0, snum

if((fp=fopen("data.txt "," r+")== NULL)

{ printf(" No se puede abrir\n "); return;}

while(!feof(fp))

if(fread(& stu[m], LEN, 1, FP )= = 1)m++;

if(m==0) {printf("¡Sin registro!\n ");

fclose(FP);

Return;

}

show();

printf("¡Ingrese el número de estudiante que desea modificar!\n ");

printf("Número de modificación:");

scanf("%d ",&snum);

for(I = 0;i<m;i++)

If(snum==stu[i]).num)/*Recuperar si hay información que deba modificarse*/

Break;

printf ("Estudiante encontrado! ¡Se puede modificar! \ n ");

printf(" nombre:");

scanf("%s ", stu[i].nombre); /* Ingrese un nombre*/

printf("elective:");

scanf("%lf", & Stu[i].elec);/*Ingrese puntajes para cursos electivos */

printf("Experimento:");

scanf("%lf", & Stu[I]. expe);/*Ingrese los resultados de la clase experimental*/

printf("Curso requerido:");

scanf("%lf ", & ampStu[I]. requ);/*Ingrese los puntajes requeridos del curso*/

printf("¡Modificación exitosa!");

Stu[I]. suma=stu[i]. elec+stu[i]. expe+stu[yo].

Canción popular;

if((fp=fopen("data.txt "," wb"))==NULL)

{ printf("No se puede abrir\n" ); Return;}

for(j = 0;j & ltm;J++)/*Escribe la información recién modificada en el archivo de disco especificado*/

if(fwrite(& amp; stu[j], LEN, 1, fp)! =1)

{ printf("¡No se puede guardar!"); getch();}

fclose(FP) ;

}

Inserción nula()/*función de inserción personalizada*/

{ ARCHIVO * fp

int i, j, k, m=0, snum

if((fp=fopen("data.txt "," r+")== NULL)

{ printf("No se puede abrir \n ") ; return;}

while(!feof(fp))

if(fread(& stu[m], LEN, 1, FP)== 1)m++;

if(m==0) {printf("¡Sin registro!\n ");

fclose(FP);

Return ;

}

printf("¡Ingrese la posición que desea insertar! (Ingrese un número)\ n ");

scanf("%d ", &snum);/ *Ingrese la posición a insertar*/

for(I = 0;i<m;i++)

if(snum==stu[i] número)

.

break;

for(j = m-1;j>i;j-)

stu[j+1]= stu[ j]; del último registro*/

printf("Ingrese nueva información ahora.\n ");

printf(" número:"

scanf); ("%d ", & Stu[i+1].num);

for(k = 0; k & ltm; k++)

if(stu[k]. num==stu[i+1].Number)

{

printf("El número ya existe, presiona cualquier botón para continuar!" ");

getch();

fclose(FP);

Retorno;

}

printf(" nombre:");

scanf("%s ", stu[i+1]. nombre);

printf(" electivo:");

scanf("%lf ", & Stu[i+1].elec); printf("Experimento:");

scanf("%lf ", & Stu[i+1].expe);

printf("Curso requerido: ");

scanf("%lf ", & Stu[i+1].requ);

Stu[i+1]. suma=stu[i+1]. elec+stu[i+1]. expe+stu[i+1].

Canción popular;

if((fp=fopen("data.txt "," wb"))==NULL)

{ printf("No se puede abrir\n" ); return;}

for(k = 0;k & lt= m;k++)

if(fwrite(&stu[k],LEN,1,fp) ! = 1)/*Escribe el registro modificado en el archivo del disco*/

{ printf("¡No se puede guardar!"); getch();}

fclose(FP) ;

}

Total no válido()

{ ARCHIVO * fp

int m = 0;

if(( fp=fopen("data.txt "," r+")== NULL)

{ printf("No se puede abrir\n");}

Y (!feof (fp))

if(fread(& stu[m], LEN, 1, fp)==1)

m++;/*registro estadístico El número representa el número de estudiantes*/

if(m==0) {printf("¡Sin registro!\n "); fclose(FP);}

printf(" Hay % d estudiantes en la clase! \n", m); /*Datos estadísticos de salida*/

fclose(FP);

}