#include <iostream> #include <string> #include <vector> using std::cout; using std::endl; using std::string; using std::vector; class Mark { string name; int value; public: Mark(const string &mark_name, int mark_value) : name(mark_name), value(mark_value) {} int getValue() const {return value;} const string& getName() const {return name;} }; class Student { int id; string name; vector<Mark> marks; public: Student(const string &sname, int sid) : id(sid), name(sname) {} void addMark(const string &name, int mark_value) { marks.push_back(Mark(name, mark_value)); } int getID() const { return id; } const string& getName() const { return name; } void printMarks() const { for (vector<Mark>::const_iterator cit = marks.begin(); cit != marks.end(); ++cit) { cout << cit->getName() << '\t' << cit->getValue() << endl; } } }; int main() { Student student("coder", 1); student.addMark("Biology", 4); student.addMark("Math", 4); student.addMark("English", 5); student.addMark("Russian", 5); cout << "Student #" << student.getID() << ": " << student.getName() << " has following marks:" << endl; student.printMarks(); return 0; } |