Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Ejercicio de Funciones

Estas en el tema de Ejercicio de Funciones en el foro de C/C++ en Foros del Web. Una entidad bancaria posee en un fichero la siguiente informacion para un conjunto de personas: Nombre. Numero de cuenta. Credito solicitado. El progrma funcionara basandose ...
  #1 (permalink)  
Antiguo 16/11/2010, 10:00
 
Fecha de Ingreso: noviembre-2010
Mensajes: 6
Antigüedad: 13 años, 6 meses
Puntos: 0
Ejercicio de Funciones

Una entidad bancaria posee en un fichero la siguiente informacion para un conjunto de personas:

Nombre.
Numero de cuenta.
Credito solicitado.

El progrma funcionara basandose en un menu utilizando funciones con las siguientes operaciones:

A) Añadir un credito al archivo.
B) Copiar en otro fichero el conjunto de personas que hayan solicitado un credito superior a cierta cantidad establecida por el banco (la cual debera ser introducida por teclado).
C) Visualizar todo el contenido de un archivo.
  #2 (permalink)  
Antiguo 17/11/2010, 07:42
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ejercicio de Funciones

¿y si hacés tu tarea como todos los demás, en vez de pedir respuestas en un foro sin siquiera mostrar lo que llevás hecho?
  #3 (permalink)  
Antiguo 17/11/2010, 11:13
 
Fecha de Ingreso: noviembre-2010
Mensajes: 6
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Ejercicio de Funciones

Sobre todo estoy bloqueado con el apartado B, ya que se copiar un archivo en otro, pero no se hacer que lo que me pide en el apartado b.
Código C:
Ver original
  1. /* Copia de un fichero a otro con otro nombre */
  2.  
  3.       #include <stdio .h>
  4.  
  5.       main(argc,argv)
  6.  
  7.       int argc;
  8.  
  9.       char *argv[];
  10.  
  11.       {
  12.  
  13.       FILE *origen, *destino;char car, aux1, aux2; int i=0, igu=1;
  14.  
  15.       if (argc != 3)
  16.  
  17.       {
  18.  
  19.       printf ("Error. La instruccion es:\n copia fichero_origen fichero_destino\n");
  20.  
  21.       return;
  22.  
  23.       }
  24.  
  25.       do
  26.  
  27.       {
  28.  
  29.       aux1=*(argv[1]+i);
  30.  
  31.       aux2=*(argv[2]+i);
  32.  
  33.       if (aux1 != aux2)
  34.  
  35.       {
  36.  
  37.       igu=0;
  38.  
  39.       break;
  40.  
  41.       }
  42.  
  43.       i++;
  44.  
  45.       } while (aux1 != '\0' || aux2 != '\0');
  46.  
  47.       if (igu == 1)
  48.  
  49.       {
  50.  
  51.       printf ("El fichero destino es el mismo que el fichero origen\n");
  52.  
  53.       return;
  54.  
  55.       }
  56.  
  57.       origen=fopen(argv[1],"r");
  58.  
  59.       destino=fopen(argv[2],"w");
  60.  
  61.       if (origen==NULL || destino ==NULL)
  62.  
  63.       {
  64.  
  65.       printf ("El fichero de origen no existe o no hay espacio en el disco\n");
  66.  
  67.       return;
  68.  
  69.       }
  70.  
  71.       while ( (car=getc(origen)) != EOF ) putc(car,destino);
  72.  
  73.       fclose(origen);
  74.  
  75.       fclose(destino);
  76.  
  77.       }
  78.  
  79.       char car, aux1, aux2;
  80.  
  81.       int i=0, igu=1;
  82.  
  83.       if (argc != 3)
  84.  
  85.       {
  86.  
  87.       printf ("Error. La instruccion es:\n copia fichero_origen fichero_destino\n");
  88.  
  89.       return;
  90.  
  91.       }
  92.  
  93.       do
  94.  
  95.       {
  96.  
  97.       aux1=*(argv[1]+i);
  98.  
  99.       aux2=*(argv[2]+i);
  100.  
  101.       if (aux1 != aux2)
  102.  
  103.       {
  104.  
  105.       igu=0;
  106.  
  107.       break;
  108.  
  109.       }
  110.  
  111.       i++;
  112.  
  113.       } while (aux1 != '\0' || aux2 != '\0');
  114.  
  115.       if (igu == 1)
  116.  
  117.       {
  118.  
  119.       printf ("El fichero destino es el mismo que el fichero origen\n");
  120.  
  121.       return;
  122.  
  123.       }
  124.  
  125.       origen=fopen(argv[1],"r");
  126.  
  127.       destino=fopen(argv[2],"w");
  128.  
  129.       if (origen==NULL || destino ==NULL)
  130.  
  131.       {
  132.  
  133.       printf ("El fichero de origen no existe o no hay espacio en el disco\n");
  134.  
  135.       return;
  136.  
  137.       }
  138.  
  139.       while ( (car=getc(origen)) != EOF ) putc(car,destino);
  140.  
  141.       fclose(origen);
  142.  
  143.       fclose(destino);
  144.  
  145.       }
  #4 (permalink)  
Antiguo 17/11/2010, 12:46
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ejercicio de Funciones

Bueno, la descripción dice que el archivo tiene Nombre, Numero de cuenta y Credito solicitado.

El punto b) dice que se debe copiar a otro archivo el conjunto de personas que hayan solicitado un crédito mayor que X.

La lógica indica que deberías hacer algo como:
Código:
leer archivo original registro a registro # donde "registro" == "bloque de texto con información de un crédito"
para cada registro:
    leer monto de credito
    si monto de credito > X
        imprimir nombre de la persona en el segundo archivo
Esto te puede llevar, sin embargo, a imprimir más de una vez el nombre de una persona. Para evitar esto podrías ir guardando el nombre de las personas ya añadidas al archivo en alguna estructura auxiliar (una lista de cadenas, por ejemplo)

Lo que falta es ver la estructura del archivo, para poder extraer cada dato correctamente, y especificar si se requiere guardar el nombre de las personas o todo el registro

Etiquetas: funciones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:57.