Red de conocimientos sobre prescripción popular - Cuidado de la salud en otoño - ¡Ayuda! Ayude a modificar el plan de diseño del curso de lenguaje C.

¡Ayuda! Ayude a modificar el plan de diseño del curso de lenguaje C.

Espero que ayude.

Información relacionada:

Un sistema de estadísticas de desempeño estudiantil hecho en lenguaje C

/*Programa fuente 11.3.2*/

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

/* * * * *Archivo de encabezado (.h)* * * * * * * */

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

#include "stdlib.h" /*Otros comentarios*/

#include "string.h" /*Función de cadena*/

#Include "conio. h" /*Función de operación de pantalla*/

#include " mem. h" /*Función de operación de memoria*/

#include "ctype.h" /*Función de operación de caracteres*/

#include "alloc.h" /*Función de asignación de dirección dinámica */

# define N ^ 3/*Definir constantes*/

Typedef struct z1 /*Definir estructura de datos*/

{

Número de carácter[11];

nombre de carácter[15];

puntuación int[N];

Suma flotante;

Promedio flotante;

int orden;

struct z 1 * next;

}Estudiante;

/*a continuación está la función prototipo*/

Estudiante* init();/*Función de inicialización*/

Estudiante* create();/*Crear una lista enlazada*/

Estudiante*Eliminar(Estudiante*h);/*Eliminar registro*/

Nular impresión(Estudiante*h);/*Mostrar todos los registros*/

Nular búsqueda(Estudiante*h ); /*Buscar*/

void save(Estudiante* h); /*Guardar*/

Estudiante* cargar() /*Leer registros*/;

void computer(estudiante * h);/*calcular puntaje total y puntaje promedio*/

estudiante * insertar(estudiante * h);/*insertar registro*/

void append();/*Registro adicional*/

void copy();/*Copiar archivo*/

Estudiante * sort (estudiante * h); /* Ordenar */

Indice de estudiante*(estudiante* h); /*Índice*/

void total(estudiante* h /*Número total por categoría*/int menu _ select();/*Función de menú*/

/* * * * * *Se inicia la función principal* * * * * *

Principal()

{

int I;

Estudiante*head;/*Puntero de encabezado de definición de lista vinculada*/

head = init() ;/* Inicializar la lista enlazada*/

clr SCR();/*Borrar la pantalla*/

for(;;)/*Bucle infinito*/

{

Switch(menu_select()) /*Llama a la función del menú principal y devuelve un número entero como condición de la instrucción Switch*/

{/*Los valores son diferentes Y las funciones ejecutadas también son diferentes.

break no se puede omitir*/

Caso 0: head = init(); break /*Realizar inicialización*/

Caso 1: head = create(); Crear una lista vinculada*/

Caso 2: head=delete (head); /*eliminar registro*/

Caso 3: print (head); mostrar todo Registro*/

Caso 4: Buscar (cabecera);*Buscar registro*/

Caso 5: Guardar (cabecera); /

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

Caso 7: Computadora (head /*Calcular puntaje total y puntaje promedio); * /

Caso 8: encabezado = insertar (encabezado); /*insertar registro*/

Caso 9: copiar(); /*copiar archivo*/< / p>

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

caso 11:append(); p >Caso 12: head=index (head); /*index*/

Caso 13: total (head); /*Número total por categoría*/

Caso 14: Salir (0); /*Si el valor de retorno del menú es 14, el programa finaliza*/

}

}

}

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

menu_select()

{

char * menu[]= { * * * * * * * * * * * menú * * * * * * * * * * * * * * * * * * * *, /* define la matriz de cadenas del menú*/

" 0. Inicializar lista", /* Inicializar */

"1. Lista de entrada", /*Ingresar registro*/

"2 Eliminar registro de la lista", /*Desde. tabla Eliminar registros en */

"3. Imprimir lista", /*Mostrar todos los registros en una lista enlazada individualmente*/

"4. Buscar registros por nombre", /* Por nombre Buscar registros*/

"5. Guarde el archivo", /*Guarde los registros de la lista enlazada individualmente en un archivo*/

"6. Cargue el archivo" , /*Del archivo Leer registros en */

"7. Calcular puntuaciones", /*Calcular las puntuaciones totales y medias de todos los estudiantes*/

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

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

"10. files", /* Ordenar */

"11.Agregar registros al archivo", /*Agregar registros al archivo*/

"12.Indexar por número",/* indexar */

"13. Número total", /*Total por categoría*/

" 14. Salir" } /*Salir*/

char s[ 3]; /*Guardar el número de selección en forma de carácter*/

int c, I; /*Definir una variable entera*/

gotoxy(1, 25); /*Mover cursor*/

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

getch(); /*Ingresa cualquier clave*/

clr SCR(); /*Borrar la pantalla*/

gotoxy(1, 1); /

textcolor(amarillo);/*Establece el color de visualización del texto en amarillo*/

textbackground(blue);/*Establece el color de fondo en azul*/

gotoxy (10, 2); /*Mover el cursor*/

patch(0xc 9); /*Imprimir el borde de la esquina superior izquierda┏ */

<

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

patch(0x CD);/*Emite la línea horizontal del borde superior*/

patch(0x bb);/* Muestra el borde de la esquina superior derecha┓ */

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

{

gotoxy(10,I);putch( 0x ba); /*Imprime la línea vertical izquierda*/

gotoxy(54, I); putch(0x ba);

}/*Imprime la línea vertical derecha*/

gotoxy(10, 20); putch(0x c8); /*Importa 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 el borde de la esquina inferior derecha ┛ */

<); p>Window (11, 3, 53, 19); /*Crea una ventana para mostrar el menú El tamaño de la ventana se diseña de acuerdo con el número de menús*/

clr SCR(); /*Borrar la pantalla*/

for(I = 0;I<16;I++) /*Salir matriz del menú principal*/

{

gotoxy(10 , I+1);

cprintf("%s ", menú);

}

textbackground(negro); black*/

Ventana (1, 1, 80, 25); /*Restaurar el tamaño original de la ventana*/

gotoxy(10, 21); /

Hacer {

printf("\nIngrese su elección (0 ~ 14):" /*Mostrar información de solicitud fuera de la ventana del menú*/

scanf("%s ", s) ;/*Opciones de entrada*/

c = atoi(s);/*Convertir la cadena de entrada a un número entero*/

} while(c & lt; 0 | | c >;14);/*El elemento seleccionado no está entre 0 y 14.

Vuelva a ingresar*/

Volver a c /*Volver a la opción, el programa principal llama a la función correspondiente según el número*/

}

Estudiante *init()

{

Devolver NULL

}

/*Crear una lista enlazada*/

Estudiantes* crear ( )

{

int I; int s;

ESTUDIANTE *h=NULL, *info/*Puntero de estudiante a estructura */

for(;;)

{

info=(estudiante*)malloc(sizeof(estudiante));/*Espacio de aplicación*/

if (!Info) /*Si la información del puntero está vacía*/

{

printf("\nMemoria insuficiente"); */

Devolver NULL/*Devolver puntero nulo*/

}

Entrada ("Ingrese número:", información -& gt; No, 11) ; /*Ingrese el número de estudiante y marque */

if(info-& gt; no [0]=='@ ') delimitador /*Si el primer carácter del número de estudiante es @; la entrada termina */

Input("Ingrese el nombre:", información -> nombre, 15 /*Ingrese el nombre y verifique*/

printf("Por favor, ingrese %d); score\n " , N); /*Solicita comenzar a ingresar puntajes*/

s = 0; /*Calcula el puntaje total de cada estudiante, el valor inicial es 0*/

for(I = 0;I<n;I++) /*Recorrer N cursos N veces*/

{

Hacer {

printf("Puntuación % d:" , I+1); /* Preguntar a qué curso asistir */

scanf ("%d ", & amp information-> puntuación); /* Ingresar la puntuación */

if(info->Puntuación>100 | |Información->Puntuación<0) /*Asegúrese de que la puntuación esté entre 0~100*/

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

} while(info->score>100 | |info->score<0);

s = s+ info-& gt; Puntuaciones acumuladas de cada curso*/

}

Información-& gt;sum = s /*Guardar la puntuación total*/

Información-> Promedio = (coma flotante) relación señal-ruido;/*Promedio*/

Información->Orden = 0;/*El valor antes de ordenar es 0 */

Información -> next = h; /*usa el primer nodo como nodo sucesor del nuevo nodo de entrada*/

h = info/*nuevo nodo de entrada Es el nuevo nodo principal*/

}

Return (h); /*Devuelve el puntero principal*/

}

/ *Ingresa una cadena y verifica su longitud*/

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

{

char p[255 ]

Hacer {

printf(prompt); /*Mostrar información de solicitud*/

scanf("%s ", p); (strlen(p)>count)printf("\n¡Demasiado largo! \n ");/*Comprueba la longitud y vuelve a ingresar*/

} while(strlen(p)>count);

strcpy(s, p);/* Convertir Copiar la cadena de entrada a la cadena s */

}

/*Imprimir la información del nodo en la lista vinculada*/

Deshabilitar la impresión (estudiante *h )

{

int I = 0 /*Número de registros estadísticos*/

<

p>Estudiante* p; /*Mover el puntero*/

clr SCR(); /*Borrar la pantalla*/

p = h; puntero de cabeza*/

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

printf(" | rec | nO | nombre | sc 1 | sc2 | suma | n ");

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

Y (p!=null)

{

i++;

printf (" | % 3d | %-10s | %-15s | % 4d | % 4d | % 4d | % 4.2f | % 4.2f | % 3d | \n ",I,p->No,p-> Nombre,p ->puntuación[0],p->puntuación[1],

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

p = p->Siguiente;

}

printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * fin * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n ");

}

/*Eliminar registro*/

Estudiante*Eliminar(Estudiante*h)

{

Estudiante *p, * q; /*p es el puntero del nodo que se eliminará, q es su puntero predecesor*/

char s[11];/*Almacenamiento estudiante number*/

clr SCR();/*Borrar pantalla*/

printf("Por favor eliminar\n");/*Mostrar información de solicitud */

scanf("%s ", s); /*Ingrese el número de estudiante del registro a eliminar*/

q = p = h /*Dar Q y P Asignar valor inicial*/

while(strcmp(p-& gt; No, s)&& ampp! =NULL) /*Cuando el número de estudiante registrado no es el que buscas, o el puntero no es nulo*/

{

q = p /*Asigna la P; valor del puntero a Q, como puntero predecesor de P*/

p = p-& gt Siguiente /* Apunta el puntero P al siguiente registro*/

}

If(p==NULL) /*Si p está vacío, el nodo no está en la lista enlazada*/

printf("\nlist no %s estudiante\n ", s);

De lo contrario /*p no está vacío, muestra la información del registro encontrado*/

{

printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * Encontrado* * * * * * * * * * * * * * * * * * * * * * * * * * \n ");

printf(" | no | nombre | sc 1 | sc2 | sc3 | suma | ave | orden | \ n ");

>

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

printf(" | %-10s | %-15s | % 4d | % 4d | % 4d | % 4.2f | % 4.2f | puntuación[0], p-> puntuación[1], p-> puntuación[2], p-> suma,

p->; /p>

printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * fin * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \n ");

getch();/*Después de presionar cualquier tecla, Eliminar*/

If(p==h) /*Si p==h, el nodo eliminado es el nodo principal*/

h = p-& gt; puntero para apuntar al siguiente registro*/

Otros

q->;next = p-& gt;Next;/*No es el puntero principal, P's Se considera el nodo sucesor como nodo sucesor de Q*/

Free (p); /*Libera el espacio del nodo indicado por P*/

printf("\n%s estudiantes no fueron eliminados \ n ", s);

printf("No olvides guardar\n "); /*No olvides guardar el archivo después de eliminarlo*/

}

Retorno (h); /*Regresar puntero de cabeza*/

}

Otros relacionados:

/% BB % AA % C4 % CF % D0 % a 1% d 1% BC/blog/item/a5b F6 e 10 e0d 2d 104213 F2 ECD html

Descripción en lenguaje C del código fuente para estadística del rendimiento de los estudiantes

Solo como referencia, estudie por su cuenta.

Espero que esto ayude.