Ejemplo "Corte de Control"

/*Archivo para grabar Datos"*/
#include <stdio.h>

void PrincipioPrograma();
void GrabarDatos();
void CerrarPrograma();

typedef struct{
int lu;
int codCarrera;
int codMateria;
float notas1;
float notas2;
}registroFacena;

registroFacena regFacena;

FILE * archivo;

char respuesta;

int main (){
PrincipioPrograma();
GrabarDatos();
CerrarPrograma();
return 0;
}

void PrincipioPrograma(){
archivo = fopen("AlumFacena.dat", "wb");
printf("*** Archivo creado! ***\n");
printf("\n\n");
}

void GrabarDatos(){

int cGrabados;
cGrabados=0;
printf("Desea realizar la operacion?? S/N \n");
fflush(stdin);
scanf("%c", &respuesta);
while(respuesta == 's' || respuesta == 'S'){
  printf("-->Ingrese su Libreta Universitaria: ");
  fflush(stdin);
  scanf("%d", &regFacena.lu);
  printf("\t\n  Seleccione el cod de su carrera:\n (\t01| Agrimensura.\n \t02| Biologia.\n \t03| Bioquimica.\n \t04| Fisica.\n \t05| Informatica.\n \t06| Ingenieria.\n \t07| Matematica.\n \t08| Quimica.\t\n) -->");
  fflush(stdin);
  scanf("%d", &regFacena.codCarrera);
  printf("\t\n  Seleccione el cod de la materia:\n (\t01| ALGORITMO Y ESTRUCTURA DE DATOS I.\n \t02| ALGEBRA.\n \t03| SISTEMAS Y ORGANIZACIONES.\n \t04| LOGICA Y MATEMATICA COMPUTACIONAL.\n \t05| ALGORITMO Y ESTRUCTURA DE DATOS II.\t\n) -->");
  fflush(stdin);
  scanf("%d", &regFacena.codMateria);
  printf("*****************************************************************\n");
  printf("Ingrese Nota del Primer Parcial:\n ");
  fflush(stdin);
  scanf("%f", &regFacena.notas1);
  printf("Ingrese Nota del Segundo Parcial:\n ");
  fflush(stdin);
  scanf("%f", &regFacena.notas2);
  printf("*****************************************************************\n");
  system("cls");
  fwrite(&regFacena, sizeof(regFacena), 1, archivo);
      printf("=>Registro Grabado!<=\n ");
      printf("\n\tPasar al Siguiente? S/N: ");
      cGrabados=cGrabados+1;
      fflush(stdin);
      scanf("%c", &respuesta);
    }
    fflush(stdin);
    system("cls");
    printf(">>>>Registros Grabados......");
 }


void CerrarPrograma(){
fclose(archivo);
}



/*Archivo para Leer Datos*/

#include <stdio.h>

typedef struct{
int lu;
int codCarrera;
int codMateria;
float notas1;
float notas2;
}registroFacena;

int contAlum, luAnterior;
float promedio;

void principioPrograma();
void principioCorte();
void finCorte();
void corte();
void finPrograma();
void unAlumno();

registroFacena regFacena;

FILE * archivo;

int main(){
principioPrograma();
while (!feof(archivo))
{
   corte();
}

finPrograma();
}

void principioPrograma(){
    archivo = fopen("AlumFacena.dat", "rb");
fread(&regFacena, sizeof(regFacena), 1, archivo);
contAlum = 0;
promedio = 0;

printf("LU\t Cod.Carrera\tCod.Materia\tNota1\t Nota2\tPromedio\n");
}

void principioCorte()
{
luAnterior = 0;
    luAnterior =  regFacena.lu;
}

void corte(){     
    principioCorte();
    while(!feof(archivo) && regFacena.lu == luAnterior)
{

unAlumno();
}
finCorte();
}

void unAlumno()
{
if(regFacena.codCarrera == 5)
{
printf("\nUsted es Alumno de LIC. SISTEMAS\n");
printf("****************************************************************************");
promedio = (regFacena.notas1 + regFacena.notas2) / 2;
        printf("\n %d \t\t %d \t %d \t\t %2.f \t %2.f \t %2.f \n", regFacena.lu, regFacena.codCarrera, regFacena.codMateria, regFacena.notas1, regFacena.notas2, promedio);
       
}else{
printf("\n No existen datos por Mostrar");
}
contAlum ++;
fread(&regFacena, sizeof(regFacena), 1, archivo);
}

void finCorte()
{

}

void finPrograma(){
printf("\n\n");
printf("****************************************************************************");
printf("\n\n");
    printf("\nLa cantidad de alumnos promediados en AEDII es de: %d",contAlum);
fclose(archivo);
}

Comentarios

Entradas más populares de este blog

Algoritmo de Grafos. Comparación de PRIM, KRUSKAL, DIJKSTRA. Codigo en C

Algoritmo de Ackermann -Explicación del Funcionamiento-

Presentación