Question: CONVERT C++ PROGRAM BELOW TO GUI (SHOWN ABOVE), final product must be all dialogs exactly like above (using gtkmm) main.cpp #include #include #include #include using

CONVERT C++ PROGRAM BELOW TO GUI (SHOWN ABOVE), final product must be all dialogs exactly like above (using gtkmm)
main.cpp
#include#include #include #include using namespace std; // ///////////////////////////////////// // A G E G E N R E M E D I A // ///////////////////////////////////// class Age { public: Age(int val) : value(val) { } static const int children = 0; static const int teen = 1; static const int adult = 2; static const int restricted = 3; static const int num_ages = 4; string to_string() { switch(value) { case(children):return "children"; case(teen):return "teen"; case(adult):return "adult"; case(restricted):return "restricted"; default: return "UNKNOWN"; } } private: int value; }; class Genre { public: Genre(int val) : value(val) { } static const int fiction = 0; static const int nonfiction = 1; static const int selfhelp = 2; static const int performance = 3; static const int num_genres = 4; string to_string() { switch(value) { case(fiction):return "fiction"; case(nonfiction):return "nonfiction"; case(selfhelp):return "selfhelp"; case(performance):return "performance"; default: return "UNKNOWN"; } } private: int value; }; class Media { public: Media(int val) : value(val) { } static const int book = 0; static const int periodical = 1; static const int newspaper = 2; static const int audio = 3; static const int video = 4; static const int num_media = 5; string to_string() { switch(value) { case(book):return "book"; case(periodical):return "periodical"; case(newspaper):return "newspaper"; case(audio):return "audio"; case(video):return "video"; default: return "UNKNOWN"; } } private: int value; }; // ///////////////////////////////////// // P A T R O N // ///////////////////////////////////// class Patron { public: Patron(string patron_name, string patron_phone_number) : name(patron_name), number(patron_phone_number) {} Patron() : name("unknown"), number("unknown") {} string to_string(); string get_patron_name(); string get_patron_phone_number(); private: string name; string number; }; string Patron::to_string() {return name + " (" + number + ")";} string Patron::get_patron_name() {return name;} string Patron::get_patron_phone_number() {return number;} // ///////////////////////////////////// // P U B L I C A T I O N // ///////////////////////////////////// class Publication { public: Publication(string p_title, string p_author, string p_copyright, Genre p_genre, Media p_media, Age p_target_age, string p_isbn) : title(p_title), author(p_author), copyright(p_copyright), genre(p_genre), media(p_media), target_age(p_target_age), isbn(p_isbn), patron(Patron()), checked_out(false) { } bool is_checked_out(); void check_out(Patron patron); void check_in(); string to_string(); // Thrown on check_in if publication isn't checked out // or on cheeck_out if publication is already checked out class Invalid_transaction : public exception { }; private: string title; string author; string copyright; Genre genre; Media media; Age target_age; string isbn; Patron patron; bool checked_out; }; bool Publication::is_checked_out() {return checked_out;} void Publication::check_out(Patron p_patron) { if (checked_out) { throw Invalid_transaction(); } else { patron = p_patron; checked_out = true; } } void Publication::check_in() { if (checked_out) { checked_out = false; } else { throw Invalid_transaction(); } } string Publication::to_string() { string pub = "\"" + title + "\"" + " by " + author + ", " + copyright + " (" + target_age.to_string() + " " + genre.to_string() + " " + media.to_string() + ") " + "ISBN: " + isbn; if (checked_out) { pub += " Checked out to " + patron.get_patron_name() + " (" + patron.get_patron_phone_number() + ")"; } return pub; } // ///////////////////////////////////// // L I B R A R Y // ///////////////////////////////////// class Library { public: void add_publication(Publication pub); void add_patron(Patron pat); void check_out(int publication_index, int patron_index); void check_in(int publication_index); string publication_to_string(int publication_index); string patron_to_string(int patron_index); int number_of_publications(); int number_of_patrons(); void easter_egg(); private: vector publications; vector patrons; }; void Library::add_publication(Publication pub) { publications.push_back(pub); } void Library::add_patron(Patron pat) { patrons.push_back(pat); } void Library::check_out(int publication_index, int patron_index) { publications[publication_index].check_out(patrons[patron_index]); } void Library::check_in(int publication_index) { publications[publication_index].check_in(); } string Library::publication_to_string(int publication_index) { return publications[publication_index].to_string(); } string Library::patron_to_string(int patron_index) { return patrons[patron_index].to_string(); } int Library::number_of_publications() { return publications.size(); } int Library::number_of_patrons() { return patrons.size(); } void Library::easter_egg() { add_publication(Publication("The Firm", "John Grisham", "1991", Genre::fiction, Media::book, Age::adult, "0440245923")); add_publication(Publication("Foundation", "Isaac Asimov", "1942", Genre::fiction, Media::book, Age::adult, "0385177259")); add_publication(Publication("Foundation and Empire", "Isaac Asimov", "1943", Genre::fiction, Media::book, Age::adult, "0385177259")); add_publication(Publication("Second Foundation", "Isaac Asimov", "1944", Genre::fiction, Media::book, Age::adult, "0385177259")); add_publication(Publication("War of the Worlds", "Jeff Wayne", "1977", Genre::performance, Media::audio, Age::teen, "9780711969148")); add_publication(Publication("Willy Wonka and the Chocolate Factory", "Roald Dahl", "1971", Genre::performance, Media::video, Age::children, "0142410314")); add_patron(Patron("Larry", "817-555-1111")); add_patron(Patron("Curly", "817-555-2222")); add_patron(Patron("Moe", "817-555-3333")); } // ///////////////////////////////////// // V I E W // ///////////////////////////////////// class View { public: View(Library& lib) : library(lib) { } string get_menu(); string get_publication_list(); string get_patron_list(); string get_age_list(); string get_genre_list(); string get_media_list(); string get_help(); private: Library& library; }; string View::get_menu() { string menu = R"( =============================== C1325 Library Management System =============================== Publications ------------ (1) Add publication (2) List all publications (3) Check out publication (4) Check in publication Patrons ------- (5) Add patron (6) List all patrons Utility ------- (9) Help (0) Exit )"; return menu; } string View::get_publication_list() { string list = R"( ---------------------------- List of Library Publications ---------------------------- )"; for (int i=0; i > cmd; cin.ignore(); // consume execute_cmd(cmd); } } int Controller::get_int(string prompt, int max_int) { int result; while(true) { cout > result; cin.ignore(); // consume if (0 }
Input Title? Main Menu The Incredibles Cancel OK CSE1325 Library Management System Publications Select a Beloved Patron (1) Add publication (2) List all publications (3) Check out publication (4) Check in publication 0) Larry (817-555-1111) 1) Curly (817-555-2222) 2) Moe (817-555-3333) Patrons Cancel OK (5) Add patron (6) List all patrons Utility List of Library Publications 0) "The Firm by John Grisham, (9) Help (0) Exit 1991 (adult fiction book) ISBN: 0440245923 1) "Foundation by Isaac Asimov, 1942 (adult fiction book) ISBN: 0385177259 2)Foundation and Empire" by Isaac Asimov. 1943 (adult fiction book) ISBN: 0385177259 3) "Second Foundation by Isaac Asimov, 1944 (adult fiction book) ISBN: 0385177259 4) "War of the Worlds" by Jeff Wayne, Cancel OK 1977 (teen performance audio) ISBN: 9780711969148 5) "Willy Wonka and the Chocolate Factory" by Roald Dahl, 1971 (children performance video) ISBN: 0142410314 OK Input Title? Main Menu The Incredibles Cancel OK CSE1325 Library Management System Publications Select a Beloved Patron (1) Add publication (2) List all publications (3) Check out publication (4) Check in publication 0) Larry (817-555-1111) 1) Curly (817-555-2222) 2) Moe (817-555-3333) Patrons Cancel OK (5) Add patron (6) List all patrons Utility List of Library Publications 0) "The Firm by John Grisham, (9) Help (0) Exit 1991 (adult fiction book) ISBN: 0440245923 1) "Foundation by Isaac Asimov, 1942 (adult fiction book) ISBN: 0385177259 2)Foundation and Empire" by Isaac Asimov. 1943 (adult fiction book) ISBN: 0385177259 3) "Second Foundation by Isaac Asimov, 1944 (adult fiction book) ISBN: 0385177259 4) "War of the Worlds" by Jeff Wayne, Cancel OK 1977 (teen performance audio) ISBN: 9780711969148 5) "Willy Wonka and the Chocolate Factory" by Roald Dahl, 1971 (children performance video) ISBN: 0142410314 OK
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
