培养口算能力的程序

本文介绍了一种用C++编写的简单程序,用于生成随机数学题目(包括加减乘除)供一二年级学生练习,用户输入答案后得到得分反馈。程序涵盖了随机数生成、运算符号选择、题目输出和分数计算功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在此,我对低年级(一二年级)做了一个程序,它可以随机出题, 让你答题,对了加分,错了扣分,最终输出得分,下面 ↓ 给大家提供一种思路,可以把数据进行修改,除法尽量不要加。(完整代码在最下方)

                                            下面是目录

                                                             目录

                        一、导库

                        二、随机生成数字和符号

                        三、输出题目与作答

                ​​​​​​​        四、显示对错 

                ​​​​​​​        五、完善代码并显示得分


一、导库

这个程序,既然要随机出题,那么要一个随机库,我们用#include <······>来导库,代码如下图所示👇

#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std; 
int main()

二、随机生成数字和符号

那么后面,光导库不用那怎么行,肯定要出来点什么符号啊,随机数啊!别着急!下面就来了。我们来一步一步地完善我们的代码

#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std; 
int main()
{
	int x, y, symbol, ans; 
	int n, temp, sum=0; 
	srand(time(0)); // 初始化随机数发生器
	for(int i=1; i<=20; i++){
		x=rand()%9+1; // 生成十以内的整数
		y=rand()%9+1; // %9可以改成%19;%99······
		symbol=rand()%4; // 随机生成加减乘除四个运算符号
		if(x<y&&(symbol==1||symbol==3)){
			temp=x; 
            x=y;
			y=temp; //交换x和y
		}

这是什么情况?还要做调换?原来,减法和除法的除数 / 减数大于被除 / 减数了,不够除 / 减。咦?为什么for循环的括号没有括起来呢?因为题目还没输出呢,还要用户做题呢!下面就有啦。


三、输出题目与作答

我们还有几步就完成了,但是我们还是要一步步走下去。所以我们要输出题目,让用户作答。四种运算符号都有,那么要用if···else if···else if···else···吗?那太麻烦了,我们可以用switch语句来做。代码如下👇。

#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std; 
int main()
{
	int x, y, symbol, ans; 
	int n, temp, sum=0; 
	srand(time(0)); // 初始化随机数发生器
	for(int i=1; i<=20; i++){
		x=rand()%9+1; // 生成十以内的整数
		y=rand()%9+1; // %9可以改成%19;%99······
		symbol=rand()%4; // 随机生成加减乘除四个运算符号
		if(x<y&&(symbol==1||symbol==3)){
			temp=x; 
            x=y;
			y=temp; //交换x和y
		}
		switch(symbol){ //使用switch语句
			case 0: // 当symbol为0
				ans=x+y;
				cout << x <<'+' << y << '='; break; 
			case 1: // 当symbol为1
				ans=x-y;
				cout <<x<<'-'<< y << '='; break;
			case 2: // 当symbol为2
			    ans=x*y;
				cout << x<<"×"<<y<<'=';break; 
			case 3: // 当symbol为3
			    ans=x/y;
				cout << x<<"÷"<<y<<'=';break; 
		}
		cin >> n; // 输入用户的答案

四、显示对错 

答案在哪里呀,答案在哪里,我找不到它,也不说我做对了没有,这可不行。哎,答案就两种,对和错,干脆就用if···else···语句吧!哦,对,前面还说了加分和减分的事情,下方👇程序里都有。(但不是全部,因为没有return 0;)

#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std; 
int main()
{
	int x, y, symbol, ans; 
	int n, temp, sum=0; 
	srand(time(0)); // 初始化随机数发生器
	for(int i=1; i<=20; i++){
		x=rand()%9+1; // 生成十以内的整数
		y=rand()%9+1; // %9可以改成%19;%99······
		symbol=rand()%4; // 随机生成加减乘除四个运算符号
		if(x<y&&(symbol==1||symbol==3)){
			temp=x; 
            x=y;
			y=temp; //交换x和y
		}
		switch(symbol){ //使用switch语句
			case 0: // 当symbol为0
				ans=x+y;
				cout << x <<'+' << y << '='; break; 
			case 1: // 当symbol为1
				ans=x-y;
				cout <<x<<'-'<< y << '='; break;
			case 2: // 当symbol为2
			    ans=x*y;
				cout << x<<"×"<<y<<'=';break; 
			case 3: // 当symbol为3
			    ans=x/y;
				cout << x<<"÷"<<y<<'=';break; 
		}
		cin >> n; // 输入用户的答案
		if(n==ans){
			sum+=5; // 对就加分并提示“对”
			cout << " 对!"<< endl;
		}
		else
            sum -= 5; // 错就扣分并提示“错”
			cout << " 错!" << endl;
五、完善代码并显示得分

呀!到最后一步了,我们干脆就把他搞完吧!还差一个输出得分和return 0; 了。那就快点看一下我们这次的完整程序吧!在下方👇。

// 来吧那就!
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std; 
int main()
{
	int x, y, symbol, ans; 
	int n, temp, sum=0; 
	srand(time(0)); // 初始化随机数发生器
	for(int i=1; i<=20; i++){
		x=rand()%9+1; // 生成十以内的整数
		y=rand()%9+1; // %9可以改成%19;%99······
		symbol=rand()%4; // 随机生成加减乘除四个运算符号
		if(x<y&&(symbol==1||symbol==3)){
			temp=x; 
            x=y;
			y=temp; //交换x和y
		}
		switch(symbol){ //使用switch语句
			case 0: // 当symbol为0
				ans=x+y;
				cout << x <<'+' << y << '='; break; 
			case 1: // 当symbol为1
				ans=x-y;
				cout <<x<<'-'<< y << '='; break;
			case 2: // 当symbol为2
			    ans=x*y;
				cout << x<<"×"<<y<<'=';break; 
			case 3: // 当symbol为3
			    ans=x/y;
				cout << x<<"÷"<<y<<'=';break; 
		}
		cin >> n; // 输入用户的答案
		if(n==ans){
			sum+=5; // 对就加分并提示 "对"
			cout << " 对!"<< endl;
		}
		else
            sum -= 5; // 错就扣分并提示 "错"
			cout << " 错!" << endl;
	}
	cout << " 得分 :" << sum << endl; // 输出得分
    cout << "Process exited with return value 0";
	system("pause"); // 按下任意按键退出
	return 0;
}

报告!作品完成!

恭喜!现在你可以给一二年级小学生使用了!

你可以登录直接复制到常用的C++软件,关掉软件运行exe文件时得分也能保留!按下任意按键就能结束啦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值