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; }

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
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
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education