四则运算
#include<iostream.h> #include<time.h> #include<stdlib.h> #include<stdio.h> int wrong=0; int right=0; //定义全局变量 void judge(int k1,int k2) //判断算式是否正确 { int m; int k3; // cout<<"请回答"<<endl; cin>>k3; if(m=0) { if(k1+k2!=k3) { cout<<"回答错误"<<endl; wrong++; } else { cout<<"回答正确"<<endl; right++; } } if(m=1) { if(k1-k2!=k3) { cout<<"回答错误"<<endl; wrong++; } else { cout<<"回答正确"<<endl; right++; } } if(m=2) { if(k1*k2!=k3) { cout<<"回答错误"<<endl; wrong++; } else { cout<<"回答正确"<<endl; right++; } } if(m=3) { if(k1/k2!=k3) { cout<<"回答错误"<<endl; wrong++; } else { cout<<"回答正确"<<endl; right++; } } } void chengchu1() //实现各种定制功能 { int k1,k2; int d; int x,y; int m; x=rand()%d; // y=rand()%d; m=rand()%4; if(m==0) { cout<<x<<'+'<<y<<'='<<endl; judge(k1,k2); } if(m==1&&x>=y) { cout<<x<<'-'<<y<<'='<<endl; judge(k1,k2); } if(m==2) { cout<<x<<'*'<<y<<'='<<endl; judge(k1,k2); } if(m==3&&y!=0) { cout<<x<<'/'<<y<<'='<<endl; judge(k1,k2); } } void chengchu2() { int k1,k2; int d; int x,y; int m; x=rand()%d; y=rand()%d; m=rand()%4; if(m==3) { cout<<x<<'*'<<y<<'='<<endl; judge(k1,k2); } if(m==4&&y!=0) { cout<<x<<'/'<<y<<'='<<endl; judge(k1,k2); } } void jiajian1() { int k1,k2; int d; int x,y; int m; x=rand()%d; y=rand()%d; m=rand()%4; if(m==0&&x>0&&y>0) { cout<<x<<'+'<<y<<'='<<endl; judge(k1,k2); } if(m==1&&x>=y&&x>0&&y>0) { cout<<x<<'-'<<y<<'='<<endl; judge(k1,k2); } if(m==2) { cout<<x<<'*'<<y<<'='<<endl; judge(k1,k2); } if(m==3&&y!=0) { cout<<x<<'/'<<y<<'='<<endl; judge(k1,k2); } } void jiajian2() { int k1,k2; int d; int x,y; int m; x=rand()%d; y=rand()%d; m=rand()%4; if(m==3&&x>0&&y>0) { cout<<x<<'*'<<y<<'='<<endl; judge(k1,k2); } if(m==4&&y!=0&&x>0&&y>0) { cout<<x<<'/'<<y<<'='<<endl; judge(k1,k2); } } int main() { int k3; int i; int a,b,c,d; cout<<"需要乘除法吗?需要请输入1:;不需要请输入2:"<<endl; cin>>a; cout<<"定制题目数:"<<endl; cin>>b; cout<<"加减需要有负数吗?需要请输入1;不需要请输入2:"<<endl; cin>>c; cout<<"输入数的范围:"<<endl; cin>>d; for(i=0;i<b;i++) { if(c=1) { if(a=1) { chengchu1(); cout<<"请输入答案:"<<endl; cin>>k3; } else { chengchu2(); cout<<"请输入答案:"<<endl; cin>>k3; } } else { if(a=1) { jiajian1(); cout<<"请输入答案:"<<endl; cin>>k3; } else { jiajian2(); cout<<"请输入答案:"<<endl; cin>>k3; } }
基本算法思路
首先随机四则运算需要数字的随机
定义两个数随机的算法
int a=rand%N 其中N为定义范围即(0-N)
随机数完成后需要加减乘除的随机
加减乘除是符号,不是数字,因此可以定义一个char m=rand%3
m就是随机数当M=0,m=2,m=3,m=1是各是一种运算符号 可以用IF语句来实现
然后判断对错正确为right 错误为wrong,错误一个记录wrong+1正确一个right+1
最后输出正确数量与错误数量即可
基本思路设计完成之后需要考虑对四则运算规则的一些考虑
例如分母不能为0等此时加入判定条件(ij为数字)
if(m==0&&i!=0&&j!=0)
此时不符合判定结果不会输出,其它三个运算也一样
代码中用的IF语句较多,因此可以调用采用调用函数的方式,
开始定义函数judge(int a,int b)
后面可以直接调用
对于后期可能需要乘除或者负数的运算,可以采用一个for循环来实现
定义int k int b
例如用户需要乘除,此时将K赋值为1
k=1下面用一个if选择语句来判断是否加入乘除
K=1判断加入则直接调用乘除法的函数。是否需要负数也是一样的原理
编程后总结
难点:需求上需要考虑到一些特殊情况,例如是否有乘除负数等。设计上需要较多的if语句,逻辑关系需要清晰,自身编程中错误较多,很容易忽略掉一些细小的地方,例如一个分号。对函数的调用运用不是很好,容易出错,调用不出来,导致整个程序无法运行,需要在这方面加强练习。
编程是有思路有但是不容易转化为代码,这个过程比较艰难,就是在自然语言与机器语言转化中理解不够,对代码的理解度不够。
解决方法 多练习一些比较经典的算法,如冒泡排序,选择排序等等。