diff --git a/Oving 6/Oving 6/Oving 6.vcxproj b/Oving 6/Oving 6/Oving 6.vcxproj index 7acdd3b..701d330 100644 --- a/Oving 6/Oving 6/Oving 6.vcxproj +++ b/Oving 6/Oving 6/Oving 6.vcxproj @@ -138,6 +138,7 @@ + @@ -148,6 +149,7 @@ + diff --git a/Oving 6/Oving 6/Oving 6.vcxproj.filters b/Oving 6/Oving 6/Oving 6.vcxproj.filters index 74dbf84..c86edd9 100644 --- a/Oving 6/Oving 6/Oving 6.vcxproj.filters +++ b/Oving 6/Oving 6/Oving 6.vcxproj.filters @@ -27,6 +27,9 @@ Source Files + + Source Files + @@ -49,5 +52,8 @@ Header Files + + Header Files + \ No newline at end of file diff --git a/Oving 6/Oving 6/Task3.cpp b/Oving 6/Oving 6/Task3.cpp index b3f876d..c0dcadf 100644 --- a/Oving 6/Oving 6/Task3.cpp +++ b/Oving 6/Oving 6/Task3.cpp @@ -6,7 +6,7 @@ CourseCatalog::CourseCatalog() void CourseCatalog::addCourse(string code, string name) { - courses.insert(code, name); + courses[code] = name; } void CourseCatalog::removeCourse(string code) @@ -19,7 +19,13 @@ string CourseCatalog::getCourse(string code) return courses[code]; } -ostream & operator<<(ostream &, const CourseCatalog &) -{ - // TODO: insert return statement here + +ostream& operator<<(ostream & os, const CourseCatalog & cc) +{ + string courses; + for (const auto c : cc.courses) + { + courses += c.first + '\t' + c.second + '\n'; + } + return os << courses; } diff --git a/Oving 6/Oving 6/Task3.h b/Oving 6/Oving 6/Task3.h index 822f4e4..dc6865e 100644 --- a/Oving 6/Oving 6/Task3.h +++ b/Oving 6/Oving 6/Task3.h @@ -6,7 +6,7 @@ class CourseCatalog public: CourseCatalog(); friend ostream& operator<<(ostream&, const CourseCatalog&); - void addCourse(string code, string name); + void addCourse(const string code, string name); void removeCourse(string code); string getCourse(string code); private: diff --git a/Oving 6/Oving 6/Task4.cpp b/Oving 6/Oving 6/Task4.cpp new file mode 100644 index 0000000..7e1532f --- /dev/null +++ b/Oving 6/Oving 6/Task4.cpp @@ -0,0 +1,40 @@ +#include "Task4.h" + +istream & operator>>(istream & is, Temps & t) +{ + double inMax, inMin; + is >> inMax >> inMin; + if (!is) return is; + + t = Temps{ inMax, inMin }; + return is; + // TODO: insert return statement here +} + +ostream & operator<<(ostream & os, vector& temps) +{ + for (const auto t : temps) + { + os << t.max << '\t' << t.min << '\n'; + } + return os; +} + +void readTempsFromFile(vector& temps, string path) +{ + ifstream ifs{ path }; + if (!ifs) + { + error("Cant open file ", path); + return; + } + Temps t; + string line; + while (getline(ifs, line)) + { + cout << line; + istringstream iss{ line }; + iss >> t; + temps.push_back(t); + } +} diff --git a/Oving 6/Oving 6/Task4.h b/Oving 6/Oving 6/Task4.h new file mode 100644 index 0000000..c5600c6 --- /dev/null +++ b/Oving 6/Oving 6/Task4.h @@ -0,0 +1,12 @@ +#pragma once +#include "std_lib_facilities.h" + +struct Temps { + double max, min; +}; + +istream& operator>>(istream& is, Temps& t); + +ostream& operator<<(ostream& os, vector& temps); + +void readTempsFromFile(vector& temps, string path); \ No newline at end of file diff --git a/Oving 6/Oving 6/main.cpp b/Oving 6/Oving 6/main.cpp index b8036b3..0d0e3b3 100644 --- a/Oving 6/Oving 6/main.cpp +++ b/Oving 6/Oving 6/main.cpp @@ -2,6 +2,7 @@ #include "Task1.h" #include "Task2.h" #include "Task3.h" +#include "Task4.h" int main(){ @@ -10,7 +11,28 @@ int main(){ //addLineNumber("inn.txt", "out.txt"); - countCharInTxt("grunnlov.txt"); + //countCharInTxt("grunnlov.txt"); + + + CourseCatalog courses = CourseCatalog(); + + courses.addCourse("TDT4100", "Informasjonsteknologi grunnkurs"); + courses.addCourse("TDT4102", "Prosedyre- og objektorientert programmering"); + courses.addCourse("TMA4100", "Matematikk 1"); + courses.addCourse("TDT4102", "C++"); + + // map.insert funker ikke + + + cout << courses; + + vector temps; + string file = "temperatures.txt"; + + readTempsFromFile(temps, file); + + cout << temps; + return 0; -} \ No newline at end of file +}