#include #include #include using namespace std; class Student { friend ostream &operator<<(ostream&, const Student); public: string name; int age; float grade; }; ostream &operator<<(ostream& output, const Student s) { output << s.name << "\t" << s.age << "\t" << s.grade; return output; } // typedef multimap ClassRoll; typedef map ClassRoll; void InsertStudent(int id, string name, int age, float grade, ClassRoll& c) { Student s; s.age = age; s.grade = grade; s.name = name; c[id] = s; // c.insert(ClassRoll::value_type(id, s)); } void PrintMap(ClassRoll c) { ClassRoll::const_iterator i; cout << "Class roll: " << endl << endl; cout << "ID" << "\t\t" << "Name" << "\t\t" << "Age" << "\t" << "Grade" << endl; cout << "----------------------------------------------" << endl; for (i=c.begin(); i != c.end(); i++) cout << i->first << "\t" << i->second << endl; cout << endl; } void CurveGrades(ClassRoll& c, float diff) { ClassRoll::iterator i; for (i=c.begin(); i != c.end(); i++) i->second.grade += diff; } void main (void) { ClassRoll students; // Student s; InsertStudent(123456789, "Jon Preston", 43, 99.6f, students); InsertStudent(123456789, "Jon Preston", 43, 99.6f, students); InsertStudent(777777777, "Alice Walker", 13, 79.2f, students); InsertStudent(234567655, "Bob Smith", 44, 100.2f, students); PrintMap(students); CurveGrades(students, 10.0f); PrintMap(students); }