SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: difer1125 en Lunes 4 de Junio de 2007, 18:29
-
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);
}
-
postea el codigo aca con los tags, sino es muy molesto ayudarte asi.
-
No enetendi muy claramente cual es el problema... :huh:
-
:hola: se mas claro con tu duda man asi es mucho mas facil poder decirte cual es el problema ok :comp: saludos
-
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.