c++ homework help assignment 11

profilehomeworkhelp325
movies.cpp

// Movies.cpp #include "Movie.h" // include Movie class definition #include "Movies.h" // include Movies class definition #include <fstream> using namespace std; Movies::Movies(string fn){loadMovies(fn);} int Movies::getMovieCount() const {return movieCnt;} const moviePtr Movies::getMovie(string mc, int& mn) const { if(mc.length()==0) return nullptr; // not found else { mc = myToLower(mc); int ndx=0; for(;ndx<movieCnt && (myToLower(movies[ndx]->getTitle()).find(mc)== string::npos);ndx++); mn = ndx<movieCnt?ndx+1:0; return ndx<movieCnt?movies[ndx]:nullptr; } } const moviePtr Movies::operator[](int ndx) const { // adjust for zero-based indexing return (ndx > 0 && ndx <= movieCnt)?movies[ndx-1]:nullptr; } Movies::~Movies() { delete[] movies; movies = nullptr; } void Movies::loadMovies(string fn) { ifstream iS(fn); string s; getline(iS, s); // skip heading getline(iS, s); movieCnt=0; movies = new moviePtr[MAX_MOVIES]; while(!iS.eof()) { movies[movieCnt++] = new Movie(s); getline(iS, s); } iS.close(); reSize(); } void Movies::reSize() { moviePtr * m = movies; movies = new moviePtr[movieCnt]; for(int i=0;i<movieCnt;i++) movies[i] = m[i]; delete[] m; // null assignment not needed; end of method } string Movies::myToLower(string s) const { int n = s.length(); string t(s); for(int i=0;i<n;i++) t[i] = tolower(s[i]); return t; }