[Solved] Lab exercise 14 Problems

$25

File Name: Lab_exercise_14_Problems.zip
File Size: 226.08 KB

SKU: [Solved] Lab exercise 14 Problems Category: Tag:
5/5 - (1 vote)
  1. Write C++ programs
  2. Compile C++ programs
  3. Implement programs that use templates and vectors

Additional Reading

This lab exercise requires an understanding of some concepts to solve the problems. You are strongly encouraged to read the following tutorials to help you answer the problems.

  1. Organizing C++ files: function prototypes, implementations, and drivers.
  2. Using objects as parameters and return values in functions
  3. Passing arrays as parameters to functions
  4. File reading and writing (also includes dealing with arrays)

Instructions

Answer the programming problems sequentially (i.e., answer prob01 before prob02). If you have questions let your instructor or the lab assistant know. You can also consult your classmates.

When you answer two programming problems correctly, let your instructor know and wait for further instruction.

Lab exercise guide

Heres a link to the Lab exercise guide in case you need to review the lab exercise objectives, grading scheme, or evaluation process.

Pair Template

In this program, you will be creating a class that utilizes class templates.

MyPair Template Class

Create a class called MyPair that uses template <class T> and will have the following:

Private Member Variables

  1. value1_ which is a T object.
  2. value2_ which is a T object.

Non-Default Constructor

Create a non-default constructor that takes in two T objects as parameters and initializes the values to the data member variables respectively.

Accessors

Create accessors for both data members

Display Member Function

Create a member function called display() that will display the member variables in the order shown in the output below.

[Value1, Value2]

Display Reverse Member Function

Create a member function called display_reverse() that will display the member variables in reverse order as shown in the output below.

[Value2, Value1]

Max Value Member Function

Create a member function called max_value() that will return a T object. This member function should compare the two member variable values and return the greater value (if the values are equal, return the second value).

Min Value Member Function

Create a member function called min_value() that will return a T object. This member function should compare the two member variable values and return the lesser value (if the values are equal, return the second value).

Swap Value Member Function

Create a member function called swap_value() that will swap the two member variable values.

Other instructions

Complete the main function as described. Place your classes in pair_class_template.hpp. Member functions that take more than five lines or use complex constructs should have their function prototype in pair_class_template.hpp and implementation in pair_class_template.cpp.

Sample Output

[3, 5][5, 3]53[5, 3][3, 5][9.7, 6.4][6.4, 9.7]9.76.4[6.4, 9.7][9.7, 6.4][a, z][z, a]za[z, a][a, z]

Submission checklist

  1. Created function prototype and stored in .hpp file.
  2. Created function implementation and stored in .cpp file (see reference).
  3. Call function in the driver
  4. Compiled and ran the driver (main).
  5. Manually checked for compilation and logical errors.
  6. Ensured no errors on the unit test (make test).
  7. Followed advice from the stylechecker (make stylecheck).
  8. Followed advice from the formatchecker to improve code readbility (make formatcheck).

Code evaluation

Open the terminal and navigate to the folder that contains this exercise. Assuming you have pulled the code inside of /home/student/labex02-tuffy and you are currently in /home/student you can issue the following commands

cd labex02-tuffy

You also need to navigate into the problem you want to answer. To access the files needed to answer problem 1, for example, you need to issue the following command.

cd prob01

When you want to answer another problem, you need to go back up to the parent folder and navigate into the next problem. Assuming you are currently in prob01, you can issue the following commands to go to the parent folder then go into another problem you want to answer; prob02 for example.

cd ..cd prob02

Use the clang++ command to compile your code and the ./ command to run it. The sample code below shows how you would compile code saved in pair_class_template.cpp and main.cpp, and into the executable file main. Make sure you use the correct filenames required in this problem. Take note that if you make any changes to your code, you will need to compile it first before you see changes when running it.

clang++ -std=c++17 main.cpp pair_class_template.cpp -o main./main

You can run one, two, or all the commands below to test your code, stylecheck your codes design, or formatcheck your work. Kindly make sure that you have compiled and executed your code before issuing any of the commands below to avoid errors.

make testmake stylecheckmake formatcheck

A faster way of running all these tests uses the all parameter.

make all

Statistics Calculator

In this program, you will be using the vector library.

Statistics Calculator Class

Create a class called StatisticsCalculator that will have the following:

Data members

  1. data_set_ that is an std::vector that contains double values. std::vector uses templates so we specify the type double inside the < >.

Member functions

add_data

Create a member function called add_data that takes 1 parameter, a double that will be stored in the vector. Use the std::vector member function push_back to store the data passed through the parameter into the vector.

data_at

Create a member function called data_at that takes 1 parameter, an int that will be the index. This function should return the the element from the vector at the index using the index operator ([ ]).

size_of_data

Create a member function called size_of_data that should return the size of the vector using the std::vector member function size.

mean

Create a member function called mean that should return the mean of all the elements in the vector. If the vector is empty return a value of 0. You can use std::vectors member function empty() to check.

Other instructions

Complete the main function as described. Place your classes in statistics_calculator.hpp. Member functions that take more than five lines or use complex constructs should have their function prototype in statistics_calculator.hpp and implementation in statistics_calculator.cpp.

Sample output 1

Welcome to the Statistics Calculator!Please select a menu option:1 - Add to the data set2 - Display the entire data set3 - Get the mean of the data set0 - Exit the programSelection: 1Input the number you want to add to the data set: 23Welcome to the Statistics Calculator!Please select a menu option:1 - Add to the data set2 - Display the entire data set3 - Get the mean of the data set0 - Exit the programSelection: 2The data set0: 23Welcome to the Statistics Calculator!Please select a menu option:1 - Add to the data set2 - Display the entire data set3 - Get the mean of the data set0 - Exit the programSelection: 3The mean of the data is 23.00Welcome to the Statistics Calculator!Please select a menu option:1 - Add to the data set2 - Display the entire data set3 - Get the mean of the data set0 - Exit the programSelection: 0Exiting...

Sample output 2

Welcome to the Statistics Calculator!Please select a menu option:1 - Add to the data set2 - Display the entire data set3 - Get the mean of the data set0 - Exit the programSelection: 2The data setWelcome to the Statistics Calculator!Please select a menu option:1 - Add to the data set2 - Display the entire data set3 - Get the mean of the data set0 - Exit the programSelection: 3The mean of the data is 0.00Welcome to the Statistics Calculator!Please select a menu option:1 - Add to the data set2 - Display the entire data set3 - Get the mean of the data set0 - Exit the programSelection: 0Exiting...

Submission checklist

  1. Created function prototype and stored in .hpp file.
  2. Created function implementation and stored in .cpp file (see reference).
  3. Call function in the driver
  4. Compiled and ran the driver (main).
  5. Manually checked for compilation and logical errors.
  6. Ensured no errors on the unit test (make test).
  7. Followed advice from the stylechecker (make stylecheck).
  8. Followed advice from the formatchecker to improve code readbility (make formatcheck).

Code evaluation

Open the terminal and navigate to the folder that contains this exercise. Assuming you have pulled the code inside of /home/student/labex02-tuffy and you are currently in /home/student you can issue the following commands

cd labex02-tuffy

You also need to navigate into the problem you want to answer. To access the files needed to answer problem 1, for example, you need to issue the following command.

cd prob01

When you want to answer another problem, you need to go back up to the parent folder and navigate into the next problem. Assuming you are currently in prob01, you can issue the following commands to go to the parent folder then go into another problem you want to answer; prob02 for example.

cd ..cd prob02

Use the clang++ command to compile your code and the ./ command to run it. The sample code below shows how you would compile code saved in statistics_calculator.cpp and main.cpp, and into the executable file main. Make sure you use the correct filenames required in this problem. Take note that if you make any changes to your code, you will need to compile it first before you see changes when running it.

clang++ -std=c++17 main.cpp statistics_calculator.cpp -o main./main

You can run one, two, or all the commands below to test your code, stylecheck your codes design, or formatcheck your work. Kindly make sure that you have compiled and executed your code before issuing any of the commands below to avoid errors.

make testmake stylecheckmake formatcheck

A faster way of running all these tests uses the all parameter.

make all

Reviews

There are no reviews yet.

Only logged in customers who have purchased this product may leave a review.

Shopping Cart
[Solved] Lab exercise 14 Problems
$25