Este es el nuevo código que hice, lo que no puedo hacer es que con un file me imprima todos los datos que tengo guardados ahí. Al momento de capturar captura los N datos y los guarda en el archivo que creé con el FILE. Tengo la función de imprimir y cuando imprime solo imprime el último numero que ingrese al file en vez de imprimir todos los que tengo ahí. Otra cosa, al momento de iniciar una búsqueda el programa quiebra y ya no me permite hacer nada, ojala me pudieran ayudar con esto que tengo ya 3 noches sin dormir para poder hacerlo.
Código C++:
Ver original#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#include <fstream.h>
#include <dos.h>
#include <string.h>
char menu();
int capturar();
char modificar();
int eliminar();
int imprimir();
struct alumnos
{
char nombre[20];
int cal1,cal2,cal3;
char matricula[7];
}datos;
int i,a,res;
float promedio;
int main ()
{
textcolor(15);
textbackground(BLUE);
{
char opcion='7';
do{
opcion=menu();
}
while (opcion!='5');
return 0;
}
}
char menu()
{
char opc;
clrscr();
gotoxy
(30,3);printf(" -*-*-*-*-*-*-*-*-*-*-*-"); gotoxy
(30,4);printf(" Bienvenidos al sistema "); gotoxy
(30,5);printf(" -*-*-*-*-*-*-*-*-*-*-*-"); gotoxy
(30,8);printf("*------------------------*"); gotoxy
(30,9);printf("| Capturar...........[1] |"); gotoxy
(30,11);printf("| Modificar..........[2] |"); gotoxy
(30,13);printf("| Eliminar...........[3] |"); gotoxy
(30,15);printf("| Imprimir...........[4] |"); gotoxy
(30,17);printf("| Salir..............[5] |"); gotoxy
(30,18);printf("*------------------------*"); gotoxy
(32,19);printf("¨Que opcion desea?: ");
clrscr();
switch(opc)
{
case '1':{
capturar();
break;
}
case '2':{
modificar();
break;
}
case '3':{
eliminar();
break;
}
case '4':{
imprimir();
break;
}
case '5':{
gotoxy
(27,10);printf("-----------------------------------"); gotoxy
(27,11);printf("| Gracias por su preferencia. ¸UDO |"); gotoxy
(27,12);printf("-----------------------------------"); delay(1000);
}
}
return opc;
} //cierra char
int capturar()
{
FILE *DATOS;
DATOS
= fopen("datos2.txt","at+");
do
{
clrscr();
printf("\t\t\t| Sistema de calificaciones UDO |"); printf("\n--------------------------------------------------------------------------------"); printf("Ingresa el nombre del alumno:\n "); scanf("%s",&datos.
nombre); fprintf(DATOS
,"\n%s ",datos.
nombre); printf("Ingresa la matricula: "); scanf("%s",&datos.
matricula); fprintf(DATOS
,"%s ",datos.
matricula); printf("Ingresa la calificacion del primer mes: "); printf("Ingresa la calificacion del segundo mes: "); printf("Ingresa la calificacion del tercer mes: "); printf("Desea realizar otra captura?: (S/N) ");
}
while((res=='S') || (res=='s'));
return 0;
}
char modificar()
{
clrscr();
char modifica;
char a;
printf("\t\t\t| Sistema de calificaciones UDO |"); printf("\n--------------------------------------------------------------------------------"); printf("Ingresa la matricula del alumno: "); FILE *DATOS;
DATOS
= fopen("datos2.txt","r"); while(fread(&datos
,sizeof(datos
),1,DATOS
)==1) {
if(a==modifica){
break;
}
if(a==NULL){
break;
}
/*while(fread(&datos,sizeof(datos),1,DATOS)==1)
{
if(modifica==datos.matricula)
{
printf("Nombre: %s",datos.nombre);
printf("matricula: %s",datos.matricula);
printf("cal1: %d",datos.cal1);
printf("cal2: %d",datos.cal2);
printf("cal3: %d",datos.cal3);
printf("\n");*/
}
return 0;
}
int eliminar()
{ int elimina;
printf("\t\t\t| Sistema de calificaciones UDO |"); printf("\n--------------------------------------------------------------------------------"); printf("Ingresa la matricula del alumno: ");
return 0;
}
int imprimir()
{
printf("\t\t\tSistema de calificaciones UDO"); gotoxy(4,2);
printf("----------------------------------------------------------------------"); gotoxy(4,4);
printf("----------------------------------------------------------------------"); gotoxy(5,3);
printf("Nombre del alumno |"); gotoxy(5,5);
gotoxy
(24,5);printf("|"); //alumno gotoxy
(39,5);printf("|"); //matricula gotoxy
(52,5);printf("|"); //promedio gotoxy(27,3);
gotoxy(27,5);
printf("%s",&datos.
matricula); gotoxy(42,3);
gotoxy(27,0);
promedio=(datos.cal1+datos.cal2+datos.cal3)/3;
if (promedio==0)
}
else if (promedio<70)
{
gotoxy(56,5);
}
else {
gotoxy(56,5);
} //cierra imprimir
if (promedio==0.00)
}
else {
gotoxy
(42,5);printf("%.2f ",promedio
); }
gotoxy(56,3);
gotoxy
(42,24);printf("[Presionar Enter para regresar al menu]");
return 0;
} //cierra todo