Cómo programar para realizar automáticamente la función de reserva
#Incluir "stdlib.h"
#Incluir "string.h"
int debería guardar = 0;
Estructura estudiante
{
Número de carácter[10]; //Número de estudiante
nombre de carácter[20];
char sex[4];
Comercio internacional;
Comercio internacional;
int egrade
int totle p> p>
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("\t1Ingresar datos del estudiante\t\t\t\t2Eliminar datos del estudiante\n") ; p>
printf("\t3Consultar información del estudiante\t\t\t\Modificar información del estudiante\n");
Printf("\t5Mostrar datos del estudiante\t\ t\t\t\ t6 Estadísticas de puntuaciones de los estudiantes\ n ");
Printf("\t7 Ordenar puntuaciones de los estudiantes\ t \ t \ t \ t8 Guardar datos de los estudiantes\ n ");
Printf(" \t9Obtener información de ayuda\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 = = = = = & gt; Consejo: ¡No se puede encontrar el estudiante! \n ");
}
Void printc() //Esta función se utiliza para generar chino.
{
Printf("ID del estudiante\tNombre, sexo, puntaje en inglés, puntaje en matemáticas, puntaje en lenguaje C, puntaje promedio\ n "); printe(Node *p)//Esta función se utiliza para imprimir en 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 find mess [ ], char namer num[]) //Esta función se utiliza para localizar el contacto calificado 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
mientras(r!=null)
{
if(strcmp(r->data.num,findmess)==0)
return r;
r = r->next;
}
}
Elseif (strcmp (namernum, " name ")== 0)//Consulta por nombre.
{
r = l-& gt; siguiente
mientras(r!=null)
{
if(strcmp(r->data.name,findmess)==0)
return r;
r = r->next;
}
}
Devuelve 0;
}
Void Add(Link l) //Agregar estudiante.
{
Nodos *p, *r, *s;
Número de carácter [10];
r = l;
s = l-& gt; siguiente;
mientras(r->; siguiente! = vacío)
r = r-& gt; //Pon el puntero al final.
while(1)
{
Printf("Ingrese su ID de estudiante (use ' 0 ':) para regresar al menú anterior);
p>
scanf("%s", número);
if(strcmp(num, "0")==0)
Romper ;
mientras(s)
{
if(strcmp(s-& gt; data.num, num)= 0)
{
printf(" = = = = = = & gt; Consejo: El estudiante con el ID de estudiante "%s" ya existe.
Si desea modificar, seleccione '4Modify'. \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); p>
getchar( );
Printf("Ingrese su género:");
scanf("%s ", p-& gt; data . sex)
getchar();
Printf("Ingrese su puntuació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 ha sido completado.
p->siguiente = NULL
r->siguiente = p;
r = p;
shoudsave = 1;
}
}
Void Qur(Link l) //Consulta a estudiantes
{
int sel
char find mess[20];
nodo * p;
if (! l-& gt; siguiente)
{
printf(" \ n = = = = = & gt; Consejo: ¡No hay información para consultar! \n "); }
printf(" \ n = = = = = & gt; 1 Buscar por número de estudiante\ n = = = = > 2 Buscar por nombre\ n "); ("%d ", & ampsel);
If(sel==1)//Número de estudiante
{
Printf("Ingrese el número de estudiante a encontrar: ");
scanf("%s ", buscar desorden);
p=Locate(l, findmess, " num ");
If(p)
{
printf(" \ t \ t \ t \ t \ t hallazgos \ n ");
printc();
printe(p);
printstart(); Otro
nofind();
}
Else if(sel==2) // Nombre
{ p>
Printf("Ingrese el nombre que desea encontrar:");
scanf("%s ", busque desorden
p=Locate(l, findmess); , " nombre ");
if(p)
{
printf(" \ t \ t \ t \ t \ t hallazgos \ n ") ;
printstart();
printc();
printe(p);
printstart();
}
Otro
nofind();
}
Otro
Error();
}
Void Del(Link l) //Eliminar
{
int sel
Nodo* p, * r;
char encontrar desorden[20];
if (! l->Siguiente)
{
printf(" \n = = = = = > Consejo: ¡No se pueden eliminar datos! \n ");
p>Return;
}
printf(" \ n = = = = = > 1 Eliminar por número de estudiante \ n = = = = > 2 Por nombre eliminar \n ");
scanf("%d ",& ampsel);
if(sel==1)
{
Printf("Ingrese el número de estudiante que desea eliminar:");
scanf("%s ", find mess
p=Locate(l, findmess,); " num ");
if(p)
{
r = l;
mientras
(r->Siguiente!=p)
r = r->Siguiente;
r->siguiente = p->Siguiente
Free(p);
printf(" \ n = = = = = & gt; Consejo: ¡El estudiante ha sido eliminado exitosamente!\n ");
shoudsave = 1;
}
Otro
nofind();
}
si no(sel==2)
{
Printf("Ingrese el nombre que desea eliminar:");
scanf("%s ", busque desorden);
p=Locate(l, findmess, " nombre ");
if (p)
{
r = l;
mientras(r->; siguiente!=p)
r = r-& gt; siguiente;
r-& gt ;siguiente = p->Siguiente ;
Free(p);
printf(" \n = = = = = > Consejo: ¡El estudiante ha sido eliminado exitosamente!\n ");
shoudsave = 1;
}
Otro
nofind();
}
Otro
Error();
}
Modificación no válida (enlace l)
{
nodo * p ;
char encontrar desorden[20];
if (!l-> siguiente)
{
printf(" \ n = = = = = & gt; Consejo: ¡No se pueden modificar datos! \n ");
Regresar;
}
Printf("Por favor ingrese el número de estudiante a modificar:");
scanf("%s ", find mess);
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-> ;data.name);
scanf("%s",p->data.name);
p>
getchar();
Printf("Ingrese su nuevo género (originalmente %s):", p-& gt; data. sex);
scanf("%s ", p-& gt; data. sex );
Printf("Ingrese su nueva puntuación en lenguaje C (originalmente %d):", p-& gt; data . cgrade
scanf("%d "); , &p->; datos . cgrade);
getchar();
Printf(" Ingrese su nueva calificación de matemáticas (era %d): ",p-> .m calificación)
scanf("%d",&p->data.m calificación)
getchar();
Printf("Por favor ingresa tu nueva calificación de inglés (originalmente %d):", p-& gt; data . e calificación);
scanf("%d",&p->;data.e calificación)
;
p->;data.totle = p->data.e calificación+p->data.c calificación+p->data.m calificación;
p->; data. ave = p-& gt; data.totle/3;
printf(" \ n = = = = = & gt; Consejo: ¡Los datos se han modificado correctamente! \ n ");
shoudsave = 1;
}
Otro
nofind();
}
Visualización no válida (enlace l)
{
int count = 0;
nodo * p; p = l-& gt; siguiente;
if(!p)
{
printf(" \ n = = = = & gt ; Consejo: ¡No hay datos para mostrar! \ n ");
Return;
}
printf(" \ t \ t \ t \ tMostrar resultados \ n ")
printstart();
printc();
printf(" \ n "); /p>
{
printe(p);
p = p-& gt;Siguiente;
} p>
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-& gt; siguiente
if(!r)
{
printf(" \ n = = = = = & gt; Consejo: ¡No hay datos para contar! \ n ");
Regresar;
}
pm = PE = PC = pt = pa = r;
mientras(r!=null)
{
if(r-& gt;datos . c grado & gt ; = PC->datos.cgrade)
PC = r
if(r->datos . m grado>= pm->datos.mgrade)
pm = r;
if(r->data. e calificación>= PE->data.egrade)
PE = r;
if(r-& gt;data.totle & gt= pt-& gt;data.totle)
pt = r;
if(r->data.ave & gt=pa->data.ave)
pa = r;
r = r->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-& gt;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 de enlaces.
ll->next = NULL
if (l->next==NULL)
{
printf (" \ n = = = = = & gt; Consejo: ¡No hay datos para ordenar!\n ");
Regresar;
}
p = l- & gt; next;
while(p)
{
s =(Node *)malloc(sizeof(Node));/ /El nuevo contacto es Se utiliza para guardar información.
s->data = p->data;
s->siguiente = NULL
rr = ll
while(RR->Siguiente!= NULL & amp& ampRR->Siguiente->data.totle >= p->data.totle)
RR = RR-& gt; >
if (RR-& gt; next==NULL)
RR-& gt; next = s;
Otros
{ p>
s->siguiente = RR->siguiente;
RR->siguiente = s;
}
p = p -& gt; siguiente;
}
Gratis (l
l ->siguiente = ll->Siguiente;
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 ");
if(fp==NULL)
{
printf(" \ n = = = = = & gt; Consejo: ¡Ocurrió un error al volver a abrir el archivo! \n ");
Salir (1 );
}
p = l-& gt;Siguiente;
while(p)
{
if(fwrite(p,sizeof(Node),1,fp)== 1)
{
p = p-& gt; siguiente;
cuenta++;
}
Otro
{
flag = 0;
Romper
}
}
if(flag)
{
printf(" \ n = = = = = & gt; Consejo: El archivo se guardó correctamente. (Se han guardado %d registros).\ n", recuento);
debe guardar = 0;
}
p>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; p>
printf("\t\t\t\tSistema de gestión de puntuación de estudiantes\n\t\t-01 Software College Wu(200155304)\ 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 ");
Otro
Salir (0);
}
printf(" \ n = = = = = & gt; Consejo: El archivo se ha abierto y se están importando registros...\ n "); p>And(!feof(fp))
{
p=(nodo*)malloc(tamañode(nodo));
Si (fread ( p, sizeof (node), 1, FP)) //Pon el contenido del archivo en el contacto
{
p->; . >r-& gt; next = p;
r = p; //Cuelgue este contacto en la conexión
count++;
} p>
}
fclose(FP); //Cerrar el archivo
printf(" \ n = = = = = & gt; Consejo: Después de importar registros , * * * %d registros importados.\n ", count);
while(1)
{
menu();
Printf("Seleccione una operación:");
scanf("%d ", & ampsel);
if(sel==0)
{
if(shoudsave==1)
{ getchar();
printf(" \ n = = = = & gt; Consejo :Los datos han sido cambiados ¿Desea guardar los cambios en el archivo (s/n)?
scanf("%c ", & ampch);
if (ch). =='y'||ch=='Y ')
Guardar (l);
}
printf(" \ n = = = = = > Consejo: Has salido del sistema \n ");
Pausa;
Cambiar (seleccionar)
p>{
Caso 1: Agregar (l); //Agregar estudiantes
Caso 2: Del (l); //Eliminar estudiantes p>
Caso tres: Corán (izquierda); ); break; // consultar estudiantes
Caso cuatro: modificar (l); // modificar estudiantes
Caso 5: Disp(l);
Caso 6: Tongji(l); Break; //Estadísticas de estudiantes
Caso 7: Sort(l);/ /Ordenar estudiantes
Caso 8: Save(l); //Guardar estudiantes
Caso 9: printf ("\ t \ t \ t = = = = = = Información de ayuda = = = = = = = "); romper;
Predeterminado: error(); getchar(); romper;