在此,我对低年级(一二年级)做了一个程序,它可以随机出题, 让你答题,对了加分,错了扣分,最终输出得分,下面 ↓ 给大家提供一种思路,可以把数据进行修改,除法尽量不要加。(完整代码在最下方)
下面是目录
目录
四、显示对错
五、完善代码并显示得分
一、导库
这个程序,既然要随机出题,那么要一个随机库,我们用#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文件时得分也能保留!按下任意按键就能结束啦