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;
}
运行效果
最后大家也可以根据自己的理解试着添加除法算式
