wont compile say my get functions not declared in this scope Movie.cpp #include
ID: 3751651 • Letter: W
Question
wont compile say my get functions not declared in this scope
Movie.cpp
#include "Movie.h"
#include "Text.h"
Movie::Movie(const char* title, int length)
{
//assign parameter data to structure memebers
setMovieTitle(title);
setMovieLength(length);
}
Movie::Movie(const char *title, int length, int year, const char *genre, const char* rating, int oscars, float stars)
{
setMovieTitle(title);
setMovieLength(length);
setMovieYear(year);
setMovieGenre(genre);
setMovieRating(rating);
setMovieOscars(oscars);
setMovieNumStars(stars);
}
Movie::~Movie()
{
delete movieTitle;
delete movieGenre;
delete movieRating;
}
void printMovieDetails()
{
cout << endl;
cout << right << setw(30) << "Movie Title: " << left;
cout << getMovieTitle();
cout << endl;
cout << right << setw(30) << "Length (minutes): " << left << getMovieLength() << endl;
cout << right << setw(30) << "Year Released: " << left << getMovieYear() << endl;
cout << right << setw(30) << "Genre: " << left;
cout << getMovieGenre();
cout << endl;
cout << right << setw(30) << "Rating: " << left;
cout << getMovieRating();
cout << endl;
cout << right << setw(30) << "Number of Oscars Won: " << left << getMovieOscars() << endl;
cout << right << setw(30) << "Number of Stars: " << left << getMovieNumStars() << endl << endl;
}
void printMovieDetailsToFile(ofstream &outFile)
{
char temp[1000];
strncpy(temp,getMovieTitle(), 1000);
outFile << temp << endl;
outFile << getMovieLength() << endl;
outFile << getMovieYear() << endl;
strncpy(temp,getMovieGenre(), 1000);
outFile << temp << endl;
strncpy(temp,getMovieRating(), 1000);
outFile << temp << endl;
outFile << getMovieOscars() << endl;
outFile << getMovieNumStars() << endl;
}
void editMovie()
{
int choice;
Text* tempText;
char temp[100];
int length;
int year;
int oscars;
float stars;
do
{
cout << " Which detail do you wish to edit? ";
cout << "1. Title ";
cout << "2. Length ";
cout << "3. Year ";
cout << "4. Genre ";
cout << "5. Rating ";
cout << "6. Number of Oscars Won ";
cout << "7. Number of Stars ";
cout << "8. DONE EDITING ";
cout << "CHOOSE 1-8: ";
cin >> choice;
while(choice < 1 || choice > 8)
{
cout << " OOPS! Enter choice 1 through 8: ";
cin >> choice;
}
cin.ignore();
switch(choice)
{
case 1: cout << " Current Title: "<<getMovieTitle();
cout << " NEW TITLE: ";
cin.getline(temp, 100);
movieTitle->editText(temp);
break;
case 2: cout << " Current Length: " <<getMovieLength();
cout << " NEW LENGTH: ";
cin >> length;
setMovieLength(length);
break;
case 3: cout << " Current Year: " << getMovieYear();
cout << " NEW LENGTH: ";
cin >> year;
setMovieYear(year);
break;
case 4: cout << " Current Genre: "<<getMovieGenre();
cout << " NEW GENRE: ";
cin.getline(temp, 100);
movieGenre->editText(temp) ;
break;
case 5: cout << " Current Rating: "<<getMovieRating();
cout << " NEW GENRE: ";
cin.getline(temp, 100);
movieRating->editText(temp);
break;
case 6: cout << " Current Number of Oscars Won: " << getMovieOscars();
cout << " NEW NUMBER OF OSCARS: ";
cin >> oscars;
setMovieOscars(oscars)
break;
case 7: cout << " Current Star Rating from IMDB: " << getMovieNumStars();
cout << " NEW STAR RATING: ";
cin >> stars;
setMovieNumStars(stars);
break;
}
}while(choice != 8);
}
const char*Movie::getMovieTitle() const
{
return movieTitle->getText();
}
int Movie::getMovieLength() const
{
return movieLength;
}
int Movie::getMovieYear() const
{
return movieYear;
}
const char*Movie::getMovieGenre() const
{
return movieGenre->getText();
}
const char* Movie::getMovieRating() const
{
return movieRating->getText();
}
int Movie::getMovieOscars() const
{
return movieOscars;
}
float Movie::getMovieNumStars() const
{
return movieNumStars;
}
void Movie:: setMovieTitle(const char* title)
{
Text* temp= new Text(title);
movieTitle=temp;
}
void Movie::setMovieLength(int length)
{
movieLength= length;
}
void Movie::setMovieGenre(const char* genre)
{
Text* temp = new Text(genre);
movieGenre=temp;
}
void Movie::setMovieRating(const char* rating)
{
Text* temp=new Text(rating);
movieRating = temp;
}
void Movie::setMovieOscars(int oscars)
{
movieOscars = oscars;
}
void Movie::setMovieNumStars(float stars)
{
movieNumStars= stars;
}
Movie.h
#ifndef Movie_h
#define Movie_h
#include "Text.h"
#include <iostream>
#include <iomanip>
#include <fstream>
#include <cstring>
using namespace std;
class Movie
{
private:
Text *movieTitle; //title of movie
int movieLength; //length of movie in minutes
int movieYear; //year released
Text *movieGenre; //comedy, horror, sci-fi, fantasy, romance, thriller, drama, action, biography
Text *movieRating; //G, PG, PG-13, R, MA
int movieOscars; //number of oscars won
float movieNumStars; //taken from IMDB on 10 star scale
public:
/*
Function name: createMovie (overloaded function)
Parameters: 1) A pointer to a Text variable, containing a c-string and the length of the string.
2) An integer containing the length of the movie
Returns: A pointer to a new Movie structure
Purpose: This function should be called when only the title of the movie and the length of
the movie is known and it will create a new movie with this information.
*/
Movie(const char *, int);
/*
Function name: createMovie (overloaded function)
Parameters: 1) A pointer to a Text variable, containing the title of the movie
2) An integer containing the length of the movie
3) An integer containing the year the movie was released
4) A pointer to a Text variable, containing the genre of the movie
5) A pointer to a Text variable, containing the rating of the movie
6) An integer containing the number of oscars the movie won
7) A float containing the IMDB rating of the movie (out of 10 stars)
Returns: A pointer to a new Movie structure
Purpose: This function should be called when all movie information is known and
it will create a new movie with this information.
*/
Movie(const char *, int, int, const char *, const char*, int, float);
/*
Function name: editMovie
Parameters: A pointer to a movie structure
Returns: nothing (void)
Purpose: This function should be called when the user wants to edit a single
movie's data
*/
void editMovie();
/*
Function name: destroyMovie
Parameters: A pointer to a movie structure
Returns: nothing (void)
Purpose: This function should be called when there is no longer need for the
movie in the database (like when removing or deleting a movie).
*/
~Movie();
/*
Function name: printMovieDetails
Parameters: A pointer to a movie structure
Returns: nothing (void)
Purpose: This function should be called when the user wants to print ALL
the movie information to the screen.
*/
void printMovieDetails();
/*
Function name: printMovieDetailsToFile
Parameters: A pointer to a movie structure, a file stream object (sent by reference)
Returns: nothing (void)
Purpose: This function should be called when the user wants to print ALL
the movie information to the file.
*/
void printMovieDetailsToFile(ofstream &);
const char* getMovieTitle() const;
/* Title: getMovieTitle
Parameter:none
Return:Returns a c-string
Purpose: returns movie title
*/
int getMovieLength() const;
/* Title: getMovieLength
Parameter:none
Return:Returns a integer
Purpose: returns movie length
*/
int getMovieYear() const;
/* Title: getMovieYear
Parameter:none
Return:Returns a integer
Purpose: returns movie year
*/
const char* getMovieGenre() const;
/* Title: getMovieGenre
Parameter:none
Return:Returns a c-string
Purpose: returns movie genre
*/
const char* getMovieRating() const;
/* Title: getMovieRating
Parameter:none
Return:Returns a c-string
Purpose: returns movie title
*/
int getMovieOscars() const;
/* Title: getMovieOscars
Parameter:none
Return:Returns a integer
Purpose: returns movie Oscars awarded
*/
float getMovieNumStars() const;
/* Title: getMovieNumStars
Parameter:none
Return:Returns a integer
Purpose: returns movie number of stars awarded
*/
void setMovieTitle(const char*);
/* Title: setMovieTitle
Parameter:none
Return:none
Purpose: access title
*/
void setMovieLength(int);
/* Title: setMovieLength
Parameter:none
Return:none
Purpose: access length
*/
void setMovieYear(int);
/* Title: setMovieYear
Parameter:none
Return:none
Purpose: access year
*/
void setMovieGenre(const char*);
/* Title: setMovieGenre
Parameter:none
Return:none
Purpose: access genre
*/
void setMovieRating(const char*);
/* Title: setMovieRating
Parameter:none
Return:none
Purpose: access rating
*/
void setMovieOscars(int);
/* Title: setMovieOscars
Parameter:none
Return:none
Purpose: access oscars
*/
void setMovieNumStars(float);
/* Title: setMovieNumStars
Parameter:none
Return:none
Purpose: access number of stars
*/
};
#endif
Explanation / Answer
------------------------Movie.h-------------------------
#ifndef Movie_h
#define Movie_h
#include "Text.h"
#include <iostream>
#include <iomanip>
#include <fstream>
#include <cstring>
using namespace std;
class Movie
{
private:
Text *movieTitle; //title of movie
int movieLength; //length of movie in minutes
int movieYear; //year released
Text *movieGenre; //comedy, horror, sci-fi, fantasy, romance, thriller, drama, action, biography
Text *movieRating; //G, PG, PG-13, R, MA
int movieOscars; //number of oscars won
float movieNumStars; //taken from IMDB on 10 star scale
public:
/*
Function name: createMovie (overloaded function)
Parameters: 1) A pointer to a Text variable, containing a c-string and the length of the string.
2) An integer containing the length of the movie
Returns: A pointer to a new Movie structure
Purpose: This function should be called when only the title of the movie and the length of
the movie is known and it will create a new movie with this information.
*/
Movie(const char *, int);
/*
Function name: createMovie (overloaded function)
Parameters: 1) A pointer to a Text variable, containing the title of the movie
2) An integer containing the length of the movie
3) An integer containing the year the movie was released
4) A pointer to a Text variable, containing the genre of the movie
5) A pointer to a Text variable, containing the rating of the movie
6) An integer containing the number of oscars the movie won
7) A float containing the IMDB rating of the movie (out of 10 stars)
Returns: A pointer to a new Movie structure
Purpose: This function should be called when all movie information is known and
it will create a new movie with this information.
*/
Movie(const char *, int, int, const char *, const char*, int, float);
/*
Function name: editMovie
Parameters: A pointer to a movie structure
Returns: nothing (void)
Purpose: This function should be called when the user wants to edit a single
movie's data
*/
void editMovie();
/*
Function name: destroyMovie
Parameters: A pointer to a movie structure
Returns: nothing (void)
Purpose: This function should be called when there is no longer need for the
movie in the database (like when removing or deleting a movie).
*/
~Movie();
/*
Function name: printMovieDetails
Parameters: A pointer to a movie structure
Returns: nothing (void)
Purpose: This function should be called when the user wants to print ALL
the movie information to the screen.
*/
void printMovieDetails();
/*
Function name: printMovieDetailsToFile
Parameters: A pointer to a movie structure, a file stream object (sent by reference)
Returns: nothing (void)
Purpose: This function should be called when the user wants to print ALL
the movie information to the file.
*/
void printMovieDetailsToFile(ofstream &);
const char* getMovieTitle() const;
/* Title: getMovieTitle
Parameter:none
Return:Returns a c-string
Purpose: returns movie title
*/
int getMovieLength() const;
/* Title: getMovieLength
Parameter:none
Return:Returns a integer
Purpose: returns movie length
*/
int getMovieYear() const;
/* Title: getMovieYear
Parameter:none
Return:Returns a integer
Purpose: returns movie year
*/
const char* getMovieGenre() const;
/* Title: getMovieGenre
Parameter:none
Return:Returns a c-string
Purpose: returns movie genre
*/
const char* getMovieRating() const;
/* Title: getMovieRating
Parameter:none
Return:Returns a c-string
Purpose: returns movie title
*/
int getMovieOscars() const;
/* Title: getMovieOscars
Parameter:none
Return:Returns a integer
Purpose: returns movie Oscars awarded
*/
float getMovieNumStars() const;
/* Title: getMovieNumStars
Parameter:none
Return:Returns a integer
Purpose: returns movie number of stars awarded
*/
void setMovieTitle(const char*);
/* Title: setMovieTitle
Parameter:none
Return:none
Purpose: access title
*/
void setMovieLength(int);
/* Title: setMovieLength
Parameter:none
Return:none
Purpose: access length
*/
void setMovieYear(int);
/* Title: setMovieYear
Parameter:none
Return:none
Purpose: access year
*/
void setMovieGenre(const char*);
/* Title: setMovieGenre
Parameter:none
Return:none
Purpose: access genre
*/
void setMovieRating(const char*);
/* Title: setMovieRating
Parameter:none
Return:none
Purpose: access rating
*/
void setMovieOscars(int);
/* Title: setMovieOscars
Parameter:none
Return:none
Purpose: access oscars
*/
void setMovieNumStars(float);
/* Title: setMovieNumStars
Parameter:none
Return:none
Purpose: access number of stars
*/
};
#endif
--------------------------Movie.cpp----------------------
#include "Movie.h"
#include "Text.h"
Movie::Movie(const char* title, int length)
{
//assign parameter data to structure memebers
setMovieTitle(title);
setMovieLength(length);
}
Movie::Movie(const char *title, int length, int year, const char *genre, const char* rating, int oscars, float stars)
{
setMovieTitle(title);
setMovieLength(length);
setMovieYear(year);
setMovieGenre(genre);
setMovieRating(rating);
setMovieOscars(oscars);
setMovieNumStars(stars);
}
Movie::~Movie()
{
delete movieTitle;
delete movieGenre;
delete movieRating;
}
void Movie::printMovieDetails()
{
cout << endl;
cout << right << setw(30) << "Movie Title: " << left;
cout << getMovieTitle();
cout << endl;
cout << right << setw(30) << "Length (minutes): " << left << getMovieLength() << endl;
cout << right << setw(30) << "Year Released: " << left << getMovieYear() << endl;
cout << right << setw(30) << "Genre: " << left;
cout << getMovieGenre();
cout << endl;
cout << right << setw(30) << "Rating: " << left;
cout << getMovieRating();
cout << endl;
cout << right << setw(30) << "Number of Oscars Won: " << left << getMovieOscars() << endl;
cout << right << setw(30) << "Number of Stars: " << left << getMovieNumStars() << endl << endl;
}
void Movie::printMovieDetailsToFile(ofstream &outFile)
{
char temp[1000];
strncpy(temp,getMovieTitle(), 1000);
outFile << temp << endl;
outFile << getMovieLength() << endl;
outFile << getMovieYear() << endl;
strncpy(temp,getMovieGenre(), 1000);
outFile << temp << endl;
strncpy(temp,getMovieRating(), 1000);
outFile << temp << endl;
outFile << getMovieOscars() << endl;
outFile << getMovieNumStars() << endl;
}
void Movie::editMovie()
{
int choice;
Text* tempText;
char temp[100];
int length;
int year;
int oscars;
float stars;
do
{
cout << " Which detail do you wish to edit? ";
cout << "1. Title ";
cout << "2. Length ";
cout << "3. Year ";
cout << "4. Genre ";
cout << "5. Rating ";
cout << "6. Number of Oscars Won ";
cout << "7. Number of Stars ";
cout << "8. DONE EDITING ";
cout << "CHOOSE 1-8: ";
cin >> choice;
while(choice < 1 || choice > 8)
{
cout << " OOPS! Enter choice 1 through 8: ";
cin >> choice;
}
cin.ignore();
switch(choice)
{
case 1: cout << " Current Title: "<<getMovieTitle();
cout << " NEW TITLE: ";
cin.getline(temp, 100);
movieTitle->editText(temp);
break;
case 2: cout << " Current Length: " <<getMovieLength();
cout << " NEW LENGTH: ";
cin >> length;
setMovieLength(length);
break;
case 3: cout << " Current Year: " << getMovieYear();
cout << " NEW LENGTH: ";
cin >> year;
setMovieYear(year);
break;
case 4: cout << " Current Genre: "<<getMovieGenre();
cout << " NEW GENRE: ";
cin.getline(temp, 100);
movieGenre->editText(temp) ;
break;
case 5: cout << " Current Rating: "<<getMovieRating();
cout << " NEW GENRE: ";
cin.getline(temp, 100);
movieRating->editText(temp);
break;
case 6: cout << " Current Number of Oscars Won: " << getMovieOscars();
cout << " NEW NUMBER OF OSCARS: ";
cin >> oscars;
setMovieOscars(oscars)
break;
case 7: cout << " Current Star Rating from IMDB: " << getMovieNumStars();
cout << " NEW STAR RATING: ";
cin >> stars;
setMovieNumStars(stars);
break;
}
}while(choice != 8);
}
const char*Movie::getMovieTitle() const
{
return movieTitle->getText();
}
int Movie::getMovieLength() const
{
return movieLength;
}
int Movie::getMovieYear() const
{
return movieYear;
}
const char*Movie::getMovieGenre() const
{
return movieGenre->getText();
}
const char* Movie::getMovieRating() const
{
return movieRating->getText();
}
int Movie::getMovieOscars() const
{
return movieOscars;
}
float Movie::getMovieNumStars() const
{
return movieNumStars;
}
void Movie:: setMovieTitle(const char* title)
{
Text* temp= new Text(title);
movieTitle=temp;
}
void Movie::setMovieLength(int length)
{
movieLength= length;
}
void Movie::setMovieGenre(const char* genre)
{
Text* temp = new Text(genre);
movieGenre=temp;
}
void Movie::setMovieRating(const char* rating)
{
Text* temp=new Text(rating);
movieRating = temp;
}
void Movie::setMovieOscars(int oscars)
{
movieOscars = oscars;
}
void Movie::setMovieNumStars(float stars)
{
movieNumStars= stars;
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.