Código fuente del sistema de registro e inicio de sesión
# incluir & ltstdlib.h & gt
# incluir & ltstring.h & gt
# incluir & ltmalloc. h & gt
estructura estudiante
{
int num
char nombre[20];
char tel[20];
estructura estudiante *siguiente;
};
estructura estudiante *cabeza, *tmp1, *tmp2
int n;
Carga no válida()
{
ARCHIVO * FP 1;
int I;
fp1=fopen("file.txt","Rb");
struct estudiante * tmp
struct estudiante * q;
Printf(" Inicio leyendo información del estudiante\n ");
head = 0;
while(1){
tmp = malloc(size of(struct Student) );
tmp-& gt; next = 0;
//i=fscanf(fp1, "ID del estudiante: %d Nombre: %s Teléfono: % s \ n ", & (tmp->num), tmp->nombre, tmp->teléfono
i=fread(tmp, sizeof(struct Student), 1, FP 1) ;
if(i==1){
if(head==0)
q = head = tmp
Printf ("Leer la información de un estudiante\ n ");
q->; next = tmp
q = q-& gt; next;
} En caso contrario {
fclose(FP 1);
return;
}
}
}
Salida no válida()
{
tmp 1 = encabezado
Y (tmp1!=0)
{
Printf; ("ID de estudiante: %d Nombre: %s Teléfono: %s\n ", tmp 1-& gt; num, tmp 1->; Nombre, tmp 1->; Teléfono );
tmp 1 = tmp 1-& gt;Siguiente;
}
}
Entrada no válida ( ) p>
{ struct Student *q, * p;
Printf("Agregue la información del estudiante según sea necesario:\ n "
p=malloc(sizeof(struct Student)); Printf("Ingrese el número de estudiante:");
scanf("%d ", &p->num);
printf(" \ nIngrese el nombre del estudiante: ") ;
scanf("%s ", p-& gt; nombre);
printf(" \ nIngrese el número de teléfono del estudiante:
); scanf("%s ", p-& gt; número de teléfono);
p->; siguiente = 0;
if(head==0){
cabeza = p;
q = p;
}else{
q = Cabeza;
mientras(q- >;¡Siguiente! =0)
{
q = q-& gt; Siguiente;
>}
q->; siguiente = p;
q = p
}
}
void eliminar()
{ struct Student *q, * p;
int numint I /*¿Qué artículo es num aquí*/
Printf( "Por favor ingrese el registro I \ n ");
scanf("%d ", & ampnum
if(num==1)
{ head = head-> next;}/*Eliminar nodo principal*/
p = head;
for(I = 1;I& ltnum-1; I++) /* Mueva p al nodo que desea eliminar*/
{ p = p-& gt; next;}
if(num & gt; 1)
p->next = (p->next)->next; /*Por ejemplo, vincule 2 4 nodos y elimine 3 nodos*/
Printf("Eliminación exitosa, verifique\n ");
}
Búsqueda no válida()
{ char c[20];
char tmp 2 _ num[20 ];
Printf("Ingrese la información que desea consultar:\ n "
scanf("%s ",
Printf); ("Lo que quieres consultar es:\ n ");
tmp2 = header /*Traverse*/
And (tmp2!=0)
{
Printf("ID de estudiante: %d Nombre: %s Teléfono: %s\n ", tmp 2-> número, tmp 2->nombre,tmp 2->Teléfono );
if(strncacecmp(tmp 2->name,c,strlen(c))==0)
Printf("El nombre coincidió correctamente\n ");
/*Coincidencia*/
if(strncacecmp(tmp 2->tel,c,strlen(c ))==0)
Printf(" Coincidencia telefónica exitosa\n");
sprintf(tmp2_num, "%d", tmp 2->num);
if(strncacescmp(tmp 2_num,c,strlen( c))==0)
Printf("El número de estudiante coincidió correctamente\ n ");
tmp 2 = tmp 2-& gt; >}
}
Guardar no válido()
{
ARCHIVO * FP 1;
estructura estudiante *q, *p 1;
fp1=fopen("file.txt","w");
p 1 = 0
p 1; = head;
if(head==0)
{
Printf("No hay información del estudiante ahora, agregue la información del estudiante primero:\ n ");
}
Y (p1! =0)
{
//fprintf(fp1, "ID de estudiante: %d Nombre: %s Teléfono: %s\n ", p 1-& gt; num, p 1->; nombre, p 1->;
fwrite(p1, sizeof(struct estudiante), 1, FP 1); : %dNombre:%sTeléfono:%s\n ", p 1-> num, p 1->; nombre, p 1->; teléfono);
>
p 1 = p 1->; siguiente;
}
fclose(FP 1); Cambio no válido()
{ struct Student * p;
int numint I /*¿Qué artículo es num aquí?*/
Printf(" Ingrese el registro a modificar I \n ");
scanf("%d ", & ampnum);
p = encabezado;
for (I = 1;i<numi++)
{
p = p->Next;
}
Printf ("ID del estudiante: %dName :%sPhone:%s\n", p-> num, p->Nombre, p->Phone);
Printf("Modifique el número de estudiante: ");
scanf("%d ",&p->num);
Printf("Modifique el nombre del estudiante:");
scanf("%s ", p- & gt; nombre);
Printf("Modifique el número de teléfono del estudiante:");
scanf("%s ", p-& gt; teléfono); p>
}
int main()
{
cabeza = tmp 1 = 0 ;
mientras(1)
{
printf(" \ n \ n ");
Printf ("\ t \ t * *Bienvenido al sistema de gestión de estudiantes * * \ n ");
Printf ("\ t \ t * * Ingrese la información correspondiente según sea necesario * * \ n ");
Printf ("\ t \ t * * 0. Cargar información del estudiante * * \ n ");
Printf ("\ t \ t * * 1. Ver información del estudiante * * \ n ");
Printf(" \t\t*** 2. Agregar información del estudiante * * * \n");
Printf("\t\t*** 3. Eliminar registros de estudiantes * * * \ n ");
Printf("\t\t*** 4. Consultar registros de estudiantes * * * \ n ");
Printf( "\t\t*** 5. Guardar información del estudiante * * * \n");
Printf("\t\t*** 6. Modificar información del estudiante * * * \ n ");
Printf ("\ t \ t * * 7. Salir * * * \ n ");
Printf("Seleccionar función :");
scanf("%d ", & ampn);
Cambiar(n)
{
Caso 0 :
carga();
Interrupción;
Caso 1:
OutPut();
Interrupción ;
Caso dos:
InPut();
Break;
Caso tres:
delete( );
Pausa;
Caso 4:
búsqueda();
Pausa 5; :
guardar();
Romper;
Caso 6: Cambiar(); >Caso 7:
Salir(0);
Break;
Valor predeterminado:
Printf("Esta función no está disponible temporalmente ");
}
}
}