Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - ceragos

#1
Programación C/C++ / cuenta
14 Diciembre 2012, 08:24 AM
tengo una clase cuenta

class Cuenta
{
    protected:
        std::string cedula, numeroCuenta;
        int saldo;
    public:
        Cuenta(std::string ced = "",std::string numCta = "",int sal = 0);
        void setCedula(std::string ced);      //los set establecen el valor de la variable
        void setNumeroCuenta(std::string numCta);
        void setSaldo(int sal);
        std::string getCedula();                 //los get consultan el valor de la variable
        std::string getNumeroCuenta();
        int getSaldo();
        bool seLlama (std::string ced);                  //comparador
        bool operator < (const Cuenta &C) const;  //ordenador
        virtual int intereses()=0;
};



#include "cuenta.h"

Cuenta::Cuenta(std::string ced, std::string numCta, int sal)
{
cedula = ced;
numeroCuenta = numCta;
saldo = sal;
}

void Cuenta::setCedula(std::string ced)
{
cedula = ced;   
}

void Cuenta::setNumeroCuenta(std::string numCta)
{
numeroCuenta = numCta;   
}

void Cuenta::setSaldo(int sal)
{
  saldo = sal;
}

std::string Cuenta:: getCedula()
{
return cedula;
}

std::string Cuenta:: getNumeroCuenta()
{
return numeroCuenta;
}

int Cuenta::getSaldo()
{
return saldo;
}

bool Cuenta::seLlama (std::string ced)
{
return cedula == ced;
}

bool Cuenta::operator < (const Cuenta &c) const
{
return (cedula < c.cedula);
}


esta clase se usa como super clase para la clase ahorros

class Ahorros : public Cuenta
{
    private:
        int montoBase;
    public:
        Ahorros(std::string ced = "",std::string numCta = "",int saldo = 0);
        bool validarTransaccion(int saldoR);
        int intereses(int saldo);
       
};



#include "ahorros.h"


Ahorros::Ahorros(std::string ced, std::string numCta, int saldo) : Cuenta(ced, numCta, saldo)
{
  montoBase = 20000;
}

bool Ahorros::validarTransaccion(int saldoR)
{
  return (saldoR-montoBase)>=0;
}

int Ahorros::intereses(int saldoR)
{
  floor(saldoR*1.4);
}


la informacion de el constructor la debo guardar en un vetor de la clase lista


class ListaAhorros
{
private:
        char cambio[15];
        bool orden;
        std::vector<Ahorros> listaAhorros;

public:
        ListaAhorros();
        ~ListaAhorros();
        void agregar[glow=red,2,300](Ahorros a)[/glow];
        std::string consultar(std::string ced);
        std::string consultarCuenta(std::string ced);
        void modificar(std::string ced, std::string ced1, std::string numCta, int montB);
        void eliminar(std::string ced);
        void ordenar();
        void listadoAhorros();
};
#endif


en este momento me genera un error al compilar
su respectiva implementacion es esta


#include "listaAhorros.h"
using namespace std;
ListaAhorros::ListaAhorros()
{
  string linea, ced, numCta;
  int saldo;
  ifstream entrada("ActaAhorros.txt");
  if(entrada){
    while(getline(entrada, linea))
    {
        ced = linea;
        getline(entrada, linea);
        numCta = linea;
        getline(entrada, linea);
        saldo = atoi(linea.c_str());
       
        agregar(Ahorros(ced, numCta, saldo));
    }
  }
  orden=false;
  entrada.close();
}

ListaAhorros::~ListaAhorros()
{
   ofstream salida("ActaAhorros.txt");
   vector<Ahorros>::iterator cual;
   for(cual=listaAhorros.begin();cual!=listaAhorros.end();cual++)
   {
        salida << cual->getCedula() << endl;
        salida << cual->getNumeroCuenta() << endl;
        salida << cual->getSaldo() << endl;
   }
   salida.close();
}   

void ListaAhorros::agregar(Ahorros a)
{   
   
      listaAhorros.insert(listaAhorros.end(), a);
     
}

std::string ListaAhorros::consultar(std::string ced)
{
   vector<Ahorros>::iterator cual;
   for(cual=listaAhorros.begin();cual!=listaAhorros.end();cual++)
      if(cual->seLlama(ced)){
         cout << "numero de cuenta: " << cual->getNumeroCuenta();
         cout << "\nmonto base: " << cual->getSaldo();
         
         return itoa(cual->getSaldo(),cambio,10);
         }
      else
      return "";
}

std::string ListaAhorros::consultarCuenta(std::string ced)
{
   vector<Ahorros>::iterator cual;
   for(cual=listaAhorros.begin();cual!=listaAhorros.end();cual++)
   cout<<"llega";cin.get();
      if(cual->seLlama(ced)){
        cout<<"no llega";cin.get();
        return cual->getNumeroCuenta();}
}

void ListaAhorros::modificar(std::string ced, std::string ced1, std::string numCta, int montB)
{
   vector<Ahorros>::iterator cual;
   for(cual=listaAhorros.begin();cual!=listaAhorros.end();cual++)
      if(cual->seLlama(ced))
      {
         cual->setCedula(ced1);
         cual->setNumeroCuenta(numCta);
         cual->setSaldo(montB);
         break;
      }
}
void ListaAhorros::eliminar(std::string ced)
{
   vector<Ahorros>::iterator cual;
   for(cual=listaAhorros.begin();cual!=listaAhorros.end();cual++)
      if(cual->seLlama(ced))
      {
        listaAhorros.erase(cual);
        break;
      }
}

void ListaAhorros::ordenar()
{
   if(!orden)
      sort(listaAhorros.begin(),listaAhorros.end());
   orden=true;
}

void ListaAhorros::listadoAhorros()
{
   ordenar();
   vector<Ahorros>::iterator cual;
   cout << "LISTADO DE LA LIBRETA DE CLIENTES" << endl;
   cout << " CEDULA           NUMERO_DE_CUENTA        MONTO_BASE" << endl;
   for(cual=listaAhorros.begin();cual!=listaAhorros.end();cual++)
     cout <<" "<< cual->getCedula()<<"       "<< cual->getNumeroCuenta() << "               " << cual->getSaldo()<< endl;
}


y esta es su implementacion