alguien me puede ayudar a modificar este codigo para que pueda ser compilado en dev-c++
#include <stdio.h>
#include <string.h>
#include <conio.h>
typedef struct alumno{
char nombre[20];
char direccion[30];
int nota;
} Alumno;
/* Arreglo que almacena alumnos */
Alumno alumnos[100];
/* Contiene el numero de alumnos actual */
int total = 0;
void cargar(), guardar(), insertar(Alumno info);
void ingresar(), buscar(), modificar(), eliminar(), ordenar(), mostrar();
char menu(void);
void main(void)
{
clrscr();
cargar();
char op;
for(;
{
switch(op=menu())
{
case '1':
ingresar();
getch();
break;
case '2':
buscar();
getch();
break;
case '3':
modificar();
getch();
break;
case '4':
eliminar();
getch();
break;
case '5':
ordenar();
getch();
break;
case '6':
mostrar();
getch();
break;
case '7':
break;
default :
printf("Opcion no valida");
getch();
break;
}
if(op=='7') break;
clrscr();
}
printf("Presione (g) para guardar los cambios: ");
if(getche()=='g')
guardar();
}
void insertar(Alumno info)
{
strcpy(alumnos[total].nombre, info.nombre);
strcpy(alumnos[total].direccion, info.direccion);
alumnos[total].nota = info.nota;
total++;
}
void cargar()
{
Alumno info;
FILE *fp;
fp=fopen("alumnos.txt","r");
if(fp==NULL)
{
printf("No se puede abrir el archivo\n");
return;
}
while(!feof(fp))
{
if(fread(&info, sizeof(Alumno), 1, fp)!=1) break;
insertar(info);
}
fclose(fp);
}
void guardar()
{
Alumno info;
FILE *fp;
fp=fopen("alumnos.txt","w");
if(fp==NULL)
{
printf("No se puede abrir el archivo\n");
return;
}
for(int i=0; i<total; i++)
fwrite(&alumnos, sizeof(Alumno), 1, fp);
fclose(fp);
}
void ingresar()
{
Alumno info;
printf("Ingrese nombre: "); gets(info.nombre);
printf("Ingrese direccion: "); gets(info.direccion);
printf("Ingrese nota: "); scanf("%d", &(info.nota));
insertar(info);
printf("Alumno ingresado exitosamente");
}
void buscar()
{
char nombre[20];
int i;
printf("Ingrese nombre a buscar: ");
gets(nombre);
for(i=0; i<total; i++)
if(!strcmp(alumnos.nombre, nombre))
{
printf("--- Datos del alumno ---\n");
printf("Num.: %d\n", i+1);
printf("Nombre: %s\n", alumnos.nombre);
printf("Direccion: %s\n", alumnos.direccion);
printf("Nota: %d", alumnos.nota);
break;
}
if(i==total)
printf("Alumno no encontrado");
}
void modificar()
{
char nombre[20];
int i;
printf("Ingrese nombre a modificar: ");
gets(nombre);
for(i=0; i<total; i++)
if(!strcmp(alumnos.nombre, nombre))
{
printf("--- Datos actuales del alumno ---\n");
printf("Num.: %d\n", i+1);
printf("Nombre: %s\n", alumnos.nombre);
printf("Direccion: %s\n", alumnos.direccion);
printf("Nota: %d\n\n", alumnos.nota);
printf("--- Nuevos datos del alumno ---\n");
printf("Ingrese nombre: "); gets(alumnos.nombre);
printf("Ingrese direccion: "); gets(alumnos.direccion);
printf("Ingrese nota: "); scanf("%d", &(alumnos.nota));
printf("\n\nDatos actualizados exitosamente!");
break;
}
if(i==total)
printf("Alumno no encontrado");
}
void eliminar()
{
char nombre[20];
int i;
printf("Ingrese nombre a eliminar: ");
gets(nombre);
for(i=0; i<total; i++)
if(!strcmp(alumnos.nombre, nombre))
{
/* Recorre registros posteriores */
for(int j=i+1; j<total; j++)
{
strcpy(alumnos[j-1].nombre, alumnos[j].nombre);
strcpy(alumnos[j-1].direccion, alumnos[j].direccion);
alumnos[j-1].nota = alumnos[j].nota;
}
printf("Alumno eliminado");
total--;
break;
}
if(i==total)
printf("Alumno no encontrado");
}
void ordenar()
{
int i, j;
Alumno temp;
for(i=0; i<total-1; i++)
{
for(j=i+1; j<total; j++)
if(strcmp(alumnos.nombre, alumnos[j].nombre)>0)
{
/* Copia en variable temporal datos actuales */
strcpy(temp.nombre, alumnos.nombre);
strcpy(temp.direccion, alumnos.direccion);
temp.nota = alumnos.nota;
/* Intercambia informacion */
strcpy(alumnos.nombre, alumnos[j].nombre);
strcpy(alumnos.direccion, alumnos[j].direccion);
alumnos.nota = alumnos[j].nota;
strcpy(alumnos[j].nombre, temp.nombre);
strcpy(alumnos[j].direccion, temp.direccion);
alumnos[j].nota = temp.nota;
}
}
printf("Se han ordenado los registros");
}
void mostrar()
{
printf("--- Listado de alumnos ---\n");
printf("Num. - Nombre - Direccion - Nota\n");
for(int i=0; i<total; i++)
{
printf("%d - ", i+1);
printf("%s - ", alumnos.nombre);
printf("%s - ", alumnos.direccion);
printf("%d\n", alumnos.nota);
}
}
char menu(void)
{
char c;
printf("(1)Ingresar, (2)Buscar, (3)Modificar, (4)Eliminar, (5)Ordenar, (6)Mostrar lista\n(7)Salir\n");
printf("Seleccion: ");
c=getche();
printf("\n");
return(c);
}
#include <stdio.h>
#include <string.h>
#include <conio.h>
typedef struct alumno{
char nombre[20];
char direccion[30];
int nota;
} Alumno;
/* Arreglo que almacena alumnos */
Alumno alumnos[100];
/* Contiene el numero de alumnos actual */
int total = 0;
void cargar(), guardar(), insertar(Alumno info);
void ingresar(), buscar(), modificar(), eliminar(), ordenar(), mostrar();
char menu(void);
void main(void)
{
clrscr();
cargar();
char op;
for(;
{
switch(op=menu())
{
case '1':
ingresar();
getch();
break;
case '2':
buscar();
getch();
break;
case '3':
modificar();
getch();
break;
case '4':
eliminar();
getch();
break;
case '5':
ordenar();
getch();
break;
case '6':
mostrar();
getch();
break;
case '7':
break;
default :
printf("Opcion no valida");
getch();
break;
}
if(op=='7') break;
clrscr();
}
printf("Presione (g) para guardar los cambios: ");
if(getche()=='g')
guardar();
}
void insertar(Alumno info)
{
strcpy(alumnos[total].nombre, info.nombre);
strcpy(alumnos[total].direccion, info.direccion);
alumnos[total].nota = info.nota;
total++;
}
void cargar()
{
Alumno info;
FILE *fp;
fp=fopen("alumnos.txt","r");
if(fp==NULL)
{
printf("No se puede abrir el archivo\n");
return;
}
while(!feof(fp))
{
if(fread(&info, sizeof(Alumno), 1, fp)!=1) break;
insertar(info);
}
fclose(fp);
}
void guardar()
{
Alumno info;
FILE *fp;
fp=fopen("alumnos.txt","w");
if(fp==NULL)
{
printf("No se puede abrir el archivo\n");
return;
}
for(int i=0; i<total; i++)
fwrite(&alumnos, sizeof(Alumno), 1, fp);
fclose(fp);
}
void ingresar()
{
Alumno info;
printf("Ingrese nombre: "); gets(info.nombre);
printf("Ingrese direccion: "); gets(info.direccion);
printf("Ingrese nota: "); scanf("%d", &(info.nota));
insertar(info);
printf("Alumno ingresado exitosamente");
}
void buscar()
{
char nombre[20];
int i;
printf("Ingrese nombre a buscar: ");
gets(nombre);
for(i=0; i<total; i++)
if(!strcmp(alumnos.nombre, nombre))
{
printf("--- Datos del alumno ---\n");
printf("Num.: %d\n", i+1);
printf("Nombre: %s\n", alumnos.nombre);
printf("Direccion: %s\n", alumnos.direccion);
printf("Nota: %d", alumnos.nota);
break;
}
if(i==total)
printf("Alumno no encontrado");
}
void modificar()
{
char nombre[20];
int i;
printf("Ingrese nombre a modificar: ");
gets(nombre);
for(i=0; i<total; i++)
if(!strcmp(alumnos.nombre, nombre))
{
printf("--- Datos actuales del alumno ---\n");
printf("Num.: %d\n", i+1);
printf("Nombre: %s\n", alumnos.nombre);
printf("Direccion: %s\n", alumnos.direccion);
printf("Nota: %d\n\n", alumnos.nota);
printf("--- Nuevos datos del alumno ---\n");
printf("Ingrese nombre: "); gets(alumnos.nombre);
printf("Ingrese direccion: "); gets(alumnos.direccion);
printf("Ingrese nota: "); scanf("%d", &(alumnos.nota));
printf("\n\nDatos actualizados exitosamente!");
break;
}
if(i==total)
printf("Alumno no encontrado");
}
void eliminar()
{
char nombre[20];
int i;
printf("Ingrese nombre a eliminar: ");
gets(nombre);
for(i=0; i<total; i++)
if(!strcmp(alumnos.nombre, nombre))
{
/* Recorre registros posteriores */
for(int j=i+1; j<total; j++)
{
strcpy(alumnos[j-1].nombre, alumnos[j].nombre);
strcpy(alumnos[j-1].direccion, alumnos[j].direccion);
alumnos[j-1].nota = alumnos[j].nota;
}
printf("Alumno eliminado");
total--;
break;
}
if(i==total)
printf("Alumno no encontrado");
}
void ordenar()
{
int i, j;
Alumno temp;
for(i=0; i<total-1; i++)
{
for(j=i+1; j<total; j++)
if(strcmp(alumnos.nombre, alumnos[j].nombre)>0)
{
/* Copia en variable temporal datos actuales */
strcpy(temp.nombre, alumnos.nombre);
strcpy(temp.direccion, alumnos.direccion);
temp.nota = alumnos.nota;
/* Intercambia informacion */
strcpy(alumnos.nombre, alumnos[j].nombre);
strcpy(alumnos.direccion, alumnos[j].direccion);
alumnos.nota = alumnos[j].nota;
strcpy(alumnos[j].nombre, temp.nombre);
strcpy(alumnos[j].direccion, temp.direccion);
alumnos[j].nota = temp.nota;
}
}
printf("Se han ordenado los registros");
}
void mostrar()
{
printf("--- Listado de alumnos ---\n");
printf("Num. - Nombre - Direccion - Nota\n");
for(int i=0; i<total; i++)
{
printf("%d - ", i+1);
printf("%s - ", alumnos.nombre);
printf("%s - ", alumnos.direccion);
printf("%d\n", alumnos.nota);
}
}
char menu(void)
{
char c;
printf("(1)Ingresar, (2)Buscar, (3)Modificar, (4)Eliminar, (5)Ordenar, (6)Mostrar lista\n(7)Salir\n");
printf("Seleccion: ");
c=getche();
printf("\n");
return(c);
}