Question: USING C++ For this project, download this file: penguin.h You work as a programmer for a startup company and your project manager has given you

USING C++

For this project, download this file:

penguin.h

You work as a programmer for a startup company and your project manager has given you this legacy code (above) that was written by a programmer who left the company. The project manager needs you to expand the linked_list class to add a new function called found that will accept a value from the client and return true if the value exists in the list. Note the return type must be bool.

Your project manager also needs you to convert the penguin class and linked_list class to templates so the class can be used by multiple client programs, each possibly using different data types.

Additionally, you need to write a client .cpp file for testing that creates two objects of the templated linked_list class, each with different data types. You do not have to create a template for the clients.

Your program should meet the functional requirements and include a minimum of the following:

Add a new function called found that will accept a value from the client and return true if the value exists in the list. (10 points)

The penguin class and linked_list class converted to templates (5 points)

A client .cpp file that has a main function create an object of the templated linked_list class with one data type and calls all of the functions of that class. Then, the main function should create a second object of the templated linked_list class with a different data type and use it to call the functions of that class. Either client should successfully run with the templated classes. (5 points)

Hint: Remember to use the Template Checklist

(this is penguin.h)

class penguin { public: penguin(); void addp_num(int num); int getp_num(); void set_link(penguin * next_ptr) {link = next_ptr;} penguin * get_link() {return link;} private: int p_num; penguin * link; }; penguin::penguin() { p_num = 0; } void penguin::addp_num(int num) { p_num = num; } int penguin::getp_num() { return p_num; } class linked_list { public: linked_list() { head_ptr = NULL;} void add_penguin(int newData); void remove_headpenquin(); void print_penquins(); void add_sorted(int newData); void clear(); private: penguin * head_ptr; }; void linked_list::add_penguin(int newData){ penguin * newOne = new penguin; newOne->addp_num(newData); newOne->set_link(head_ptr); head_ptr = newOne; std::cout << "head_ptr is now: " << head_ptr->getp_num() << std::endl; } void linked_list::remove_headpenquin() { if (head_ptr == NULL) std::cout << "Empty List" << std::endl; penguin * doomed = head_ptr; head_ptr = head_ptr->get_link(); delete doomed; } void linked_list::clear() { penguin* doomed = head_ptr; while (head_ptr != NULL) { remove_headpenquin(); doomed = head_ptr; } } void linked_list::print_penquins() { if (head_ptr == NULL) std::cout << "Empty List" << std::endl; else std::cout << "Printing penguins..." << std::endl; for(penguin *cur = head_ptr; cur!=NULL; cur = cur->get_link()) std::cout << cur->getp_num() << std::endl; } 

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!