How can I make the do-while loop include user-friendly behavior through the addition of input validation to the code to make sure the user's color selections are within the permitted range (0 to 2) and to prompt them to re-enter if necessary?   #include #include #include     using namespace std; /* the function 'mixColors' takes the 'color' variable prompted from the 'getUserInput'  function then uses a series of if statements to determine what mixed color two colors ('color1' and 'color2') create: 'purple', 'orange', or 'green' with 'No mix' elsewise. 'mixedColor'  is returned as a result  */ string mixColors(int color1, int color2) { string mixedColor;           if ((color1 == 0 && color2 == 1) || (color1 == 1 && color2 == 0)) {             mixedColor = "purple";         } else if ((color1 == 0 && color2 == 2) || (color1 == 2 && color2 == 0)) {             mixedColor = "orange";         } else if ((color1 == 1 && color2 == 2) || (color1 == 2 && color2 == 1)) {             mixedColor = "green";         } else {             mixedColor = "No Mix";         } return mixedColor; }   /* the 'getUserInput' function is called before the 'mixColors' function to retrieve user input storing data from user into the color 'variable' using 'main' functions array */ int getUserInput() { int color;        cout << "Enter a prime color: " << endl;      cout << "'0' for red, '1' for blue', and '2' for yellow: "; cin >> color;       return color; }   /* the 'main' function is the basis of the program! the 'main' function contains: an array of prime colors used in the 'getUserInput' function;  int variables 'color1' and 'color2'; a string varible 'mixedColor' from the 'mixColors'  function; a vairable 'choice' for the do-while loop inside this 'main' function; an ofstream  that creates and opens a file named 'color_mixer_results.txt' with an 'outputFile'  created/opened to truncate user results until user prompts exit with the do while loop set  to mix again if answer is 'y' or 'Y' (exits with all other entries)  */ int main() {     string arr[] = {"red", "blue", "yellow"};     int color1, color2;     string mixedColor;     char choice;          ofstream outputFile("color_mixer_results.txt"); // opens file that truncates                 do {         color1 = getUserInput();         color2 = getUserInput();     mixedColor = mixColors(color1, color2);                  // below is where input inside do while loop is writ to .txt file         outputFile << "Mixed color for your selection (" << color1 << " and " << color2 << ") is " << mixedColor << endl;     cout << "Mixed color for your selection (" << color1 << " and " << color2 << ") is " << mixedColor << endl;           cout << "Would you like to mix again? (Y/N): ";         cin >> choice; } while (toupper(choice) == 'Y');         outputFile.close(); // closing output file   cout << "Results have been saved in 'color_mix_results.txt'. Goodbye!" << endl;   return 0; }

Microsoft Visual C#
7th Edition
ISBN:9781337102100
Author:Joyce, Farrell.
Publisher:Joyce, Farrell.
Chapter8: Advanced Method Concepts
Section: Chapter Questions
Problem 8RQ
icon
Related questions
Question
How can I make the do-while loop include user-friendly behavior through the addition of input validation to the code to make sure the user's color selections are within the permitted range (0 to 2) and to prompt them to re-enter if necessary?
 
#include <iostream>
#include <fstream>
#include <string>
 
 
using namespace std;
/*
the function 'mixColors' takes the 'color' variable prompted from the 'getUserInput' 
function then uses a series of if statements to determine what mixed color two colors ('color1'
and 'color2') create: 'purple', 'orange', or 'green' with 'No mix' elsewise. 'mixedColor' 
is returned as a result 
*/
string mixColors(int color1, int color2) {
string mixedColor;
 
        if ((color1 == 0 && color2 == 1) || (color1 == 1 && color2 == 0)) {
            mixedColor = "purple";
        } else if ((color1 == 0 && color2 == 2) || (color1 == 2 && color2 == 0)) {
            mixedColor = "orange";
        } else if ((color1 == 1 && color2 == 2) || (color1 == 2 && color2 == 1)) {
            mixedColor = "green";
        } else {
            mixedColor = "No Mix";
        }
return mixedColor;
}
 
/*
the 'getUserInput' function is called before the 'mixColors' function to retrieve
user input storing data from user into the color 'variable' using 'main' functions array
*/
int getUserInput() {
int color;
    
 
cout << "Enter a prime color: " << endl; 
    cout << "'0' for red, '1' for blue', and '2' for yellow: ";
cin >> color;
 
    return color;
}
 
/*
the 'main' function is the basis of the program!
the 'main' function contains: an array of prime colors used in the 'getUserInput' function; 
int variables 'color1' and 'color2'; a string varible 'mixedColor' from the 'mixColors' 
function; a vairable 'choice' for the do-while loop inside this 'main' function; an ofstream 
that creates and opens a file named 'color_mixer_results.txt' with an 'outputFile' 
created/opened to truncate user results until user prompts exit with the do while loop set 
to mix again if answer is 'y' or 'Y' (exits with all other entries) 
*/
int main() {
    string arr[] = {"red", "blue", "yellow"};
    int color1, color2;
    string mixedColor;
    char choice;
    
    ofstream outputFile("color_mixer_results.txt"); // opens file that truncates 
 
    
        do {
        color1 = getUserInput();
        color2 = getUserInput();
    mixedColor = mixColors(color1, color2);
        
        // below is where input inside do while loop is writ to .txt file
        outputFile << "Mixed color for your selection (" << color1 << " and " << color2 << ") is " << mixedColor << endl;
 
 
cout << "Mixed color for your selection (" << color1 << " and " << color2 << ") is " << mixedColor << endl;
 
        cout << "Would you like to mix again? (Y/N): ";
        cin >> choice;
} while (toupper(choice) == 'Y');
 
 
    outputFile.close(); // closing output file
 
cout << "Results have been saved in 'color_mix_results.txt'. Goodbye!" << endl;
 
return 0;
}
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 4 steps with 3 images

Blurred answer
Knowledge Booster
Types of Loop
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Microsoft Visual C#
Microsoft Visual C#
Computer Science
ISBN:
9781337102100
Author:
Joyce, Farrell.
Publisher:
Cengage Learning,
Programming with Microsoft Visual Basic 2017
Programming with Microsoft Visual Basic 2017
Computer Science
ISBN:
9781337102124
Author:
Diane Zak
Publisher:
Cengage Learning