Code in C++ a) The use of computers in education is referred to as computer-assi
ID: 3728470 • Letter: C
Question
Code in C++
a) The use of computers in education is referred to as computer-assisted instruction (CAI). 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.
b) One problem in CAI environments is student fatigue. This can be reduced by varying the computer’s responses to hold the student’s attention. Modify the program of "part a" so that various comments are displayed 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. Use two functions: one for responses to a correct answer and another for responses to an incorrect answer.
c) More sophisticated computer-assisted instruction systems 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. Modify the program of "part b" to count the number of correct and incorrect responses typed by the student. After the student types 10 answers, your program should use a function to calculate the percentage that are 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.
d) Part c" developed a computer-assisted instruction program to help teach an elementary school student multiplication. Modify the function you create in "part a" to allow the user to enter a difficulty level. 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.
e) Modify the program of "part d" to allow the user to pick a type of arithmetic problem to study. An option of 1 means addition problems only, 2 means subtraction problems only, 3 means multiplication problems only, 4 means division problems only and 5 means a random mixture of all these types.
Explanation / Answer
--------------------------------------a.cpp---------------------------------------
#include<bits/stdc++.h>
using namespace std;
pair<int,int> generate(){
int a,b,ans;
a = (1+ rand()%10)%10;
b = (1+ rand()%10)%10;
return make_pair(a,b);
}
int main(){
pair<int,int> p;
int ans,a,b;
while(1){
p = generate();
a = p.first;
b = p.second;
again:
cout<<"How much is "<<a<<" times "<<b<<"? ";
cin>>ans;
if(ans == a*b){
cout<<"very good.. ";
}
else
{
cout<<"try again ";
goto again;
}
}
return 0;
}
--------------------------------------end--------------------------------------------
--------------------------------b.cpp--------------------------------------------------
#include<bits/stdc++.h>
using namespace std;
pair<int,int> generate(){
int a,b,ans;
a = 1+ rand()%10;
b = 1+ rand()%10;
return make_pair(a,b);
}
string correct(){
int n = 1 + rand()%4;
string s ;
switch(n){
case 1:
s="Very good!";
break;
case 2:
s="Excellent!";
break;
case 3:
s="Nice work!";
break;
case 4:
s="Keep up the good work!";
}
return s;
}
string incorrect(){
int n = 1 + rand()%5;
string s ;
switch(n){
case 1:
s="No";
break;
case 2:
s="Please Try again.";
break;
case 3:
s="Try once more.";
break;
case 4:
s="Don't give up!";
break;
case 5:
s="No. Keep trying.";
}
return s;
}
int main(){
pair<int,int> p;
int ans,a,b;
while(1){
p = generate();
a = p.first;
b = p.second;
again:
cout<<"How much is "<<a<<" times "<<b<<"? ";
cin>>ans;
if(ans == a*b){
string str = correct();
cout<<str<<endl;
}
else
{
string str = incorrect();
cout<<str<<endl;
goto again;
}
}
return 0;
}
----------------------------------------end----------------------------------------------
======================================c.cpp============================
#include<bits/stdc++.h>
using namespace std;
pair<int,int> generate(){
int a,b,ans;
a = 1+ rand()%10;
b = 1+ rand()%10;
return make_pair(a,b);
}
string correct(){
int n = 1 + rand()%4;
string s ;
switch(n){
case 1:
s="Very good!";
break;
case 2:
s="Excellent!";
break;
case 3:
s="Nice work!";
break;
case 4:
s="Keep up the good work!";
}
return s;
}
string incorrect(){
int n = 1 + rand()%5;
string s ;
switch(n){
case 1:
s="No";
break;
case 2:
s="Please Try again.";
break;
case 3:
s="Try once more.";
break;
case 4:
s="Don't give up!";
break;
case 5:
s="No. Keep trying.";
}
return s;
}
int main(){
start:
pair<int,int> p;
int ans,a,b;
int corr_count =0;
int ans_count= 0;
while(1){
p = generate();
a = p.first;
b = p.second;
again:
if(ans_count == 10){
float per = corr_count *10;
if(per >= 75){
cout<<"Congratulations, you are ready to go to the next level! ";
goto start;
}else{
cout<<"Please ask your teacher for extra help. ";
goto start;
}
}
cout<<"How much is "<<a<<" times "<<b<<"? ";
cin>>ans;
ans_count ++;
if(ans == a*b){
corr_count++;
string str = correct();
cout<<str<<endl;
}
else
{
string str = incorrect();
cout<<str<<endl;
goto again;
}
}
return 0;
}
=====================end=====================================
-----------------------------------------------d.cpp-----------------------------------------------------
#include<bits/stdc++.h>
using namespace std;
pair<int,int> generate(int l){
int a,b,ans;
int start = pow(10,l-1);
int end = pow(10,l);
a = (start + rand()% end)%end;
b = (start + rand()% end)%end;
return make_pair(a,b);
}
float calculateper(int corr){
return corr*10;
}
string correct(){
int n = 1 + rand()%4;
string s ;
switch(n){
case 1:
s="Very good!";
break;
case 2:
s="Excellent!";
break;
case 3:
s="Nice work!";
break;
case 4:
s="Keep up the good work!";
}
return s;
}
string incorrect(){
int n = 1 + rand()%5;
string s ;
switch(n){
case 1:
s="No";
break;
case 2:
s="Please Try again.";
break;
case 3:
s="Try once more.";
break;
case 4:
s="Don't give up!";
break;
case 5:
s="No. Keep trying.";
}
return s;
}
int main(){
start:
pair<int,int> p;
int ans,a,b,level;
int corr_count =0;
int ans_count= 0;
cout<<"Enter difficulty level: "<<endl;
cin>>level;
while(1){
p = generate(level);
a = p.first;
b = p.second;
again:
if(ans_count == 10){
float per = calculateper(corr_count);
if(per >= 75){
cout<<"Congratulations, you are ready to go to the next level! ";
goto start;
}else{
cout<<"Please ask your teacher for extra help. ";
goto start;
}
}
cout<<"How much is "<<a<<" times "<<b<<"? ";
cin>>ans;
ans_count ++;
if(ans == a*b){
corr_count++;
string str = correct();
cout<<str<<endl;
}
else
{
string str = incorrect();
cout<<str<<endl;
goto again;
}
}
return 0;
}
-----------------------------------------------end--------------------------------------------------------
-------------------------------------------------e.cpp-------------------------------------
#include<bits/stdc++.h>
using namespace std;
// mypair to store the values return by generate
class mypair{
public:
int a,b;
char ch;
int result;
};
mypair generate(int l,int type){
mypair val;
int start = pow(10,l-1);
int end = pow(10,l);
val.a = (start + rand()% end)%end;
val.b = (start + rand()% end)%end;
int k =type ;
if(type == 5){
k = 1+ rand()%4;
}
switch(k){
case 1:
val.result = val.a+val.b;
val.ch = '+';
break;
case 2:
val.result = val.a-val.b;
val.ch = '-';
break;
case 3:
val.result = val.a*val.b;
val.ch = '*';
break;
case 4:
val.result = (val.a)/(val.b); // only consider int value do not taken decimal value
val.ch = '/';
break;
}
return val;
}
// function to calculate %age
float calculateper(int corr){
return corr*100/10;
}
// correct ans appriciation
string correct(){
int n = 1 + rand()%4;
string s ;
switch(n){
case 1:
s="Very good!";
break;
case 2:
s="Excellent!";
break;
case 3:
s="Nice work!";
break;
case 4:
s="Keep up the good work!";
}
return s;
}
// remarks for incorrect ans
string incorrect(){
int n = 1 + rand()%5;
string s ;
switch(n){
case 1:
s="No";
break;
case 2:
s="Please Try again.";
break;
case 3:
s="Try once more.";
break;
case 4:
s="Don't give up!";
break;
case 5:
s="No. Keep trying.";
}
return s;
}
int main(){
start:
mypair p;
int a,b,level,type;
float ans =0;
int corr_count =0;
int ans_count= 0;
// menu to select type of operator
cout<<" pick type of arthemetic problem: ";
cout<<" press 1: for Addition ";
cout<<" press 2: for subtraction ";
cout<<" press 3: for multiplication ";
cout<<" press 4: for divison ";
cout<<" press 5: for random mix of all types ";
cin>>type;
cout<<"Enter difficulty level: "<<endl;
cin>>level;
while(1){
// called generate function with level and type of arthemetic
p = generate(level,type);
again:
if(ans_count == 10){
float per = calculateper(corr_count);
if(per >= 75){
cout<<"Congratulations, you are ready to go to the next level! ";
goto start;
}
else{
cout<<"Please ask your teacher for extra help. ";
goto start;
}
}
cout<<"How much is "<<p.a<<p.ch<<p.b<<"? ";
cin>>ans;
ans_count ++;
if(ans == p.result){
corr_count++;
string str = correct();
cout<<str<<endl;
}
else
{
string str = incorrect();
cout<<str<<endl;
goto again;
}
}
return 0;
}
----------------------------------------------------------------end------------------------------------------------
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.