[C con Clase] PLEASE AYUDENME CON ESTE PROBLEMA DE structuras

Gabriel Santiago Galeas Atiencia ggaleas805 en hotmail.com
Jue Feb 26 08:03:50 CET 2009


Buenas tardes como puedo terminar este programa por favor su ayuda

El saldo debe ser mayor a 500 y no se puede retirar canidades mayor al saldo

 

 

Saludos cordiales

Gabriel Galeas

#include<stdio.h>
#include<conio.h>
typedef struct registro
{int num_cta;
 char nombre[50];
 float saldo;
 char estado;
};

void ingreso();
void deposito();
void retiro();
void consultar();
void salir();

FILE *ptr;
registro reg;
long tam=sizeof(registro);

void main()
{clrscr();
 int op;
 do
  {
    printf("\n\n\t M E N U   D E   O P C I O N E S \n");
    printf("\n");
    printf("\n\t1.-A¥ADIR NUEVA CUENTA ");
    printf("\n\t2.-DEPOSITO");
    printf("\n\t3.-RETIRO");
    printf("\n\t4.-CONSULTAR");
    printf("\n\t5.-SALIR");
    printf("\n\n");
    printf("\n\t   INGRESE OPCION : ");
    scanf("%d",&op);
    clrscr();
    switch(op)
      {case 1:
       ingreso();break;
       case 2:
       deposito();break;
      /* case 3:
       retiro();break;
       case 4:
       consultar();break;
       case 5:
       salir();break;*/
      }
  }while(op!=2);
 getch();
}

void ingreso()
{
 int num_cta_reg;
 ptr=fopen("person201.dat","ab");
 if(ptr==NULL)
   {
    printf("\nERROR DE APERTURA");
    getch();
    return;
   }
 clrscr();
 printf("\n\n\tINGRESO DE CUENTA\n");

 //CALCULO DE REG.NUM

   fseek(ptr,0,SEEK_END);
   num_cta_reg=ftell(ptr)/tam;
   reg.num_cta=num_cta_reg+1;

 printf("\n\n\t CUENTA # : %d",reg.num_cta);
  fflush(stdin);
 printf("\n\n\t INGRESE NOMBRE : ");
  gets(reg.nombre);

 reg.estado='A';
 fwrite(&reg,tam,1,ptr);
 if(ferror(ptr)==0)
    printf("\n\n\t ESCRITURA OK");
 else
    printf("\n\n\t ERROR DE ESCRITURA");
 fclose(ptr);
 getch();
 clrscr();
}

void deposito()
{
  float ing=0;
  int num_cta_reg,saldo;
 ptr=fopen("person201.dat","ab");
 if(ptr==NULL)
   {
    printf("\nERROR DE APERTURA");
    getch();
    return;
   }
 clrscr();
    printf("\n\n\t *** DEPOSITO ***");
  do
   {
    printf("\n Ingrese la cantidad que desea depositar:");
    scanf("%f",&ing);
   }while(ing<=0);
   saldo+=ing;
   printf("\n Su saldo es:%.2f",saldo);
}

void consulta()
{
 ptr=fopen("person200.dat","rb");
 if(ptr==NULL)
   {printf("\n\n\t NO EXISTE ARCHIVO");
    getch();
    return;
   }
 clrscr();
 printf("\n\n\t CONTENIDO DEL ARCHIVO\n");
 printf("\n\n\t NUMERO\tNOMBRE\tEDAD\n");
 fread(&reg,tam,1,ptr);
 while(!feof(ptr))
   {if(reg.estado=='A')
       printf("\n\t%d\t%s\t%d",reg.num_cta,reg.nombre);
    fread(&reg,tam,1,ptr);
   }
 fclose(ptr);
 getch();
 clrscr();
}

/*void modificar()
{
 int num_cta_reg,valor;
 consulta();
 ptr=fopen("person200.dat","r+b");
 if(ptr==NULL)
 {
  printf("\n Archivo No Existe: ");
  getch();
  return;
 }

 fseek(ptr,0,SEEK_END);
 num_cta_reg=ftell(ptr)/tam;
 do
 {
  printf("\n Ingrese N£mero de Registro a Modificar (1-%d):",num_cta_reg);
  scanf("%d",&valor);
 }while(valor<1 || valor>num_cta_reg);

 fseek(ptr,(valor-1)*tam,SEEK_SET); //MUEVE EL PUNTERO AL INICIO DEL REGISTRO
 fread(&reg,tam,1,ptr);
 printf("\n Informacion Actual");
 printf("\n Nombre =%s",reg.nombre);
 printf("\n Edad =%d",reg.edad);
 printf("\n Ingrese Nueva Informacion: \n ");fflush(stdin);
 printf("\n Ingrese Nuevo Nombre: \n ");gets(reg.nombre);
 printf("\n Ingrese Nueva Edad: \n "); scanf("%d",&reg.edad);
 fseek(ptr,-tam,SEEK_CUR);
 fwrite(&reg,tam,1,ptr);

 if(ferror(ptr)==0)
  printf("\n\n REGISTRO MODIFICADO CON EXITO");

 fclose(ptr);
 getch();
 clrscr();
}

*/
/*void eliminar()
{
 int num_cta_reg,valor;char op;
 consulta();
 ptr=fopen("person200.dat","r+b");
 if(ptr==NULL)
 {
  printf("\n Archivo No Existe: ");
  getch();
  return;
 }

 fseek(ptr,0,SEEK_END);
 num_cta_reg=ftell(ptr)/tam;

 do
  {
   printf("\n Ingrese N£mero de Registro a eliminar (1-%d):",num_cta_reg);
   scanf("%d",&valor);
  }while(valor<1 || valor>num_cta_reg);


 fseek(ptr,(valor-1)*tam,SEEK_SET); // Del registro que se quiere eliminar

 fread(&reg,tam,1,ptr);

 printf("\n REGISTRO :\n");
 printf("\n Nombre=%s",reg.nombre);
 printf("\n Edad=%d",reg.edad);


 fflush(stdin);
 printf("\n DESEA ELIMINAR EL REGISTRO: ");
 scanf("%c",&op);
 if(op=='S' || op=='s')
 {
  reg.estado='I';
  fseek(ptr,-tam,SEEK_CUR);
  fwrite(&reg,tam,1,ptr);
  if(ferror(ptr)==0)
  printf("\n REGISTRO ELIMINADO  OK");
 }
 fclose(ptr);
 getch();
 clrscr();
}

void salir()
{
 clrscr();
 printf("\n\n\t Gracias por su visita");

}
*/

 

_________________________________________________________________
Llévate Messenger en tu móvil allá donde vayas ¿A qué esperas?
http://serviciosmoviles.es.msn.com/
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20090226/5a27dc5c/attachment.html>


Más información sobre la lista de distribución Cconclase