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 p>
{ 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>
{
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;
} p>
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=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)
{ p>
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); p>
{
printf("No hay ningún estudiante que esté buscando.");
return 0;
}
//Función de menú
anular
menú(Lista L)
{ p>
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); p >
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