aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlonkaars <loek@pipeframe.xyz>2022-09-20 14:32:30 +0200
committerlonkaars <loek@pipeframe.xyz>2022-09-20 14:32:30 +0200
commit65a021b35340150aa6331c4b482ebfb88446be57 (patch)
treedd44675dfb118e604d6938f1f1168caed57af6ab
parentafe7337bd1230dfbed207ead0655f3b8a2362180 (diff)
week 4 huiswerk toegevoegd
-rw-r--r--week-4/Persoon.cpp22
-rw-r--r--week-4/Persoon.h16
-rw-r--r--week-4/Spel.cpp29
-rw-r--r--week-4/Spel.h18
-rw-r--r--week-4/main.cpp26
-rw-r--r--week-4/makefile24
6 files changed, 135 insertions, 0 deletions
diff --git a/week-4/Persoon.cpp b/week-4/Persoon.cpp
new file mode 100644
index 0000000..de5195d
--- /dev/null
+++ b/week-4/Persoon.cpp
@@ -0,0 +1,22 @@
+#include "Persoon.h"
+
+bool Persoon::operator < ( const Persoon& persoon ) const {
+ return naam < persoon.naam;
+}
+
+Persoon::Persoon(std::string naam) {
+ this->naam = naam;
+}
+
+const std::string& Persoon::getNaam() const {
+ return naam;
+}
+
+int Persoon::getLeeftijd() const {
+ return leeftijd;
+}
+
+void Persoon::setLeeftijd(int leeftijd) {
+ this->leeftijd = leeftijd;
+}
+
diff --git a/week-4/Persoon.h b/week-4/Persoon.h
new file mode 100644
index 0000000..df4a3f2
--- /dev/null
+++ b/week-4/Persoon.h
@@ -0,0 +1,16 @@
+#pragma once
+
+#include <string>
+
+class Persoon {
+ public:
+ Persoon(std::string naam);
+ const std::string& getNaam() const;
+ int getLeeftijd() const;
+ void setLeeftijd(int leeftijd);
+ bool operator < (const Persoon& other) const;
+
+ private:
+ std::string naam;
+ int leeftijd;
+};
diff --git a/week-4/Spel.cpp b/week-4/Spel.cpp
new file mode 100644
index 0000000..5ddc355
--- /dev/null
+++ b/week-4/Spel.cpp
@@ -0,0 +1,29 @@
+#include "Spel.h"
+
+Persoon* Spel::getPersoon(const std::string naam) const {
+ auto iFind = scores.find(naam);
+ if (iFind == scores.end())
+ return nullptr;
+ else
+ return const_cast<Persoon*>(&iFind->first);
+}
+
+void Spel::setScore(std::string naam, int score) {
+ scores[naam] = score;
+}
+
+void Spel::addScore(std::string naam, int score) {
+ scores[naam] += score;
+}
+
+int Spel::getScore(std::string naam) const {
+ auto iFind = scores.find(naam);
+ if (iFind == scores.end())
+ return 0;
+ else
+ return iFind->second;
+}
+
+std::map<Persoon,int>& Spel::getScores() {
+ return scores;
+}
diff --git a/week-4/Spel.h b/week-4/Spel.h
new file mode 100644
index 0000000..9ed04ba
--- /dev/null
+++ b/week-4/Spel.h
@@ -0,0 +1,18 @@
+#pragma once
+
+#include <string>
+#include <map>
+
+#include "Persoon.h"
+
+class Spel {
+ public:
+ void setScore(std::string naam, int score);
+ void addScore(std::string naam, int score);
+ int getScore(std::string naam) const;
+ Persoon* getPersoon(std::string naam) const;
+ std::map<Persoon,int>& getScores();
+
+ private:
+ std::map<Persoon, int> scores;
+};
diff --git a/week-4/main.cpp b/week-4/main.cpp
new file mode 100644
index 0000000..b81a711
--- /dev/null
+++ b/week-4/main.cpp
@@ -0,0 +1,26 @@
+#include "Spel.h"
+#include "Persoon.h"
+
+#include <iostream>
+
+int main()
+{
+ Spel spel;
+ spel.setScore("Bert", 15);
+ std::cout << spel.getScore("Bert") << std::endl; // uikomst: 15
+ Persoon *bert = spel.getPersoon("Bert");
+ bert->setLeeftijd(103);
+ spel.addScore("Bert", 16);
+ std::cout << spel.getScore("Bert") << std::endl; // uikomst: 31
+ bert = spel.getPersoon("Bert");
+ std::cout << bert->getLeeftijd() << std::endl; // uikomst: 103
+ spel.setScore("Joan", 512);
+ spel.setScore("Arthur", 1024);
+ for ( auto pair : spel.getScores() )
+ {
+ std::cout << pair.first.getNaam() << "\t"
+ << pair.first.getLeeftijd() << "\t"
+ << pair.second << std::endl;
+ }
+ return 0;
+}
diff --git a/week-4/makefile b/week-4/makefile
new file mode 100644
index 0000000..3b71b5b
--- /dev/null
+++ b/week-4/makefile
@@ -0,0 +1,24 @@
+CC = gcc
+LD = gcc
+RM = rm -f
+TARGET = main
+
+LFLAGS += -lstdc++
+
+SRCS := $(wildcard *.cpp)
+OBJS := $(patsubst %.cpp,%.o, $(SRCS))
+
+all: main
+
+%.o: %.cpp
+ $(CC) -c $(CFLAGS) $< -o $@
+
+$(TARGET): $(OBJS)
+ $(LD) $^ $(LFLAGS) -o $@
+
+clean:
+ $(RM) $(TARGET) $(OBJS)
+
+compile_commands: clean
+ compiledb make
+