Red de conocimiento informático - Problemas con los teléfonos móviles - Programación PMLL

Programación PMLL

#Incluir "stdio.h"

#Incluir "stdlib.h"

#Incluir "string.h"

#Incluir "windows.h"

int debería guardar = 0; /* */

Estructura estudiante

{

Número de carácter [10] /*ID del estudiante; */

nombre de char[20];

sexo de char[4];

Comercio internacional;

Comercio internacional;

p>

int egrade

int totle

int ave

char near time[10] /*última hora de actualización*; /

};

nodo de estructura typedef

{

Construir datos de estudiantes;

Nodo de estructura* siguiente

}Nodo, *Enlace;

Menú no válido()

{

printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *);

Printf("\ t1 Registrar datos del estudiante\t\t\t\t2Eliminar datos del estudiante\n");

printf("\t3 Consultar información del estudiante\t\t\t\Modificar información del estudiante\n ") ;

Printf("\t5Guardar información del estudiante\ t \ t \ t \ tSalir del sistema\ n ");

printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n ");

}

void printstart()

{

printf("- \ n ");

}

Error no válido()

{

printf(" \ n = = = = = & gt ; Consejo: Error de entrada \ n ");

}

void Nofind()

{

printf(" \ n = = = = = > Consejo: ¡No se puede encontrar al estudiante! \ n ");

}

Void printc() /*Esta función se utiliza para generar chino*/

{

Printf ("ID del estudiante\tNombre, género, puntaje en inglés, puntaje en matemáticas, puntaje en lenguaje C, puntaje promedio\ n "); *Esta función se utiliza para generar inglés*/

{

printf(" %-12s % s \ t % s \ t % d \ t % d \ t % d \ t %d\t%d\n",p->data.num,p->data.name,p->data.sex,p->data.egrade,p-> ;data.mgrade ,p->data.cgrade,p->data.totle,p->data.ave);

}

Nodo * localizar (enlace L, char buscar lío [], c

har namernum [])/*Esta función se utiliza para localizar contactos calificados en la lista vinculada y devolver el puntero*/

{

node * r;

If (strcmp (namernum, "num") == 0)/*Consulta por número de estudiante*/

{

r = l-& gt;Siguiente;

p>

mientras(r!=null)

{

if(strcmp(r-& gt;data.num, findmess)==0)

return r;

r = r-& gt;siguiente;

}

}

Elseif (strcmp ( namernum, "nombre") = = 0)/*Consulta por nombre*/

{

r = l-& gt; >mientras (r!=null)

{

if(strcmp(r-& gt;data.name, findmess)==0)

regresar r;

r = r-& gt; Siguiente

}

}

Devuelve 0; > }

Nulo Agregar(Enlace l) /*Agregar estudiante*/

{

Nodos *p, *r, *s;

Número de carácter [10];

r = l;

s = l-& gt;Siguiente;

mientras(r->;Siguiente a! = vacío)

r = r-& gt; next /*Pon el puntero al final*/

while(1)

{

Printf("Ingrese su número de estudiante (use '0':) para regresar al menú anterior);

scanf("%s", número);

if(strcmp(num, "0")==0)

Descanso;

mientras(s)

{

if(strcmp(s->data.num,num)= 0)

{

printf(" = = = = = > Consejo: Aprenda El estudiante El número "%s" ya existe.

¡Seleccione "4Modify" para modificar! \n ", número);

printstart();

printc();

Imprimir;

printstart();

printf(" \ n ");

Retorno;

}

s = s-& gt;Siguiente;

p>

}

p=(nodo*)malloc(tamañode(nodo));

strcpy(p-& gt;data.num,num );

p>

Printf("Por favor ingrese su nombre:");

scanf("%s ", p->data. nombre);

getchar( );

Printf("Ingrese su género:");

scanf("%s ", p-& gt; data . sex)

getchar();

Printf("Ingrese su calificación en lenguaje C:");

scanf("%d ",&p->data . cgrade) ;

getchar();

Printf("Ingrese su puntaje de matemáticas:");

scanf("%d ", & ampp -> ; datos . m calificación);

getchar();

Printf("Ingrese su calificación de inglés:"); d ",&p->data.e calificación);

getchar();

p->data.totle = p->data.e calificación+p -> data.c calificación+p->data.m calificación;

p->;data.ave = p->data.totle/3;

/*Entrada de información se ha completado*/

p->; siguiente = NULL

r-& gt; siguiente = p

r = p ;

shoudsave = 1;

}

}

Void Qur(Enlace l) /*Consulta estudiantes*/

{

int sel

char find mess[20];

nodo * p;

if (! l->Siguiente)

{

printf(" \n = = = = = > Consejo: ¡No hay información para consultar!\n ");

Return;

}

printf(" \ n = = = = = & gt; 1 Buscar por número de estudiante\ n = = = = > 2 Presione Buscar por nombre \n ");

scanf("%d ", & ampsel);

If(sel==1)/*ID de estudiante */

{

Printf("Ingrese el número de estudiante que desea encontrar:");

scanf("%s ", busque desorden);

p =Ubicar(l,findmess," num");

if (p)

{

printf(" \ t \ t \ t \ t \ t hallazgos \ n ");

printstart();

printc();

printe(p);

printstart( );

}

Otros

<

p>nofind();

}

De lo contrario, si(sel==2) /* nombre */

{

Printf ("Ingrese el nombre que desea encontrar:");

scanf("%s ", find mess

p=Locate(l, findmess, " name ");

if(p)

{

printf("\t\t\t\t\t resultados\n"); >

printstart();

printc();

printe(p);

printstart();

}

p>

Otro

nofind();

}

Otro

Error() ;

}

Void Del(Enlace l) /* Eliminar */

{

int sel

Nodo *p, * r ;

char find mess[20];

if (!l-& gt; next)

{

printf( " \ n = = = = = & gt; Consejo: ¡No se pueden eliminar datos!\n ");

Return

}

printf("

if(sel==1)

{

Printf("Ingrese el número de estudiante que desea eliminar:") ;

scanf ("%s", buscar desorden);

p=Locate(l, findmess, "num");

if (p)

{

r = l;

mientras(r->; siguiente!=p)

r = r-& gt ; siguiente;

r->siguiente = p->siguiente;

gratis(p);

printf(" \n = = = = > Consejo: ¡El estudiante ha sido eliminado exitosamente! \n ");

shoudsave = 1;

}

Otro

nofind( );

}

else if(sel==2)

{

Printf("Ingrese el nombre para ser eliminado: ");

scanf("%s ", buscar desorden);

p=Locate(l, findmess, " nombre ");

Si ( p)

{

r = l;

mientras(r->;Siguiente! =p)

r = r-& gt; siguiente;

r-& gt; siguiente = p-& gt; );

printf(" \ n = = = = = & gt; Consejo: ¡El estudiante ha sido eliminado exitosamente! \n "); >

}

Otro

nofind();

}

Otro

Error () ;

}

Modificación no válida (enlace l)

{

nodo * p;

char find desorden[20];

si (

! l->Siguiente)

{

printf(" \ n = = = = = > Consejo: ¡No se pueden modificar datos!\n ");

p>

Return;

}

Printf("Ingrese el número de estudiante a modificar:");

scanf("%s " , encontrar desorden);

p=Locate(l, findmess, "num");

if (p)

{

Printf("Ingrese su nuevo número de estudiante (originalmente %s):",p->data.num);

scanf("%s",p->data. num);

Printf("Ingrese su nuevo nombre (originalmente %s):", p-& gt; data. name);

scanf("%s ", p-> ;data. name);

getchar();

Printf("Ingrese su nuevo género (originalmente %s):", p- >data.sex);

scanf("%s ",p->data.sex);

Printf("Ingrese su nueva puntuación en lenguaje C (originalmente %d): ",p-> ;data.cgrade);

scanf("%d ",&p->data.cgrade);

getchar();

Printf("Por favor ingrese su nueva puntuación de matemáticas (originalmente %d):", p->data.m calificación);

scanf( "%d",&p->data.m calificación);

getchar();

Printf("Ingrese su nueva calificación de inglés (originalmente %d):", p-& gt; data . e calificación

scanf); ("%d ", &p->; datos . e calificación);

p->datos = p->datos .e calificación+p->datos .c calificación+p ->datos .m calificación;

p->;datos .ave = p ->data.totle/3;

printf(" \ n = = = = = = > Consejo: ¡Los datos se han modificado correctamente! \ n ");

shoudsave = 1;

}

Otro

nofind();

}

Visualización no válida (enlace l)

{

int count = 0;

node * p;

p = l-& gt; siguiente;

if (!p)

{

printf(" \ n = = = = & gt; Consejo: ¡No hay datos para mostrar! \ n ");

Return;

}

printf(" \ t \ t \ t \ tDisplay Result \ n ");

printstart();

printc();

printf(" \ n ");

mientras(p )

{

printe(p);

p = p-& gt;

}

printstart();

printf(" \ n ");

}

Void Tongji (bucle l)

p>

{

Los nodos *pm, *pe, *pc, *pt, *pa/* se utilizan para señalar el contacto con la puntuación más alta*/

nodo * r = l->Siguiente;

if(!r)

{

printf("\n = = = = >Mensaje: ¡No hay datos para contar!\n ");

Regresar;

}

pm = PE = PC = pt = pa = r;

while(r!=null)

{

if(r->data . c grade>= PC->;data.cgrade)

PC = r;

if(r->data . m calificación>= pm->;data.mgrade)

pm = r ;

if(r-& gt;data. e calificación>= PE->data.egrade)

PE = r;

if(r-& gt;data.totle & gt= pt->data.totle)

pt = r;

if(r->data.ave & gt= pa->;data.ave)

pa = r;

r = r-& gt;Siguiente;

}

Printf (" -Resultados estadísticos.

Printf("Puntuación total más alta:\t%s %d \n ",pt->data.name,pt->data.totle);

Printf( "Puntuación promedio más alta:\t%s %d \n ",pa->data.name,pa->data.ave);

Printf("Más alta en inglés:\n t% s %d \n ",PE->data.name,PE->data.e calificación);

Printf("Puntuación más alta en matemáticas:\t%s %d \ n ", pm->data.name, pm->data.m grado);

printf(" Lenguaje C más alto:\t%s %d \n ", PC->data.name , PC->data.cgrade);

printstart();

}

Clasificación no válida (enlace l)

p>

{

Enlace ll;

Nodo *p, *rr, *s;

ll =(Enlace)malloc(tamañode(Nodo )); *Se utiliza para crear una nueva tabla vinculada*/

ll->next = NULL

If (l->next==NULL)

p>

{

printf(" \ n = = = = = & gt; Consejo: ¡No hay datos para ordenar! \n ");

}

p = l-& gt; siguiente

mientras(p)

{

s =(Nodo *)malloc(sizeof(Node));/*Los nuevos contactos se utilizan para guardar información*/

s-& gt;data = p-& gt;data;

s -& gt; siguiente = NULL

rr = ll

mientras(RR->;Siguiente!= NULL & amp& ampRR-& gt;Siguiente-& gt ;data.totle>= p->data.totle)

RR = RR->siguiente;

if(RR->next==NULL )

RR-& gt; siguiente = s;

Otro

{

s-& gt; siguiente = RR-& gt; RR-& gt; siguiente = s;

}

p = p-& gt; l);

l-& gt; next = ll-& gt; next;

printf(" \ n = = = = = > Consejo: ¡Clasificación completada! \ n ");

}

Guardado no válido (enlace l)

{

ARCHIVO * fp

nodo * p;

int flag=1, recuento = 0;

fp=fopen("c:\\estudiante ", " WB "); p>if(fp==NULL)

{

printf(" \ n = = = = = & gt; Consejo: ¡Se produjo un error al volver a abrir el archivo!\n "

Salir(1);

}

p = l-& gt;Siguiente;

mientras(p)

p>

{

if(fwrite(p,tamañode(Nodo),1,fp)=

=1)

{

p = p-& gt; siguiente; >Otro

{

bandera = 0

Romper

}

}

if (flag)

{

printf(" \ n = = = = = & gt; Consejo: El archivo se guardó correctamente. (Se han guardado %d registros )\n", count);

debe guardar = 0;

}

fclose(FP);

}<. /p>

void main()

{

Enlace l; /*Tabla de enlaces*/

ARCHIVO * fp/*Puntero de archivo*/

int sel

char ch

char jian

int count = 0

Nodo *p, * r;

printf("\t\t\t\t\tSistema de gestión del desempeño estudiantil\n\t\t-Proyecto experimental\n");

l= ( Nodo*)malloc(tamaño de(Nodo)).

l-& gt;next = NULL

r = l;

fp=fopen("C:\\estudiante","Rb");

if(fp==NULL)

{

printf(" \n = = = = = & gt; Consejo: El archivo aún no existe Quieres crearlo? (sí/no)\n");

scanf("%c", & amp Jane);

if(jian=='y. '| |jian=='Y ')

fp=fopen("C:\\estudiante "," WB ");

Otros

Salir (0 );

}

printf(" \ n = = = = = & gt; Consejo: El archivo se ha abierto y los registros se están importando...\ n "

Y (!feof(fp))

{

p=(nodo*)malloc(tamañode(nodo));

If (fread (p, sizeof (nodo), 1, FP))/*Coloque el contenido del archivo en el contacto*/

{

p->; = NULL

r-& gt; next = p;

r = p /*Pendiente de este contacto en la conexión*/

count++;

r = p; p>

}

}

fclose(FP);/*Cerrar el archivo*/

printf (" \ n = = = = = & gt; Consejo: Después de importar registros, * * * se importaron %d registros. \n ", count

while(1)

<); p>{

menu();

Printf("Seleccione una operación:");

scanf("%d ", & ampsel);

if( sel==0)

{

if(shoudsave==1)

{ getchar();

printf(" \ n = = = = = > Consejo: Los datos han sido cambiados.

¿Quieres guardar los cambios en el archivo (sí/no)? \ n ");

scanf("%c ", & ampch);

if(ch=='y'||ch=='Y ')

Save(l);

}

printf(" \ n = = = = = & gt; Consejo: Has salido del sistema. ¡Adiós! \n " ) ;

Interrumpir;

}

Cambiar (seleccionar)

{

Caso 1: Agregar ( l ); descanso; /*agregar estudiante*/

Caso 2: Del (l); /*eliminar estudiante*/

Caso 3: Corán (izquierda); ; /*Consultar estudiantes*/

Caso 4: Modificar (l); /*Modificar estudiantes*/

Caso 5: Guardar (l); estudiantes */

Caso 9: printf ("\ t \ t \ t = = = = = =Información de ayuda = = = = = = = "); : Error();getchar();Romper;

}

}

Dormir(100);

}

/* */