añadido parte2
This commit is contained in:
31
parte2/include/Cliente.h
Normal file
31
parte2/include/Cliente.h
Normal file
@@ -0,0 +1,31 @@
|
||||
#ifndef CLIENTE_H
|
||||
#define CLIENTE_H
|
||||
|
||||
#include <iostream> //cin, cout
|
||||
#include "Fecha.h"
|
||||
|
||||
using namespace std;
|
||||
//SI FALTA ALGUN METODO O FUNCION A<>ADIRLO...
|
||||
class Cliente {
|
||||
long int dni;
|
||||
char *nombre;
|
||||
Fecha fechaAlta;
|
||||
public:
|
||||
Cliente(long int d, const char *nom, Fecha f);
|
||||
virtual ~Cliente();
|
||||
Cliente& operator=(const Cliente& c);
|
||||
|
||||
long int getDni() const { return this->dni; }
|
||||
const char* getNombre() const { return nombre; } //VIP devolver un puntero constante para evitar que desde el main() se puede modificar el nombre
|
||||
Fecha getFecha() const { return fechaAlta; }
|
||||
|
||||
void setNombre(const char *nom);
|
||||
void setFecha(Fecha f);
|
||||
|
||||
bool operator==(const Cliente& c) const; // if (c1 ===c2)
|
||||
|
||||
};
|
||||
|
||||
ostream& operator<<(ostream &s, const Cliente &c); //funcion no amiga de la clase
|
||||
|
||||
#endif // CLIENTE_H
|
||||
33
parte2/include/Contrato.h
Normal file
33
parte2/include/Contrato.h
Normal file
@@ -0,0 +1,33 @@
|
||||
#ifndef CONTRATO_H
|
||||
#define CONTRATO_H
|
||||
|
||||
#include <iostream> //cin, cout
|
||||
#include "Fecha.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
class Contrato {
|
||||
static int contador;
|
||||
const int idContrato;
|
||||
long int dniContrato;
|
||||
Fecha fechaContrato;
|
||||
public:
|
||||
Contrato(long int dni, Fecha f);
|
||||
virtual ~Contrato();
|
||||
//Contrato(const Contrato& c); //<2F>es necesario? pensar y reflexionad
|
||||
|
||||
//Contrato& operator=(const Contrato& c); //no es necesario y ademas no puede ser usado porque Contrato tiene un
|
||||
//atributo constante idContrato que no puede modificarse
|
||||
//no se puede usar el = en el main con objetos Contrato
|
||||
|
||||
int getIdContrato() const { return this->idContrato; }
|
||||
long int getDniContrato() const { return this->dniContrato; }
|
||||
Fecha getFechaContrato() const { return this->fechaContrato; }
|
||||
void setFechaContrato(Fecha f) { this->fechaContrato=f; }
|
||||
void setDniContrato(long int dni) { this->dniContrato=dni; }
|
||||
void ver() const;
|
||||
};
|
||||
|
||||
ostream& operator<<(ostream &s, const Contrato &c);
|
||||
|
||||
#endif // CONTRATO_H
|
||||
39
parte2/include/ContratoMovil.h
Normal file
39
parte2/include/ContratoMovil.h
Normal file
@@ -0,0 +1,39 @@
|
||||
#ifndef CONTRATOMOVIL_H
|
||||
#define CONTRATOMOVIL_H
|
||||
|
||||
#include <iostream> //cin, cout
|
||||
#include "Fecha.h"
|
||||
#include "Contrato.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
class ContratoMovil: public Contrato {
|
||||
float precioMinuto;
|
||||
int minutosHablados;
|
||||
char *nacionalidad;
|
||||
public:
|
||||
ContratoMovil(long int dni, Fecha f, float p, int m, char *nac);
|
||||
virtual ~ContratoMovil(); //necesario porque hay un atributo puntero char*
|
||||
ContratoMovil(const ContratoMovil& c); //necesario porque hay un atributo puntero char*
|
||||
|
||||
//ContratoMovil& operator=(const ContratoMovil& c); //necesario si en el main pensamos usar = para asignar
|
||||
//si NUNCA vamos a usar = en el main no hace falta implementarlo
|
||||
//como ContratoMovil hereda un atributo constante idContrato que no puede modificarse
|
||||
//no podemos usar el = en el main() y por tanto no lo implementamos
|
||||
|
||||
float getPrecioMinuto() const { return this->precioMinuto; }
|
||||
int getMinutosHablados() const { return this->minutosHablados; }
|
||||
const char* getNacionalidad() const { return this->nacionalidad; } //IMPORTANTE devuelve un puntero constante
|
||||
void setPrecioMinuto(float precio) { this->precioMinuto=precio; }
|
||||
void setMinutosHablados(int m) { this->minutosHablados=m; }
|
||||
void setNacionalidad(char* nac);
|
||||
void ver() const;
|
||||
float factura() const;
|
||||
};
|
||||
|
||||
ostream& operator<<(ostream &s, const ContratoMovil &c);
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // CONTRATOMOVIL_H
|
||||
32
parte2/include/ContratoTP.h
Normal file
32
parte2/include/ContratoTP.h
Normal file
@@ -0,0 +1,32 @@
|
||||
#ifndef CONTRATOTP_H
|
||||
#define CONTRATOTP_H
|
||||
|
||||
#include <iostream> //cin, cout
|
||||
#include "Fecha.h"
|
||||
#include "Contrato.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
class ContratoTP: public Contrato {
|
||||
static int minutosTP;
|
||||
static float precioTP;
|
||||
int minutosHablados;
|
||||
static const float precioExcesoMinutos;
|
||||
|
||||
public:
|
||||
ContratoTP(long int dni, Fecha f, int m);
|
||||
//virtual ~ContratoTP(); //<2F>es necesario? pensar y reflexionad
|
||||
//ContratoTP(const ContratoTP& c); //<2F>es necesario? pensar y reflexionad
|
||||
//ContratoTP& operator=(const ContratoTP& c); //<2F>es necesario? pensar y reflexionad
|
||||
|
||||
static int getLimiteMinutos() { return ContratoTP::minutosTP; }
|
||||
static float getPrecio() { return ContratoTP::precioTP; }
|
||||
static void setTarifaPlana(int m, float p); //el el .cpp se pone la cabecera sin la palabra static
|
||||
|
||||
//A RELLENAR POR EL ALUMNO...
|
||||
|
||||
};
|
||||
|
||||
ostream& operator<<(ostream &s, const ContratoTP &c);
|
||||
|
||||
#endif // CONTRATOTP_H
|
||||
31
parte2/include/Fecha.h
Normal file
31
parte2/include/Fecha.h
Normal file
@@ -0,0 +1,31 @@
|
||||
#ifndef FECHA_H
|
||||
#define FECHA_H
|
||||
|
||||
#include <iostream> //cin, cout
|
||||
|
||||
using namespace std;
|
||||
//SI FALTA ALGUN METODO O FUNCION A<>ADIRLO...
|
||||
class Fecha {
|
||||
int dia;
|
||||
int mes, anio;
|
||||
public:
|
||||
Fecha(const int &dia, const int &m, const int &anio);
|
||||
//virtual ~Fecha(); //NO HACE FALTA
|
||||
//Fecha(const Fecha &f); //NO HACE FALTA: EL QUE GENERA EL COMPILADOR FUNCIONA BIEN YA QUE NO HAY PUNTEROS
|
||||
int getDia() const { return dia; }
|
||||
int getMes() const { return this->mes; }
|
||||
int getAnio() const { return this->anio; }
|
||||
void setFecha(const int &dia, const int &mes, const int &a);
|
||||
void ver() const;
|
||||
bool bisiesto() const;
|
||||
Fecha operator++(); //++f
|
||||
Fecha operator++(int i); //f++
|
||||
Fecha operator+(const int &i) const; //f+5
|
||||
|
||||
friend Fecha operator+(const int &i, const Fecha &f); //const por seguridad y & por velocidad
|
||||
friend ostream& operator<<(ostream& os, const Fecha& f);
|
||||
};
|
||||
|
||||
Fecha operator+(const int &i, const Fecha &f); //const por seguridad y & por velocidad
|
||||
|
||||
#endif // FECHA_H
|
||||
Reference in New Issue
Block a user