Red de conocimiento informático - Computadora portátil - Resolver problemas de programación en lenguaje c

Resolver problemas de programación en lenguaje c

¿Por qué tantas preguntas? El software de gestión de información sobre el desempeño estudiantil es para usted.

Esto es lo que hice específicamente para la semana, jaja, lo estoy usando ahora

#include

#include

#include //Contiene archivos de encabezado usando strcmp

void Menu(); //Menú principal

void Infobase() //Mantenimiento de información

void Find(); //Consulta de información

void InfoStat(); //Estadísticas de puntuación

void Comp() //Clasificación de puntuación

void Find_ID (); //Buscar por número de estudiante

void Find_name(); //Buscar por nombre

void Infobase_add() //Ingresar información

p>

void Infobase_amend(); //Modificar información

void Delete(); //Eliminar información

typedef struct //Renombrar la estructura de información del estudiante

{

char name[10]; //Nombre

char sex[3]; //Género

int ID; //Número de estudiante

int math; //Puntuaciones de matemáticas

int english; //Puntuaciones de inglés

int computer_C; //Puntuaciones de lenguaje C de computadora

int sum; / /Suma de calificaciones

}Estudiante;

void main()

{

int chg=1,n ;

printf("\t\tBienvenido a este sistema de gestión, para su uso normal, utilícelo en Depuración\n");

while(chg)

{

Menú();

scanf("%d",&n);

cambiar(n)

{

caso 1:

Infobase(); //Mantenimiento de la información

pausa;

caso 2:

Find( ); //Consulta de información

descanso;

caso 3:

InfoStat() //Estadísticas de puntuación

descanso;

caso 4:

Comp();

descanso; //clasificación de puntuación

caso 0:

chg=0; //Salir del menú

printf("(^_^)¡Gracias por usarlo! Adiós\n");

break;

predeterminado:

printf("(~_~) ¿Selección incorrecta (0~4)? Vuelva a introduzca \n");

}

}

getch();

}

/* * ***********************************Pantalla del menú principal********** ******** *************************************/

void Menú()

{

printf("\

t\t\t************************\n");

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

printf("\t\t\t** Menú principal**\n");

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

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

printf("\t\t\t 1 Mantenimiento de información\n");

printf("\t\t\t 2 Consulta de información\n" );

printf("\t\t\t 3 Estadísticas de puntuación\n");

printf("\t\t\t 4 Clasificación de puntuación\n");

printf("\t\t\t 0 Salir del menú\n");

}

/********** ****** **********************Mantenimiento de información********************* ********* *************************/

void Infobase()

{

int n, cambio=1;

while(cambio)

{

printf("\t\t \t1 Ingresar información del estudiante\n");

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

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

printf("\t\t\t0 Volver al menú principal\n");

scanf("%d",&n) ;

switch(n)

{

caso 1:

Infobase_add() //Ingrese información

break;

caso 2:

Infobase_amend(); //Modificar información

break;

caso 3:

Delete(); //Eliminar información

case 0:

chg=0; //Regresar al menú principal

break;

predeterminado:

printf("\t(~_~) Selección incorrecta, vuelva a ingresar\n:");

}

}

}

/****************************** Ingrese información****************** ******************************* *********/

void Infobase_add( )

{

Student stu[1] //Definir variable de matriz de Student

FILE* fp=NULL; //Declarar puntero de archivo

fp=fopen("Special Week.txt","a"); //Abrir en modo agregar

printf("\tIngrese nombre, sexo, número de estudiante, puntaje (matemáticas, idioma extranjero C) \n");

scanf("%s%s%d%d%d%d ", //Recibir entrada

stu[0].nombre,

stu[0].sexo,

&

amp;stu[0].ID,

&stu[0].matemáticas,

&stu[0].inglés,

&stu[0].computer_C );

stu[0].sum=stu[0].english+stu[0].computer_C+stu[0].math;//Calcular puntuación total

si (fprintf(fp," %s %s %d %d %d %d %d \n",//Procesamiento de prevención de errores de escritura en disco

stu[0].name,

stu[0].sexo,

stu[0].ID,

stu[0].matemáticas,

stu[0]. inglés,

stu[0].computer_C,

stu[0].sum)==0)

{

printf ("Error de escritura");

}

fclose(fp); //Cerrar el puntero del archivo

}

/* ***********************************Modificar información************ ****** *************************************/

void Infobase_amend()

{

int i,j;

char ch[10] //Declara una matriz de caracteres para guardar el nombre que necesita; a modificar

Student stu [50]; //Declarar matriz de tipo de estudiante

FILE* fp=NULL; //Declarar puntero de archivo

printf(" \tIngrese el nombre del estudiante a modificar");/ /Solicitar entrada

scanf("%s",ch); //Recibir nombre de entrada

fp=fopen ("Special Week.txt","rt+"); // Abierto para lectura y escritura

for(i=0;;i++)

{

fscanf(fp," %s %s %d %d %d %d %d ",//Leer del disco a la memoria

stu[i].name,

stu[i].sexo,

&stu[i].ID,

&stu[i].matemáticas,

&stu[i].inglés,

&stu[i].computer_C,

&stu[i].sum);

if(strcmp(stu[i].nombre,ch)== 0) //Determina si encontrar lo que necesitas

{

rewind(fp); //Mueve el puntero al principio del archivo

printf ("\tIngrese para modificar nombre, género, número de estudiante, puntaje (matemáticas, idioma extranjero C)\n" );

scanf("%s%s%d%d%d%d" , //Recibir entrada

stu[i].name,

stu[i].sex,

&stu[i].ID,

&stu[i].matemáticas,

&stu[i].inglés,

&stu[i].computer_C);

j=i ;

stu[i].sum=stu[i].english+stu[i].computer_C+stu[i].math;

for(i=0;i

{

fprintf(fp," %s %s %d %d %d %d %d \n",//Escribir datos originales en el disco

stu [i].nombre,

estu[i].sexo,

estu[i].ID,

estu[i].matemáticas, p>

stu[i].inglés,

stu[i].computer_C,

stu[i].sum);

}

fprintf(fp," %s %s %d %d %d %d %d ",//Escribir datos modificados en el disco

stu[i].name,

stu[i].sexo,

stu[i].ID,

stu[i].matemáticas,

stu [ i].english,

stu[i].computer_C,

stu[i].sum);

fclose(fp); el puntero del archivo

break;

}

}

}

/****** ** *******************************Eliminar información**************** ** ******************************/

void Delete()

{

int i,j,k=0;

char ch[10] //Declara una matriz de caracteres para guardar el nombre a eliminar

Student stu[50]; / /Declarar matriz de tipo de estudiante

FILE* fp=NULL,*fp1=NULL //Declarar puntero de archivo

printf("\tIngrese el nombre; del estudiante que se va a eliminar"); //Solicitar entrada

scanf("%s",ch); //Recibir nombre de entrada

fp=fopen("Semana especial .txt","rt+"); // Abierto para lectura y escritura

for(i=0;!feof(fp);i++)

{

fscanf(fp," %s % s %d %d %d %d %d ",//Leer del disco a la memoria

stu[i].name,

stu[i].sexo,

p>

&stu[i].ID,

&stu[i].matemáticas,

&stu[i]. inglés,

&stu[i ].computer_C,

&stu[i].sum);

if(strcmp(stu[i].nombre,ch )==0) //Determina si se encuentra el

j=i;

}

rewind(fp); //Mueve el puntero a el principio

for(;j

{

stu[j]=stu[j+1] //sobrescribir

Avanzar los elementos que deben eliminarse

}

for(i=0;i

fprintf(fp," %s %s %d %d %d %d %d \n", //Escribir en el disco

stu[i].nombre,

stu[i].sexo,

stu[i].ID,

stu[i].matemáticas,

stu[i].inglés,

stu[ i] .computer_C,

stu[i].sum);

}

fclose(fp);

/** ** *************************************Solicitud de información********* ******* *************************************/

void Find()

{

int n,chg=1; //Declarar variable chg para bucle

while(chg)

{

printf("\t\t\t1 Buscar por número de estudiante\n");

printf("\t\t\t2 Buscar por nombre\n" );

printf("\t\t\t0 Volver al menú principal\n");

scanf("%d",&n);

switch(n)

{

caso 1:

Find_ID() //Llama a la función para buscar por ID de estudiante

<; p> break;

caso 2:

Find_name(); //Llama a la función para buscar por nombre

break;

case 0:

chg= 0; //Volver al menú principal

break;

default :printf("\n(~_~) Incorrecto selección, vuelva a ingresar\n");

}

}

}

/******* ********************** **********Búsqueda por número de estudiante**************** ********************** ****************/

void Find_ID()

{

int n,i;

Student stu[50]; //Declarar variable de matriz de tipo Student

FILE* fp=NULL; //Declarar puntero de archivo

printf("Ingrese el número de estudiante"); //Solicitar recibir entrada

scanf("%d",&n); número de estudiante

fp=fopen("Special Week.txt","rt "); //Abrir en modo de solo lectura

for(i=0;!feof(fp) );i++)

{

if(fscanf( fp," %s %s %d %d %d %d %d \n", //Evita errores de lectura en la memoria

stu[i].nombre,

stu [i].sexo,

&stu[i].ID,

&stu[i].matemáticas,

&stu[i].inglés,

p>

&st

u[i].computer_C,

&stu[i].sum)==0)

printf("Error de lectura");

if( stu [i].ID==n) //Determinar si buscar estudiantes

{

printf("Buscar: %s Género %s ID de estudiante %d Matemáticas %d Extranjero idioma %d idioma C %d Puntuación total %d\n",//Objetivo de búsqueda de salida

stu[i].name,

stu[i].sex, p>

stu[i].ID,

stu[i].matemáticas,

stu[i].inglés,

stu [i ].computer_C,

stu[i].sum);

break;

}

if(feof(fp )) //Manejar situación no encontrada

{

printf("No existe dicha información del estudiante\n"); }fclose (fp); //Cerrar el puntero del archivo

}

/********************** ******** *****Buscar por nombre********************************** ******** ***********/

void Find_name()

{

int i;

char ch [10]; //Declarar una matriz de caracteres para almacenar el nombre de búsqueda

Estudiante stu[50] //Declarar una variable de matriz de Estudiante

FILE* fp=NULL; //Declara el puntero del archivo

printf("Por favor ingresa tu nombre\n"); //Solicita entrada

scanf("%s", ch); //Recibir nombre de entrada

fp=fopen("Special Weekly.txt","rt"); //Abrir en modo de solo lectura

for(i= 0;!feof(fp);i++) //Bucle, finaliza el bucle con el puntero del archivo al final

{

fscanf(fp," %s %s %d %d %d %d %d ",//Leer del disco a la memoria

stu[i].name,

stu[i].sex,

&stu[i].ID,

&stu[i].matemáticas,

&stu[i].inglés,

&stu[i].computadora_C ,

&stu[i].sum);

if(strcmp(stu[i].name,ch)==0) //Determinar si buscar estudiantes

{

printf("Encontrado: %s Género %s ID de estudiante %d Matemáticas %d Idioma extranjero %d Idioma C %d Puntuación total %d\n",//Objetivo de búsqueda de salida

estudiante[i].nombre,

estudiante[i].sexo,

estudiante[i].ID,

estudiante [i].matemáticas,

stu[i].inglés,

stu[i].computer_C,

stu[i].sum);

b

reak;

}

if(feof(fp)) // Maneja la situación no encontrada

{

printf("No dicha información del estudiante\n");

}

}fclose(fp); //Cerrar el puntero del archivo

}

/* *************************************Información Estadística********** ******** *************************************/

void InfoStat()

{

int n,m,i,count=0;

char ch[15] //Declarar carácter matriz para guardar el nombre del curso

Student stu[60] //Declarar variable de matriz de tipo de estudiante

FILE* fp=NULL //Declarar puntero de archivo

fp=fopen("Semana especial.txt ","rt"); //Abrir en modo de solo lectura

printf("Ingrese el nombre del curso (Matemáticas, lengua extranjera C) y el segmento fraccionario (formato: Matemáticas x1-x2)\n");

scanf("%s",ch); //Recibir nombre del curso de entrada

scanf("%d-%d" ,&n,&m); //Recibir segmento de puntuación de entrada

for(i=0;!feof(fp);i++) //Finalizar el ciclo con el puntero del archivo al final del archivo

{

if(fscanf(fp ," %s %s %d %d %d %d %d \n", //Evita errores al leer en la memoria

stu[i].nombre,

stu[i].sexo,

&stu[i].ID,

&stu[i]. matemáticas,

&stu[i].inglés,

&stu[i].computadora_C,

&stu[i].sum)==0)

printf("Error de lectura");

count++;

}

fclose(fp); //Cerrar el puntero del archivo

/****************** ****************El siguiente resultado encuentra el objetivo******* ********************************************/

printf("Nombre y género %s puntuación total\n",ch);

for(i= 0;i

if(strcmp(ch ,"Matemáticas")==0 && stu[i].math>=n && stu[i].math<=m)

{

printf("%s\ t%s\t%d\t%d\n",

stu[i].nombre,

stu[i].sexo,

stu[i].math,

stu[i].sum);

}

for(i=0;i

if(strcmp(ch,"idioma extranjero")==0 && stu[i].engl

ish>=n && stu[i].english<=m)

{

printf("%s\t%s\t%d\t%d\n" ,

stu[i].nombre,

stu[i].sexo,

stu[i].inglés,

stu[i].sum);

}

for(i=0;i

if(!strcmp(ch," C") && stu[i].computer_C>=n && stu[i].computer_C<=m)

{

printf("%s\t%s\t %d\t%d\n",

stu[i].nombre,

stu[i].sexo,

stu[i]. inglés,

stu[i].sum);

}

}

/******** * **********************Ranking de resultados*************************** * *****************************/

void Comp()

{

int i,k,j,count=0;

char ch[15]; //Declarar matriz de caracteres para guardar el nombre del curso

Estudiante [50], temp; //Declarar variables de tipo Estudiante

FILE *fp=NULL; //Declarar puntero de archivo

printf("Ingrese el nombre del curso que necesita ser ordenado"); //Solicita entrada

scanf("%s",ch); //Recibir el nombre del curso ingresado

fp=fopen("Special Week.txt ","rt"); //Con Abrir el archivo en modo lectura

for(i=0;!feof(fp);i++) //Finalizar el ciclo con el puntero del archivo al final

{

if (fscanf(fp," %s %s %d %d %d %d %d \n", //Evita errores al leer en la memoria

stu[i].nombre,

stu[i].sexo,

&stu[i].ID,

&stu[i] .matemáticas,

&stu[i].inglés,

&stu[i].computadora_C,

&stu[i].sum)==0)

printf("Lectura fallida");

count++; //Registra el número de estudiantes en el archivo

}

fclose( fp); //Cerrar el puntero del archivo

if(strcmp (ch,"mathematics")==0)

{

for(i=0 ;i p>

{

k=i;

for(j= i+1;j

if(stu[k ].math&

lt;stu[j].math)

k=j;

if(i!=k)

{

temp =stu[i];

stu[i]=stu[k];

stu[k]=temp;

}

}

printf("Nombre, sexo, número de estudiante, matemáticas, idioma extranjero, lenguaje C, puntaje total, puntaje de matemáticas, clasificación\n");

for(i =0;i

{

printf("%-6s %4s %d %d %d %d %d %d\n", // Información de salida

stu[i].name,

stu[i].sex,

stu[i].ID,

stu[i].matemáticas,

stu[i].inglés,

stu[i].computadora_C,

stu[i].sum, i+1);

}

}

if(strcmp(ch,"idioma extranjero")==0)

{

for( i=0;i

{

k=i;

for(j=i +1;j

if(stu[k].english

k=j;

if(i!=k)

{

temp=stu[i];

stu[ i]=stu[k];

stu[k]=temp;

}

}

printf("Nombre, género, número de estudiante, matemáticas, lengua extranjera, C, puntuación total, puntuación de lengua extranjera, clasificación\ n");

for(i=0;i

{

printf("%-6s %4s %d %d %d %d %d %d\n", //Información de salida

stu[i].name ,

stu[i].sexo,

stu[i].ID,

stu[i].matemáticas,

stu[i].inglés,

stu[i].computer_C,

stu[i].sum,i+1

}

}

if(strcmp(ch,"C ")==0)

{

for(i=0;i< count-1;i++) //Lo siguiente es ordenar en orden descendente

{

k=i;

for(j=i+1;j

if(stu[k].computer_C

k=j;

if(i! =k)

{

temp=stu[i ];

st

u[i]=stu[k];

stu[k]=temp;

}

}

printf(" Nombre, sexo, número de estudiante, matemáticas, lengua extranjera C, puntuación total, puntuación de lengua C, clasificación\n");

for(i=0;i

{

printf("%-6s %4s %d %d %d %d %d %d\n", //Información de salida

stu[i]. nombre,

stu[i].sexo,

stu[i].ID,

stu[i].matemáticas,

stu[i].english ,

stu[i].computer_C,

stu[i].sum,i+1

}

}

}