Código PHP:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_ALUM 100
#define MAX_NIF 10
#define MAX_ASIG 20
struct alumnos
{
char nif[15];
char asignatura[15];
float nota;
};
int leelinea(char *cadena, int tope)
{
int c, i;
for(i=0; (i<tope-1)&&((c=getchar())!='\n'); i++)
{
cadena[i]=c;
}
cadena[i]='\0';
return(i);
}
void leealumnos(struct alumnos alumno[], int *tope)
{
if(*tope<MAX_ALUM)
{
printf("Introduce el nif del alumno: ");
leelinea(alumno[*tope].nif, MAX_NIF);
printf("Introduce la asignatura: ");
leelinea(alumno[*tope].asignatura, MAX_ASIG);
printf("Introduce la calificacion: ");
fscanf(stdin, "%f", &(alumno[*tope].nota));
(*tope)++;
getchar(); //para quitar el /n
}
else
printf("No se pueden hacer mas registros, cierre el programa y vuelva a abrirlo\n\n");
}
void anadiralumno(char *nombrefichero, struct alumnos a[], int tope)
{
FILE *Fichero;
if(Fichero=fopen(nombrefichero, "a+b")==NULL)
fprintf(stderr, "\nNo se puede abrir <%s>", nombrefichero);
else
{
//Ahora pasamos todos los registros de la estructura al fichero
fwrite(a, sizeof(struct alumnos), tope, Fichero);
fclose(Fichero);
}
}
int main()
{
char *nombrefichero="notas.bin";
int opcion;
struct alumnos alumno[MAX_ALUM];
int tope=0;
printf("--------------------------MENU------------------------\n\n");
printf("[1] - Dar de Alta la nota de un alumno\n");
printf("Escoge la opcion que quiera realizar: ");
scanf("%d",&opcion);
getchar();
switch(opcion)
{
case 1: //Dar de alta un alumno
{
leealumnos(alumno, &tope);
anadiralumno(nombrefichero, alumno, tope);
break;
}
}
return 0;
}