C++自动出题小程序

我认为每个人都应该学习编程,这不是为了任何实际的用途,

而是因为编程可以教你思考。

——史蒂夫·乔布斯,1995年

学的是思维而不是编程

很多人都觉得编程是一件很困难的事,只能靠死记硬背,但这样只会在编程的世界里摸爬滚打,到头来还是一场空。

大问题化小问题逐步分析

大问题化小问题是很好的学习方法,不仅可以用在编程上,也可以运用在日常生活中,今天我们做的程序就可以用这种方法

1

写好C++基础格式

#include<bits/stdc++.h> //这里我用的是万能头文件可以涵盖所有头文件

using namespace std;

int main(){

}

2

定义a,b,c,d存储变量

#include<bits/stdc++.h>

using namespace std;

int main(){

int a,b,c,d;//其中a代表运算数字1,b代表运算数字2,c代表玩家输入结果,d用来判断加减乘除

}

3

随机a,b,c,d

#include<bits/stdc++.h>

using namespace std;

int main(){

int a,b,c,d;

for(int i=0;i<10000;i++){//使程序不停下来

srand(time(0));//使程序不停更新迭代,随机出数字(伪随机)

a=rand()%100+1;//随机a:0~100

b=rand()%100+1;//随机b:0~100

d=rand()%4+1;//随机d:0~4

}

}

4

判断条件输出算式

#include<bits/stdc++.h>

using namespace std;

int main(){

int a,b,c,d;

for(int i=0;i<10000;i++){

srand(time(0));

a=rand()%100+1;

b=rand()%100+1;

d=rand()%4+1;

if(d==1){//判断条件

cout<<a<<"+"<<b<<"=";//d为1则输出加算式

}else if(d==2&&a>=b){//判断条件

cout<<a<<"-"<<b<<"=";//d为2且被乘数>乘数(a>b)则输出减算式

}else if(d==3){//判断条件

cout<<a<<"*"<<b<<"=";//d为3则输出乘算式

}else if(d==4&&a%b==0){//判断条件

cout<<a<<"/"<<b<<"=";//d为4且被除数/除数无余数(a%b==0)

}else{

continue;//d为0则跳过这次循环

}

}

}

5

玩家输入算式结果

#include<bits/stdc++.h>

using namespace std;

int main(){

int a,b,c,d;

for(int i=0;i<10000;i++){

srand(time(0));

a=rand()%100+1;

b=rand()%100+1;

d=rand()%4+1;

if(d==1){

cout<<a<<"+"<<b<<"=";

}else if(d==2&&a>=b){

cout<<a<<"-"<<b<<"=";

}else if(d==3){

cout<<a<<"*"<<b<<"=";

}else if(d==4&&a%b==0){

cout<<a<<"/"<<b<<"=";

}else{

continue;

}

cin>>c;//玩家输入给出算式结果

}

}

6

判断输入结果是否正确

#include<bits/stdc++.h>

using namespace std;

int main(){

int a,b,c,d;

for(int i=0;i<10000;i++){

srand(time(0));

a=rand()%100+1;

b=rand()%100+1;

d=rand()%4+1;

if(d==1){

cout<<a<<"+"<<b<<"=";

}else if(d==2&&a>=b){

cout<<a<<"-"<<b<<"=";

}else if(d==3){

cout<<a<<"*"<<b<<"=";

}else if(d==4&&a%b==0){

cout<<a<<"/"<<b<<"=";

}else{

continue;

}

cin>>c;

if(d==1){//判断条件

if(a+b==c){//正确输出正确

cout<<"正确"<<endl;

}else{

cout<<"错误"<<endl;//错误输出错误

cout<<"正确答案是:"<<a+b<<endl; // 并输出正确答案

}

}else if(d==2&&a>=b){//判断条件 a>=b

if(a-b==c){//正确输出正确

cout<<"正确"<<endl;

}else{

cout<<"错误"<<endl;//错误输出错误

cout<<"正确答案是:"<<a-b<<endl; // 并输出正确答案

}

}else if(d==3){//判断条件

if(a*b==c){//正确输出正确

cout<<"正确"<<endl;

}else{

cout<<"错误"<<endl;//错误输出错误

cout<<"正确答案是:"<<a*b<<endl; // 并输出正确答案

}

}

}

return 0;

}

完整代码

#include<bits/stdc++.h>

using namespace std;

int main(){

int a,b,c,d;

for(int i=0;i<10000;i++){

srand(time(0));

a=rand()%100+1;

b=rand()%100+1;

d=rand()%4+1;

if(d==1){

cout<<a<<"+"<<b<<"=";

}else if(d==2&&a>=b){

cout<<a<<"-"<<b<<"=";

}else if(d==3){

cout<<a<<"*"<<b<<"=";

}else if(d==4&&a%b==0){

cout<<a<<"/"<<b<<"=";

}else{

continue;

}

cin>>c;

if(d==1){

if(a+b==c){

cout<<"正确"<<endl;

}else{

cout<<"错误"<<endl;

cout<<"正确答案是:"<<a+b<<endl;

}

}else if(d==2&&a>=b){

if(a-b==c){

cout<<"正确"<<endl;

}else{

cout<<"错误"<<endl;

cout<<"正确答案是:"<<a-b<<endl;

}

}else if(d==3){

if(a*b==c){

cout<<"正确"<<endl;

}else{

cout<<"错误"<<endl;

cout<<"正确答案是:"<<a*b<<endl;

}

}

}

return 0;

}

运行效果

最后大家也可以根据自己的理解试着添加除法算式

(0)

相关推荐