四则运算3

一、实验思路

     大部分沿用四则运算2的思路和代码。添加了输入答案和判断正误的程序

二、实验代码

//数值范围    1
//避免重复
//是否有乘除法   1
//加减有无负数   1
//除法有无余数   1
//输出格式控制   1
#include<iostream.h>
#include<stdlib.h>
int main()

   int  num,fanwei,mul,fushu,yushu,num1;
   int  a[100],b[100],c[4],temp,i,j,k;
   int d1=0,d2=0;//统计做对或者做错题数目
   double sum;
   cout<<"请输入题目数量:";
   cin>>num;
   cout<<"请输入题目中数值范围:";
   cin>>fanwei;
   cout<<"是否有乘除法(1表示有,其余表示没有):";
   cin>>mul;
   cout<<"是否允许减法结果为负数(1表示允许,其余表示不允许):";
   cin>>fushu;
   cout<<"除法结果有无余数(1表示允许,其余表示不允许):";
   cin>>yushu;
   cout<<"一行输出几道题目(不大于6道):";
   cin>>k;
   while(k<=0||k>6)
   {
      cout<<"注意输入要求:";
      cin>>k;
   }
   for(i=0;i<num;i++)  //进行 题目数量 次循环
   {
      a[i]=rand()%fanwei;  //控制数值范围
      b[i]=rand()%fanwei;
      if(mul==1)    //控制有无乘除法
       c[4]=rand()%4;    //根据c[4]的值随机出现四则运算
      else
       c[4]=rand()%2;
      if(c[4]==0)
      {
         cout<<a[i]<<"+"<<b[i]<<"=";
      } 
      if(c[4]==1)
      {  
         if(fushu != 1)
         {
            temp=a[i];
            a[i]=b[i];
            b[i]=temp;
            cout<<a[i]<<"+"<<b[i]<<"=";
            cin>>sum;
            if(sum==a[i]+b[i])
            {
               cout<<"回答正确"<<endl;
               d1++;
            }
         else
         {
           cout<<"回答错误"<<endl;
           d2++;
         }
      }
      else
       {
          cout<<a[i]<<"-"<<b[i]<<"=";
          cin>>sum;
          if(sum==a[i]-b[i])
          {
             cout<<"回答正确"<<endl;
             d1++;
          }
          else
          {
             cout<<"回答错误"<<endl;
             d2++;
          }
       }            
    } 
    if(c[4]==2)
    {
       while((yushu != 1)&&(a[i]%b[i] != 0));
       {
          a[i]=rand()%fanwei; 
       }
       cout<<a[i]<<"/"<<b[i]<<"=";
       cin>>sum;
        if(sum==a[i]/b[i])
        {
           cout<<"回答正确"<<endl;
           d1++;
        }
        else
        {
           cout<<"回答错误"<<endl;
           d2++;
        }
    }   
    if(c[4]==3)
    {   
       cout<<a[i]<<"*"<<b[i]<<"=";
       cin>>sum;
        if(sum==a[i]*b[i])
        {
           cout<<"回答正确"<<endl;
           d1++;
        }
        else
        {
           cout<<"回答错误"<<endl;
           d2++;
        }
    }
    if((i+1)%k==0)
     cout<<endl;
    for(j=0;j<i;j++)       //判断题目是否重复,若重复则a[i]++
     if(a[j]==a[i]&&b[j]==b[i]&&c[j]==c[i])    
      a[i]++;
   }
   cout<<"做对题数目:"<<d1<<endl;
     cout<<"做错题数目:"<<d2<<endl;
   return 0;
}

三、实验结果截图

四、错误分析

     由于没有余数,所以就出现第二道直接舍弃余数的答案;

  解决了上次实验如果要求一样出的题目一样的问题;

     对本次实验缺少思路,把题目想的太难,自己根本实现不了,然后在听了别人的建议后,在原先的基础上改了些许就实现了老师的要求,在以后的实验中要开拓思路,不能束缚自己的思想。

五、本周时间安排

周活动总结表

姓名:岳竞一                                   日期:2015.3.22

日期       任务

听课

编写程序

阅读课本

准备考试

 

 

日总计

周一

 200

 

 

 

 

 

200

周二

300

 

 

 

 

 

300

周三

 200

 30

 

 

 

 

230

周四

 200

 

 

 

 

 

 200

周五

 200

 50

 

 

 

 

 250

周六

 

 50

 

 

 

 

 50

总计

1100

130

       

1230

时间记录表:

学生        岳竞一                                            日期          2015.3.22     

教师        王建民                                             课程           PSP          

日期

开始时间

结束时间

中断时间

净时间

活动

备注

 3.18

14:50

 15:20

 

 30

 编程

 

 3.20

 15:10

 16:00

 

50

 编程

 

3.21

20:00

20:50

 

50

编程

 

缺陷记录表

学生       岳竞一   

日期       2015.3.22   

教员       王建民    

缺陷记录表

解决过程

解决办法

思路

百度类似题型,问同学

就原先基础,增加部分变量

除法中余数直接舍去

没完成

原文地址:https://www.cnblogs.com/yue3475975/p/4357503.html