double saldo - clasesunicor

Anuncio
HERENCIA
TCuenta
- int numCuenta
- string nomCliente
- double saldo
- double tipoInteres
+ TCuenta()
+ void setNumCuenta(int num)
+ void setNomCliente(string nom)
+ void setSaldo(double sal)
+ void setTipoInteres( double vint)
+ int getNumCuenta()
+ string getNomCliente()
+ double getSaldo()
+ double getTipoInteres()
+ virtual double intereses() = 0
+ ~TCuenta()
TCuentaAhorros
- double cuotaMantenimiento
+ TCuentaAhorros()
+ void setCuotaMantenimiento(double cuota)
+ double getCuotaMantenimiento()
+ virtual double intereses()
+ double saldoNeto()
+ ~TCuentaAhorros()
TCuentaCorriente
- int numTransacciones
- double importeTransaccion
+ TCuentaCorriente()
+ void setNumTransacciones(int num)
+ void setImporteTransaccion(double importe)
+ int getNumTransacciones()
+ double getImporteTransaccion()
+ double cobroTransaccion()
+ virtual double intereses()
+ double saldoNeto();
+ ~TCuentaCorriente();
Fichero tcuenta.h
#ifndef TCUENTA_H
#define TCUENTA_H
#include <iostream>
using namespace std;
class TCuenta
{
private:
int numCuenta;
string nomCliente;
double saldo;
double tipoInteres;
public:
TCuenta();
//Declaración de los métodos modificadores de la clase.
void setNumCuenta(int num);
void setNomCliente(string nom);
void setSaldo(double sal);
void setTipoInteres( double vint);
//Declaración de los métodos selectores de la clase.
int getNumCuenta();
string getNomCliente();
double getSaldo();
double getTipoInteres();
//0 significa que es un método abstracto, así de declara un método virtual puro. El método abstracto
//intereses(), No tiene una implementación definida en la clase TCuenta pero si debe estar implementado
//en las clases hijas que hereden de ella.
virtual double intereses()=0;
~TCuenta();
};
Fichero tcuenta.cpp
#include "tcuenta.h"
TCuenta::TCuenta()
{
numCuenta=0;
nomCliente="";
saldo=0;
tipoInteres=0;
}
void TCuenta::setNumCuenta(int num){
numCuenta=num;
}
void TCuenta::setNomCliente(string nom){
nomCliente=nom;
}
void TCuenta::setSaldo(double sal){
saldo=sal;
}
void TCuenta::setTipoInteres( double vint){
tipoInteres=vint;
}
int TCuenta::getNumCuenta(){
return numCuenta;
}
string TCuenta::getNomCliente(){
return nomCliente;
}
double TCuenta::getSaldo(){
return saldo;
}
double TCuenta::getTipoInteres(){
return tipoInteres;
}
TCuenta::~TCuenta(){
//dtor
}
fichero tcuentaahorros.h
#ifndef TCUENTAAHORROS_H
#define TCUENTAAHORROS_H
#include "tcuenta.h"
class TCuentaAhorros : public TCuenta //Así se define que la clase TCuentaAhorros es una clase hija de
//la clase TCuenta, es decir TCuentaAhorros hereda todos los métodos y atributos definidos en la clase
//padre TCuenta.
{
private:
double cuotaMantenimiento;
public:
TCuentaAhorros();
void setCuotaMantenimiento(double cuota);
double getCuotaMantenimiento();
//Se declara el método abstracto intereses() que se definió en la clase padre TCuenta, para que tenga su
//implementación en la clase hija TCuentaAhorros.
virtual double intereses(); //Método que calcula el interés mensual producido por la cuenta de ahorro.
double saldoNeto(); //Definición del método que calcula el saldo neto de la cuenta de ahorro.
~TCuentaAhorros();
};
fichero tcuentaahorros.cpp
#include "tcuentaahorros.h"
TCuentaAhorros::TCuentaAhorros()
{
cuotaMantenimiento = 0;
}
void TCuentaAhorros::setCuotaMantenimiento(double cuota){
cuotaMantenimiento = cuota;
}
double TCuentaAhorros::getCuotaMantenimiento(){
return cuotaMantenimiento;
}
double TCuentaAhorros::intereses(){
return (getSaldo()*getTipoInteres())/100;
}
double TCuentaAhorros::saldoNeto(){
return (getSaldo() - getCuotaMantenimiento() + intereses());
}
TCuentaAhorros::~TCuentaAhorros()
{
//dtor
}
fichero tcuentacorriente.h
#ifndef TCUENTACORRIENTE_H
#define TCUENTACORRIENTE_H
#include "tcuenta.h"
class TCuentaCorriente : public TCuenta
{
private:
int numTransacciones; //Número de transacciones efectuadas sobre una cuenta.
double importeTransaccion; //Importe que el banco cobra por cada transacción.
public:
TCuentaCorriente();
//Declaración de los métodos modificadores de la clase.
void setNumTransacciones(int num);
void setImporteTransaccion(double importe);
//Declaración de los métodos selectores de la clase.
int getNumTransacciones();
double getImporteTransaccion();
//Declaración del método que calcula la cantidad que cobra el banco mensualmente por el número de
//transacciones, teniendo en cuenta el importe que cobra el banco.
double cobroTransaccion();
//Declaración del método que calcula los intereses de la cuenta corriente, según las políticas establecidas
//en el banco, si el saldo es mayor a 500000 se pagara el interés al 5%, pero si es menor a esta cantidad
//se pagara según el interés establecido.
virtual double intereses();
//Definición del método que calcula el saldo neto de la cuenta corriente.
double saldoNeto();
~TCuentaCorriente();
};
fichero tcuentacorriente.cpp
#include "tcuentacorriente.h"
TCuentaCorriente::TCuentaCorriente()
{
numTransacciones = 0;
importeTransaccion = 0;
}
void TCuentaCorriente::setNumTransacciones(int num){
numTransacciones = num;
}
void TCuentaCorriente::setImporteTransaccion(double importe){
importeTransaccion = importe;
}
int TCuentaCorriente::getNumTransacciones(){
return numTransacciones;
}
double TCuentaCorriente::getImporteTransaccion(){
return importeTransaccion;
}
double TCuentaCorriente::cobroTransaccion(){
return getNumTransacciones()*getImporteTransaccion();
}
double TCuentaCorriente::intereses(){
if (getSaldo() >= 500000){
return getSaldo()*0.05;
}else{
return (getSaldo()*getTipoInteres())/100;
}
}
double TCuentaCorriente::saldoNeto(){
return getSaldo() - cobroTransaccion() + intereses();
}
TCuentaCorriente::~TCuentaCorriente()
{
//dtor
}
fichero main.cpp
#include <iostream>
#include <stdlib.h>
#include <sstream>
#include "tcuentaahorros.h"
#include "tcuentacorriente.h"
using namespace std;
int menu(){
int opcion = 0;
cout << "______________________________________________________________________\n";
cout << "\n
IMPLEMENTACION DE HERENCIA - OPCION DEL MENU \n";
cout << "______________________________________________________________________\n\n";
cout << "\n1. Datos de una Cuenta de Ahorros\n\n";
cout << "2. Datos de una Cuenta Corriente\n\n";
cout << "3. Salir\n";
cout << "______________________________________________________________________\n";
do{
cout << "\nSeleccione una opcion del 1 al 3: ";
cin >> opcion;
}while(opcion <= 0 || opcion > 3);
return opcion;
}
void capturarDatos(TCuenta* cu){
int num_cuenta;
string nombre_cli;
double saldo_cuenta;
double interes;
cout << "No. de Cuenta: ";
cin >> num_cuenta;
cu->setNumCuenta(num_cuenta);
cout << "Nombre del Cliente: ";
do{
getline(cin,nombre_cli);
}while(nombre_cli.length()==0 || nombre_cli.compare("\n")==0);
cu->setNomCliente(nombre_cli);
cout << "Saldo de la Cuenta: ";
cin >> saldo_cuenta;
cu->setSaldo(saldo_cuenta);
cout << "Valor del Interes: ";
cin >> interes;
cu->setTipoInteres(interes);
}
int main()
{
int opc;
TCuentaAhorros* ca = new TCuentaAhorros();
TCuentaCorriente* cc = new TCuentaCorriente();
do{
opc = menu();
switch(opc){
double cuota;
int transacciones;
double importe;
case 1:system("cls");
cout <<
"______________________________________________________________________\n";
cout << "\n
CUENTA DE AHORROS \n";
cout <<
"______________________________________________________________________\n\n";
capturarDatos(ca);
cout << "Valor Cuota de Mantenimiento: ";
cin >> cuota;
ca->setCuotaMantenimiento(cuota);
cout <<
"______________________________________________________________________\n\n";
cout << "Intereses producidos ----> " << ca->intereses() << "\n\n";
cout << "Saldo despues de descuentos ----> " << ca->saldoNeto() << "\n\n";
break;
case 2:system("cls");
cout <<
"______________________________________________________________________\n";
cout << "\n
CUENTA CORRIENTE \n";
cout <<
"______________________________________________________________________\n\n";
capturarDatos(cc);
cout << "Numero de Transacciones: ";
cin >> transacciones;
cc->setNumTransacciones(transacciones);
cout << "Valor importe por transaccion: ";
cin >> importe;
cc->setImporteTransaccion(importe);
cout <<
"______________________________________________________________________\n\n";
cout << "Cobro por transacciones ----> " << cc->cobroTransaccion() << "\n\n";
cout << "Intereses producidos ----> " << cc->intereses() << "\n\n";
cout << "Saldo despues de descuentos ----> " << cc->saldoNeto() << "\n\n";
break;
}
}while(opc!=6);
delete ca;
delete cc;
}
Descargar