Está en la página 1de 7

Facultad de Ingeniera

Programa de Ingeniera de Sistemas


Programacin I
Semana 4

CASO DE ESTUDIO: ESTADSTICAS DE


VOTACIONES MUNICIPALES
1. ENUNCIADO
Elabore un programa en C++ que permita el registro y administracin de cuentas de ahorro
para los usuarios de un banco, el sistema debe permitir crear cuentas con los siguientes
datos: Nmero de cuenta, Cdula, Nombre, Estado (A. Abierta o C. Cerrada) y Saldo inicial.
El sistema debe poder registrar cada movimiento realizado por los usuarios teniendo en
cuenta:
Datos de entrada:
1. Debe permitir abrir y cerrar cuentas
2. Cada movimiento debe quedar registrado, el sistema debe permitir mostrar todos los
movimientos de una cuenta en particular (se debe buscar por nmero o cdula)
3. El sistema debe permitir el depsitos y retiros, teniendo en cuenta el saldo que el usuario
posee (el sistema debe pedir la cuenta y el monto)
4. El sistema debe permitir la realizacin de transferencias de una cuenta a otra (el sistema
debe pedir la cuenta de origen, la cuenta de destino y el monto)

Datos de salida:
1. El sistema debe permitir listar todas las cuentas con su saldo
2. Cada movimiento debe quedar registrado, el sistema debe permitir mostrar todos los
movimientos de una cuenta en particular (se debe buscar por nmero o cdula)
3. El sistema debe permitir listar todas las cuentas con su saldo

Contexto del caso:


Segn el enunciado correspondiente al ejercicio propuesto, el sistema requerido debe
gestionar el manejo de una cuenta de ahorro para cada cliente de un banco cuyas
funcionalidades tambin comprenden la gestin y el control de los movimientos que
conciernen a dicho manejo
Facultad de Ingeniera
Programa de Ingeniera de Sistemas
Programacin I
Semana 4

2. ESTRUCTURAS DE DATOS

Defina las estructuras en las que se almacenarn los datos, y su cdigo respectivo.
Nombre Descripcin Tipo de datos
listado[] Contiene todos los registros Cuenta
de las cuentas
Nombre Nombre del titular de la Char
cuenta
numeroCuenta Nmero de la cuenta de Char
ahorros
Cedula Cedula del titular Char
saldo Saldo disponible en la Double
cuenta
Estado Estado de cuenta char

3. REQUERIMIENTOS FUNCIONALES

RF1: Crear cuenta de ahorros


void registrarCuenta(){

fflush(stdin);
cout<<"\nDIGITE EL NUMERO DE CUENTA: ";
gets(listado[indice].numeroCuenta);

fflush(stdin);
cout<<"\nDIGITE EL NUMERO DE CEDULA: ";
cin>>listado[indice].cedula;

fflush(stdin);
Facultad de Ingeniera
Programa de Ingeniera de Sistemas
Programacin I
Semana 4

cout<<"\nDIGITE NOMBRE DEL CLIENTE: ";


gets(listado[indice].nombre);

cout<<"\nDIGITE EL SALDO DE LA CUENTA: ";


cin>>listado[indice].saldo;

listado[indice].estado = 'A';

indice++;
}

RF2: Abrir cuenta


int abrirCuenta(char numeroCuentaBuscada[15]){

for(int i=0; i<indice; i++){

if(strcmp(listado[i].numeroCuenta, numeroCuentaBuscada)==0){

if(listado[i].estado == 'C'){
listado[i].estado = 'A';
return 1;
}
else{
return -1;
}

}
}

return 0;
Facultad de Ingeniera
Programa de Ingeniera de Sistemas
Programacin I
Semana 4

}
RF3: Cerrar cuenta
int cerrarCuenta(char numeroCuentaBuscada[15]){

for(int i=0; i<indice; i++){

if(strcmp(listado[i].numeroCuenta, numeroCuentaBuscada)==0){

if(listado[i].estado == 'A'){
listado[i].estado = 'C';
return 1;
}
else{
return -1;
}

}
}

return 0;
}

RF4: Efectuar depsitos


RF5: Efectuar transferencias
RF6: Efectuar retiros
RF7: Listar registros
Facultad de Ingeniera
Programa de Ingeniera de Sistemas
Programacin I
Semana 4

4. REQUERIMIENTOS INSTRUCCIONALES

void menu(char respuesta){

cout<<"\nQUE DESEA HACER\n";


cout<<"\n\n1. CREAR CUENTA";
cout<<"\n2. ABRIR/CERRAR CUENTA";
cout<<"\n3. VER MOVIMIENTOS";
cout<<"\n4. REALIZAR DEPOSITO/RETIRO";
cout<<"\n5. REALIZAR TRANSFERENCIA";
cout<<"\n6. LISTAR TODAS LAS CUENTAS";
cout<<"\n\nPARA SALIR DIGITE CUALQUIER TECLA\n\n->";
cin>>respuesta;
system("CLS");
switch(respuesta){

case '1':
registrarCuenta();
break;

case '2':
char cuentaBuscada[30], abreOcierra;

do{
cout<<"\nDESEA ABRIR(A) O CERRAR(B) LA CUENTA?\n->";
cin>>abreOcierra;
system("CLS");
}while(abreOcierra !='A' && abreOcierra !='a' && abreOcierra !='c' &&
abreOcierra !='C');
Facultad de Ingeniera
Programa de Ingeniera de Sistemas
Programacin I
Semana 4

if(abreOcierra=='A' || abreOcierra=='a'){
fflush(stdin);
cout<<"\nDIGITE EL NUMERO DE CUENTA QUE DESEA ABRIR\n->";
gets(cuentaBuscada);

switch(abrirCuenta(cuentaBuscada)){

case -1:
cout<<"\nESTA CUENTA YA ESTABA ABIERTA";
break;

case 1:
cout<<"\nLA CUENTA HA CAMBIADO DE ESTADO A ABIERTA
(A)";
break;

case 0:
cout<<"\nNO EXISTE ESE NUMERO";
break;
}

}else {

fflush(stdin);
cout<<"\nDIGITE EL NUMERO DE CUENTA QUE DESEA ABRIR\n->";
gets(cuentaBuscada);

switch(cerrarCuenta(cuentaBuscada)){
Facultad de Ingeniera
Programa de Ingeniera de Sistemas
Programacin I
Semana 4

case -1:
cout<<"\nESTA CUENTA YA ESTABA CERRADA";
break;

case 1:
cout<<"\nLA CUENTA HA CAMBIADO DE ESTADO A
CERRADA (C)";
break;

case 0:
cout<<"\nNO EXISTE ESE NUMERO";
break;
}

break;

case '3':
break;

case '4':

break;

case '5':
break;
}
}