void Banco::imprimir_cuentas() { list<Cuenta>::iterator it = cuentas.begin(); while(it != cuentas.end()) { Cuenta c = (*it); cout << c.get_identificador() << " " << c.get_dinero() << endl; ++it; } }
void Banco::transferencia_bancaria(){ int id_origen, id_destino, dinero; cin >> id_origen >> id_destino >> dinero; Cuenta* origen = buscar_cuenta(id_origen); Cuenta* destino = buscar_cuenta(id_destino); if(origen->get_dinero() >= dinero) { origen->sacar_dinero(dinero); destino->meter_dinero(dinero); } }
//Inserta una cuenta en el arbol void ArbinDolares::insertarCuenta(int pnumCuenta, string pcliente, double psaldo){ Cuenta * cuentaPadre = NULL; cuentaActual = cuentaRaiz; // Buscar la cuenta en el árbol de cuentas manteniendo el puntero en la raíz padre while(!Vacio(cuentaActual) && pnumCuenta != cuentaActual->getNumCuenta()) { cuentaPadre = cuentaActual; if(pnumCuenta > cuentaActual->getNumCuenta()) cuentaActual = cuentaActual->getCuentaDerecha(); else if(pnumCuenta < cuentaActual->getNumCuenta()) cuentaActual = cuentaActual->getCuentaIzquierda(); } // Si se ha encontrado el elemento, regresar sin insertar if(!Vacio(cuentaActual)) { return; } // Si padre es NULL, entonces el árbol estaba vacío, el nuevo nodo será // el nodo raiz if(Vacio(cuentaPadre)) { cuentaRaiz = new Cuenta(pnumCuenta, pcliente, psaldo); } //// Si el numero de cuenta es menor que el que contiene el nodo padre, lo insertamos //// en la rama izquierda else if(pnumCuenta < cuentaPadre->getNumCuenta()) { Cuenta * objCuenta = new Cuenta(pnumCuenta, pcliente, psaldo); cuentaPadre->setCuentaIzquierda(objCuenta); } // Si el número de cuenta es mayor que el que contiene el nodo padre, lo insertamos // en la rama derecha else if(pnumCuenta > cuentaPadre->getNumCuenta()) { Cuenta * objCuenta = new Cuenta(pnumCuenta, pcliente, psaldo); cuentaPadre->setCuentaDerecha(objCuenta); } }
void Catalogo::crearRubro(string nombreRubro, string descripcion, bool cnueva, int id, string codigoRubro, string tipoDest) { Cuenta *nueva; contabilidad::tipoDestino destino; if(tipoDest=="ingreso") destino=contabilidad::ingreso; if(tipoDest=="gasto") destino=contabilidad::gasto; nueva=new Cuenta(nombreRubro, codigoRubro, contabilidad::agrupacionecomica, descripcion, this, cnueva, id, destino ); nueva->cuentaMadre=NULL; nueva->setID(id); nueva->myCatalogo=this; nueva->cargarHijos(this->id); myCuenta[nombreRubro]=nueva; }
int main() { srand(time(NULL)); int montoInicial = 7000; Cuenta *cuenta = new Cuenta(montoInicial); Mama *mama = new Mama(cuenta); Hijo *hijos[HIJOS]; for (int i=0;i<HIJOS;i++) { hijos[i] = new Hijo(cuenta, i); } mama->start(); for (int i=0;i<HIJOS;i++) { hijos[i]->start(); } sleep(10); mama->detenerse(); for (int i=0;i<HIJOS;i++) { hijos[i]->detenerse(); } mama->wait(); int suma = 0; for (int i=0;i<HIJOS;i++) { hijos[i]->wait(); suma+= hijos[i]->getRetiros(); } cout << "Saldo Inicial:" << montoInicial << endl; cout << "Depositado:" << mama->getDepositado() << endl; cout << "Retirado:" << suma << endl; cout << "Saldo Final:" << cuenta->getSaldo() << endl; cout << "Balance:" << montoInicial + mama->getDepositado() - suma << endl; delete mama; for (int i=0;i<HIJOS;i++) { delete hijos[i]; } return 0; }
Subcuenta * Catalogo::crearCategoria(string codigoMadre, string nombreCategoria, string codigo, string descripcion, int id, bool _nueva, string tipoCue, string tipoDest) { Cuenta *madre; Subcuenta *subMadre; madre=this->getCuenta(codigoMadre); contabilidad::tipoCuenta tipo; contabilidad::tipoDestino destino; if(tipoCue=="agrupacionecomica") tipo=contabilidad::agrupacionecomica; if(tipoCue=="rubro") tipo=contabilidad::rubro; if(tipoCue=="cuenta") tipo=contabilidad::cuenta; if(tipoCue=="especificos") tipo=contabilidad::especificos; if(tipoCue=="inventario") tipo=contabilidad::inventario; if(tipoDest=="ingreso") destino=contabilidad::ingreso; if(tipoDest=="gasto") destino=contabilidad::gasto; if (madre==NULL) { subMadre=this->getSubCuentaCod(codigoMadre); if (subMadre!=NULL) return subMadre->crearSubCuenta(nombreCategoria, tipo, codigo, descripcion, id, _nueva, destino); } else return madre->crearSubCuenta(nombreCategoria,tipo, codigo, descripcion, id, _nueva, destino); return NULL; }
void MostrarCuenta(Cuenta T) { cout<<"Numero......: "<< T.getNumero()<<endl; cout<<"Saldo.......: "<< T.getSaldo()<<endl; }
void Banco::crear_cuenta() { Cuenta c; c.leer_cuenta(); list<Cuenta>::iterator it = cuentas.begin(); cuentas.insert(it, c); }
void Banco::sacar_dinero() { int id, dinero; cin >> id >> dinero; Cuenta* c = buscar_cuenta(id); c->sacar_dinero(dinero); }