In this assignment you will write a C++ program that can figure out a number chosen by a human user. The human user will think of a number between 1 and 100. The computer program will make guesses and the user will tell the program to guess higher or lower. A sample run of the program should look something like this, with the user inputs in orange: Think of a number between 1 and 100. Is it 50?  (h/l/c): h Is it 75?  (h/l/c): h Is it 88?  (h/l/c): l Is it 81?  (h/l/c): c Great! Do you want to play again? (y/n): y Think of a number between 1 and 100.   Is it 50?  (h/l/c): l Is it 25?  (h/l/c): h Is it 37?  (h/l/c): c Great! Do you want to play again? (y/n): n Notice that the user inputs the characters ‘h’, ‘l’, and ‘c’ for higher, lower, and correct, respectively. Every time the program makes a guess, it should guess the midpoint of the remaining possible values.  Consider the first example above, in which the user has chosen the number 81: On the first guess, the possible values are 1 to 100. The midpoint is 50, so that's the computer's first guess. The user responds by saying 'h' for “higher” On the second guess the possible values are 51 to 100. The midpoint is 75. The user responds by saying 'h' for “higher” On the third guess the possible values are 76 to 100. The midpoint is 88. The user responds by saying 'l' for “lower” On the fourth guess the possible values are 76 to 87. The midpoint is 81. The user responds 'c' for “correct”   Requirements The purpose of the assignment is to practice writing functions. Although it would be possible to write the entire program in the main() function, your solution should be heavily structured with functions. To receive credit, your main function must look like this: int main() { do {   playOneGame(); } while (shouldPlayAgain()); return 0; } You must also have the following functions specified below: The playOneGame() function has a return type of void. It implements a complete guessing game on the range of 1 to 100.   The shouldPlayAgain() function has a bool return type. It prompts the user to determine if the user wants to play again, reads in a character, returns true if the character is a ‘y’, and otherwise returns false. In addition, implement the helper functions getUserResponseToGuess(), and getMidpoint(). They should be called inside your playOneGame() function. getUserResponseToGuess. This function takes a parameter guess of type int.  It prompts the user with the phrase “is it guess? (h/l/c): “  and returns a char. The char should be one of three possible values: ‘h’, ‘l’, or ‘c’.  For example, if parameter guess is 75, the prompt would be "is it 75? (h/l/c):" It has the following signature: char getUserResponseToGuess(int guess) getMidpoint. This function takes two int parameters, and returns the midpoint of the two integers. It has the following signature: int getMidpoint(int low, int high) Suggestions Test your functions one by one as you write them.  Once you're sure they're all working you can put them all together to make the whole game work. What to submit Submit a file with your program and sample output demonstrating program behavior with a couple games played, in one big .cpp file (not .rtf, .pdf, or .doc file).   Optional but Recommended For extra practice, write a function named getRandomMidpoint.  This function should accept two arguments just like getMidpoint.  But it should return a random number in between the low and high arguments.  You can swap this function with the getMidpoint function to change the nature of how the program makes its guesses.  To get extra credit, make sure to show output of your program using both getMidpoint and getRandomMidpoint showing different behaviors.  Don't forget to add a call to srand() at the beginning of your program in main() to make sure each run of the program generates new "random" numbers.

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
icon
Concept explainers
Question
100%

In this assignment you will write a C++ program that can figure out a number chosen by a human user. The human user will think of a number between 1 and 100. The computer program will make guesses and the user will tell the program to guess higher or lower.

A sample run of the program should look something like this, with the user inputs in orange:

Think of a number between 1 and 100.
Is it 50?  (h/l/c): h
Is it 75?  (h/l/c): h
Is it 88?  (h/l/c): l
Is it 81?  (h/l/c): c
Great! Do you want to play again? (y/n): y
Think of a number between 1 and 100.  
Is it 50?  (h/l/c): l
Is it 25?  (h/l/c): h
Is it 37?  (h/l/c): c
Great! Do you want to play again? (y/n): n

Notice that the user inputs the characters ‘h’, ‘l’, and ‘c’ for higher, lower, and correct, respectively.

Every time the program makes a guess, it should guess the midpoint of the remaining possible values.  Consider the first example above, in which the user has chosen the number 81:

On the first guess, the possible values are 1 to 100. The midpoint is 50, so that's the computer's first guess.

The user responds by saying 'h' for “higher”

On the second guess the possible values are 51 to 100. The midpoint is 75.

The user responds by saying 'h' for “higher”

On the third guess the possible values are 76 to 100. The midpoint is 88.

The user responds by saying 'l' for “lower”

On the fourth guess the possible values are 76 to 87. The midpoint is 81.

The user responds 'c' for “correct”

 

Requirements

The purpose of the assignment is to practice writing functions. Although it would be possible to write the entire program in the main() function, your solution should be heavily structured with functions. To receive credit, your main function must look like this:

int main()
{
do
{
  playOneGame();
} while (shouldPlayAgain());

return 0;
}

You must also have the following functions specified below:

The playOneGame() function has a return type of void. It implements a complete guessing game on the range of 1 to 100.  

The shouldPlayAgain() function has a bool return type. It prompts the user to determine if the user wants to play again, reads in a character, returns true if the character is a ‘y’, and otherwise returns false.

In addition, implement the helper functions getUserResponseToGuess(), and getMidpoint(). They should be called inside your playOneGame() function.

getUserResponseToGuess. This function takes a parameter guess of type int.  It prompts the user with the phrase “is it guess? (h/l/c): “  and returns a char. The char should be one of three possible values: ‘h’, ‘l’, or ‘c’.  For example, if parameter guess is 75, the prompt would be "is it 75? (h/l/c):" It has the following signature:

char getUserResponseToGuess(int guess)

getMidpoint. This function takes two int parameters, and returns the midpoint of the two integers. It has the following signature:

int getMidpoint(int low, int high)

Suggestions

Test your functions one by one as you write them.  Once you're sure they're all working you can put them all together to make the whole game work.

What to submit

Submit a file with your program and sample output demonstrating program behavior with a couple games played, in one big .cpp file (not .rtf, .pdf, or .doc file).  

Optional but Recommended

For extra practice, write a function named getRandomMidpoint.  This function should accept two arguments just like getMidpoint.  But it should return a random number in between the low and high arguments.  You can swap this function with the getMidpoint function to change the nature of how the program makes its guesses.  To get extra credit, make sure to show output of your program using both getMidpoint and getRandomMidpoint showing different behaviors.  Don't forget to add a call to srand() at the beginning of your program in main() to make sure each run of the program generates new "random" numbers. 

 

Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps with 1 images

Blurred answer
Knowledge Booster
Operators
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
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