Código fuente del sistema de ingreso de puntajes de estudiantes
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
*/ p>
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; /* p>
Eliminar registros
*/
Caso 3: Imprimir (cabecera); registros
*/
Caso 4: Búsqueda (cabeza); /*
Buscar registros
*/ p>
Caso 5 :Guardar (head); break /*
Guardar archivo
*/
Caso 6: head = load() ; break; /* p>
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; p>
*/
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 p >
*/
" 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
*/
{ p>
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 p>
*/
Devolver NULL/*
Devolver un puntero nulo
*/
} p>
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
*/ p; >
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 /* p>
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!