Exercici 1 · Metodologia de la Programació UAB 2017

Tema: Disseny de classes: declaració, const i sobrecàrrega d'operadors · Del examen Examen Primer Parcial (Curs 2017-2018) (2017)

Enunciado

Exercici 1 [3 punts]. Disseny i implementació de la classe Venda

Dissenyeu i implementeu una classe anomenada Venda per emmagatzemar la informació referent a una venda gestionada per un treballador. Les dades que cal registrar per cada operació són: la data en què s'ha produït, l'import econòmic i el concepte o descripció de l'article venut.

La interfície pública d'aquesta classe ha d'incorporar:

Un constructor capaç d'inicialitzar els atributs de la venda mitjançant la data, l'import monetari i la descripció subministrats per paràmetre.

Els mètodes d'accés (consultors) i modificació dels membres de dades necessaris per al desenvolupament dels exercicis posteriors.

L'operador < sobrecarregat per comparar dues vendes: s'estableix que una venda és inferior a una altra si la seva data és anterior. En cas que ambdues dates coincideixin, es considerarà menor aquella venda l'import de la qual sigui inferior.

Criteris addicionals:

Cal incloure tant la declaració de la classe com la implementació de tots els seus mètodes (definint com a inline aquells que siguin adients).

Cal especificar el qualificador const en tots aquells paràmetres i mètodes que correspongui.

Podeu assumir que ja es disposa de la classe Data implementada amb la següent interfície:

class Data

{

public:

string getData() const;

void setData(const string &data);

bool operator<(const Data &d) const;

bool operator==(const Data &d) const;

bool operator>(const Data &d) const;

};

on getData i setData utilitzen el format de text "DD/MM/AAAA" i els operadors relacionals comparen cronològicament.

Enunciado: Exercici 1 · Metodologia de la Programació UAB 2017

Solución

Según los criterios oficiales de corrección

Exercici 1 (3 punts). Disseny i implementació de la classe Venda

Solución: ```cpp #include <string> using namespace std; class Venda { public: Venda() {} Venda(const string &data, float import, const string &concepte) { m_data.setData(data); m_import = import; m_descripcio = concepte; } float getImport() const { return m_import; } Data getData() const { return m_data; } void setData(const string &data) { m_data.setData(data); } void setImport(float import) { m_import = import; } void setDescripcio(const string &concepte) { m_descripcio = concepte; } bool operator<(const Venda &f) const; private: string m_descripcio; Data m_data; float m_import; }; bool Venda::operator<(const Venda &f) const { bool menor = false; if (m_data < f.m_data) { menor = true; } else if (m_data == f.m_data) { if (m_import < f.m_import) menor = true; } return menor; } ```

La explicación paso a paso, hecha con IA, es Premium. Premium

Resuélvelo aquí mismo: corrección automática, pistas y solución paso a paso.

‹ Exercici 1 · 2017

Más ejercicios de Disseny de classes: declaració, const i sobrecàrrega d'operadors