Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <iostream>
- #include <fstream>
- #include <iomanip>
- using namespace std;
- /*
- Incluir la definición de la estructura aquí
- */
- struct Movimiento{
- unsigned int NCuenta;
- double Monto;
- unsigned int Y;
- unsigned int M;
- unsigned int D;
- };
- /*
- Incluir los prototipos de las funciones aquí
- */
- int leer_archivo(Movimiento movimientos[]);
- int saldos_finales(Movimiento movimientos[], double saldo_final[], unsigned int numero_cuenta[], int cantidad_de_movimientos);
- int buscar_mayor_saldo(double saldo_final[], unsigned int numero_cuenta[], int cantidad_de_cuentas);
- void guardar_saldos_finales(double saldo_final[], unsigned int numero_cuenta[], int cantidad_de_cuentas);
- int main()
- {
- Movimiento movimientos[1000];
- int cantidad_de_movimientos;
- double saldo_final[1000];
- unsigned int numero_cuenta[1000];
- int cantidad_de_cuentas;
- int numero_de_cuenta;
- cantidad_de_movimientos = leer_archivo(movimientos);
- cantidad_de_cuentas = saldos_finales(movimientos, saldo_final, numero_cuenta, cantidad_de_movimientos);
- numero_de_cuenta = buscar_mayor_saldo(saldo_final, numero_cuenta, cantidad_de_cuentas);
- cout << "\n\n";
- cout << "El numero de la cuenta con mas saldo es : " << numero_de_cuenta;
- cout << "\n\n";
- guardar_saldos_finales(saldo_final, numero_cuenta, cantidad_de_cuentas);
- cin.get();cin.get();
- return 0;
- }
- int leer_archivo(Movimiento movimientos[])
- {
- int resp = 0, i = -1;
- ifstream ar("movimientos.txt");
- char linea [50];
- string buff;
- while(!ar.eof())
- {
- ar.getline(linea,50);
- if(i >= 0)
- {
- buff = "";
- movimientos[i].NCuenta = 0;
- movimientos[i].Monto = 0;
- movimientos[i].Y = 0;
- movimientos[i].M = 0;
- movimientos[i].D = 0;
- for(int x = 0; x < 50; x++)
- {
- buff += linea[x];
- if(linea[x] == ' ')
- {
- if(movimientos[i].NCuenta == 0)
- {
- movimientos[i].NCuenta = atoi(buff.c_str());
- }else if(movimientos[i].Monto == 0){
- movimientos[i].Monto = atof(buff.c_str());
- }else if(movimientos[i].Y == 0){
- movimientos[i].Y = atoi(buff.c_str());
- }else if(movimientos[i].M == 0){
- movimientos[i].M = atoi(buff.c_str());
- }else if(movimientos[i].D == 0){
- movimientos[i].D = atoi(buff.c_str());
- }
- buff = "";
- }
- }
- }else{
- resp = atoi(linea);
- }
- i++;
- }
- return resp;
- }
- int saldos_finales(Movimiento movimientos[], double saldo_final[], unsigned int numero_cuenta[], int cantidad_de_movimientos)
- {
- int resp = 0, cuenta;
- double saldo;
- bool existe = false;
- if(movimientos[0].NCuenta != 0)
- {
- numero_cuenta[0] = movimientos[0].NCuenta;
- saldo_final[0] = movimientos[0].Monto;
- resp++;
- for(int x = 1; x < cantidad_de_movimientos; x++)
- {
- cuenta = movimientos[x].NCuenta;
- saldo = movimientos[x].Monto;
- existe = false;
- for(int i = 0; i < resp; i++)
- {
- if(numero_cuenta[i] == cuenta)
- {
- saldo_final[i] += saldo;
- existe = true;
- }
- }
- if(!existe)
- {
- numero_cuenta[resp] = cuenta;
- saldo_final[resp] = saldo;
- resp++;
- }
- }
- }
- return resp;
- }
- int buscar_mayor_saldo(double saldo_final[], unsigned int numero_cuenta[], int cantidad_de_cuentas)
- {
- double SaldoM = saldo_final[0];
- int CuentaM = numero_cuenta[0];
- for(int x = 1; x < cantidad_de_cuentas; x++)
- {
- if(SaldoM < saldo_final[x])
- {
- SaldoM = saldo_final[x];
- CuentaM = numero_cuenta[x];
- }
- }
- return CuentaM;
- }
- void guardar_saldos_finales(double saldo_final[], unsigned int numero_cuenta[], int cantidad_de_cuentas)
- {
- FILE *Archivo = fopen("saldos_finales.txt", "w");
- fclose(Archivo);
- for(int x = 0; x < cantidad_de_cuentas; x++)
- {
- Archivo = fopen("saldos_finales.txt", "a+");
- fprintf(Archivo, "Cuenta: %i Saldo: %f \n", numero_cuenta[x], saldo_final[x]);
- fclose(Archivo);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement