Question
C++ please! 10.25 LAB: Artwork label (classes/constructors) Given main(), complete the Artist class (in files Artist.h and Artist.cpp) with constructors to initialize an artist's information,
C++ please!
10.25 LAB: Artwork label (classes/constructors)
Given main(), complete the Artist class (in files Artist.h and Artist.cpp) with constructors to initialize an artist's information, get member functions, and a PrintInfo() member function. The default constructor should initialize the artist's name to "unknown" and the years of birth and death to -1. PrintInfo() displays "Artist:", then a space, then the artist's name, then another space, then the birth and death dates in one of three formats:
(XXXX to YYYY) if both the birth and death years are nonnegative
(XXXX to present) if the birth year is nonnegative and the death year is negative
(unknown) otherwise
Complete the Artwork class (in files Artwork.h and Artwork.cpp) with constructors to initialize an artwork's information, get member functions, and a PrintInfo() member function. The default constructor should initialize the title to "unknown", the year created to -1. PrintInfo() displays an artist's information by calling the PrintInfo() function in the Artist class, followed by the artwork's title and the year created. Declare a private field of type Artist in the Artwork class.
Ex: If the input is:
Pablo Picasso Three Musicians 1881 1973 1921
1881 and 1973 being the birth and death years respectively, with 1921 being the year the work was created, the output is:
Artist: Pablo Picasso (1881 to 1973) Title: Three Musicians, 1921
Ex: If the input is:
Brice Marden Distant Muses 1938 -1 2000
the output is:
Artist: Brice Marden (1938 to present) Title: Distant Muses, 2000
Ex: If the input is:
Banksy Balloon Girl -1 -1 2002
the output is:
Artist: Banksy (unknown) Title: Balloon Girl, 2002
Code given:
main.cpp:
#include "Artist.h" #include "Artwork.h" #include
int main() { string userTitle, userArtistName; int yearCreated, userBirthYear, userDeathYear;
getline(cin, userArtistName); getline(cin, userTitle); cin >> userBirthYear; cin >> userDeathYear; cin >> yearCreated;
Artist userArtist = Artist(userArtistName, userBirthYear, userDeathYear);
Artwork newArtwork = Artwork(userTitle, yearCreated, userArtist);
newArtwork.PrintInfo(); }
Artist.h:
#ifndef ARTISTH #define ARTISTH
#include
class Artist{ public: Artist();
Artist(string artistName, int birthYear, int deathYear);
string GetName() const;
int GetBirthYear() const;
int GetDeathYear() const;
void PrintInfo() const; private: // TODO: Declare private data members - artistName, birthYear, deathYear
};
#endif
Artist.cpp:
#include "Artist.h" #include
// TODO: Define default constructor
// TODO: Define second constructor to initialize // private fields (artistName, birthYear, deathYear)
// TODO: Define get functions: GetName(), GetBirthYear(), GetDeathYear()
// TODO: Define PrintInfo() function // If deathYear is entered as -1, only print birthYear
Artwork.h:
#ifndef ARTWORKH #define ARTWORKH
#include "Artist.h"
class Artwork{ public: Artwork();
Artwork(string title, int yearCreated, Artist artist);
string GetTitle();
int GetYearCreated();
void PrintInfo(); private: // TODO: Declare private data members - title, yearCreated
// TODO: Declare private data member artist of type Artist
};
#endif
Artwork.cpp:
#include "Artwork.h" #include
// TODO: Define default constructor
// TODO: Define second constructor to initialize // private fields (title, yearCreated, artist)
// TODO: Define get functions: GetTitle(), GetYearCreated()
// TODO: Define PrintInfo() function // Call the PrintInfo() function in the Artist class to print an artist's information
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started