• Domingo 15 de Diciembre de 2024, 05:48

Autor Tema:  Ayuda Con Archivos  (Leído 1336 veces)

difer1125

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Ayuda Con Archivos
« en: Lunes 4 de Junio de 2007, 18:29 »
0
hola amigos tengo un problema, en la u estamos empezando a ver el tema de archivos, y la verdad hasta ahora no he entendido mucho, antes de esto hicimos vimos el tema de estructuras, y ahora el profesor nos pidio que pasamos esos ejercicios de estructuras a archivos y queria saber si aqui en el foro podrian ayudarme a hacer, al menos uno de ellos para yo tener una idea y seguir con los otros. Si quieren lo revisan yo tengo una partesita adelantada, y me comentan sus sugerencia, lo voy a subir por que el codigo es un poquito largo y no quiero que el post quede tan alargado.

Este ejemplo recoge una informacion, luego pide un deposito o un retiro, y al introducir el numero de cuenta pide el monto y se lo suma o lo resta a la saldo total de la persona

Ok aqui va el codigo

_______________________________________________________________________


#include<conio.h>
#include <stdio.h>
#include <string.h>

struct direccion
{
       char calle[30];
       char barrio[30];
       char ciudad[30];
       char postal[30];
       char telefono[30];
};

struct cliente
{
       long int cuenta;
       char nombre[30];
       struct direccion y;
       float saldo;
};


void cuenta(void)
{
clrscr();

struct cliente a;
FILE *ap;

ap=fopen("registrobanco.txt","a");


printf("\nIngrese numero de cuenta: ");
scanf("%ld", &a.cuenta);
fflush(stdin);

printf("\nIngrese el nombre: ");
gets(a.nombre);


printf("\n\nDomicilio");

printf("\nIngrese la calle: ");
gets(a.y.calle);

printf("\nIngrese el codigo postal: ");
gets(a.y.postal);

printf("\nIngrese la colonia: ");
gets(a.y.barrio);

printf("\nIngrese ciudad: ");
gets(a.y.ciudad);

printf("\nIngrese el telefono: ");
gets(a.y.telefono);

printf("\n\nIngrese el saldo para su cuenta: ");
scanf("%f", &a.saldo);


fwrite(&a,sizeof(cliente),1,ap);
fclose(ap);


clrscr();

}


void deposito(void)
{
long int comp;
int i, cont;
float dep;

struct cliente a;
FILE *ap;

ap=fopen("registrode_banco.dat","r+");

fread(&a,sizeof(cliente),1,ap);

printf("Digite su numero de cuenta: ");
scanf("%ld", &comp);

for(i=0;i<100;i++)
{
 if(comp==a.cuenta)
 {
   printf("\nIngrese el monto a depositar: ");
   scanf("%f", &dep);
   a.saldo=a.saldo+dep;
   cont=1;
 }
}

clrscr();

if(cont==1)
{
printf("Operacion realizada con exito");
getch();
}
else
{
printf("Su numero de cuenta  es incorrecto");
getch();
}

clrscr();

}



void retiro(struct cliente a)
{
long int comp;
int i, cont=0;
float ret;

printf("Digite su numero de cuenta: ");
scanf("%ld", &comp);

for(i=0;i<100;i++)
{
 if(comp==a.cuenta)
 {
   printf("\nIngrese el monto a retirar: ");
   scanf("%f", &ret);

     if(ret>a.saldo)
     {
     cont=2;
     }
     if(ret<=a.saldo)
     {
     a.saldo=a.saldo-ret;
     cont=1;
     }

 }
}

clrscr();

if(cont==1)
{
printf("Operacion realizada con exito");
getch();
}
if(cont==2)
{
printf("\nSu saldo es insuficiente");
getch();
}
if(cont==0)
{
printf("Su numero de cuenta es incorrecto");
getch();
}

clrscr();

}



void consulta_saldo(void)
{
long int comp;
int cont=0;

FILE *ap;
struct cliente a;

ap=fopen("registrobanco.txt","r");



printf("Digite su numero de cuenta: ");
scanf("%ld", &comp);

while(!feof(ap))
{

fread(&a,sizeof(cliente),1,ap);

 if(comp==a.cuenta)
 {
   printf("\n\nsu saldo actual es: %f", a.saldo);
   cont=1;
   getch();
 }

}

clrscr();

if(cont==0)
{
printf("numero de cuenta incorrecto");
getch();
}

fclose(ap);

clrscr();

}



void main(void)
{

int opc;




do
{
printf("\n1- Crear cuenta");
printf("\n2- Realizar deposito");
printf("\n3- Realizar retiro");
printf("\n4- Consultar estado del saldo");
printf("\n5- Salir");
printf("\nIngrese una opcion: ");
scanf("%d", &opc);
clrscr();

if(opc==1)
{
cuenta();
}


if(opc==2)
{
deposito(a);
}

if(opc==3)
{
retiro(a);
}

if(opc==4)
{
consulta_saldo();
}


}while(opc!=5);




}
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

AnioN

  • Miembro MUY activo
  • ***
  • Mensajes: 339
    • Ver Perfil
Re: Ayuda Con Archivos
« Respuesta #1 en: Lunes 4 de Junio de 2007, 22:08 »
0
postea el codigo aca con los tags, sino es muy molesto ayudarte asi.

LeGatoRojo

  • Miembro HIPER activo
  • ****
  • Mensajes: 552
  • Nacionalidad: mx
    • Ver Perfil
    • LeGatoRojo
Re: Ayuda Con Archivos
« Respuesta #2 en: Martes 5 de Junio de 2007, 00:29 »
0
No enetendi muy claramente cual es el problema...  :huh:
Un día desperte y en lugar de dientes tenía colmillos, en lugar de manos, tenía garras; pero lo más impactante fue el color escarlata de mi pelaje.

supermancito

  • Miembro activo
  • **
  • Mensajes: 35
    • Ver Perfil
Re: Ayuda Con Archivos
« Respuesta #3 en: Martes 5 de Junio de 2007, 01:15 »
0
:hola: se mas claro con tu duda man asi es mucho mas facil poder decirte cual es el problema ok  :comp: saludos
C:\Documents and Settings\Administrador\Mis documentos

difer1125

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: Ayuda Con Archivos
« Respuesta #4 en: Miércoles 6 de Junio de 2007, 02:18 »
0
disculpen amigos por la confusion, el problema es que quiero pasar el siguiente codigo a archivos, ya que esta diseñada para trabajar sobre la memoria y quiero pasarlo a manejar arhivos en disco. yo ya he adelantado un poco, pero no he podido seguir de ahi. mi pregunta es si pueden ayudarme a pasarlo a archivos para yo tener una idea y pasar los otros ejercicios que tengo. no se si lo que he adelantado estara bueno, ustedes me diran.

yo por mi parte estoy leyendo unos articulos de archivos haber si logro entender mas como funcionan.