Programación de información

# incluir ltstdio.h gt/*Funciones de biblioteca de referencia*/

# incluir ltstdlib.h gt

# incluir ltctype.h gt

# incluir ltstring. h gt

Typedef struct /*definir matriz de estructura*/

{

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

<; p>char nombre[20];/*nombre*/

int puntuación;/*logro*/

}estudiante;

estudiante estudiante[80] ;/*Variable de matriz de estructura*/

Int menu_select() /*Función de menú*/

{

char c;

do {

system("cls"); /*Borrar pantalla antes de ejecutar*/

printf("\t\t * * * *Sistema de gestión de puntuación de estudiantes* * * * \ n "); /*Selección de menú*/

printf("\t\t | 1. Ingresar registro | \ n ");

printf("\t\t 2. Mostrar todos los registros | \ n ");

printf("\t\t | 3. sort | \ n ");

printf("\t\t | 4. Insertar registro | \ n ");

printf("\t\t | 5. Eliminar registro | \ n ");

printf("\t\t | 6. consulta | \ n ");

printf("\t\t | 7. Estadísticas | \ n ");

printf("\t\t | 8 Agregar registros desde el archivo de texto | \ n ");

printf("\t\t | 9. Escribir en el archivo de texto | \ n ");

printf("\. t\t | 0. Salir | \n ");

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

printf("\t\t\tDa su elección (0-9):");

c = getchar(); /*Leer selección*/

} while(c lt; 0 ' | | c gt'9'); 0 ');/*Volver a la selección*/

}

Intinput (estudiante estudio [], int n)/*Introducir varios registros*/

{ int I = 0;

Símbolo de carácter, x[10]; /*x[10] se utiliza para borrar datos redundantes*/

Y (signo! = 'n' firma de amplificador! ='N') /*Sentencia*/

{ printf(" \ t \ t \ tNúmero de estudiante: "); /*Entrada interactiva*/

scanf(" \t \t\ts ",estudiante[n i].num);

printf("\t\t\tNombre del estudiante:");

scanf("\t \t\ ts ",semental[n i].

nombre);

printf("\t\t\tPuntuación del estudiante:");

scanf("\t\t\td", ampstud[n i]. Puntuación );

Get(x);/*Borrar entrada redundante*/

printf(" \ t \ t \ t ¿Hay más registros? (Y/N)" );

scanf("\t\t\tc ", firma del amplificador) /*Juicio de entrada*/

i;

}

return(n I);

}

Visualización nula (estudio del estudiante [], int n)/*mostrar todos los registros*/

{

int I;

printf(" \ t \ t \ t-\ n "); /*Formato de encabezado*/

printf(" \ t \ t \ t número nombre puntuación \ n ");

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

for(I = 1; i ltn 1;I) /*Entrada de bucle*/

{

printf(" \ t \ t \ t -16s -15s d \ n ", stud[i-1]. número, stud[ i-1]. nombre, stud[i-1].score);

if (i gt1. ampI10==0) /*pausa cada diez veces*/

{ printf(" \ t \ t \ t-\ n "); /*Formato*/

printf(" \ t \ t \ t "); ");

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

}

}

printf( " \ t \ t \ t ");

System("pausa");

}

void Ordenar _ por _ num(estudio[], int n)/*Ordenar por número de estudiante*/

{ int i, j, *p, *q, s;

char t[10] ;

for(I = 0;I ltn-1;I) /*clasificación de burbujas*/

for(j = 0;j ltn-1-I;j)

if(strcmp(stud[j].número, stud[j 1]. num)>0)

{strcpy(t, stud[j 1]). número);

strcpy(stud[j 1]). número, perno[j]. num);

strcpy(stud[j].num, t);

strcpy(t, stud[j 1]). nombre);

strcpy(stud[j 1]). Nombre, semental[j]. nombre);

strcpy(stud[j].name,t);

p = amp stud[j 1]. puntuación;

q = ampstud[j].

Puntuación;

s = * p;

* p = * q;

* q = s;

}

}

int Insertar _ a _ registro(studenttud[], int n)/*Insertar un registro*/

{ char x[10];/*Usar Para eliminar entradas redundantes*/

printf("\t\t\tNúmero de estudiante:");/*Entrada interactiva*/

scanf("\t\t \ts " , stud[n].num);

printf("\t\t\tNombre del estudiante:");

scanf("\t\t\ts ", stud[ n]. Nombre);

printf("\t\t\tPuntuación del estudiante: ");

scanf("\t\t\td ", amp stud. puntuación)

Get(x);

n;

Sort_by_num(stud, n); /*Llamar a la función de clasificación*/

printf(" \ t \ t \ tInserción exitosa! \ n " /*Devolver información de éxito*/

Devolver (n);

}

int delete _ a _ record(student stud[], int n)/*Buscar y eliminar un registro por nombre*/

{ char s[20];

int i= 0,j;

printf(" \ t \ t \ tDime su nombre: "); /*Exploración interactiva*/

scanf("s ", s );

while(strcmp(stud[i].Name, s)!= 0 amp ampiltn)i /*Buscar y juzgar*/

If (i==n) )

{ printf(" \ t \ t \ t no encontrado! \ n " /*Devolver información de error*/

Devolver (n);

<); p>}

for(j = I; j ltn-1; J ) /*Eliminar operación*/

{

strcpy(stud[j] .Número, semental[j 1].num);

strcpy(semental[j].Nombre, semental[j 1].Nombre);

Semental[j]. puntuación=estudiante[j 1].

Puntuación;

}

printf(" \ t \ t \ t¡Eliminar correctamente! \n " /*Devolver información de éxito*/

Devolver ( n "); -1);

}

Anular consulta _ a _ record(studenttud[], int n)/*Buscar y mostrar un registro*/

{ char s[20];

int I = 0;

printf(" \ t \ t \ tIngrese su nombre: " /*Entrada interactiva*/

scanf("\t\t\ts ", s);

while(strcmp(stud[i].name, s)!= 0 amp amp i ltn)i; /*Buscar y juzgar*/

If (i==n)

{ printf("\t\t\t¡No encontrado!\n") ;/*Ingresar información de falla */

Return;

}

printf(" \ t \ t \ este (su) número: s \ n " , stud[i]. num);/*Salida de información del estudiante*/

printf("\t\t\this(her)score: d\n",stud[i].score

}

Estadística nula (estudio del estudiante [], int n)/*Nueva función, información estadística de salida*/

{ int i, j=0, k=0, suma = 0;

Promedio flotante/*puntuación promedio*/

for(I = 0; Iltn; I) /*Juicio de entrada de bucle*/

{

suma =semental[i]. Puntuación;

if(stud[j].scoregtstud[i].score)j = I;

if(stud[k].scoreltstud[i].score) k = I;

}

promedio = 1.0 * suma/n;

printf("\t\t\tiene d registros.\n ", n) ; /*Total * * * registros*/

printf("\t\t\tPuntuación más alta:\n");/*Puntuación más alta*/

printf(" \ t \ t \ t número: s nombre: s puntuación: d\n ", stud[j].num, stud[j].nombre, stud[j].score);

printf(" \t\t\tPuntuación mínima:\n");/*Puntuación mínima*/

printf("\t\t\tNúmero: sNombre: sPuntuación :d\n ", stud[k]. num, semental[k]. nombre, semental[k].

puntuación);

printf(" \ t \ t \ tLa puntuación promedio es 5.2f\n ",aver /*puntuación promedio*/

}

<); p>intaddfromtext(studenttud[], int n)/*Leer datos del archivo*/

{ int i=0, num

FILE * fp/*Definir el puntero del archivo */

Nombre de archivo de caracteres [20] /*Definir nombre de archivo*/

printf(" \ t \ t \ tNombre de archivo de entrada: "

scanf("\t\t\ts ", nombre de archivo); /*Ingrese el nombre del archivo*/

If ((FP = fopen (nombre de archivo, " Rb)) = = null)/ * Abrir archivo*/

{ printf(" \ t \ t \ tNo se puede abrir el archivo\n "); /*Abrir mensaje de error*/

printf(" \ t \ t \ t ");

Sistema("pausa");

Retorno(n);

}

fscanf(fp , " d ", ampnum); /*Leer los registros totales*/

while(IltNum) /*Bucle para leer datos*/

{

fscanf (fp, " ssd ", stud[n i]. num, stud[n i]. Nombre ampstud[n i]. Puntuación

i

}

<); p>n = num;

fclose(FP);/*Cerrar archivo*/

printf("\t\t\t¡Éxito!\n");

printf(" \ t \ t \ t ");

Sistema("pausa"

Retorno (n); /p>

Escritura nula en texto (student stud[], int n)/*Escribir todos los registros en el archivo*/

{

int I = 0; p>

ARCHIVO * fp/*definir puntero de archivo*/

Nombre de archivo de caracteres[20];/*definir nombre de archivo*/

printf(" \t\t \tEscribir registros en un archivo de texto\n");/*Ingresar nombre de archivo*/

printf("\t\t\tIngresar nombre de archivo:");

scanf( "\t\t\ts ", nombre de archivo);

If ((FP = fopen (nombre de archivo, " w)))== null)/*Abrir archivo*/

{

printf("\t\t\tNo se puede abrir el archivo\n");

Sistema("pausa");

Regresar;

}

fprintf(fp, " d\n ", n); /*Escribir datos en un bucle*/

while( iltn)

{

fprintf(fp, " -16s-15sd\n ", stud[i]. número,estudiante[i]. Nombre, Semental[i].

puntuación);

i;

}

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

printf("Éxito); ! \ n "); /*Devolver información de éxito*/

}

Void main() /* función principal*/

{

int n = 0;

for(;;)

{

Switch(menu_select()) /*Juicio de selección*/

{

Caso 1:

printf("\t\t\tIngresar registros\n");/*Ingresar varios registros*/

n = input (stu, n);

Break;

Caso 2:

printf("\t\t\tMostrar todos los registros\ n " ); /*Mostrar todos los registros*/

Display(stu, n);

Break;

Caso 3:

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

Sort_by_num(stu, n /*Ordenar por número de estudiante*/

printf(" \ t \ t); \ t Ordenado exitosamente \ n ");

printf(" \ t \ t \ t ");

System("pausa");

Romper ;

Caso 4:

printf("\t\t\tinsert record\n");

n = insert_a_ record(stu, n); /*insertar registro*/

printf("\t\t\t");

system("pausa");

Pausa;

Caso 5:

printf("\t\t\tEliminar registro\n");

n=Delete_a_record(stu , n); eliminar registros por nombre*/

printf("\t\t\t");

System("pause");

Break;

Caso 6:

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

Query_a_record(stu,n ); /*Buscar y mostrar registros* /

printf(" \ t \ t \ t ");

Sistema("pausa"); Caso 7:

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

statistic(stu,n);/ *Nueva característica, estadísticas de salida*/

printf("\t\t\t");

system("pausa");

Pausa;

Caso 8:

printf("\t\t\tAgregar registros desde archivo de texto\n");

n=AddfromText(stu, n /*Nueva función, generar información estadística*/);

Pausa;

Caso 9:

printf("\t\t\twrite archivo de texto\n ");

WritetoText (stu, n);/*Escribir datos en un bucle*/

printf("\t\t\t");

p>

System(“

Pausa");

Pausa;

Caso 0:

¡Buena suerte y adiós! \n "); /*Finalizar programa*/

printf(" \ t \ t \ t ");

Sistema("pausa");

Salir(0); /p>

}

}

4. Diagrama de llamada a función

Nota: "→" representa una llamada

Entrada función

Imprimir registros de lista enlazada

Función mostrar

Introducir varios registros

Función Menu_select()

Seleccionar menú

Función ordenar por cantidad

Mostrar todos los registros

Función eliminar registros

Buscar y eliminar registros por nombre.

Query_a_record busca y muestra un registro.

Funciones estadísticas

Estadísticas de salida (nuevas)

Función AddfromText

Agrega los datos del texto a la matriz de estructura.

Funciones principales

Insertar un registro.

La función WritetoText escribe todos los datos en un archivo.

Salir del programa

Función inversa (principal)

Ordenar por número de estudiante

Proceso de prueba de diseño de verbo (abreviatura de verbo)

1. Ingrese a la interfaz

2. Ingrese la opción 1 y presione Entrar

Ingrese los datos de acuerdo con las indicaciones:

3. Regrese al Menú de la página principal;

Ingrese la opción 7 y presione Entrar

Ingrese el nombre del archivo: data.txt y presione Entrar

Si es exitoso; Aparece el mensaje, se lee el archivo. La operación fue exitosa.

4. Regrese al menú principal, ingrese 2 y presione Enter.

Pausa para mostrar datos cada 10 segundos.

5. Regrese al menú principal, ingrese 3 y presione Enter.

Aparece un mensaje de éxito de clasificación.

6. Regrese al menú principal, ingrese 4 y presione Enter.

Inserte un conjunto de datos según las indicaciones.

7. Regrese al menú principal, ingrese 5 y presione Enter.

Ingrese un nombre cuando se le solicite eliminar los datos.

Aparece un mensaje de eliminación exitosa.

8. Regrese al menú principal, ingrese 6 y presione Enter.

Ingrese el nombre a consultar.

9. Regrese al menú principal, ingrese 7 y presione Enter.

Aparece información estadística

10, regresa al menú principal, ingresa 9 y presiona Enter.

Ingresa result.txt y presiona Enter.

Se mostrará un mensaje indicando que el archivo se escribió correctamente.

11. Regrese al menú principal, ingrese 0 y presione Enter para salir del sistema.

Demandado: king key 001-Período de prueba nivel 7-14 22:38.

Modificar respuesta: kingkey001, la respuesta que deseas modificar es la siguiente: Las reglas de puntos están cerradas.

Informe de diseño de curso de lenguaje C: un programa de gestión simple para el desempeño de los estudiantes

1. Funciones principales del menú del sistema

(1) Ingrese varios registros.

(2) Mostrar todos los registros

(3) Ordenar por número de estudiante

(4) Insertar un registro

(5) Buscar por nombre y eliminar un registro.

(6)Buscar y mostrar registros

(7)Resultar información estadística (nuevo)

(8) Agregar datos en el texto a la matriz de estructura central .

(9) Escribe todos los datos en el archivo.

(0) Salir del programa

2. Análisis del tema

Esta pregunta examina principalmente la manipulación de estructuras, punteros, archivos y su comprensión de C por parte de los estudiantes. dominio de los algoritmos del lenguaje, por lo que completar esta pregunta requiere fuertes capacidades de diseño, especialmente conciencia general. La forma de depurar su programa también es importante. A través de este programa, puede adquirir experiencia que no tenía antes de depurar programas cortos.

Cada opción del menú corresponde a una subrutina, y el algoritmo de la subrutina cubre casi todas las habilidades aprendidas en lenguaje C. Las siguientes son las funciones en cada subrutina:

El algoritmo de la función 1 es similar al algoritmo de la función 4. Al ingresar un registro en la estructura, uno de los puntos clave es ingresar todos los caracteres adicionales a través de get; de lo contrario, se producirá un error.

La función 2 es mostrar todos los registros y generarlos a través de un bucle. El formato también es muy importante.

La función 3 es ordenar por número de estudiante. Debido a que el número de estudiante se define como una matriz de caracteres, al ordenar usando el método de burbuja, se deben usar strcmp, strcpy y otras funciones.

La función 5 es eliminar registros por nombre. Ingrese el nombre primero y luego compárelos uno por uno. Si no hay ningún nombre, se devolverá un mensaje de error. Si se encuentran, todos los registros avanzan uno y se devuelve n-1.

El algoritmo de la función 6 se ha implementado en la 5. Ingrese los nombres y compárelos uno por uno.

La función 7 es una función nueva debido a que no existe una función estadística para los puntajes de los estudiantes en la función original, al agregar esta función se pueden obtener todos los registros, el puntaje más alto, el puntaje más bajo, el puntaje promedio y generar información relevante del estudiante. .

Las funciones 8 y 9 son operaciones sobre archivos y los datos se preparan de antemano.

En tercer lugar, el cuerpo principal del programa

# include ltstdio.h gt/*función de biblioteca de referencia*/

# include ltstdlib.h gt

# include ltctype.h gt

# include ltstring.h gt

Typedef struct /*definir matriz de estructura*/

{

Número de personaje[10];/*ID de estudiante*/

nombre de personaje[20];/*Nombre*/

puntuación int;/*Logros*/

}Estudiante;

Estudiante stu[80];/*Variable de matriz de estructura*/

Int menu_select() /*Función de menú*/

{

char c;

hacer {

system("cls" /*Borrar pantalla antes de ejecutar*/

printf(" \ t \ t * * * *Sistema de gestión del desempeño estudiantil* * * * \ n ");/*Selección de menú*/

printf("\t\t | 1. Ingrese registro | \ n ");

printf("\t\t | 2. Mostrar todos los registros | \ n ");

printf("\t\t | 3 . ordenar | \ n ");

printf("\t\t | 4. Insertar registro | \ n ");

printf("\t\t | 5. Eliminar registro | \ n ");

printf("\t\t | 6. consulta | \ n ");

printf("\t\t | 7. Estadísticas | \ n ");

printf("\t\t | 8. Agregar registros desde el archivo de texto | \n ");

printf("\t\t | 9 . Escribir archivo de texto de entrada | \ n ");

printf("\t\t | 0.

Salir | n ");

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

printf("\t\t\tDa su elección (0-9): ");

c = getchar();/*Leer selección*/

} while(c lt; 0 ' | | c gt'9');

return(c-' 0 '); /*Volver a la selección*/

}

Entrada (estudio del estudiante [], int n)/*Ingresa varios registros*/

{ int I = 0;

Símbolo de carácter, x[10]; /*x[10] se utiliza para borrar datos redundantes*/

Y (signo! = ' n ' amp ampSign! = 'N') /*Sentencia*/

{ printf("\t\t\tNúmero de estudiante:");/*Entrada interactiva*/

scanf("\t\ t\ts ",estudiante[n i].num);

printf("\t\t\tNombre del estudiante:");

scanf( "\t\t\ts ", stud[n i]. nombre);

printf("\t\t\tPuntuación del estudiante: ");

scanf(" \t\t\td ", ampstud [n i]. puntuación);

Get (x); /*Borrar entrada redundante*/

printf(" \ t \ t \t¿Hay más registros? (S/N). )");

scanf("\t\t\tc ", firma amp); /*Juicio de entrada*/

i;

}

return(n I);

}

Visualización nula (estudio del estudiante [], int n) /*Mostrar todos los registros*/

{

int I;

printf(" \ t \ t \ t-\ n "); /*Formato de encabezado*/

printf( " \ t \ t \ t número nombre puntuación \ n "

printf(" \ t \ t \ t-\ n "); I ltn 1; I ) /*Entrada de bucle*/

{

printf(" \ t \ t \ t -16s -15s d\n",stud[i-1 ]. No., semental [número de identificación 1]. Nombre, semental[i-1]. puntuación);

si (i gt1.

ampI10==0) /*Pausar cada diez veces*/

{ printf(" \ t \ t \ t-\ n "); " \ t \ t \ t ");

Sistema("pausa");

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

}

}

printf(" \ t \ t \ t ");

sistema("pausa"); p>}

void Ordenar _ por _ num(estudio[], int n)/*Ordenar por número de estudiante*/

{ int i, j, *p, *q , s;

char t[10];

for(I = 0; I ltn-1; I ) /*clasificación de burbujas*/

(j = 0; j ltn-1-I; j )

if(strcmp(stud[j].número, stud[j 1].num)>0)

{strcpy(t,stud[j 1]). número);

strcpy(stud[j 1]). número, perno[j]. num);

strcpy(stud[j].num, t);

strcpy(t, stud[j 1]). nombre);

strcpy(stud[j 1]). Nombre, semental[j]. nombre);

strcpy(stud[j].name,t);

p = amp stud[j 1]. puntuación;

q = ampstud[j]. Puntuación;

s = * p;

* p = * q;

* q = s;

}

}

int Insertar _ a _ registro(studenttud[], int n)/*Insertar un registro*/

{ char x[10];/*Usar Para eliminar entradas redundantes*/

printf("\t\t\tNúmero de estudiante:");/*Entrada interactiva*/

scanf("\t\t \ts " , stud[n].num);

printf("\t\t\tNombre del estudiante:");

scanf("\t\t\ts ", stud[ n]. Nombre);

printf("\t\t\tPuntuación del estudiante: ");

scanf("\t\t\td ", amp stud.

puntuación);

Get (x);

n

Sort_by_num(stud, n); p>printf(" \ t \ t \ tInserción exitosa! \ n " /*Devolver información de éxito*/

Devolver (n);

}

int eliminar _ a _ registro(student stud[], int n)/*Buscar y eliminar un registro por nombre*/

{ char s[20];

int i=0,j;

printf(" \ t \ t \ tDime su nombre: "); /*Exploración interactiva*/

scanf( "s " , s);

while(strcmp(stud[i].Name, s)!= 0 amp ampiltn)i /*Buscar y juzgar*/

If (i= =n)

{ printf("\t\t\t¡No encontrado!\n");/*Devolver información de error*/

Devolver ( n);

}

for(j = I; j ltn-1; J ) /*Eliminar operación*/

{

strcpy(stud[j ].Número, stud[j 1].num);

strcpy(stud[j].Nombre, stud[j 1].name);

Stud[j]. puntuación=estudiante[j 1]. Puntuación;

}

printf(" \ t \ t \ t¡Eliminar correctamente! \n " /*Devolver información de éxito*/

Devolver ( n "); -1);

}

Anular consulta _ a _ record(studenttud[], int n)/*Buscar y mostrar un registro*/

{ char s[20];

int I = 0;

printf(" \ t \ t \ tIngrese su nombre: " /*Entrada interactiva*/

scanf("\t\t\ts ", s);

while(strcmp(stud[i].name, s)!= 0 amp amp i ltn)i; /*Buscar y juzgar*/

If (i==n)

{ printf("\t\t\t¡No encontrado!\n") ;/*Ingresar información de falla */

Return;

}

printf(" \ t \ t \ este (su) número: s \ n " , stud[i]. num);/*Salida de información del estudiante*/

printf("\t\t\this(her)score: d\n",stud[i].score

}

Estadística nula (estudio del estudiante [], int n)/*Nueva función, información estadística de salida*/

{ int i, j=0, k=0, suma = 0;

Promedio flotante/*puntuación promedio*/

for(I = 0; Iltn; I) /*Juicio de entrada de bucle*/

{

suma =semental[i]. Puntuación;

if(stud[j]. Puntuación gtstud[i].

puntuación)j = I;

if(stud[k]. puntuaciónltstud[i]. puntuación)k = I;

}

promedio = 1,0 * sum/n;

printf(" \ t \ t \ t tiene d registros.\n", n /* Total * * * registros */

printf(" \t\t\tPuntuación más alta:\n");/*Puntuación más alta*/

printf("\t\t\tNúmero: sNombre: sPuntuación: d\n ", stud[j]. num, stud[j].name, stud[j].score);

printf("\t\t\tpuntuación mínima:\n");/ *Puntuación mínima*/

printf("\t\t\tNúmero: s Nombre: s Puntuación: d\n ", stud[k]. num, stud[k]. nombre, stud[k]. Puntuación);

printf("\t\t\tLa puntuación promedio es 5.2f\n",aver);/*Puntuación promedio*/

}

intaddfromtext(studenttud[] , int n)/*Leer datos del archivo*/

{ int i=0, num

FILE * fp/ *Definir puntero de archivo*/

Nombre de archivo de caracteres [20]; /*Definir nombre de archivo*/

printf(" \ t \ t \ tNombre de archivo de entrada:

scanf("\t\ t\ts ", nombre de archivo); /*Ingresar nombre de archivo*/

If ((FP = fopen (nombre de archivo, " Rb))= = null)/*Abrir archivo*/

{ printf("\t\t\tNo se puede abrir el archivo\n");/*Abrir mensaje de error*/

printf( " \ t \ t \ t ");

Sistema("pausa");

Retorno(n);

}

fscanf(fp, "d", ampnum); Leer los registros totales*/

while(IltNum) /*Bucle para leer datos*/

{

fscanf(fp, " ssd ", stud[ n i]. num, stud[n i]. Nombre ampstud[n i].

puntuación);

i ;

}

n = num;

fclose(FP);

printf("\t\t\t¡Éxito!\n");

printf("\t\t\t");

Sistema( "pausa");

Return (n);

}

Escritura nula en texto (student stud [], int n)/* todos los registros Escribir en el archivo*/

{

int I = 0;

ARCHIVO * fp/*Definir puntero de archivo*/

Carácter Nombre de archivo[20];/*Definir nombre de archivo*/

printf("\t\t\tEscribir registros en un archivo de texto\n");/*Ingresar nombre de archivo*/

printf("\t\t\tNombre del archivo de entrada:");

scanf("\t\t\ts ", nombre del archivo);

If ((FP = fopen (nombre de archivo, " w))) = = null)/*Abrir archivo*/

{

printf("\t\t\tNo se puede abrir el archivo \n ") ;

Sistema("pausa");

Regresar

}

fprintf(fp, " d\ n ", n ); /*Escribe datos en un bucle*/

while(i ltn)

{

fprintf(fp, " -16s-15sd \n "); , semental[i]. num, semental[i].

puntuación);

i;

}

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

printf("Éxito); ! \ n "); /*Devolver información de éxito*/

}

Void main() /* función principal*/

{

int n = 0;

for(;;)

{

Switch(menu_select()) /*Juicio de selección*/

{

Caso 1:

printf("\t\t\tIngresar registros\n");/*Ingresar varios registros*/

n = input (stu, n);

Break;

Caso 2:

printf("\t\t\tMostrar todos los registros\ n " ); /*Mostrar todos los registros*/

Display(stu, n);

Break;

Caso 3:

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

Sort_by_num(stu, n /*Ordenar por número de estudiante*/

printf(" \ t \ t); \ t Ordenado exitosamente \ n ");

printf(" \ t \ t \ t ");

System("pausa");

Romper ;

Caso 4:

printf("\t\t\tinsert record\n");

n = insert_a_ record(stu, n); /*insertar registro*/

printf("\t\t\t");

system("pausa");

Pausa;

Caso 5:

printf("\t\t\tEliminar registro\n");

n=Delete_a_record(stu , n); eliminar registros por nombre*/

printf("\t\t\t");

System("pause");

Break;

Caso 6:

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

Query_a_record(stu,n ); /*Buscar y mostrar registros* /

printf(" \ t \ t \ t ");

Sistema("pausa"); Caso 7:

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

statistic(stu,n);/ *Nueva característica, estadísticas de salida*/

printf("\t\t\t");

system("pausa");

Pausa;

Caso 8:

printf("\t\t\tAgregar registros desde archivo de texto\n");

n=AddfromText(stu, n /*Nueva función, generar información estadística*/);

Pausa;

Caso 9:

printf("\t\t\twrite archivo de texto\n ");

WritetoText (stu, n);/*Escribir datos en un bucle*/

printf("\t\t\t");

p>

System(“

Pausa");

Pausa;

Caso 0:

¡Buena suerte y adiós! \n "); /*Finalizar programa*/

printf(" \ t \ t \ t ");

Sistema("pausa");

Salir(0); /p>

}

}

4. Diagrama de llamada a función

Nota: "→" representa una llamada

Entrada función

Imprimir registros de lista enlazada

Función mostrar

Introducir varios registros

Función Menu_select()

Seleccionar menú

Función ordenar por cantidad

Mostrar todos los registros

Función eliminar registros

Buscar y eliminar registros por nombre.

Query_a_record busca y muestra un registro.

Funciones estadísticas

Estadísticas de salida (nuevas)

Función AddfromText

Agrega los datos del texto a la matriz de estructura.

Funciones principales

Insertar un registro.

La función WritetoText escribe todos los datos en un archivo.

Salir del programa

Función inversa (principal)

Ordenar por número de estudiante

Proceso de prueba de diseño de verbo (abreviatura de verbo)

1. Ingrese a la interfaz

2. Ingrese la opción 1 y presione Entrar

Ingrese los datos de acuerdo con las indicaciones:

3. Regrese al Menú de la página principal;

Ingrese la opción 7 y presione Entrar

Ingrese el nombre del archivo: data.txt y presione Entrar

Si es exitoso; Aparece el mensaje, se lee el archivo. La operación fue exitosa.

4. Regrese al menú principal, ingrese 2 y presione Enter.

Pausa para mostrar datos cada 10 segundos.

5. Regrese al menú principal, ingrese 3 y presione Enter.

Aparecer

"center">Copyright 2024 Red de conocimientos turísticos All Rights Reserved.