一、 题目:小学生四则运算练习器
二、 目的与要求:
1. 目的:
培养学生综合利用C++语言进行程序设计的能力,通过学生独立思考,提高学生将所学知识转化为分析和设计简单实际问题的能力,建立程序文档、归纳总结的能力,从而增强创新和实践能力。
2. 基本要求:
要求用C++语言编程,在Visual C++环境下调试完成。
三、 设计方法和基本原理:
1. 问题功能描述:
编制小学生进行加减乘除四则运算的练习程序。首先进行运算种类和运算数范围的选择,然后根据选择显示相应的算式。用户输入答案后进行正确和错误的判定:解答正确显示下一题;错误给出正确答案并显示下一题。每次10题,给出成绩,并询问是否继续,如图所示。
注意:减法运算要求被减数大于减数。除法运算可不实现(只实现加减乘即可)。
2. 问题的解决方案:
按照程序要求,应采用模块化设计方法,设计几个功能模块即函数。例如(仅供参考):
 选择运算种类函数:显示选项,用户输入。
 选择运算数范围函数:显示选项,用户输入。
 测试函数:利用循环实现10个题目的测试:利用随机函数产生随机整数,根据用户选择的运算数范围得到符合要求的运算数;根据用户选择的运算种类显示表达式并存储正确结果;对用户输入的答案进行正确与错误的判定(错误显示正确答案),记录成绩。最后显示成绩。
主函数中实现对这些函数的调用以完成程序功能。
3. 主要技术问题的描述: 
使用rand()函数(无参)可产生随机整数,每调用1次rand()就产生1个随机数。
为使每次运行程序,rand()函数产生不同的随机数,要调用一次srand函数:
srand(time(NULL));
这些函数涉及到的头文件有
#include <stdlib.h>
#include <time.h>
例如产生10个随机整数的程序:
#include <iostream.h>
#include <stdlib.h>
#include <time.h>
void main()
{
srand(time(NULL));
int a[10],i;
for (i=0;i<10;i++)
a[i]=rand();
for (i=0;i<10;i++)
cout<<a[i]<<'\t';
}
利用随机函数生成运算数,然后获取符合范围的运算数,显示算式并保存正确答案。
四、 创新要求:
实现程序功能后,可进行创新设计(3项全部实现为创新):
1) 用户选择好运算种类和运算数范围后,测试题目数量由用户输入。
2) 当输入答案错误时,允许最多三次输入,三次错误再给出正确答案(给出设定成绩方案并实现)。
3) 实现除法运算。因为除法运算要求能整除并且两个运算数不能相近,所以两个运算数的产生与加减乘不同,给出解决方法并实现。