Red de conocimiento informático - Conocimiento informático - Código fuente del sistema de ingreso de puntajes de estudiantes

Código fuente del sistema de ingreso de puntajes de estudiantes

C

El código fuente del sistema de gestión del desempeño estudiantil escrito en lenguaje C.

/* * * * * * * * * * * * xuesheng c * * * * * * * * * */

/******

Archivo de encabezado (

.h

)

****************** /

#include "stdio.h" /*E/S

Función

*/

#include "stdlib.h " /*

Otras instrucciones

*/

#include "string.h" /*

Funciones de procesamiento de cadenas

*/

#Contiene "conio . h"/*

Funciones de funcionamiento de la pantalla

*/

#Contiene "mem . h"/ *

Función de operación de memoria

*/

#Contiene "ctype.h" /*

Carácter función de operación

*/

#Contiene "alloc.h" /*

Función de asignación dinámica de direcciones

*/

#Definición N 3 /*

Definir constantes

*/

estructura typedef z1 /*

Definir estructura de datos

*/

{

Número de carácter[11];

nombre de carácter[15];

int puntuación[N];

Suma flotante;

Promedio flotante;

orden int;

estructura z 1 * siguiente;

}Estudiante;

/*

El siguiente es un prototipo de función.

*/

Estudiante * init(); /*

Función de inicialización

*/

Estudiante * create(); /*

Crear lista enlazada

*/

Estudiante * eliminar (Estudiante * h /*

Eliminar registros

*/

Anular impresión (estudiante * h); /*

Mostrar todos los registros

*/

búsqueda vacía(estudiante * h); /*

Buscar

*/

guardado vacío (estudiante * h); /p>

Proteger

*/

Estudiante* load(); /*

Leer en registro

*/

computadora nula (estudiante* h); /*

Calcular puntaje total y puntaje promedio

*/

estudiante* Insertar ( estudiante * h); /*

Insertar registro

*/

void append() /*

Agregar registro

p>

*/

copia nula(); /*

Copiar archivo

*/

Estudiante* Ordenar ( estudiante * h); /*

Clasificación

*/

Índice estudiante * (estudiante * h);

*/

total nulo(estudiante* h);/*

Total de categoría

*/

int menu _ select();/*

Función de menú

*/

/******

Principal inicio de función

*******/

Main()

{

int I;

Estudiante*head;/*

Puntero de encabezado de definición de lista vinculada

*/

head = init();/*

Inicializar lista enlazada

*/

clr SCR();/*

cls

*/

for(;;) /*

Bucle infinito

*/

{

switch(menu_select()) /*

Llamar a la función del menú principal,

como condición para que la instrucción switch devuelva un valor entero

*/

{ /*

Diferentes valores,

realizan diferentes funciones,

descanso

no se pueden omitir

*/

Caso 0: head = init(); break /*

Realizar la inicialización

*/

caso 1: head = create(); break; /*

Crear una lista enlazada

*/

Caso 2: head=delete(head); break; /*

Eliminar registros

*/

Caso 3: Imprimir (cabecera); registros

*/

Caso 4: Búsqueda (cabeza); /*

Buscar registros

*/

Caso 5 :Guardar (head); break /*

Guardar archivo

*/

Caso 6: head = load() ; break; /*

Leer el archivo

*/

Caso 7: Computadora (cabeza); Calcular la puntuación total y la puntuación media

p>

*/

Caso 8: header = insert(head break /*

Insertar registro

*/

Caso 9: copiar(); romper /*

Copiar archivo

*/

Caso 10: head = sort(head break);*

Clasificación

*/

caso 11:append(); break; /*

Agregar registros

*/

Caso 12:head= index(cabeza); /*

Índice

*/

Caso 13: Total(cabeza); p>Categoría total

*/

Caso 14: Salir (0); /*

Si el valor de retorno del menú es

14

Fin del programa

*/

}

}

}

> *

Función de menú, el valor de retorno es un número entero.

*/

menu_select()

{

char * MENU[]= { ********* ***** * * * *Menú* * * * * * * * * * * * * * ", /*

Definir palabras del menú

Matriz de cadenas

*/

" 0.Lista de inicialización", /*

Inicialización

*/

" 1. Entrada list", /*

Ingresar registro

*/

" 2. Eliminar registro de la lista", /*

Eliminar registros de la tabla

*/

" 3. Imprimir lista", /*

Mostrar todos los registros en una única lista enlazada

*/

" 4. Buscar registros por nombre", /*

Buscar registros por nombre

*/

" 5 . Guardar archivo",/*

Guardar los registros de la lista enlazada individualmente en un archivo.

*/

" 6. Cargar archivo",/ *

Leer registros del archivo

*/

" 7. Calcular puntuaciones", /*

Calcular las puntuaciones de todos los estudiantes Puntuación total y puntuación media

*/

" 8. Insertar registros en la lista", /*

Insertar registros en la tabla

*/

" 9. Copiar archivos a archivos nuevos", /*

Copiar archivos

*/

" 10. Ordenar para generar un nuevo archivo", /*

Clasificación

*/

" 11. Agregar registros al archivo", /*

Agregar registros al archivo

*/

" 12.Number Index", /*

Índice

* /

" 13.Número total", /*

Categoría total

*/

" 14.Salir" };/ *

Descartar

*/

char s[3]; /*

Guardar el número de selección en forma de carácter

*/

int c, I; /*

Definir variables plásticas

*/

gotoxy(1, 25) );/*

Mover el cursor

*/

printf("Presione cualquier tecla para ingresar al menú...\n ");/ *

Presiona cualquier tecla para ingresar al menú principal

*/

getch() /*

Ingresa cualquier tecla.

*/

clr SCR(); /*

Borrar pantalla

*/

gotoxy( 1, 1); /*

Mover el cursor

*/

textcolor (amarillo); /*

Mostrar el texto color Establecido en amarillo.

*/

textbackground(blue); /*

Establece el color de fondo en azul.

*/

gotoxy(10,2);/*

Mover el cursor

*/

putch(0xc 9);/*

Imprime el borde de la esquina superior izquierda┏ */

for(I = 1;i<44;i++)

putch ( 0x CD); /*

Salida de la línea horizontal del borde superior

*/

patch(0x bb); Salida del borde superior derecho

┓*/

for(I = 3;i<20;i++)

{

gotoxy(10, I ); putch(0x ba); /*

Salida de línea vertical izquierda

*/

gotoxy(54, I); ;

} /*

Emite la línea vertical derecha

*/

gotoxy(10, 20); ); /*

Imprime el borde de la esquina superior izquierda┗ */

for(I = 1;i<44;i++)

patch(0x CD); /*

Imprime la línea horizontal del borde inferior

*/

patch(0x BC /*

Imprime la parte inferior derecha); borde de esquina┛ */

Ventana (11, 3, 53, 19); /*

Crea una ventana para mostrar el menú,

Establece el tamaño. según el número de menús.

Contar

*/

clr SCR(); /*

cls

*/< / p>

for(I = 0;i<16;i++) /*

Matriz del menú principal de salida

*/

{

gotoxy(10, I+1);

cprintf("%s ", menú[I]);

}

fondo de texto (negro) ; /*

Establece el color de fondo en negro.

*/

Ventana (1, 1, 80, 25) /*

Restaurar el tamaño original de la ventana

*/

gotoxy(10, 21); /*

Mover el cursor

*/

Hacer {

printf ("\n

Ingrese

su

elección(0 ~ 14):"; /*

Mostrar en el ventana de menú Fórmula

Mensaje de aviso

*/

scanf("%s ", s); /p >

*/

c = atoi(s);/*

Convierte la cadena de entrada a un número entero

*/

} while(c <0 | | c >14);/*

El elemento seleccionado no existe

0~14

Retransmisión entre sitios

*/

Regresar

c;/*

Regresar a la selección,

El programa principal llama a la función correspondiente basándose en este número.

*/

}

Estudiante *init()

{

Devolver NULL

}

/*

Crear lista de enlaces

*/

Estudiante* Crear()

{

int I; int s;

ESTUDIANTE *h=NULL, *info/*Estudiante

Puntero a estructura

*/

for(;;)

{

info=(estudiante*)malloc(tamañode(estudiante));/*

Solicitar espacio

*/

If (! información)/*

Si puntero

Información

Vacío

*/

{

printf("\nMemoria insuficiente");/*

Desbordamiento de memoria de salida

*/

Devolver NULL/*

Devolver un puntero nulo

*/

}

Input ("Ingrese número:", información -& gt; No, 11); /*

Ingrese el número de estudiante y verifíquelo.

*/

if(info-& gt; no [0]=='@ ') separator; /*

Si el número de identificación del estudiante es Un carácter es

@

y luego finaliza la entrada.

*/

Enter("Ingrese nombre:", info->Nombre, 15); /*

Ingrese nombre y verifique.

*/

printf("Ingrese %d puntaje\n ", N /*

Solicitud para comenzar a ingresar puntajes

<); p >*/

s = 0; /*

Calcula la puntuación total de cada alumno, el valor inicial es

0*/

for(I = 0;i<n;i++) /*N

Ciclo del curso

Normal

Tiempo

*/

{

Hacer {

printf("Score %d:", I+1 /*

Preguntar cuál desear); elegir curso?

*/

scanf("%d ", & información-> puntuación[I]); /*

Ingrese la puntuación

*/

if(info->score[I]>100 | |info->score[I]<0) /*

Asegúrate de que la puntuación está dentro

0~100

Entre...

*/

printf("Datos incorrectos, repita la entrada\n " ); /*

Mensaje de error

*/

} while(info-& gt; puntuación[I]& gt; 100 | |Información-> score[I]<0);

s = s+info->Score[I];/*

Acumula el puntaje de cada clase de puerta.

*/

}

Información->suma = s;/*

Guardar puntuación total

*/

Información -& gt; promedio = (punto flotante) relación señal-ruido /*

Promedio

*/

Información-& gt; orden = 0;*

Antes de ordenar, el valor es

0*/

Información-& gt ; next = h; /*

Considere el primer nodo como el nodo sucesor del nuevo nodo de entrada.

*/

h = info/*

El nuevo nodo de entrada es el nuevo nodo principal.

*/

}

Return (h); /*

Devuelve el puntero principal

* /

}

/*

Ingrese una cadena y verifique su longitud.

*/

Entrada (char *prompt, char *s, int count)

{

char p[255];

Hacer {

printf (prompt); /*

Mostrar información de solicitud

*/

scanf ("%s ", p); /*

Ingrese cadena de caracteres

*/

if(strlen(p)>count)printf(" \ n¡Demasiado largo! \n ");/*

Compruebe la longitud, super

aprobada

Conteo

Vuelva a ingresar el valor.

*/

}mientras(strlen(p)>cuenta);

strcpy(s, p); Copia una cadena de entrada en una cadena.

s

Medio

*/

}

/*

Salida Información del nodo en la lista enlazada

*/

Desactivar impresión (estudiante *h)

{

int I = 0; *

Cuenta el número de registros

*/

Estudiantes* p;* /*

Mover el puntero

* /

clr SCR(); /*

cls

*/

p = h /*

Puntero de cabeza con valor inicial

*/

printf(" \ n \ n \ n *************** * * * * * * * * * * * *Estudiantes* * * * * * * * * * * * * * * * "

* * * * * * * * * * * * \ n ");

printf(" | rec | nO | nombre | sc 1 | sc2 | sc3 | suma |

ave | orden | \ n ");

printf(" |-|-|-|-|-|-|-|-|-

-|-| \ n "); ! = vacío)

{

i++;

printf("|%3d

| %-10s | %-15s | % 4d | % 4d | % 4d |

%4.2f

|

%4.2f

|

%3d

|\n ",

Yo, p-& gt; No, p-& gt; Nombre, p-& gt; Puntuación [0], p ->puntuación[1],

p->puntuación[2],p->suma,p->promedio, p->orden);

p = p-& gt; siguiente;

}

printf(" ******************* * * * * * * * * * * * * * * * * *Fin* * * * * * * * * * * * * * * * * * * * *

* * * * * * * * * * * \ n ");

}

/*

Eliminar registro

*/

Estudiante* eliminar(Estudiante*h)

{

Estudiante*p, *q; /*p

Para encontrar el puntero del nodo que se va a eliminar,

q

como puntero predecesor

*/

char s[11] /*

Almacenamiento; número de estudiante

*/

clr SCR();/*

cls

*/

printf ("Elimine\n");/*

Mostrar información de solicitud

*/

scanf("%s ", s) ;/*

Ingrese el número de estudiante del registro a eliminar.

*/

Simplemente modifíquelo usted mismo.

Jaja, esto es personalizado, ¿quién tiene tiempo para ayudarte? ¡Esto cuesta dinero porque es una pérdida de tiempo para otras personas!