#include #include #include #include using namespace std; class Table { public: Table(string const& title, int width) : labels {}, data {}, title {title}, width {width} {} void insert(string const& label, int data_point) { labels.push_back(label); data.push_back(data_point); } void print() const { cout << title << ':' << endl; cout << setfill(' ') << std::left; for (int i {}; i < size(); ++i) { cout << setw(width / 2) << labels.at(i) << " | " << setw(width / 2) << data.at(i) << endl; } } int size() const { return labels.size(); } private: vector labels; vector data; string title; int width; }; class List { public: List(string const& title, char sign, int indent) : labels {}, title {title}, sign {sign}, indent {indent} {} void insert(string const& label) { labels.push_back(label); } void print() const { cout << title << ':' << endl; cout << setfill(' ') << std::left; for (int i {}; i < size(); ++i) { cout << setw(indent) << " " << sign << ' ' << labels.at(i) << endl; } } int size() const { return labels.size(); } private: vector labels; string title; char sign; int indent; }; int main() { Table finished {"Avslutade kurser", 25}; finished.insert("TDP001", 4); finished.insert("TDP002", 3); finished.insert("TDP003", 5); List ongoing {"Pågående kurser", '+', 4}; ongoing.insert("TDP004"); ongoing.insert("TDP005"); finished.print(); cout << endl; ongoing.print(); }