From c5431e4d321dbf0152e6826841c1ef5c1291ba5b Mon Sep 17 00:00:00 2001 From: Syndamia Date: Tue, 14 Jun 2022 15:38:50 +0300 Subject: Added files from project 2 (mirror) --- .../Project 2/src/Models/CellFormula.h | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 Year 1/Object-oriented Programming/Project 2/src/Models/CellFormula.h (limited to 'Year 1/Object-oriented Programming/Project 2/src/Models/CellFormula.h') diff --git a/Year 1/Object-oriented Programming/Project 2/src/Models/CellFormula.h b/Year 1/Object-oriented Programming/Project 2/src/Models/CellFormula.h new file mode 100644 index 0000000..411de84 --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 2/src/Models/CellFormula.h @@ -0,0 +1,37 @@ +#ifndef HEADER_CELLFORMULA +#define HEADER_CELLFORMULA + +/*! \file CellFormula.h + * \brief Stores the declaration of class CellFormula + */ + +#include "Cell.h" +#include "CellDouble.h" +#include "../Generic/List/List.hpp" +#include "../Generic/Pair/Pair.hpp" + +/*! \brief A table cell which contains a formula + * + * Implements the Cell class by storing a formula as a String and in a dynamic List + */ +class CellFormula : public Cell { + const List>* tableCells; + List localCells; + + List, char>> formula; + String rawFormula; + + const Cell* ptrByInd(Pair loc) const; + double calculate(unsigned index = 0) const; + +public: + CellFormula() = default; + CellFormula(const char* str, const List>* tableCells); + + double getNumeralValue() const override; + String getValueForPrint() const override; + void parseAndSetValue(const char* str) override; + void writeToFile(std::ofstream& file) override; +}; + +#endif -- cgit v1.3.1-23-gd82d