Advertisement
s00rk

[Actualizado con Dev C++]Proyecto de Carabanero

Nov 5th, 2011
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.99 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <iostream>
  4. #include <fstream>
  5. #include <iomanip>
  6. using namespace std;
  7.  
  8.  
  9. /*
  10. Incluir la definición de la estructura aquí
  11. */
  12. struct Movimiento{
  13.        unsigned int NCuenta;
  14.        double Monto;
  15.        unsigned int Y;
  16.        unsigned int M;
  17.        unsigned int D;
  18.        };
  19.  
  20.  
  21. /*
  22. Incluir los prototipos de las funciones aquí
  23. */
  24. int leer_archivo(Movimiento movimientos[]);
  25. int saldos_finales(Movimiento movimientos[], double saldo_final[], unsigned int numero_cuenta[], int cantidad_de_movimientos);
  26. int buscar_mayor_saldo(double saldo_final[], unsigned int numero_cuenta[], int cantidad_de_cuentas);
  27. void guardar_saldos_finales(double saldo_final[], unsigned int numero_cuenta[], int cantidad_de_cuentas);
  28.  
  29. int main()
  30. {
  31.     Movimiento movimientos[1000];
  32.     int cantidad_de_movimientos;
  33.     double saldo_final[1000];
  34.     unsigned int numero_cuenta[1000];
  35.     int cantidad_de_cuentas;
  36.     int numero_de_cuenta;
  37.  
  38.     cantidad_de_movimientos = leer_archivo(movimientos);
  39.  
  40.     cantidad_de_cuentas = saldos_finales(movimientos, saldo_final, numero_cuenta, cantidad_de_movimientos);
  41.  
  42.     numero_de_cuenta = buscar_mayor_saldo(saldo_final, numero_cuenta, cantidad_de_cuentas);
  43.  
  44.     cout << "\n\n";
  45.     cout << "El numero de la cuenta con mas saldo es : " << numero_de_cuenta;
  46.     cout << "\n\n";
  47.  
  48.     guardar_saldos_finales(saldo_final, numero_cuenta, cantidad_de_cuentas);
  49.  
  50.     cin.get();cin.get();
  51.     return 0;
  52. }
  53.  
  54. int leer_archivo(Movimiento movimientos[])
  55. {
  56.     int resp = 0, i = -1;
  57.     ifstream ar("movimientos.txt");
  58.     char linea [50];
  59.     string buff;
  60.     while(!ar.eof())
  61.     {
  62.         ar.getline(linea,50);
  63.         if(i >= 0)
  64.         {
  65.             buff = "";
  66.             movimientos[i].NCuenta = 0;
  67.             movimientos[i].Monto = 0;
  68.             movimientos[i].Y = 0;
  69.             movimientos[i].M = 0;
  70.             movimientos[i].D = 0;
  71.             for(int x = 0; x < 50; x++)
  72.             {
  73.                 buff += linea[x];
  74.    
  75.                 if(linea[x] == ' ')
  76.                 {
  77.                     if(movimientos[i].NCuenta == 0)
  78.                     {
  79.                         movimientos[i].NCuenta = atoi(buff.c_str());
  80.                     }else if(movimientos[i].Monto == 0){
  81.                         movimientos[i].Monto = atof(buff.c_str());
  82.                     }else if(movimientos[i].Y == 0){
  83.                         movimientos[i].Y = atoi(buff.c_str());
  84.                     }else if(movimientos[i].M == 0){
  85.                         movimientos[i].M = atoi(buff.c_str());
  86.                     }else if(movimientos[i].D == 0){
  87.                         movimientos[i].D = atoi(buff.c_str());
  88.                     }
  89.                     buff = "";
  90.                 }
  91.             }
  92.         }else{
  93.             resp = atoi(linea);
  94.         }
  95.             i++;
  96.     }
  97.     return resp;
  98. }
  99.  
  100. int saldos_finales(Movimiento movimientos[], double saldo_final[], unsigned int numero_cuenta[], int cantidad_de_movimientos)
  101. {
  102.     int resp = 0, cuenta;
  103.     double saldo;
  104.     bool existe = false;
  105.     if(movimientos[0].NCuenta != 0)
  106.     {
  107.         numero_cuenta[0] = movimientos[0].NCuenta;
  108.         saldo_final[0] = movimientos[0].Monto;
  109.         resp++;
  110.         for(int x = 1; x < cantidad_de_movimientos; x++)
  111.         {
  112.             cuenta = movimientos[x].NCuenta;
  113.             saldo = movimientos[x].Monto;      
  114.             existe = false;
  115.             for(int i = 0; i < resp; i++)
  116.             {
  117.                 if(numero_cuenta[i] == cuenta)
  118.                 {
  119.                     saldo_final[i] += saldo;
  120.                     existe = true;
  121.                 }
  122.             }
  123.             if(!existe)
  124.             {
  125.                 numero_cuenta[resp] = cuenta;
  126.                 saldo_final[resp] = saldo;
  127.                 resp++;
  128.             }
  129.            
  130.         }
  131.     }
  132.    
  133.     return resp;
  134.  
  135. }
  136.  
  137. int buscar_mayor_saldo(double saldo_final[], unsigned int numero_cuenta[], int cantidad_de_cuentas)
  138. {
  139.     double SaldoM = saldo_final[0];
  140.     int CuentaM = numero_cuenta[0];
  141.     for(int x = 1; x < cantidad_de_cuentas; x++)
  142.     {
  143.         if(SaldoM < saldo_final[x])
  144.         {
  145.             SaldoM = saldo_final[x];
  146.             CuentaM = numero_cuenta[x];
  147.         }
  148.     }
  149.     return CuentaM;
  150. }
  151.  
  152. void guardar_saldos_finales(double saldo_final[], unsigned int numero_cuenta[], int cantidad_de_cuentas)
  153. {
  154.      FILE *Archivo = fopen("saldos_finales.txt", "w");
  155.      fclose(Archivo);
  156.      for(int x = 0; x < cantidad_de_cuentas; x++)
  157.      {
  158.              Archivo = fopen("saldos_finales.txt", "a+");
  159.              fprintf(Archivo, "Cuenta: %i Saldo: %f \n", numero_cuenta[x], saldo_final[x]);
  160.              fclose(Archivo);
  161.      }
  162. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement