Prachi K.

asked • 02/25/20

Write a C++ program

Suppose you have to develop small software to assist the primary students. Write a program that will help an elementary school student learn multiplication. Use the rand function to produce two positive one-digit integers. The program should then prompt the user with a question, such as

How much is 6 times 7?

The student then inputs the answer. Next, the program checks the student’s answer. If it’s correct, display the message "Very good!" and ask another multiplication question. If the answer is wrong, display the message "No. Please try again." and let the student try the same question repeatedly until the student finally gets it right. A separate function should be used to generate each new question. This function should be called once when the application begins execution and each time the user answers the question correctly.

For making your software more interesting, program should display various comments for each answer as follows:

Possible responses to a correct answer:

Very good!

Excellent!

Nice work!

Keep up the good work!

Possible responses to an incorrect answer:

No. Please try again.

Wrong. Try once more.

Don't give up!

No. Keep trying.

Use random-number generation to choose a number from 1 to 4 that will be used to select one of the four appropriate responses to each correct or incorrect answer. Use a switch statement to issue the responses.

To make you software more sophisticate, system should monitor the student’s performance over a period of time. The decision to begin a new topic is often based on the student’s success with previous topics. System should count the number of correct and incorrect responses typed by the student. After the student types 10 answers, your program should calculate the percentage that is correct. If the percentage is lower than 75%, display "Please ask your teacher for extra help.", then reset the program so another student can try it. If the percentage is 75% or higher, display "Congratulations, you are ready to go to the next level!", then reset the program so another student can try it. System should support various difficulty levels. At a difficulty level of 1, the program should use only single-digit numbers in the problems; at a difficulty level of 2, numbers as large as two digits, and so on.





1 Expert Answer

By:

Sid M.

tutor
#include using std::cin; using std::cout; using std::endl; #include // askAMultiplicationQuestion() forms a multiplication question, of 2, // random 1-digit numbers (i.e. numbers bertween 0 and 9), poses the // question to the user, and return the expected answer. int askAMultiplicationQuestion() { // Chosse 2 random values, and limit them to between 0 and 9. int a = rand() % 10; int b = rand() % 10; // Pose the problem,... cout << "How much is " << a << " times " << b << "? "; // ... and return the expected answer. return a * b; } // isGivenAnswerCorrect() compares a given answer and an expected // answer. If they are equivalent, it displays a random // congradulatory resonse, and returns true. Otherwise, it displays // an encouraging "try again" response, and returns false. bool isGivenAnswerCorrect(int givenAnswer, int expectedAnswer) { // Check the answer. if (givenAnswer == expectedAnswer) { // Some congradulatory responses... char const *responses[] = { "Very good!", "Excellent!", "Nice work!", "Keep up the good work!" }; // The following 'trick' lets us find out how many answers we // have, without needing to put a specific number in. int numberOfResponses = (sizeof(responses) / sizeof(responses[0])); // Show a random response. cout << responses[rand() % numberOfResponses] << endl; return true; } else { // As above, but not congradulatory...! char const *responses[] = { "No. Please try again.", "Wrong. Try once more.", "Don't give up!", "No. Keep trying." }; int numberOfResponses = (sizeof(responses) / sizeof(responses[0])); cout << responses[rand() % numberOfResponses] << endl; return false; } } int main() { // We need to keep track of the number answer provided by the user, // as well as the number of correct answers. int numberOfCorrectResponses = 0; int numberOfResponses = 0; // While the user has provide less than 10 answers.... while (numberOfResponses < 10) { // ... ask a question, and get the expected answer. int expectedAnswer = askAMultiplicationQuestion(); // Now, loop, getting an answer from the user, until they either // get it right, or they've answered 10 times. do { // The user's answer. int givenAnswer; cin >> givenAnswer; // It's a new answer, so count it. numberOfResponses += 1; // If the answer is correct,... if (isGivenAnswerCorrect(givenAnswer, expectedAnswer)) { // ... count it as such, and go on to the nexrt question. numberOfCorrectResponses += 1; break; } } while (numberOfResponses < 10); } // Determine whether the user has >= 0.75 (75%) correct answers, and // give an appropriate response. double percentageOfCorrectAnswers = double(numberOfCorrectResponses) / double(numberOfResponses); if (percentageOfCorrectAnswers < 0.75) { cout << "Please ask your teacher for extra help." << endl; } else { cout << "Congratulations, you are ready to go to the next level!" << endl; } // Done (with this user). return 0; }
Report

02/25/20

Still looking for help? Get the right answer, fast.

Ask a question for free

Get a free answer to a quick problem.
Most questions answered within 4 hours.

OR

Find an Online Tutor Now

Choose an expert and meet online. No packages or subscriptions, pay only for the time you need.