0% encontró este documento útil (0 votos)
127 vistas7 páginas

MI Codigo

El documento describe el desarrollo de un sistema bancario con las siguientes características: 1) Permite registrar cuentas bancarias y llevar el control del saldo, débitos y créditos de cada cuenta. 2) Ofrece transacciones como apertura de cuentas, depósitos, retiros y transferencias entre cuentas. 3) Restringe transferencias mayores a L. 30,000 y no permite dejar una cuenta con saldo 0.

Cargado por

Gladys Sosa
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
127 vistas7 páginas

MI Codigo

El documento describe el desarrollo de un sistema bancario con las siguientes características: 1) Permite registrar cuentas bancarias y llevar el control del saldo, débitos y créditos de cada cuenta. 2) Ofrece transacciones como apertura de cuentas, depósitos, retiros y transferencias entre cuentas. 3) Restringe transferencias mayores a L. 30,000 y no permite dejar una cuenta con saldo 0.

Cargado por

Gladys Sosa
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

#include "stdafx.

h"
/*
- Problema: Se nos pide crear un sistema bancario, que permita registrar
cuentas bancarias, permitiendo
llevar el control del saldo inicial, debitos y creditos de una cuenta, ademas
deve poder realizar las
tansaccionestales como apertuar cuenta, realizar deposito, relaizar retiro,
mostar estado de cuenta y
realizartranferencias entre cuentas.
- Restricciones de autoservicio:
- No se pemiten realizar tranferencias entre cuentas mayoes a L.
30,000.00.
- No se permite deja cuenta en 0, el Saldo minimo de una cuenta deve
ser de L. 500.
Afecta:
- Al momento de retiros
- Aperturar la cuenta

Entidades:

Banco:
Estado: Datos Generales
Comportamientos: Contol de las cuentas bancarias.

Cuenta Bancaia:
Estado datos generales, como su saldo.
Comportamientos: Tansacciones y la Apertura.

*/

#include <iostream>
#include <string> // nos permite definir variables de tipo cadena.

using namespace std;

/* Clases compuestas:
Es aquella clase que contiene almenos un atributo de tipo Objeto.
*/

// clase simple.
class Direccion{
public:
string linea1;
string linea2;
};

// clase compuesta o relacionada.


class Propietario
{ //{}
public:
string identidad;
string nombre;
string correo;
string telefono;
string direccion;

void Registrarpropietario () {
// Esta funcion registra los nuevos propietarios de cuentas
cout << "Nombre Propietario : " << endl;
cin >>nombre;
cout << "Identidad : " << endl;
cin >> identidad;
cout << "Numero de telefono : " << endl;
cin >> telefono;
cout << "Direccion : " << endl;
cin >> direccion;
cout << "Correo electronico: " << endl;
cin >> correo;
}

};

const double SALDO_MINIMO = 500.00;


const double MONTO_PERMITIDO = 30000.01;
const int MAX_CUENTAS = 3;
const int NO_EXISTE = -1;

// clase compuesta o relacionada PRINCIPAL.


class Cuentabancaria {
private:
double saldoInicial;
double debitos;
double creditos;
public:
int numeroCuenta;
Propietario propietario; // atributo de tipo objeto.
Cuentabancaria() { // constuctor
// inicializar los atributos con sus
// valoes por defecto.
saldoInicial= 0;
debitos = 0;
creditos =0;
}

// Logica de Negocios
void pedirDatosAperturaCuenta(int noCuenta)
{
Propietario cta;
numeroCuenta = noCuenta;
/*Propietario propitario;
cout << "Numero de cuenta: ";
cin >> numeroCuenta;*/
cin.ignore(100, '\n');
// Funcion que registra los demas dato del proprietario
cta.Registrarpropietario();
// aqui se pedira el resto de informacion
// del propietario(esta parte es tarea).

bool esCorecto;
do
{

cout << "Saldo Inicial: ";


cin >> saldoInicial;
if (saldoInicial < SALDO_MINIMO || !
esAceptadoMonto(saldoInicial))
{
esCorecto = false;
if (!esAceptadoMonto(saldoInicial)){
cout << "* * ERROR no se permite una
Apertura con un "
<< "Saldo suprior a L." <<
MONTO_PERMITIDO << endl;
}
else
{
cout << "* * ERROR no se permite una
Apertura con un "
<< "Saldo inferior a L." <<
SALDO_MINIMO << endl;
}

else
{
esCorecto = true;
}

} while (esCorecto == false);

double calcularSaldoActual() {
return (saldoInicial + creditos - debitos);
}

double obtenerDebitos() {
return debitos;

double obtenerCreditos() {
return creditos;

// Esta funcion permite validad el monto de la transaccion.


// que no exeda el limite permitido.

bool esAceptadoMonto(double monto) {


return (monto <= MONTO_PERMITIDO);
}

void pedirMontoDeposito() {
double monto;
cout << "Ingrese el Monto a Depositar: ";
cin >> monto;
acumularCredito(monto);
}

void pedirMontoRetiro() {
double monto;
cout << "Ingrese el Monto a Retirar: ";
cin >> monto;
acumularDebito(monto);
}

void acumularCredito(double monto)


{
if(esAceptadoMonto(monto)){
// entonces que acumule
creditos = creditos + monto;
}
else
{
cout << "* * ERROR - Monto " << monto << " no permitido\n";
}

void acumularDebito(double monto)


{
if (esAceptadoMonto(monto)) {
// entonces que acumule
debitos = debitos + monto;
}
else
{
cout << "* * ERROR - Monto " << monto << " no permitido\n";
}
}
};

// Clase compuesta principal

class Banco {
private:
// Este es el contador de las cuentas que fueron ingresadas
int indiceCuenta;
//Arreglo de objetos de CuentaBancaria
//Los indices en un arreglo son todos los enteros positivos. 0..n-1
Cuentabancaria cuentas[MAX_CUENTAS];

public:
string nombre;
string direccion;
string telefono;
Banco () { //Constructor
indiceCuenta = 0;
}

/*Creae una funcion de busqueda de una cuenta en el arreglo


de "cuentas"
La funciom debe retornar un valor entero positivo 0..N-1 en caso
encuentre el numero de cuenta proporcionado, en caso contrario,
debera retornar el valor de -1
*/

int buscarPorNumeroCuenta(int numeroCuenta) {


int indice = NO_EXISTE;
for (int i=0; i<indiceCuenta ; i++) {
if (cuentas[i].numeroCuenta == numeroCuenta) {
indice = i; // Aqui salvamos el indice donde se encontro
la cuenta.
break; // terminamos la ejecucion del for.
}
}
return indice;
}

void resgistrarDeposito() {
/* ENTREGAR de cuenta destino
INGRESAR al sistema para BUSCARLO.
REALIZAR una busqueda en el arreglo de cuenta, utilizando
el numero de cuenta como clave de busqueda.
SI Existe el numero de cuenta
REGISTRAR el monto a depositar
PEDIR el monto
ACUMULAR el monto
CASO CONTRARIO
MOSTRAR mensaje que no exista la cuenta
*/
int numeroCuenta;
cout << "Ingrese el numero de cuenta a Buscar: ";
cin >> numeroCuenta;

int indice = buscarPorNumeroCuenta(numeroCuenta);

if (indice != NO_EXISTE) {
cuentas[indice].pedirMontoDeposito();
cout << "------* * Su deposito ha sido registrado correctamente
* *-----\n";
cuentas[indice].calcularSaldoActual();
cout <<" su saldo actual es: " <<
cuentas[indice].calcularSaldoActual() <<endl;
} else {
cout << "* * ERROR - El numero de cuenta no existe\n";
system("PAUSE");
}
}

void aperturaCuenta () {
//Vamos a verficar que no se exceda del limite de cuentas
// que estan en el arreglo
if (indiceCuenta < MAX_CUENTAS) {
int numeroCuenta;
cout << "ingrese numero de cuenta: ";
cin >> numeroCuenta;
if (buscarPorNumeroCuenta(numeroCuenta) == NO_EXISTE) {
cuentas[indiceCuenta].pedirDatosAperturaCuenta(numeroCuenta);
indiceCuenta++;
} else {
cout << "* * ERROR - Numero de cuenta ya existe.\n";
//system("PAUSE");
}
} else {
cout << "* * ERROR - Se ha llegado al limite de las cuentas. \n";
}
// system("PAUSE");
}
};
int main() {
Banco bac;

// creamos el objeto principal que es de la clase


//"Banco".
//Variable para opcion seleccionada del menu
int opcion;
enum Opciones {APERTURA_CUENTA = 1,
REGISTRO_DEPOSITO,
REGISTRO_RETIRO,
ESTADO_CUENTA,
TRANSFERIR_ENTRE_CUENTAS,
SALIR};
do {
//lIMPIAR LA PANTALLA
system("CLS");
cout << " SISTEMA BANCARIO \n"
<< "-----------------------------"
<< "\n1 - Apertura Cuenta\n"
<< "2 - Registrar Deposito\n"
<< "3 - Registrar Retiro\n"
<< "4 - Estado de Cuenta\n"
<< "5 - Transferir entre cuentas\n"
<< "6 - Salir\n"
<< "-------------------------------\n"
<< " Seleccione opcion: ";
// Permitir al usuario seleccionar una opcion
cin >> opcion;
switch (opcion) {
case APERTURA_CUENTA:
cout << "OPCION: Apertura Cuenta\n";
bac.aperturaCuenta();
break;
case REGISTRO_DEPOSITO:
cout << "OPCION: Registrar Deposito\n";
bac.resgistrarDeposito();
system("PAUSE");
break;
case REGISTRO_RETIRO:
cout << "OPCION: Registrar Retiro\n";
system("PAUSE");
break;
case ESTADO_CUENTA:
cout << "OPCION: Estado de Cuenta\n";
system("PAUSE");
break;
case TRANSFERIR_ENTRE_CUENTAS:
cout << "OPCION: Transferir entre cuentas\n";
system("PAUSE");
break;
case SALIR: break;
default:
cout << "* * ERROR - Opcion no existe\n";
system("PAUSE");
}
}while (opcion != SALIR);
system ("pause");
return 0;
}

También podría gustarte