## Question

Part 1

Write a program that prints a menu. Based on the menu item selected by the user, the program should

• request the required inputs from the user

• call the appropriate function

• print the function’s result (from the main program NOT the function)

For example, if the user selections the sum function, then your program will ask them for two numbers to be added together, call the sum function, and finally print the sum function’s result.

NOTE: In case of a typo on here – make your output match the CA output!

The functions to implement are:

1. Simple Sum: Takes two int parameters and returns their sum. You will need to ask the user for two integers before calling this function.

2. Simple Division: Takes two int parameters and returns their floating point quotient (e.g., 10/3 returns 3.33). You will need to ask the user for two integers before calling this function.

3. Complex Division: Takes four int parameters, sums the first three parameters and then divides the sum by the fourth parameter. Returns the floating point quotient (e.g., (10 + 7 + 5) / 4 returns 5.5). You will need to ask the user for three integers and an integer divisor before calling this function.

Design:

1. It is imperative that each of these three operations be in their own function.

2. You should have an additional function that determines the operation type by printing the menu and then returning the integer that the user selects.

3. Your main program should use a switch statement that switches on the numeric integer entered by the user to select the correct function to call.

1. Your switch statement should also gather the inputs from the user before calling the function.

2. You will print the result returned by the function in your switch statement.

4. All function prototypes will be listed at the top of your code (after using namespace std;) and all your function definitions to be placed after main.

Sample Output: Here is a sample user interaction with the program (user inputs are highlighted in blue) - Please see Code Assessor output for exact spacing and newlines.

Please make a selection from the following menu

1. Simple Sum

2. Simple Division

3. Complex Division

Enter the number of the operation you wish to perform: 3

Please enter four integers: 10 7 5 4

quotient = 5.5

More Functions – Part 2

This part will give you more practice using functions such as the pre-defined functions and loops. Remember to include the cmath library, which contains the required pre-defined functions for this lab. Add the following functions to your menu and implement them:

1. Max: Takes three int parameters and returns their maximum value. You will need to ask the user for three integer values before calling this function.

2. Hypotenuse: Takes two floating point variables which are the lengths of the two sides of a triangle, and returns the floating point length of the third side of the triangle (the third side is called the hypotenuse). The equation for the length of the hypotenuse is a2 +b2=c2 You will need to ask the user for two floating point numbers before calling this function.

3. Cubic Equation: Takes four floating point coefficients for the cubic equation ax3+bx2+cx+d plus the value of x and returns the result. You must use the pow function to compute x3 and x2. You will need to ask the user for four coefficients (a, b, c, d) and the value of x before calling this function.

***IN ADDITION*** Add the ability to let the user repetitively enter menu options until they enter the numeric code for quit (for this phase it is item 9).

Sample Output: Here is a sample interaction with the program (user input highlighted in blue):

Please make a selection from the following menu

1. Simple Sum

2. Simple Division

3. Complex Division

4. Max

5. Hypotenuse

6. Cubic Equation

7.

8.

9. Quit

Enter the number of the operation you wish to perform: 5

Please enter the two side lengths: 3.5 4.9

hypotenuse = 6.02163

Please make a selection from the following menu

1. Simple Sum

2. Simple Division

3. Complex Division

4. Max

5. Hypotenuse

6. Cubic Equation

7.

8.

9. Quit

Enter the number of the operation you wish to perform: 6

Please enter four coefficients and x: -3.5 5.848 58.588 586 -4.576

cubic result = 775.729

Please make a selection from the following menu

1. Simple Sum

2. Simple Division

3. Complex Division

4. Max

5. Hypotenuse

6. Cubic Equation

7.

8.

9. Quit

Enter the number of the operation you wish to perform: 9

When the user types 9 for quit, your program must exit.

Still More Functions Part 3

In this part you will get experience writing void functions that return more than one result via reference parameters. Write the following two functions and add them to your menu:

1. MinMax: Takes 5 parameters, the first three are user-supplied inputs and the last two are “result” parameters. Place the smallest of the first three parameters into the fourth parameter (min) and the largest of the three parameters in the fifth parameter (max). When MinMax returns, the calling function will examine the fourth and fifth arguments and find the values placed there by MinMax. For example, if MinMax were called as:

int x = 3, y = 10, z = 1;

int min, max;

MinMax(x, y, z, min, max);

then min will be 1 and max will be 10 when MinMax returns. You will need to ask the user for three integers before calling this function.

2. Modulus: Takes 4 int parameters, the first two are user-supplied inputs and the last two are the quotient and remainder. The quotient is calculated by dividing the first parameter by the second parameter. The remainder is whatever is left after division. For example, if Modulus were called as follows:

int x = 17, y = 3;

int quotient, remainder;

Modulus(x, y, quotient, remainder);

then quotient will be 5 and remainder will be 2 after Modulus returns. You will need to ask the user for two integers before calling this function.

Sample Output: Here is a sample interaction with the program (user input is highlighted in blue):

Please make a selection from the following menu

1. Simple Sum

2. Simple Division

3. Complex Division

4. Max

5. Hypotenuse

6. Cubic Equation

7. MinMax

8. Modulus

9. Quit

Enter the number of the operation you wish to perform: 7

please enter three integers: 3 8 2

min = 2

max = 8

Please make a selection from the following menu

1. Simple Sum

2. Simple Division

3. Complex Division

4. Max

5. Hypotenuse

6. Cubic Equation

7. MinMax

8. Modulus

9. Quit

Enter the number of the operation you wish to perform: 8

please enter two integers: 17 3

quotient = 5

remainder = 2

Please make a selection from the following menu

1. Simple Sum

2. Simple Division

3. Complex Division

4. Max

5. Hypotenuse

6. Cubic Equation

7. MinMax

8. Modulus

9. Quit

Enter the number of the operation you wish to perform: 9

When the user types 9 for quit, your program must exit.

## Solution Preview

These solutions may offer step-by-step problem-solving explanations or good writing examples that include modern styles of formatting and construction of bibliographies out of text citations and references. Students may use these solutions for personal skill-building and practice. Unethical use is strictly forbidden.

#include <cstdlib>#include <iostream>

using namespace std;

// prototype

void menu();

int simSum(int a, int b);

double simDiv(int a, int b);

double comDiv(int a, int b, int c, int d);

int main(int argc, char** argv) {

int input = 0;

int i1, i2, i3, i4;

while (input != 9) {

menu();

cin >> input;

switch(input){

case 1:

cout << "Please enter two integers: ";

cin >> i1 >> i2;

cout << "sum = " << simSum(i1, i2) << "\n";

break;

case 2:

cout << "Please enter two integers: ";

cin >> i1 >> i2;

cout << "quotient = " << simDiv(i1, i2) << "\n";

break;

case 3:

cout << "Please enter four integers: ";

cin >> i1 >> i2 >> i3 >> i4;...

By purchasing this solution you'll be able to access the following files:

Solution.zip.