Cómo implementar la programación ADO
#Include "cstdlib"
# include & ltmalloc.h & gt
# include & ltstdio.h & gt
# include & ltstring.h & gt
#define LEN sizeof(estructura libreta de direcciones)
int no sum = 0;
Estructura libreta de direcciones
{ char nombre[10];
Dirección del personaje[30];
Número de teléfono de pago[12]; [ 10];
Número de personaje[10];
sexo de personaje[10];
edad de personaje[4];
int Inglés;
int Matemáticas
int Computadora;
int Red
int Chino; int suma
int av
int puntuación[5];
Estructura Libreta de direcciones * siguiente
} ab[45]; p >
Libreta de direcciones de estructura *creat()
{int i, j;
int s
Libreta de direcciones de estructura *p0, *p1 , *p2, * head
for(I = 0;I<1;I++) //Entrada de bucle
{
p0=(estructura libreta de direcciones*) malloc(LEN);
Printf("Ingrese la información del estudiante:\ n ");
Printf("ID del estudiante:");
scanf ( "%s ", P0-> número);
printf (" nombre: ");
scanf ("%s ", P0-> nombre); p>
Printf("Dirección:");
scanf("%s ", P0-& gt;Dirección);
printf(" Tel: ");
scanf("%s ",P0-> teléfono);
printf(" clase:");
scanf(" %s ", P0-& gt; Categoría);
Printf("Género:");
scanf("%s ", P0-& gt; Sexo); p>Printf("Edad:");
scanf("%s", &P0->;Edad);
Printf("Inglés:") ;
scanf("%d ",&P0->;inglés);
Printf("Matemáticas:");
scanf("%d ",&P0->; Matemáticas);
Printf("Computadora:");
scanf("%d ",&P0->;Computadora);
Printf("Red :");
scanf("%d",&P0->;Red);
printf("idioma:");
scanf(" %d ", &P0->; chino);
Printf("Por favor, ingrese las calificaciones del estudiante nuevamente\ n ");
s = 0;
for(j = 0;j & lt5;J++) //Calcula la puntuación total y la puntuación media.
{ scanf("%d ", &P0->puntuación[I]);
s+= P0->puntuación[I];}
P0->suma = s;
P0->av = s/5;
si (P0->av<60)nosum++;
p>Si (i==0)
{ cabeza = p0P0->; siguiente = NULL}
Otro
{ p 1 = p2 =cabeza;
Y ((P0->suma & ltp 1->suma)>0 & amp& amp(p 1->Siguiente!=NULL))
{ p2 = p 1; p>
p 1 = p 1->; next;} //p2 guarda el nodo señalado por p1 y p1 retrocede un nodo.
if (P0-> suma & gt= p 1->;suma)
{
if(head==p1)
{ head = p0
P0->; next = p 1;}//Insertar antes del primer nodo original
Otros
{ p2- >; siguiente = p0
P0->; siguiente = p 1;
}
}
Otro
p >{ p 1->; next = p0
P0->; next = NULL}//Insertar después del último nodo
}
}
Devolver encabezado;
}
Libreta de direcciones de estructura*insertar (libreta de direcciones de estructura*encabezado, libreta de direcciones de estructura*agregar)
{Libreta de direcciones de estructura *p0, *p1, *p2
p 1 = encabezado // Hacer que p1 apunte al primer nodo.
p0 =Agregar; //p0 apunta al nodo a insertar.
if(head==NULL)
{ head = p0P0->; next = NULL}
Otros
{ p>
Y ((P0->suma & ltp 1->suma)>0 & amp& amp(p 1->Siguiente!=NULL))
{ p2 = p 1;
p 1 = p 1->;Next;
} //p2 guarda el nodo señalado por p1 y p1 retrocede un nodo.
if (P0-> suma & gt= p 1->;suma)
{
if(head==p1)
{ head = p0
P0->; next = p 1;}//Insertar antes del primer nodo original
Otros
{ p2- >; siguiente = p0
P0->; siguiente = p 1;
}
}
Otro
p >{ p 1->; next = p0
P0->; next = NULL
}//Insertar después del último nodo
Regresar (head);
}
}
Libreta de direcciones de estructura *del(libreta de direcciones de estructura *head, número de carácter[])
{Estructura libreta de direcciones *p1, *p2
if(head==NULL)
{ printf("\nNo hay información sobre esta persona\n");
Devolver encabezado;}
p 1 = encabezado;
while(strcmp(número, p 1->; número)& amp& amp(p 1-> ;Siguiente! =NULL))
{ p2 = p 1;
p 1 = p 1->;Siguiente;}// No encontrado, continúa mirando hacia atrás.
if (!strcmp(número, p 1->($ número))//encontrado
{
if(head==p1) p>
head = p 1->;Next; //Si es el primer nodo, el segundo nodo es el nodo principal
Otros
p2->next. = p1->next; // De lo contrario, avance a la siguiente dirección de nodo.
Printf("Eliminado: %s\n ", número);
}
Otro
Printf("No existe esa persona información\n ", número);
Retorno (encabezado);
}
Impresión no válida (estructura libreta de direcciones *encabezado)
{ struct AddressBook * p = head
printf("\nInformación del estudiante\n");
And (p!=NULL) //Imprimir resultado
{
Printf("ID de estudiante: %s\t\t ", p-> número);
Printf ("Nombre: %s\t\ t ", p-& gt; nombre);
Printf ("Dirección: %s\t\t ", p-& gt; dirección
Printf ("Tel: %s); \t\t ", p-& gt; teléfono);
Printf ("Clase: %s\t\t ", p-& gt; clasificación);
Printf ("género: %s\t\t ", p-& gt; género);
Printf ("Clase: %s\t\t ", p-& gt; clasificación) ; p>
Printf ("edad: %s\t\t ",p-& gt; edad);
Printf("Inglés:%d\t\t ",p -> Inglés);
Printf ("Matemáticas: %d\t\t ",p->Matemáticas);
Printf("Computadora:%d\ t\t ", p-& gt; computadora);
Printf ("Red:%d\t\t ", p-& gt; red
Printf ( "Idioma: %d); \t\t ", p-& gt; chino);
Printf("Puntuación total: %d\t\t ", p-& gt;suma);
Printf("Puntuación total: %d\t\t ", p-& gt;suma);
p>
Printf("Puntuación promedio:%d\t\t\n ", p-& gt; av);
p = p-& gt; next;
}
}
Estructura de la libreta de direcciones *buscar(estructura libreta de direcciones*cabeza, número de caracteres [])
{estructura libreta de direcciones*p1, * p2
if(cabeza==NULL)
{ printf("\n¡Sin datos!\n");
Devolver encabezado;} p>
p 1 = encabezado
while(strcmp(num; , p 1->número)&& amp(p 1->siguiente! =NULL))//Si no se encuentra, la lista vinculada apunta al siguiente nodo.
{ p2 = p 1; p 1 = p 1->; siguiente }
if(strcmp(num, p1->Número)==0) //si Si igual, se encuentra.
{printf("Información del estudiante encontrada\ n ");
Printf("ID del estudiante: %s\n ", p 1-> número
);Printf ("nombre: %s\n ", p 1-& gt; nombre);
Printf ("dirección: %s\n ", p 1-& gt; dirección);
Printf ("Tel: %s\n ",p 1-& gt;Teléfono);
Printf ("género: %s\n ",p 1-& gt ;Sexo);
Printf ("clase: %s\n ", p 1-& gt;Clasificación);
Printf("Edad: %s\n ", p 1->Edad);
Printf("Inglés:%d\n ", p 1->Inglés);
Printf("Idioma:%d \n " , p 1-& gt; chino);
Printf ("Matemáticas: %d\n ", p 1-& gt; matemáticas); d\n ",p 1->Computadora);
Printf("Red:%d\n ",p 1->Red);
Printf("Total puntuación:%d\n ",p 1->suma);
Printf("Puntuación media:%d\n ",p 1->av);
}
Otro
Printf("¡No hay información sobre este estudiante!\n ");
Return (head);
}
Estructura libreta de direcciones *reelaboración (estructura libreta de direcciones * encabezado, número de caracteres [])
{estructura libreta de direcciones *p1, *p2
botón int , s 1;
char English 1, Chinese 1, math1, network1, computer1, sum1, av 1;
Número de carácter 1[10], nombre 1[10], categoría 1[10], dirección 1[10], número de teléfono 1[10], sexo 1[10], edad 1[10]
if(head==NULL)
p>{ printf("\n¡Sin datos!\n");
Devolver encabezado;}
p 1 = encabezado;
while (strcmp(num , p 1->Número)& amp& amp(p 1->Siguiente!=NULL))
{ p2 = p 1; p 1 = p 1->Continuar Bajar;}
if(strcmp(num, p1->Number)==0) //Encuentra la información de este estudiante.
{printf("Información del estudiante encontrada\ n ");
Printf("1. ID del estudiante: %s\n ", p 1-> número < /); p>
Printf("2. Nombre: %s\n ", p 1-& gt; nombre
Printf("3. Dirección: %s\n ", p 1 - >Dirección);
Printf("4. Teléfono: %s\n ", p 1->Teléfono);
Printf("5. Género: %s\ n ",p 1->Sexo);
Printf("6. Edad:%s\n ",p 1->Edad);
Printf("7 Inglés:%d\n ", p 1-& gt; inglés);
Printf("8. Idioma:%d\n ", p 1-& gt; chino);
Printf("9. Matemáticas:%d\n ", p 1-& gt; Matemáticas
Printf("10.
Computadora:%d\n ",p 1->Computadora);
Printf("11.Red:%d\n ",p 1->Red);
Printf("12. Categoría: %s\n ", p 1-& gt; clasificación);
Printf("13. Puntuación total: %d\n ", p 1-& gt; suma);
Printf("14. Puntuación promedio: %d\n ", p 1-& gt;av);
scanf("%d ",& botón amp );
Switch(button) //Esta declaración se utiliza para seleccionar el contenido a modificar.
{caso 1:printf("\nNúmero de estudiante\ n ");
scanf("%s ", número 1);
strcpy( p 1->; número, número 1); romper;
Caso 2: printf("\n nombre\n");
scanf("%s", nombre 1 ) ;
strcpy(p 1->; nombre, nombre 1
Caso 3: printf(" \ n dirección \ n "); >scanf("%s ", dirección 1);
strcpy(p 1->; dirección, dirección 1);
Caso 4: printf(" \ n teléfono; \ n ");
scanf("%s ", teléfono 1);
strcpy(p 1->; teléfono, teléfono 1); break;
Caso 5: printf("\ngender\ n ");
scanf("%s ", sexo 1);
strcpy(p 1->; sexo, sexo 1); roto;
Caso 6: printf(" \ nEdad \ n ");
scanf("%s ", edad 1); strcpy(p 1->;edad,edad 1);break;
Caso 7: printf("\nEnglish\ n ");
scanf("%d ", & amp Inglés 1);
p 1->; Inglés = Inglés 1; Ir al bucle
Caso 8: printf(" \n idioma \n "); >
scanf("%d ", & amp中文1);
p 1->; 中文 = Chino 1;
Caso 9 :printf( "\nmatemáticas\n");
scanf("%d", & ampmath 1);
p 1->; math = math 1; p>
Caso 10: printf(" \ n computadora \ n ");
scanf("%d ", & ampcomputadora 1
p 1 ->; computadora = computadora 1; ir al bucle;
caso 11: printf("\nnetwork\n");
scanf("%d", & ampnetwork ); p>
p 1->; red = red 1; ir al bucle;
Caso 12: printf(" \ n clase \ n "); %s ", & amp1 clase);
strcpy(p 1->;clasificado, clasificado 1); Ir al bucle;
Caso 13:printf(" \nPuntuación total\ n ");
scanf("%d ",& ampsum 1);
p 1->; suma = suma 1; descanso;
Caso 14: printf("\puntaje promedio\ n ");
scanf("%d ", & ampav 1);
p 1->; ; // Calcular puntajes totales y promedio nuevamente
Bucle: s 1 = 0; //Saltar
s 1 = p 1->; p 1->;matemáticas+p 1->;red+p 1->;chino;
p 1->;suma = s 1;
p 1->; AV
= s 1/5;
} }
Otros
Printf("¡No hay información sobre este estudiante! \ n "); >return(head);
}
main()
{struct AddressBook *head, *add
char del_name[10 ], num[10];
int botón, s, m, j;
añadir =(estructura libreta de direcciones *)mallock(LEN);
System("Color 6A"); //Llama a dos para cambiar los colores de fondo y primer plano.
System("Sistema Profesional de Gestión de Estudiantes"); //Cambiar el título del cuadro de diálogo
printf("\n = = = = = = = = = = = = = = = = = = = = =Sistema de gestión de estudiantes@ = = = = = = = = = = = = = = =
printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n ");
Printf("* * 1. Entrada de información del estudiante y clasificación de puntuación general * * \ n");
Printf("* * * 2 Agregar información del estudiante * * * \ n");
Printf("* * * 3. Eliminar información del estudiante * * * \ n");
Printf("* * * 4. Modificar la información del estudiante * * * \ n ");
Printf("* * * 5. Examinar la información del estudiante * * * \ n");
Printf(" * * * 6. Consulta de información del estudiante * * * \ n ");
Printf("* * * 7. Salir del sistema de gestión de estudiantes * * * \ n ");
Imprimirf ("* * * 8.
Borrar pantalla* * * \ n ");
Loop:printf("* * *Por favor presione 1-8 para seleccionar * * * \ n ");
printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \n ");
scanf("%d ", & botón amp);
Interruptor (botón)
{ caso 1: head = creat(); Ir al bucle; //Saltar al menú principal
Caso 2:
for(j = 0 ; j & lt1;j++)
{ printf("\nIngrese la información del estudiante que se insertará:\n");
printf(" nombre:");
p>scanf("%s ",add-& gt;nombre);
Printf("Dirección:");
scanf("%s ", add -& gt;Dirección);
printf(" Tel:");
scanf("%s ", add-& gt;Teléfono);
printf(" clase:");
scanf("%s ", add-& gt; clasificación);
Printf("ID de estudiante:"); p >
scanf("%s ",agregar-> número);
Printf("Género:");
scanf("%s ",agregar- & gt;Sexo);
Printf("Edad:");
scanf("%s", add->Edad);
Printf ("Inglés:");
scanf("%d", &add->inglés);
Printf("Matemáticas:");
scanf("%d",&add->matemáticas);
Printf("Computadora:");
scanf("%d", &add->Computadora );
Printf("Red:");
scanf("%d", &add->Red);
printf("idioma: ");
scanf("%d ", &add-> chino);
Printf("Por favor, inténtalo de nuevo Introduce tu rendimiento académico: \ n ");
s = 0;
for(m = 0; m & lt5;m++)
{scanf ("%d", & add-> puntuación[m] ]);
s+= agregar->score[m];}
Agregar-> ;sum = s;
Agregar->av = s/5;
head=insert(head, add);}
Ir al bucle ;
Caso 3: printf("\nPor favor ingrese el registro a eliminar:\n"); scanf("%s", del_name); head=del(head, del_name) ;Ir al bucle; //Llamada a función
Caso 4: printf("\ nPor favor ingrese el registro a modificar:\n");scanf("%s",del_name);head = Rework (head, del_name); Ir al bucle; Caso 5: Imprimir (head); Ir al bucle; p>
Caso 6: printf("\nIngrese el número de estudiante a consultar:\n"); scanf("%s", número); 7: Sistema ("exit"); Break; //Llamar a la función de borrar pantalla DOS
Caso 8: Sistema ("cls"); Ir al bucle;
Valor predeterminado: printf ("\n¡Operación ilegal!\n"); Ir al bucle;
}
}