#ifndef SCATALOG
#define SCATALOG

#include <iostream>
#include <map>
#include <vector>
#include "Student.h"
#include "File.h"

class StudentCatalog {
  friend ostream& operator << (ostream& out, StudentCatalog& sc);
 public:
  StudentCatalog();
  ~StudentCatalog();

  bool contains(string sid);

  Student& find(string sid);

  vector<Student> search(string key);

  bool insert(Student s);
  bool remove(Student s);
  bool remove(string sid);
  bool replace(string cid, Student s);

  float computeAvgGPA();
 private:
  File studentdb;
  map<string,Student> pairs;
};

#endif
