diff --git "a/infobank/Articles/\303\230ving 8.pdf" "b/infobank/Articles/\303\230ving 8.pdf" new file mode 100644 index 0000000000000000000000000000000000000000..405cfd5217645547c70b9e8fc300bb2e34f6dc91 Binary files /dev/null and "b/infobank/Articles/\303\230ving 8.pdf" differ diff --git a/templates/_folder_Exercises/O08/Car.cpp b/templates/_folder_Exercises/O08/Car.cpp new file mode 100644 index 0000000000000000000000000000000000000000..a6443f07ce2cf3040507b3afafef03d4e364eb3a --- /dev/null +++ b/templates/_folder_Exercises/O08/Car.cpp @@ -0,0 +1,11 @@ +#include "Car.h" + +#include <cassert> + +// BEGIN 1b + +// END 1b + +// BEGIN 1c + +// END 1c \ No newline at end of file diff --git a/templates/_folder_Exercises/O08/Car.h b/templates/_folder_Exercises/O08/Car.h new file mode 100644 index 0000000000000000000000000000000000000000..b46aa81199d4fbdf74980b70ef2b98bf736b7206 --- /dev/null +++ b/templates/_folder_Exercises/O08/Car.h @@ -0,0 +1,5 @@ +#pragma once + +// BEGIN: 1a + +// END: 1a \ No newline at end of file diff --git a/templates/_folder_Exercises/O08/Meeting.cpp b/templates/_folder_Exercises/O08/Meeting.cpp new file mode 100644 index 0000000000000000000000000000000000000000..23c4eecb88c562599716b2df5d178069b9b0d77d --- /dev/null +++ b/templates/_folder_Exercises/O08/Meeting.cpp @@ -0,0 +1,31 @@ +#include "Meeting.h" + +#include <iostream> +#include <map> +#include <set> +#include <string> +#include <vector> + +// BEGIN 3b + +// END 3b + +// BEGIN 3e + +// END 3e + +// BEGIN 3f + +// END 3f + +// BEGIN 3h + +// END 3h + +// BEGIN 3i + +// END 3i + +// BEGIN 3j + +// END 3j diff --git a/templates/_folder_Exercises/O08/Meeting.h b/templates/_folder_Exercises/O08/Meeting.h new file mode 100644 index 0000000000000000000000000000000000000000..8237e1301154d610ff3108acf11444f265aec14b --- /dev/null +++ b/templates/_folder_Exercises/O08/Meeting.h @@ -0,0 +1,67 @@ +#pragma once + +#include "Person.h" + +#include <iostream> +#include <map> +#include <set> +#include <string> +#include <vector> +#include <unordered_map> + +// BEGIN 3a +enum class Campus {}; +// END 3a + +// BEGIN 3b + +// END 3b + +// FJERN KOMMENTAR NAAR DU SKAL BRUKE +/* +const std::unordered_map<Campus, std::string> campusToString { + { Campus::trh, "Trondheim" }, + { Campus::aal, "Aalesund" }, + { Campus::gjo, "Gjovik"} +}; + +const std::unordered_map<std::string, Campus> stringToCampus { + { "Trondheim", Campus::trh }, + { "Aalesund", Campus::aal }, + { "Gjovik", Campus::gjo } +}; +*/ + +class Meeting +{ +private: + // BEGIN 3c + + // END 3c +public: + // BEGIN 3d + + // END 3d + + // BEGIN 3e + + // END 3e + + Meeting(int day, int startTime, int endTime, Campus location, const std::string& subject, const std::shared_ptr<Person> leader); + + // BEGIN 3h + + // END 3h + + // BEGIN 3i + + // END 3i + + // Vi ønsker ikke å tillate kopiering av Meeting-objekter + Meeting(const Meeting&) = delete; + Meeting& operator=(const Meeting&) = delete; +}; + +// BEGIN 3j + +// END 3j \ No newline at end of file diff --git a/templates/_folder_Exercises/O08/MeetingWindow.cpp b/templates/_folder_Exercises/O08/MeetingWindow.cpp new file mode 100644 index 0000000000000000000000000000000000000000..73e6bcc47d36e3c636e90bcd8c753c31e33710ef --- /dev/null +++ b/templates/_folder_Exercises/O08/MeetingWindow.cpp @@ -0,0 +1,61 @@ +#include "MeetingWindow.h" +#include <iostream> + +MeetingWindow::MeetingWindow(TDT4102::Point position, int width, int height, const std::string& title): + // BEGIN 4a + AnimationWindow{}, + // END 4a + + // BEGIN 4e + + // END 4e + + // BEGIN 5a + #define FOUR_A + // END 5a + + // BEGIN 5b + #define FOUR_B + // END 5b + + dummyArgument{0} +{ + // Felles + // BEGIN 4f + + // END 4f + + // BEGIN 4g + + // END 4g + + // BEGIN 5d + + // END 5d + + // Ny person + #ifndef FOUR_A + attachPersonWidget(personName); + attachPersonWidget(personEmail); + #endif + + #ifndef FOUR_B + attachPersonWidget(personSeats); + attachPersonWidget(personNewBtn); + #endif +} + +// Callbackfunksjoner +// BEGIN 4d + +// END 4d + +// BEGIN 5c + +// END 5c + +void MeetingWindow::attachPersonWidget(TDT4102::Widget& pw) +{ + add(pw); + personWidgets.emplace_back(std::ref(pw)); +} \ No newline at end of file diff --git a/templates/_folder_Exercises/O08/MeetingWindow.h b/templates/_folder_Exercises/O08/MeetingWindow.h new file mode 100644 index 0000000000000000000000000000000000000000..e93f6dee42476b1fce97899f63eee23dc2a991fe --- /dev/null +++ b/templates/_folder_Exercises/O08/MeetingWindow.h @@ -0,0 +1,54 @@ +#pragma once + +#include "AnimationWindow.h" +#include "Meeting.h" +#include "Person.h" +#include "widgets/Button.h" +#include "widgets/TextInput.h" +#include "widgets/DropdownList.h" + +#include <string> +#include <vector> +#include <functional> + + +// Meeting GUI +class MeetingWindow : public TDT4102::AnimationWindow +{ + public: + // BEGIN 4c + + // END 4c + + MeetingWindow(TDT4102::Point position, int width, int height, const std::string& title); + + // Avslutt knapp + // BEGIN 4e + + // END 4e + + // Callback-funksjoner + // BEGIN 4d + + // END 4d + + // Person + // BEGIN 5a + + // END 5a + + // BEGIN 5b + + // END 5b + + // Personer + // BEGIN 5c + + // END 5c + + int dummyArgument; + + // Hjelpefunksjoner og variabler + void attachPersonWidget(TDT4102::Widget& pw); + std::vector<std::reference_wrapper<TDT4102::Widget>> personWidgets; +}; diff --git a/templates/_folder_Exercises/O08/Person.cpp b/templates/_folder_Exercises/O08/Person.cpp new file mode 100644 index 0000000000000000000000000000000000000000..2d60bda7ac90c7273ecae6a631cd6460a73f363f --- /dev/null +++ b/templates/_folder_Exercises/O08/Person.cpp @@ -0,0 +1,13 @@ +#include "Person.h" + +// BEGIN 2b + +// END 2b + +// BEGIN 2c + +// END 2c + +// BEGIN 2d + +// END 2d diff --git a/templates/_folder_Exercises/O08/Person.h b/templates/_folder_Exercises/O08/Person.h new file mode 100644 index 0000000000000000000000000000000000000000..a633cf678de4bd606e3ca27d2ecabfb584fd87ad --- /dev/null +++ b/templates/_folder_Exercises/O08/Person.h @@ -0,0 +1,30 @@ +#pragma once +#include "Car.h" +#include <string> +#include <iostream> +#include <memory> + +class Person +{ +public: + // BEGIN 2b + + // END 2b + + // BEGIN 2c + + // END 2c + + // BEGIN 2d + + // END 2d + + // Vi onsker ikke å tillate kopiering av Person-objekter + Person(const Person&) = delete; + Person& operator=(const Person&) = delete; + +private: + // BEGIN 2a + + // END 2a +}; diff --git a/templates/_folder_Exercises/O08/main.cpp b/templates/_folder_Exercises/O08/main.cpp new file mode 100644 index 0000000000000000000000000000000000000000..84dcc4ce8d848a72b1fcc94752cc99745781e907 --- /dev/null +++ b/templates/_folder_Exercises/O08/main.cpp @@ -0,0 +1,10 @@ +#include "Person.h" +#include "Meeting.h" +#include "MeetingWindow.h" +#include <iostream> + +int main() +{ + // Her kan du teste koden din + return 0; +}