问题及代码:
/*
*文件名称:小学生数学计算出题库
*作者:刘涛
完成日期:2016.3.19
*
*问题描述:设计一个程序,用来实现帮助小学生进行算数练习。
*输入描述:输入小学生算出的正确答案
程序输出:给出小学生做题的对错,并判断最对了几道题和最后得分;
*/
#include <iostream>
#include<ctime>
#include<stdlib.h>
using namespace std;
int main()
{
int iTrueResult,iInputResult;
int iNumber=1,iResultcount;
srand(time(0));
while(iNumber<=10)
{
int iJudge=rand()%4;
cout<<"第"<<iNumber<<"题";
int iOne=rand()%100;
int iTwo=rand()%100;
if(iJudge==0)
{
iTrueResult=iOne+iTwo;
cout<<iOne<<"+"<<iTwo<<"=";
cin>>iInputResult;
if(iInputResult==iTrueResult)
{
cout<<"right"<<endl;
iResultcount++;
}
else
cout<<"wrong"<<endl;
}
if(iJudge==1)
{
iTrueResult=iOne-iTwo;
cout<<iOne<<"-"<<iTwo<<"=";
cin>>iInputResult;
if(iInputResult==iTrueResult)
{
cout<<"right"<<endl;
iResultcount++;
}
else
cout<<"wrong"<<endl;
}
if(iJudge==2)
{
iTrueResult=iOne*iTwo;
cout<<iOne<<"*"<<iTwo<<"=";
cin>>iInputResult;
if(iInputResult==iTrueResult)
{
cout<<"right"<<endl;
iResultcount++;
}
else
cout<<"wrong"<<endl;
}
if(iJudge==3)
{
iTrueResult=iOne/iTwo;
cout<<iOne<<"/"<<iTwo<<"=";
cin>>iInputResult;
if(iInputResult==iTrueResult)
{
cout<<"right"<<endl;
iResultcount++;
}
else
cout<<"wrong"<<endl;
}
iNumber++;
}
cout<<"一共答对了"<<iResultcount<<"得了"<<iResultcount*10;
return 0;
}
运行结果:
<img src="https://img-blog.csdn.net/20160319202756673?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
知识点总结:本题反复运用了if判断语句,编码过程中十分容易出错,还运用了srand以及rand;取随机数的函数。
学习心得:碰到这种编码量比较大的例题,检查错误出在哪里十分繁琐,要学会运用step into/out来查找错误;
做这种题编码量有重复的地方,直接复制即可,再改一下必要的数,学会节省时间。