PDF de programación - herencia C++

Imágen de pdf herencia C++

herencia C++gráfica de visualizaciones

Publicado el 21 de Mayo del 2018
700 visualizaciones desde el 21 de Mayo del 2018
99,5 KB
7 paginas
Creado hace 11a (13/02/2013)
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

TCuentaCorriente

- double cuotaMantenimiento

+ TCuentaAhorros()
+ void setCuotaMantenimiento(double cuota)
+ double getCuotaMantenimiento()
+ virtual double intereses()
+ double saldoNeto()
+ ~TCuentaAhorros()

- 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;
}
  • Links de descarga
http://lwp-l.com/pdf11149

Comentarios de: herencia C++ (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad