Database System Concepts
Database System Concepts
7th Edition
ISBN: 9780078022159
Author: Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher: McGraw-Hill Education
Bartleby Related Questions Icon

Related questions

bartleby

Concept explainers

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
Check Mark
Knowledge Booster
Background pattern image
Computer Science
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
Text book image
Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education
Text book image
Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON
Text book image
Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON
Text book image
C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON
Text book image
Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning
Text book image
Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education