• Jueves 14 de Noviembre de 2024, 18:45

Autor Tema:  Estoy Hecho Un Lio  (Leído 786 veces)

franc

  • Miembro MUY activo
  • ***
  • Mensajes: 157
    • Ver Perfil
Estoy Hecho Un Lio
« en: Sábado 15 de Mayo de 2004, 16:45 »
0
Se supone que tengo que hacer un programa que simule un banco ( crear cuentas, sacar dinero, ingresar dinero, visualizar movimientos realizados ... )

Mi problema es que no se me visualizan los movimientos, alguien puede ayudarme ?




Código: Text
  1. #include <stdio.h>
  2. #include < conio.h >
  3. #include < process.h >
  4. #include < string.h >
  5. #include < time.h >
  6. #include < stdlib.h >
  7. FILE *f,*g;
  8.  
  9. typedef struct{
  10. char fecha[15];
  11. char con[20];
  12. float imp;
  13. }movimiento;
  14.  
  15. typedef struct{
  16. int num;
  17. char tipo[20];
  18. char nom[40];
  19. float saldo;
  20. int ob;
  21. movimiento mv[50];
  22. }cuenta;
  23.  
  24.  
  25. void introducir_dc()
  26. {
  27. cuenta cu;
  28. clrscr();
  29. int tipoc,nc;
  30. fseek( g, -1, SEEK_END );
  31. fscanf(g,"%d",&nc);
  32. cu.num=nc+1;
  33. fprintf(g,"\n%d",cu.num);
  34.  
  35.   do{
  36.   clrscr();
  37.  
  38.     printf("Tipo de cuenta:");
  39.  
  40.     printf("\n\t 1. Joven");
  41.     printf("\n\t 2. Oro");
  42.     printf("\n\t 3. Normal");
  43.     printf("\n\t\t OPCION: ");
  44.     scanf("%d",&tipoc);
  45.  
  46.       switch (tipoc){
  47.  
  48.         case 1:
  49.  
  50.                 strcpy(cu.tipo,"Joven");
  51.           break;
  52.         case 2:
  53.  
  54.           strcpy(cu.tipo,"Oro");
  55.           break;
  56.         case 3:
  57.  
  58.           strcpy(cu.tipo,"Normal");
  59.           break;
  60.                         }
  61.                
  62.   }while((tipoc!=1)&&(tipoc!=2)&&(tipoc!=3));
  63.  
  64. clrscr();
  65. printf("\n Introduce el nombre del titular: ");
  66. scanf("%s",&cu.nom);
  67. clrscr();
  68. cu.saldo=0;
  69. printf("\n Cuenta numero %d creada con exito.",cu.num);
  70. printf("\n\t Su saldo actual es: 0");
  71. printf("\n\t\t\t\t Pulse una tecla para volver al menu.");
  72. getche();
  73. cu.ob=0;
  74. fwrite(&cu,sizeof(cu),1,f);
  75.  
  76. }
  77.  
  78. void introducir_ob()
  79. {
  80.  
  81. cuenta cu;
  82.  
  83. int nc,op;
  84. int iguales=0;
  85. rewind(f);
  86. clrscr();
  87.   printf("\nIntroduce el numero de cuenta: ");
  88.   scanf("%d",&nc);
  89.  
  90.   do{
  91.     fread(&cu,sizeof(cu),1,f);
  92.  
  93.       if(cu.num==nc)
  94.       {
  95.       iguales=1;
  96.                         break;
  97.                         }
  98.  
  99.   }while(!feof(f));
  100.  
  101.   while (iguales!=1)
  102.   {
  103.           clrscr();
  104.     printf("\nNumero de cuenta inexistente !!\n");
  105.     printf("\nIntroduce el numero de cuenta: ");
  106.     scanf("%d",&nc);
  107.  
  108.     do{
  109.     fread(&cu,sizeof(cu),1,f);
  110.       if(cu.num==nc)
  111.       {
  112.       iguales=1;
  113.       break;
  114.                         }
  115.       else
  116.       {
  117.       iguales=0;
  118.                         }
  119.     }while((!feof(f)));
  120.  
  121.     if(!iguales) rewind(f);
  122.  
  123.   }
  124.         clrscr();
  125.  
  126. printf("Introduce la fecha de la orden bancaria (dd-mm-aa): ");
  127. scanf("%s",&cu.mv[cu.ob].fecha);
  128. printf("\nIntroduce el concepto: ");
  129. scanf("%s",&cu.mv[cu.ob].con);
  130. cu.ob++;
  131. clrscr();
  132. printf("Pulse la opcion deseada:");
  133. printf("\n1. Ingresar dinero");
  134. printf("\n2. Sacar dinero");
  135. printf("\n\n\t\tOPCION: ");
  136. scanf("%d",&op);
  137.   switch (op)
  138.   {
  139.     case 1:
  140.  
  141.     printf("\nIntroduce el importe: ");
  142.     scanf("%g",&cu.mv[cu.ob].imp);
  143.     cu.saldo+=cu.mv[cu.ob].imp;
  144.     fwrite(&cu,sizeof(cu),1,f);
  145.                 break;
  146.  
  147.     case 2:
  148.  
  149.     printf("\nIntroduce el importe: ");
  150.     scanf("%g",&cu.mv[cu.ob].imp);
  151.     cu.saldo-=cu.mv[cu.ob].imp;
  152.     fwrite(&cu,sizeof(cu),1,f);
  153.                 break;
  154.  
  155.  
  156.   }
  157.  
  158.  
  159.  
  160. }
  161.  
  162. void consultar_sc()
  163. {
  164. cuenta cu;
  165. int nc,op,i;
  166. int iguales=0;
  167. rewind(f);
  168. clrscr();
  169.   printf("\nIntroduce el numero de cuenta: ");
  170.   scanf("%d",&nc);
  171.  
  172.   do{
  173.     fread(&cu,sizeof(cu),1,f);
  174.  
  175.       if(cu.num==nc){
  176.        iguales=1;
  177.        break;
  178.                          }
  179.  
  180.   }while(!feof(f));
  181.  
  182.   while (iguales!=1)
  183.   {
  184.           clrscr();
  185.     printf("\nNumero de cuenta inexistente !!\n");
  186.     printf("\nIntroduce el numero de cuenta: ");
  187.     scanf("%d",&nc);
  188.  
  189.  
  190.     do{
  191.     fread(&cu,sizeof(cu),1,f);
  192.       if(cu.num==nc)
  193.       {
  194.       iguales=1;
  195.       break;
  196.                         }
  197.       else{ iguales=0;
  198.                         }
  199.     }while((!feof(f)));
  200.     if(!iguales) rewind(f);
  201.  
  202.   }
  203. clrscr();
  204. printf ("Cuenta: %d\n", cu.num);
  205. printf ("Nombre: %s\n", cu.nom);
  206. printf ("Tipo de cuenta: %s\n", cu.tipo);
  207. printf("\t\tMovimientos:");
  208. for(i=0;i<cu.ob;i++)
  209. {
  210.     printf("\n\t\t\tFecha %s Concepto: %s Importe: %g", cu.mv[i].fecha,cu.mv[i].con,cu.mv[i+1].imp);
  211. }
  212. printf("\n\n\t SALDO: %g",cu.saldo);
  213. printf("\n\n\n Pulse una tecla para volver al menu.");
  214. getche();
  215. }
  216.  
  217.  
  218. void main()
  219. {
  220. int op;
  221. char resp='s';
  222.  
  223. if(!(f=fopen("BD.dat","a+b"))){
  224.    perror("BD.dat");
  225.    exit(1);
  226.    }
  227.  
  228. if(!(g=fopen("ncuenta.dat","a+t"))){
  229.    perror("ncuenta.dat");
  230.    exit(1);
  231.    }
  232.  
  233.  
  234.  
  235. do{
  236.  
  237. clrscr();
  238.  
  239. printf("\t\t\t Banco Rupto");
  240. printf("\n\t\t ------------------------------");
  241.  
  242. printf("\n\n\n\t 1. Introducir datos de cliente");
  243. printf("\n\t 2. Introducir operacion bancaria");
  244. printf("\n\t 3. Consulta de saldo de Cliente");
  245. printf("\n\t 4. Salir");
  246. printf("\n\t\t\t OPCION: ");
  247. scanf("%d",&op);
  248.  
  249. switch (op)
  250. {
  251.  
  252.   case 1:
  253.     introducir_dc();
  254.     break;
  255.  
  256.   case 2:
  257.  
  258.     introducir_ob();
  259.     break;
  260.   case 3:
  261.  
  262.     consultar_sc();
  263.     break;
  264.   case 4:
  265.  
  266.   resp='n';
  267.   break;
  268.              
  269.  
  270.  
  271. }
  272. }while (resp=='s');
  273.  
  274.  
  275.  
  276. fclose(f);
  277. fclose(g);
  278. }
  279.  

franc

  • Miembro MUY activo
  • ***
  • Mensajes: 157
    • Ver Perfil
Re: Estoy Hecho Un Lio
« Respuesta #1 en: Sábado 15 de Mayo de 2004, 20:26 »
0
si alguien tuviese ejercicios de ficheros y me los pudiera pasar para aprender mas, se lo agradeceria. Esque tengo examen el martes :( y ya ves mi ejercicio anterior no se xq no va, aunque creo que es a la hora de posicionar el cursos.

Algunos pensareis que " ¿ xq no se lo pregunta a su profesor ? " pues la respuesta es que mi profesor no tiene NI IDEA de programar decentemente y estamos todos quejandonos xq todo los ejercicios q nos manda es xq los coge de algun libro y los tiene resueltos, enfin help me please  :(