c++, DEVCPP NOTE: Please provide the comment for each section//, I am a beginner
ID: 3748041 • Letter: C
Question
c++, DEVCPP
NOTE: Please provide the comment for each section//, I am a beginner, I need to understand, how the program is working. Thanks.
1) Write code for a 3rd Grade math teacher program that provides simple addition questions. Use only numbers in the range 0 to 100 inclusive in the math problems. No number should exceed 100 in the questions or answers. Ask the student for how many questions to generate and provide that many questions. Use the code to generate random numbers.
2) Instead of asking for a number of questions, keep generating questions until the answer given is a sentinel value which ends the quiz. A negative number is a good sentinel because all valid answers are from 0 to 100. Do not ask: "Do you want another question? (y/n)" after each answer. This makes the quiz tedious for the user. Instead, provide a sentinel to quit. The quiz quits when the sentinel is entered.
3) Ask the user for a number of questions as in variation 1, but also allow the user to stop early as in variation 2. This provides more flexibility. The quiz quits when the total number of questions requested have been presented OR the sentinel was entered.
4) Provide a score at the end: number correct, number wrong, and percentage correct. CAUTION! Avoid divide by 0 if no questions are answered!
5)Generate addition, subtraction, multiplication, and division questions. Provide statistics on how the student did on each operation. Advise whether more study is recommended. Be very careful attempting this part. It is much more difficult to generate valid values for all 4 operations. Your program can crash if you allow divide be zero.
Provide a header comment block.
IMPORTANT! All numbers involved in the math problems should be in the range 0 - 100. This includes numbers for questions and answers. For example, if 81 / 9 is a valid question, but 56 / 13 is not, because the answer is a weird fraction – not suitable for a 3rd grader. 21 * 4 is a valid question, but 21 * 57 is not. The answers should be in the range of 0 - 100. Test your code with 5 questions and answers minimum.
Explanation / Answer
SOURCE CODE:
#include<stdio.h>
using namespace std;
int correct=0,wrong=0;
float per=0;
int add()
{
int a,b,ans;
a=rand()%100;
cout<<a<<"+";
b=rand()%(100-a);
cout<<b<<"=";
cin>>ans;
if(ans==a+b)
correct++;
else
wrong++;
return ans;
}
int substraction()
{
int a,b,ans;
a=rand()%100;
cout<<b<<"=";
cin>>ans;
if(ans==a-b)
correct++;
else
wrong++;
return ans;
}
int multiplication()
{
int a,b,ans;
do
{
a=rand()%100;
}while(a==0);
cout<<a<<"*";
b=rand()%(100/a);
cout<<b<<"=";
cin>>ans;
if(ans==a*b)
correct++;
else
wrong++;
return ans;
}
int division()
{
int a,b,ans;
do
{
a=rand()%100;
}while(a==0);
cout<<a<<"/";
int temp=a;
while(temp)
{
b=temp/2;
break;
}
else
temp--;
}
cout<<b<<"=";
cin>>ans;
if(ans==a/b)
correct++;
else
wrong++;
return ans;
}
int main()
{
int choice;
int num;
cout<< "enter number questions?";
cin>>num;
while(num<=0&&num>=100)
{
cout<<"wrong choice enter again";
cin>>num;
}
int quit=0;
while(num&&quit>=0)
{
choice=rand()%3+1;
switch(choice)
{
case 1: quit=add();
break;
case 2:
quit=substraction();
break;
case 3:quit=multiplication();
break;
case 4:quit=division();
break;
}
num--;
}
cout<<"correct answered="<<correct<<" "<<"wrong="<<wrong<<" ";
percentage=(correct*1.0/num)*100;
cou<<' "<<percentage="<<percentage;
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.