Código del sistema de gestión de información de estudiantes en lenguaje C
# include & ltstdio.h & gt
# include & ltmalloc.h & gt
# include & ltstdlib.h & gt p>
# include & ltstring.h & gt
# include & ltconio.h & gt
Verificación de estructura Typedef//estructura de información del candidato
{?char exampno[20]; //Número de boleto de admisión
Nombre del personaje[10]; //Nombre
char sex[4]; p>
Edad joven; //Edad
char examen tipo[10]; //Asignaturas de aplicación
} ElemType
Nodo de estructura Typedef // Defina un nodo de lista vinculada.
{
Datos de tipo de elemento; //campo de datos
Nodo de estructura * siguiente//campo de puntero
} nodo, * lista , *Posición;
Lista make _ vacía(Lista L); //Crea una lista vacía con los nodos principales.
int is_empty(List L); //Prueba si la lista vinculada está vacía.
int es _last (posición p, lista L); //Prueba si la posición actual es el pie de página.
position make_node(position p, int n); //Crea un nodo e ingresa la información del candidato.
void put_information(position p); //¿Se debe generar información del candidato?
void put_name_information(list L); //Envía la información del candidato denominada xx.
int put_pos_information(position p); //Enviar información del candidato en esta dirección.
void link_to_tail(list L, position p); //Conecta el nodo al pie de página
int ciculación _ make(); //Crea información del candidato en un bucle.
int Judge _ put _ all(); //Si generar la información de todos los candidatos
void put _ all(List L); .
Búsqueda de posición (lista L); //Encuentra el primer elemento llamado xx y devuelve la posición.
Posición find_previous(list L); //Busca el primer elemento llamado xx y devuelve la posición de su predecesor inmediato.
//int Judge _ delete _ val(); //Pregunta si desea eliminar los datos del candidato.
int delete _ val(List L); //Elimina la información del candidato especificado y la genera.
menú vacío (lista L); //Función del menú
Lista L;
//Posición p;
(Igual que Organizaciones internacionales )Organización internacional
principal( void)?
{
Lista L = NULL//Definir el puntero del nodo principal
Posición p = null //Definir el puntero de trabajo de la tabla
<; p> L = make _ vacío(L);//Crear una tabla vacíaPrintf ("\ t \ t \ t ★★★Programa de gestión de registro de candidatos★ \ n \ t \ t -.< /p >
Menú (izquierda);
Retorno 0;
}
//Crea una tabla vacía con nodos principales.
Directorio
make_empty(Lista L)
{
l =(Lista)malloc(tamañode(Nodo)); p>
p>
if(NULL == L)
{
Printf("Error en la asignación de memoria");
Salir( 1);
p>}
l-& gt; next = NULL
//printf("La tabla vacía se creó correctamente.\n " );
Return L;
}
//Cree un nodo e ingrese la información del candidato.
Posición
make_node(posición p, entero n)
{
Si (n) //n es 1, crea Y ingrese el nodo, si n es 0, modifique el nodo.
{
p = (posición) malloc ( tamaño de (nodo));
p->; siguiente = NULL
}
Printf("Ingrese el número de boleto de admisión del candidato:");
Obtener (p-& gt; datos. número de examen); "Por favor, introduzca el nombre del candidato:");
Obtener (p->data.name);
Hacer
{
Printf("Ingrese el género del candidato, solo puede ser "masculino" o "femenino":);
Get (p-& gt; data. sex);
}
And (0!= strcmp(p->Data.sex, "masculino")&;& amp0 != strcmp(p->Data.sex, "female"); //Determine si el género es incorrecto.
Printf("Ingrese la edad del solicitante:");
scanf("%hd", &p->data.age );
getchar();? //Si se elimina esta oración, las siguientes categorías de aplicaciones no se implementarán
/*El siguiente do while se utiliza para determinar si. la categoría de la aplicación se ingresó incorrectamente*/
Do
{
Printf("Ingrese la categoría de registro, solo puede ser "Matemáticas" o "Inglés" o "Estructura de datos":);
Obtener (p-& gt; datos . tipo de examen
}
Y (0!= strcmp(); "Inglés", p-& gt; datos .tipo de examen)&&0 != strcmp("Matemáticas",p->datos.tipo de examen)&&0 != strcmp("Estructura de datos",p-> data.tipo de examen));
If (n)
{
Printf("Registro exitoso\ n ");
} p>
Otro
{
Printf("Modificación exitosa\ n ");
}
Regresar p;
}
//Método de preinserción;
Vacío
link_to_tail (lista L, posición p)
{
p->;siguiente = L->siguiente;
l->siguiente = p;
}
//Encuentra el primer elemento llamado xx y devuelve la posición.
Posición
Buscar (lista L)
{
Posición p = L-& gt; p>Nombre del personaje[10];
Printf("Ingrese el nombre del candidato que está buscando:");
Obtener (nombre);
Y (p != NULL & amp& amp0 != strcmp(p->data.name,name))
{
p = p->Siguiente ;
}
Regresar p;
}
//Pruebe si la lista vinculada está vacía.
(Igual que organizaciones internacionales) Organizaciones internacionales
is_empty(lista L)
{
Regresar L-& gt; NULL
}
//Prueba si la posición actual es el pie de página.
(Igual que organizaciones internacionales) Organizaciones internacionales
is_last(posición p, lista L)
{
Regresar p-& gt; next = = NULL
}
//Muestre la información del candidato denominada xx.
Vacío
Subir información del nombre (lista L)
{
Posición p = buscar(L);
If (p!=null)
{
Printf("La información del candidato que buscas:\ n ");
Printf( " Número de inscripción: %s\tNombre:%s\tGénero:%s\tGénero:%HD\Asunto:%s\n\n",p->data.examno,p->data .name, p-> ;data.sex, p->data.age, p->data .tipo de examen);
}
Otro
p>{
Printf("No hay ningún estudiante que esté buscando. \ n ");
}
}
//Pasar a crear información del candidato.
(Igual que organizaciones internacionales) Organizaciones Internacionales
ciculación_make()
{
int n = 2;
Hacer
{
Printf("¿Desea continuar creando información del candidato? En caso afirmativo, ingrese "1", si no, ingrese "0":);
scanf("%d ", & ampn);
getchar();
}
Y (n!= 0 & amp& ampn!= 1) ;
Return n;
}
//¿Quieres generar información del candidato
Vacío?
put_information (posición p)
{
int n = 2;
Hacer
{ p>
Printf(" ¿Quiere generar la información del candidato? En caso afirmativo, ingrese "1", si no, ingrese "0":);
scanf("%d " , & ampn);
getchar ();
}
Y (n!= 0 & amp& ampn!= 1);
If (n)
{
Printf("Número de admisión: % s \ t Nombre: % s \ t Género: % s \ t Asunto: % HD \ t Asunto : %s\n ", p-& gt; data. examno,p->data.name,p->data.sex,p->data.age,p->data.tipo de examen);
} p>
}
//Si se genera información sobre todos los candidatos
(Igual que las organizaciones internacionales) Organizaciones internacionales
judge_put_all()
{
int n = 2;
Hacer
{
Printf("¿Desea generar la información de todos los candidatos? Ingrese "1" en caso afirmativo, ingrese "0" en caso contrario:);
scanf("%d ", & ampn);
getchar();
}
Y (n!= 0 & amp& ampn!= 1);
Devuelve n;
}
/ /Enviar toda la información del candidato
Vacío
put_all(lista L)
{
If (L-& gt ;next == NULL)
{
Printf("¡Ningún candidato se está registrando ahora! \n ");
}
Otros
{
Posición p = L-& gt; Siguiente;
And (p!=null)
{
Printf("Número de admisión: % s \ tNombre: % s \ tGénero: % s \ tAsunto: %HD\Tema :%s\n",p->datos.examno,p->datos.nombre,p->datos.sexo,p->datos.edad,p-& gt;datos .tipo de examen);
p = p-& gt;Siguiente;
}
}
// getchar();
}
//Pregunte si desea eliminar los datos del candidato.
(Igual que organizaciones internacionales) Organizaciones internacionales
Juzgar eliminar valor()
{
int n = 2;
Hacer
{
Printf("¿Quieres eliminar los datos del candidato? Sí, ingresa "1" en lugar de "0":);
scanf("%d ", & ampn);
getchar();
}
Y (n!= 0 & amp& ampn! = 1 );
Return n;
}
//Encuentra el primer elemento llamado xx y devuelve la posición de su predecesor inmediato
.Posición
find_previous(lista L)
{
Posición q = L;
Posición p = L-& gt ; Siguiente;
Nombre del personaje [10];
Printf("Ingrese el nombre del candidato que está buscando:"); nombre );
Y (p!= NULL & amp& amp0 != strcmp(p-& gt; data.nombre, nombre))
{
q = p;
p = p-& gt;Siguiente;
}
if (p!=null)
{
Devolver q;
}
Otro
Devolver p;
}
//Eliminar la información del candidato especificado y generarla
(Igual que Organizaciones internacionales) Organizaciones internacionales
Eliminar valor (lista L)
{
int n = 2;
Posición q = vacía;
posición p = buscar _ anterior(L); //Devuelve la dirección de información del candidato
p>if( NULL == p)
{
Printf("El candidato que desea eliminar no existe\ n ");
Devuelve 0 ;
}
Otro
{
q = p->;Siguiente;
p- >;next = q-& gt;Next;
Printf("Eliminación exitosa.\nLa información del candidato eliminado es:\n");
Printf("Número de admisión : %s\tNombre:%s\tGénero:%s\tAsunto:%HD\tAsunto:%s\n",q->data.examno,q->data.name,q ->data.sex, q ->data.age, q->data.exam type);
Gratis(q);
Devolución
}
}
//Envíe la información del cheque de esta dirección.
(Igual que organizaciones internacionales) Organizaciones internacionales
Información de ubicación del lugar (posición p)
{
Si (p!=null)
{
Printf("Número de inscripción:% s\tNombre:% s\tGénero:% s\tGénero:% HD \Asunto:%s\n\n " ,p ->data.examno,p->data.name,p->data.sex,p->data.age,p->data.exam type); p>
Regresar 1 ;
}
Otro
{
Printf("No hay ningún estudiante que esté buscando.
");
Devuelve 0;
}
}
//Función de menú
Vacío
p>
Menú (Lista L)
{
printf("\t\t\t?a. Admisión de candidatos\ n ");
printf("\t\t\t?b. Consultar información del candidato\ n ");
printf("\t\t\t?c. Modificar información del candidato\ n "); p>
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
Y (n! = 'g ')
{
Qué hacer do? //Confirma que la entrada es correcta.
Printf("Por favor seleccione la función por número de letra:");
n = getchar ();
getchar();
putchar('\n');
if (n & lta ' | | n & gtg')
{
Printf("Número de letra incorrecto.\n ");
}
}
while(n & lt; a ' | | n & gtg');
Interruptor(n)
{
Caso "a":
{
Printf("Ingrese la información de los candidatos registrados: \ n ");
Posición p = make_node( p, 1); //Crea 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');
}
Pausa;
Caso "b":
{ p>
put_name_information( L);
putchar('\n');
}
Romper;
Caso "c":
{
int n = 0;
Posición p = null;
Printf(" Estás modificando. \n ");
p = buscar(L);
n = put_pos_information(p);
if(n)
p>{
make_node(p,0);
put _ information(p);? // ¿Quieres generar información del candidato?
}
putchar('\n');
}
Romper;
Caso "d":
{
Printf("Estás eliminando.
\n ");
eliminar _ val(L);
putchar(' \n ');
}
Romper ;
Caso "e":
{
put _ all(L);
putchar(' \n ');
}
Pausa;
Caso "f":
{
printf("? Fecha de modificación ¿Número de versión? ¿Modificador? Contenido modificado\n ");
printf("-\n ");
printf("?2018.6.19 v2.0? Agregado por Chen Baichuan Menú principal\n");
printf("?2018.6.23 v3.0? ¿Chen Baichuan? Agregue la función de generar archivos\n\n");
Printf( " El número de versión es v 2.0 \ n ");
putchar(' \n ');
}
Break; >Valor predeterminado:
Break;
}
}
Printf("Gracias por su uso y le deseo una vida feliz .");
getch();
}
Datos extendidos:
El lenguaje C es un lenguaje de programación informática general que ampliamente utilizado en el desarrollo de bajo nivel El objetivo de diseño del lenguaje C es proporcionar un lenguaje de programación que pueda compilar y procesar memoria de bajo nivel de una manera sencilla, generar una pequeña cantidad de código de máquina y ejecutarse sin ningún soporte de entorno operativo.
Aunque el lenguaje C proporciona muchas funciones de procesamiento de bajo nivel, aún mantiene buenas características multiplataforma. Los programas escritos en lenguaje C se pueden compilar en muchas plataformas informáticas. procesadores integrados (microcontroladores o MCU) y supercomputadoras. p>
En la década de 1980, para evitar diferencias en la sintaxis del lenguaje C utilizada por diferentes desarrolladores, la Oficina Nacional Estadounidense de Estándares formuló un conjunto completo de Gramática Estándar Nacional Estadounidense. para lenguaje C, llamado ANSI C, como la versión original del lenguaje C [1] Actualmente, el 8 de febrero de 2011, el estándar C11 fue 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. 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 es diferente 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