四则运算

  #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语句,逻辑关系需要清晰,自身编程中错误较多,很容易忽略掉一些细小的地方,例如一个分号。对函数的调用运用不是很好,容易出错,调用不出来,导致整个程序无法运行,需要在这方面加强练习。

编程是有思路有但是不容易转化为代码,这个过程比较艰难,就是在自然语言与机器语言转化中理解不够,对代码的理解度不够。

解决方法 多练习一些比较经典的算法,如冒泡排序,选择排序等等。

 

posted @ 2015-04-02 22:59  马思勉  阅读(191)  评论(0编辑  收藏  举报