Summary Files Commits Branches @commit @diff @stats
path: root / Year 1 / Object-oriented Programming / Project 2 / src / Models / CellFormula.h
diff options
context:
space:
mode:
Commitc5431e4d321dbf0152e6826841c1ef5c1291ba5b (patch)
Author
 Syndamia <kamen@syndamia.com>
2022-06-14 15:38:50 +0300
Committer
 Syndamia <kamen@syndamia.com>
2022-06-14 15:38:50 +0300
Filesbe7dbd4b6188924bb3a1a9398169526f236b09b9 /Year 1/Object-oriented Programming/Project 2/src/Models/CellFormula.h
uni-projects-c5431e4d321dbf0152e6826841c1ef5c1291ba5b.tar
uni-projects-c5431e4d321dbf0152e6826841c1ef5c1291ba5b.tar.gz
uni-projects-c5431e4d321dbf0152e6826841c1ef5c1291ba5b.zip
Parentccedf6f5d89f375580ff6af40296aab953f9cd09 (diff)
Added files from project 2 (mirror)
1 files changed, 37 insertions, 0 deletions
-rw-r--r--Year 1/Object-oriented Programming/Project 2/src/Models/CellFormula.h37
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<List<Cell*>>* tableCells;
+ List<CellDouble> localCells;
+
+ List<Pair<Pair<int, int>, char>> formula;
+ String rawFormula;
+
+ const Cell* ptrByInd(Pair<int, int> loc) const;
+ double calculate(unsigned index = 0) const;
+
+public:
+ CellFormula() = default;
+ CellFormula(const char* str, const List<List<Cell*>>* tableCells);
+
+ double getNumeralValue() const override;
+ String getValueForPrint() const override;
+ void parseAndSetValue(const char* str) override;
+ void writeToFile(std::ofstream& file) override;
+};
+
+#endif