# Project 8

## The Projects

Project #8.1: White water rapids are classified by their gradient (the number of feet per mile they descend) and their class (a difficulty rating in the range 1-6, with 1 being calm and 6 being unnavigable.) Popular white water rafting trips in Pennsylvania and West Virginia include the lower Youghiogheny (gradient 15, class 3), the New (gradient 25, class 4), the Cheat (gradient 35, class 4), and the Upper Youghiogheny (gradient 125, class 5).

Write a menu-drive program that displays a menu of the trips, and displays the gradient and class of whatever trip the user selects. Your program should include a function that, given the trip selected by the user, passes back the gradient and class of that trip.

Project #8.2: Write a function `Sort3()` that, given three integer arguments `int1`, `int2`, and `int3`, changes the values of those arguments so that their values are in ascending order (i.e., `int1` <= `int2` <= `int3`---looks like a postcondition!). Write a driver program that demonstrates the correctness of `Sort3()`.

Project #8.3: Your local painting supplies store would like a paint-mixing "expert system." Write a function that, given a non-primary color (i.e., orange, green, purple) will pass back the two primary colors that must be mixed to produce that color (i.e., red and yellow must be mixed to produce orange, yellow and blue to produce green, and blue and red to produce purple). Use a `string` object to store a color. Then write a menu-driven program that allows its user to enter, process and display the solution of as many paint-mixing problems as the user wishes.

Project #8.4: A quadratic equation is an equation of the form
`ax2 + bx + c = 0`
Write a function that, given the `a`, `b` and `c` values defining a quadratic, passes back the two roots of that quadratic. To compute the roots, use the quadratic formula:
```
-b ± sqrt(b2 - 4ac)
roots = --------------------------
2a```
Your function should check for common errors, such as `a` is 0 and `b2 - 4ac` is negative.

Create a user-friendly driver program that allows its user to compute the roots of an arbitrary number of quadratic equations.