Ver Mensaje Individual
  #6 (permalink)  
Antiguo 16/07/2010, 04:20
AdolfoMX
 
Fecha de Ingreso: julio-2010
Mensajes: 11
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Ayuda con este programa?

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
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5. #include <fstream.h>
  6. #include <dos.h>
  7. #include <string.h>
  8.  
  9. char menu();
  10. int capturar();
  11. char modificar();
  12. int eliminar();
  13. int imprimir();
  14.  
  15.     struct alumnos
  16.     {
  17.     char nombre[20];
  18.     int cal1,cal2,cal3;
  19.     char matricula[7];
  20.     }datos;
  21.  
  22.     int i,a,res;
  23.     float promedio;
  24. int main ()
  25. {
  26. textcolor(15);
  27. textbackground(BLUE);
  28.  
  29.     {
  30.     char opcion='7';
  31.     do{
  32.         opcion=menu();
  33.     }
  34.  
  35.     while (opcion!='5');
  36.     return 0;
  37.     }
  38. }
  39.     char menu()
  40.     {
  41.     char opc;
  42.     clrscr();
  43.     gotoxy(30,3);printf("  -*-*-*-*-*-*-*-*-*-*-*-");
  44.     gotoxy(30,4);printf("   Bienvenidos al sistema ");
  45.     gotoxy(30,5);printf("  -*-*-*-*-*-*-*-*-*-*-*-");
  46.     gotoxy(30,8);printf("*------------------------*");
  47.     gotoxy(30,9);printf("| Capturar...........[1] |");
  48.     gotoxy(30,11);printf("| Modificar..........[2] |");
  49.     gotoxy(30,13);printf("| Eliminar...........[3] |");
  50.     gotoxy(30,15);printf("| Imprimir...........[4] |");
  51.     gotoxy(30,17);printf("| Salir..............[5] |");
  52.     gotoxy(30,18);printf("*------------------------*");
  53.     gotoxy(32,19);printf("¨Que opcion desea?: ");
  54.     scanf("%c",&opc);
  55.  
  56.     clrscr();
  57.  
  58.     switch(opc)
  59.     {
  60.         case '1':{
  61.         capturar();
  62.         break;
  63.         }
  64.  
  65.         case '2':{
  66.         modificar();
  67.         break;
  68.         }
  69.  
  70.         case '3':{
  71.         eliminar();
  72.         break;
  73.         }
  74.  
  75.         case '4':{
  76.         imprimir();
  77.         getch();
  78.         break;
  79.         }
  80.  
  81.         case '5':{
  82.         gotoxy(27,10);printf("-----------------------------------");
  83.         gotoxy(27,11);printf("| Gracias por su preferencia. ¸UDO |");
  84.         gotoxy(27,12);printf("-----------------------------------");
  85.         delay(1000);
  86.  
  87.         }
  88.       }
  89.     return opc;
  90.     }   //cierra char
  91.  
  92.      int capturar()
  93.      {
  94.       FILE *DATOS;
  95.      DATOS = fopen("datos2.txt","at+");
  96.  
  97.     do
  98.     {
  99.      clrscr();
  100.      printf("\t\t\t| Sistema de calificaciones UDO |");
  101.      printf("\n--------------------------------------------------------------------------------");
  102.      printf("\n");
  103.      printf("\n");
  104.      printf("Archivo creado\n");
  105.      printf("Ingresa el nombre del alumno:\n ");
  106.      scanf("%s",&datos.nombre);
  107.      fprintf(DATOS,"\n%s ",datos.nombre);
  108.      printf("Ingresa la matricula: ");
  109.      scanf("%s",&datos.matricula);
  110.      fprintf(DATOS,"%s ",datos.matricula);
  111.      printf("Ingresa la calificacion del primer mes: ");
  112.      scanf("%d",&datos.cal1);
  113.      fprintf(DATOS,"%d ",datos.cal1);
  114.      printf("Ingresa la calificacion del segundo mes: ");
  115.      scanf("%d",&datos.cal2);
  116.      fprintf(DATOS,"%d ",datos.cal2);
  117.      printf("Ingresa la calificacion del tercer mes: ");
  118.      scanf("%d",&datos.cal3);
  119.      fprintf(DATOS,"%d ",datos.cal3);
  120.      printf("Desea realizar otra captura?: (S/N) ");
  121.      scanf("%s",&res);
  122.  
  123.      }
  124.     while((res=='S') || (res=='s'));
  125.  
  126.  
  127.      fclose(DATOS);
  128.  
  129.      getch();
  130.      return 0;
  131.      }
  132.  
  133.  
  134.      char modificar()
  135.      {
  136.      clrscr();
  137.      char modifica;
  138.      char a;
  139.      printf("\t\t\t| Sistema de calificaciones UDO |");
  140.      printf("\n--------------------------------------------------------------------------------");
  141.      printf("\n");
  142.      printf("\n");
  143.      printf("Ingresa la matricula del alumno: ");
  144.      scanf("%s",&modifica);
  145.      getch();
  146.      FILE *DATOS;
  147.      DATOS = fopen("datos2.txt","r");
  148.      while(fread(&datos,sizeof(datos),1,DATOS)==1)
  149.      {
  150.      fscanf(DATOS,"%s",&a);
  151.      if(a==modifica){
  152.      printf("Encontrado");
  153.      break;
  154.      }
  155.  
  156.      if(a==NULL){
  157.      printf("No encontrado");
  158.      break;
  159.      }
  160.  
  161.      /*while(fread(&datos,sizeof(datos),1,DATOS)==1)
  162.      {
  163.      if(modifica==datos.matricula)
  164.        {
  165.           printf("Nombre: %s",datos.nombre);
  166.           printf("matricula: %s",datos.matricula);
  167.           printf("cal1: %d",datos.cal1);
  168.           printf("cal2: %d",datos.cal2);
  169.           printf("cal3: %d",datos.cal3);
  170.           printf("\n");*/
  171.           }
  172.  
  173.           fclose(DATOS);
  174.           getch();
  175.  
  176.      return 0;
  177.   }
  178.  
  179.    int eliminar()
  180.    {    int elimina;
  181.    printf("\t\t\t| Sistema de calificaciones UDO |");
  182.      printf("\n--------------------------------------------------------------------------------");
  183.      printf("\n");
  184.      printf("\n");
  185.      printf("Ingresa la matricula del alumno: ");
  186.  
  187.  
  188.      return 0;
  189.    }
  190.  
  191.    int imprimir()
  192.    {
  193.  
  194.   printf("\t\t\tSistema de calificaciones UDO");
  195.    printf("\n");
  196.    printf("\n");
  197.    gotoxy(4,2);
  198.    printf("----------------------------------------------------------------------");
  199.    gotoxy(4,4);
  200.    printf("----------------------------------------------------------------------");
  201.    gotoxy(5,3);
  202.    printf("Nombre del alumno  |");
  203.    gotoxy(5,5);
  204.    printf("%s",&datos.nombre);
  205.    gotoxy(24,5);printf("|"); //alumno
  206.    gotoxy(24,6);printf("|");
  207.    gotoxy(24,7);printf("|");
  208.    gotoxy(24,8);printf("|");
  209.    gotoxy(24,9);printf("|");
  210.    gotoxy(24,10);printf("|");
  211.    gotoxy(24,11);printf("|");
  212.    gotoxy(24,12);printf("|");
  213.    gotoxy(24,13);printf("|");
  214.    gotoxy(39,5);printf("|"); //matricula
  215.    gotoxy(39,6);printf("|");
  216.    gotoxy(39,7);printf("|");
  217.    gotoxy(39,8);printf("|");
  218.    gotoxy(39,9);printf("|");
  219.    gotoxy(39,10);printf("|");
  220.    gotoxy(39,11);printf("|");
  221.    gotoxy(39,12);printf("|");
  222.    gotoxy(39,13);printf("|");
  223.    gotoxy(52,5);printf("|");  //promedio
  224.    gotoxy(52,6);printf("|");
  225.    gotoxy(52,7);printf("|");
  226.    gotoxy(52,8);printf("|");
  227.    gotoxy(52,9);printf("|");
  228.    gotoxy(52,10);printf("|");
  229.    gotoxy(52,11);printf("|");
  230.    gotoxy(52,12);printf("|");
  231.    gotoxy(52,13);printf("|");
  232.    gotoxy(27,3);
  233.    printf("Matricula   |");
  234.    gotoxy(27,5);
  235.    printf("%s",&datos.matricula);
  236.    gotoxy(42,3);
  237.    printf("Promedio  |");
  238.    gotoxy(27,0);
  239.    promedio=(datos.cal1+datos.cal2+datos.cal3)/3;
  240.    if (promedio==0)
  241.    {printf(" ");
  242.    }
  243.  
  244.  
  245.    else if (promedio<70)
  246. {
  247.    gotoxy(56,5);
  248.    printf("No acreditado");
  249.    }
  250.    else {
  251.    gotoxy(56,5);
  252.    printf("Acreditado");
  253. }   //cierra imprimir
  254.    if (promedio==0.00)
  255.    { printf(" ");
  256.    }
  257.    else {
  258.    gotoxy(42,5);printf("%.2f    ",promedio);
  259.    }
  260.    gotoxy(56,3);
  261.    printf("AC/NA");
  262.    gotoxy(42,24);printf("[Presionar Enter para regresar al menu]");
  263.  
  264.  
  265.    return 0;
  266. }  //cierra todo