La Red de Conocimientos Pedagógicos - Currículum vitae - Código del sistema de gestión de información de estudiantes en lenguaje C

Código del sistema de gestión de información de estudiantes en lenguaje C

El código es el siguiente:

#includelt;stdio.hgt;

#includelt;malloc.hgt;

#includelt ;stdlib.hgt;

#includelt;string.hgt;

#includelt;conio.hgt;

typedef struct examinate //Estructura de información del candidato

{ char examno[20]; //Número de boleto de admisión

char name[10]; //Nombre

char sex[4]; /p>

edad corta; //Edad

char examtype[10]; //Asuntos de aplicación

}ElemType;

typedef struct Node / /Definición de lista enlazada Nodo

{

ElemType data; //Campo de datos

struct Node *next; //Campo de puntero

}Node, *List, *position;

List make_empty( List L); //Crea una lista vacía con el nodo principal

int is_empty(List L); si la lista vinculada es Lista vacía

int is_last(position p, List L //Prueba si la posición actual es el final de la lista

position make_node(position p, int n); //Crea un nodo e ingresa la información del candidato

void put_information(position p); //Si se genera la información del candidato

void put_name_information(List L); // Muestra la información del nombre del candidato xx

p>

int put_pos_information(position p); // Muestra la información del candidato en esta dirección

void link_to_tail(List L, position p); //Conectar el nodo al final de la tabla

int ciculación_make(); //Crear información del candidato en un bucle

int Judge_put_all() //Si generar todos los candidatos información

void put_all(List L); //Enviar toda la información del candidato.

position find(List L); //Encuentra el primer elemento llamado xx y devuelve la posición

position find_previous(List L); //Encuentra el primer elemento llamado xx El elemento de xx y devuelve la posición del predecesor inmediato del elemento

//int Judge_delete_val(); //Pregunta si se eliminan los datos del candidato

int delete_val(List L); //Elimina la información del candidato especificada y genera su información

void menu(List L); //Función de menú

List L;

//posición p ;

int

main( void )?

{

Lista L = NULL //Definir el puntero del nodo principal

p>

position p = NULL; //Definir puntero de trabajo de tabla

L = make_empty( L ); //Crear tabla vacía

printf("\t\t\); t★★Programa de gestión de registro de candidatos★★\n\t\t----------------------------------- ----- \n");

menú(L);

regresar 0;

}

//Crear un nodo principal Lista vacía

Lista

make_empty( Lista L)

{

L = ( Lista ) malloc (tamañode( Nodo ));

if(NULL == L)

{

printf("Error en la asignación de memoria");

salir( 1 );

}

L-gt; next = NULL;

//printf("La tabla vacía se creó correctamente.

\n");

return L;

}

//Crea un nodo e ingresa la información del candidato

posición

make_node(position p, int n)

{

if(n) //n es 1 para crear un nodo e ingresarlo, n a 0 es para modificar

{

p = ( posición ) malloc ( tamaño de ( Nodo )); }

printf("Ingrese el número de boleto de admisión del candidato: ");

gets(p-gt; data.examno); Ingrese el número de boleto de admisión del candidato:"); Nombre: ");

gets(p-gt;data.name);

do

{

printf("Ingrese el sexo del examinado. Solo puede ingresar "masculino" o "femenino": ");

gets(p-gt; data.sex) ;

}

while( 0 != strcmp( p-gt; data.sex, "masculino" ) amp; amp; 0 != strcmp( p-gt; data. sex, "female" )); // Determina si el género es incorrecto

printf("Ingrese la edad del candidato:

scanf("hd", amp; p-gt; data.age);

getchar ();? //Si se elimina esta oración, la categoría de aplicación siguiente "no se podrá ejecutar"

/*El do while a continuación se utiliza para determinar si la categoría de la aplicación se ingresó incorrectamente*/

do

{

printf("Ingrese la categoría de la aplicación , sólo "matemáticas" o "inglés" o "estructura de datos":");

gets(p-gt;data.examtype);

}

while( 0 != strcmp( "Inglés", p-gt; data.examtype) amp; amp; 0 != strcmp("matemáticas", p-gt; data.examtype) amp; amp; 0 != strcmp( "estructura de datos", p-gt; data.examtype));

if(n)

{

printf("Registro exitoso\n") ;

}

else

{

printf("Modificación exitosa\n");

}

return p;

}

//Método de interpolación directa;

void

link_to_tail(List L) , posición p)

{

p-gt ; siguiente = L-gt; siguiente

L-gt;

}

//Encuentra el primer elemento llamado xx y devuelve la posición

posición

buscar (Lista L)

{

position p = L-gt; next;

char name[10];

printf("Ingrese el nombre del candidato que está buscando para:");

obtiene(nombre);

mientras( p != NULL amp; amp

; 0 != strcmp(p-gt;datos.nombre, nombre))

{

p=p-gt;siguiente;

}

return p;

}

//Prueba si la lista enlazada está vacía

int

is_empty( List L )

{

return L-gt; next == NULL

}

//Prueba si la posición actual es el final de la tabla

int

is_last(position p, List L)

{

return p-gt; = NULL;

p>

}

// Genera la información del candidato denominada xx

void

put_name_information( Lista L )

{

posición p = buscar(L);

if(p!=NULL)

{

printf("Desea encontrar información del candidato:\n");

printf("Número de boleto de admisión: s\tNombre: s\tGénero: s\tEdad: hd\tAsunto de la solicitud: s \n\n" , p-gt; datos.examno, p-gt; datos.nombre, p-gt; datos.sexo, p-gt; datos.edad, p-gt; datos.tipo de examen);

}

else

{

printf("No hay ningún estudiante que estés buscando.

\n");

}

}

//Bucle para crear información del candidato

int

ciculación_make()

{

int n = 2;

hacer

{

printf("Hacer ¿Quieres continuar? ¿Crear información del candidato? Ingresa "1" o "0": ");

scanf("d",amp; n);

getchar().

}

mientras( n != 0 amp; amp; n != 1

return

}

//Si se debe generar información del candidato

void

put_information( posición p )

{

int n= 2;

do

{

printf("¿Desea generar la información del candidato? En caso afirmativo, ingrese "1", en caso contrario , ingrese "0":") ;

scanf("d",amp; n);

getchar();

}

while( n != 0 amp;amp; n != 1);

if(n)

{

printf("Admisión número de ticket: s\tNombre: s \tGénero: s\tEdad: hd\tAsuntos de aplicación: s\n", p-gt; data.examno, p-gt; data.name, p-gt; data.sex, p -gt; data.age, p-gt; data.examtype);

}

}

//Si se genera toda la información del candidato

int

judge_put_all()

{

int n = 2;

hacer

{

printf("¿Desea generar toda la información del candidato? En caso afirmativo, ingrese "1", si no, ingrese "0":");

scanf("d ", amp; n);

getchar();

}

mientras( n != 0 amp; amp; n != 1);

return n;

p>

}

//Envía toda la información del candidato

void

put_all(List L)

{

if(L-gt; next == NULL)

{

printf("No hay candidatos registrados ¡ahora! \n");

}

else

{

posición p=L-gt; siguiente;

while( p != NULL )

{

printf("Número de boleto de admisión: s\tNombre: s\tGénero: s\tEdad: hd\tAsunto de solicitud: s\ n", p-gt; datos.examno, p-gt; datos.nombre, p-gt; datos.sexo, p-gt; datos.edad, p-gt; datos.tipo de examen);

p=p-gt;siguiente;

}

}

//getchar();

}

//Preguntar si se deben eliminar los datos del candidato

int

judge_delete_val()

{

>int n = 2;

do

{

printf("¿Quiere eliminar los datos de un determinado candidato? Introduzca "1" en lugar de " 0": ");

scanf("d",amp;n);

getchar();

}

while( n != 0 amp; amp; n != 1);

return n;

}

// Encuentra el primer elemento xx y devuelve la posición de su predecesor inmediato

position

find_previous( List L )

{

position q = L;

position p = L-gt; next;

char name[10];

printf("Ingrese el nombre del candidato que está buscando: ")

obtiene(nombre);

mientras( p != NULL amp; 0 != strcmp( p-gt; data.nombre , nombre))

< p; >{

q=p;

p=p-gt;siguiente;

}

if( p != NULL )

{

devuelve q;

}

si no

devuelve p;

}

//Eliminar la información del candidato especificado y generar su información

int

delete_val(List L)

{

int n=2;

position q=NULL;

position p=find_previous( L ); //Devolver dirección de información del candidato

if( NULL == p )

{

printf("El candidato que desea eliminar no existe\n");

return 0;

}

else

{

q = p-gt;

p-gt; = q -gt;next;

printf("Eliminación exitosa.

\nLa información del candidato eliminado es:\n");

printf("Número de boleto de admisión: s\tNombre: s\tGénero: s\tEdad: hd\tAsunto de solicitud: s\ n", q- gt; datos.examno, q-gt; datos.nombre, q-gt; datos.sexo, q-gt; datos.edad, q-gt; ;

return 1;

}

}

//Envíe la información del examen en esta dirección

int

put_pos_information( posición p )

{

if(p != NULL )

{

printf("Número de boleto de admisión: s\tNombre: s\tGénero: s\tEdad: hd\tAsunto de solicitud: s\n\n", p-gt; data.examno, p-gt; data.name, p-gt ; datos.sexo, p-gt; datos.edad, p-gt; datos.examtype

devuelve 1

}

else

{

printf("No hay ningún estudiante que esté buscando.");

return 0;

}

//Función de menú

anular

menú(Lista L)

{

printf("\t\t\t a. Entrada de registro de candidatos\n");

printf("\t\t\t b. Consultar información del candidato\n"); p>printf("\t\t\t c. Modificar información del candidato\n");

printf("\t\t\t d. Eliminar información del candidato\n"

printf("\t\t\t e. Toda la información del candidato\n");

printf("\t\t\t f. Información del autor del programa\ n");

printf("\t\t\t g. Salir del programa\n");

char n='h';

while(n != 'g')

{

do? //Asegúrate de que la entrada sea correcta

{

printf("Seleccione la función por número alfabético: ");

n = getchar();

getchar();

putchar('\n');

n = getchar();

getchar();

putchar('\n');

p>

if( n lt; 'a ' || n gt; 'g')

{

printf("Número alfabético incorrecto.

\n");

}

}

mientras( n lt; 'a' || n gt; 'g' );

switch (n)

{

case 'a':

{

printf("Ingrese el candidato registrado información :\n");

posición p = make_node( p, 1); //Crear un nuevo nodo

link_to_tail( L, p); //Conectar el nuevo nodo a la tabla

put_information( p ); //Si se genera la información del candidato

putchar('\n');

}

romper;

caso 'b':

{

put_name_information( L );

putchar('\n' ) ;

}

romper;

caso 'c':

{

int n=0

posición p = NULL;

printf("Estás haciendo una modificación.\n");

p = find(L);

n = put_pos_information( p );

if(n)

{

make_node( p , 0);

put_information( p ); //Si se genera la información del candidato

}

putchar('\n');

}

break;

case 'd':

{

printf("Estás realizando una operación de eliminación.\n");

eliminar_val( L );

putchar('\n');

}

romper

caso '; e':

{

put_all( L

putchar('\n');

break;

case 'f':

{

printf("? ¿Fecha de modificación? ¿Número de versión? ¿Modificador? ¿Contenido de la modificación? \n"

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

printf("? 2018.6.19? v2.0 Chen Baichuan agregó el menú principal\n ");

printf("? 2018.6.23? v3.0 Chen Baichuan agregó la función de generar archivos\n\n");

printf("? Este número de versión es v2.0\ n");

putchar('\n');

}

break;

predeterminado:

break;

}

}

printf("Gracias por este uso y te deseo una vida feliz. ");

getch();

}

Información ampliada:

El lenguaje C es un lenguaje de programación informática general ampliamente utilizado. Se utiliza para desarrollo de bajo nivel.

El objetivo de diseño del lenguaje C es proporcionar un lenguaje de programación que pueda compilarse fácilmente, manejar memoria de bajo nivel, generar una pequeña cantidad de código de máquina y que pueda ejecutarse sin ningún soporte de entorno de ejecución.

Aunque el lenguaje C proporciona muchas funciones de procesamiento de bajo nivel, aún mantiene buenas características multiplataforma. Los programas en lenguaje C escritos en una especificación estándar se pueden compilar en muchas plataformas informáticas, incluso incluyendo algunos procesadores integrados (únicos). -microcomputadora con chip o MCU) y supercomputadoras y otras plataformas operativas.

En la década de 1980, para evitar diferencias en la sintaxis del lenguaje C utilizada por varios desarrolladores, la Oficina Nacional Estadounidense de Estándares formuló un conjunto completo de sintaxis estándar nacional estadounidense para el lenguaje C, llamado ANSI C. , como estándar original del lenguaje C. [1]? Actualmente, el 8 de diciembre de 2011, el estándar C11 publicado por la Organización Internacional de Normalización (ISO) y la Comisión Electrotécnica Internacional (IEC) es el tercer estándar oficial para el lenguaje C y el último estándar para el lenguaje C. Este estándar es mejor. Admite nombres de funciones de caracteres chinos e identificadores de caracteres chinos, y realiza la programación de caracteres chinos hasta cierto punto.

El lenguaje C es un lenguaje de programación informática orientado a procesos, que se diferencia de los lenguajes de programación orientados a objetos como C y Java.

Los principales compiladores incluyen Clang, GCC, WIN-TC, SUBLIME, MSVC, Turbo C, etc.

Materiales de referencia:

Enciclopedia Baidu - Lenguaje C