zoukankan      html  css  js  c++  java
  • 四则运算2扩展

    一、题目

    我在这次扩展中加入了实现让程序能接受用户输入答案,并判定对错,最后给出总共对/错的数量。

    二、设计思想

    接收用户输入的数,用if结构判断,对则继续,错则给出正解再继续。

    有余数除法部分加入类型转换,以实现浮点型答案输出。

    增加一个全局变量,对结果对错计数。

    因要逐题输入答案,所以去掉分列显示。

    三、代码

      1 #include<iostream.h>
      2 #include<stdlib.h>
      3 #include<time.h>
      4 
      5 static int i=0,j=0;
      6 
      7 void jia(int n)   //加法         
      8 {
      9     int a,b,m;
     10     a=rand()%n; 
     11     b=rand()%n;
     12     cout<<a<<"+"<<b<<"="<<"    ";
     13     cout<<"请输入结果:";
     14     cin>>m;
     15     cout<<endl;
     16     if(m==a+b)
     17     {
     18         cout<<"答案正确!"<<endl;
     19         i++;
     20     }
     21     else
     22     {
     23         cout<<"答案错误,正确答案是:"<<a+b<<endl<<endl;//给出正确答案
     24         j++;
     25     }
     26 }
     27 
     28 void jian(int n)   //减法   
     29 {
     30     int a,b,m;
     31     a=rand()%n;        
     32     b=rand()%n;     
     33     cout<<a<<"-"<<b<<"="<<"    ";
     34     cout<<"请输入结果:";
     35     cin>>m;
     36     cout<<endl;
     37     if(m==a-b)
     38     {
     39         cout<<"答案正确!"<<endl;
     40         i++;
     41     }
     42     else
     43     {
     44         cout<<"答案错误,正确答案是:"<<a-b<<endl<<endl;//给出正确答案
     45         j++;
     46     }
     47 }
     48 
     49 void jianfu(int n)    //无负数减法   
     50 {
     51     int a,b,t,m;
     52     a=rand()%n;        
     53     b=rand()%n;     
     54     if(a<b) 
     55     {t=a;a=b;b=t;}
     56     cout<<a<<"-"<<b<<"="<<"    ";
     57     cout<<"请输入结果:";
     58     cin>>m;
     59     cout<<endl;
     60     if(m==a-b)
     61     {
     62         cout<<"答案正确!"<<endl;
     63         i++;
     64     }
     65     else
     66     {
     67         cout<<"答案错误,正确答案是:"<<a-b<<endl<<endl;//给出正确答案
     68         j++;
     69     }
     70 }
     71 
     72 void cheng(int n)     //乘法
     73 {
     74     int a,b,m;
     75     a=rand()%n;      
     76     b=rand()%n;      
     77     cout<<a<<"*"<<b<<"="<<"    ";
     78     cout<<"请输入结果:";
     79     cin>>m;
     80     cout<<endl;
     81     if(m==a*b)
     82     {
     83         cout<<"答案正确!"<<endl;
     84         i++;
     85     }
     86     else
     87     {
     88         cout<<"答案错误,正确答案是:"<<a*b<<endl<<endl;//给出正确答案
     89         j++;
     90     }
     91 }
     92 
     93 void chu(int n)       //除法
     94 {
     95     int a,b;
     96     float m,f,g,h;
     97     a=rand()%n;     
     98     b=rand()%n;    
     99     while(b==0)
    100     {
    101         b=rand()%n;
    102     }
    103     cout<<a<<"/"<<b<<"="<<"    ";
    104     cout<<"请输入结果:";
    105     cin>>m;
    106     cout<<endl;
    107     if(m==a/b)
    108     {
    109         cout<<"答案正确!"<<endl;
    110         i++;
    111     }
    112     else
    113     {
    114         g=(float)a;
    115         h=(float)b;
    116         f=g/h;
    117         cout<<"答案错误,正确答案是:"<<f<<endl<<endl;//给出正确答案
    118         j++;
    119     }
    120 }
    121 
    122 void chuyu(int n)     //无余数除法
    123 {
    124     int a,b;
    125     float m,f,g,h;
    126     a=rand()%n;     
    127     b=rand()%n;            
    128     if(b==0)
    129     {
    130         b=rand()%n+1;
    131     }
    132     if(a%b!=0)
    133     {
    134         a=a-a%b;
    135     }
    136     cout<<a<<"/"<<b<<"="<<"    ";
    137     cout<<"请输入结果:";
    138     cin>>m;
    139     cout<<endl;
    140     if(m==a/b)
    141     {
    142         cout<<"答案正确!"<<endl;
    143         i++;
    144     }
    145     else
    146     {
    147         cout<<"答案错误,正确答案是:"<<a/b<<endl<<endl;//给出正确答案
    148         j++;
    149     }
    150 }
    151 
    152 void main()
    153 {
    154     srand((unsigned)time(NULL));
    155     
    156     int i,m,n,p,q,r;
    157     
    158     cout<<"请输入需要出题数目:"<<endl;
    159     cin>>m;
    160     
    161     cout<<"请输入数值范围(0—n):"<<endl;
    162     cin>>n;
    163     
    164     cout<<"请选择题目类型:"<<endl<<"0.加减法"<<endl<<"1.加减乘除法"<<endl;
    165     cin>>p;
    166     
    167     cout<<"请选择加减法有无负数:"<<endl<<"0.有"<<endl<<"1.无"<<endl;
    168     cin>>r;
    169     
    170     if(p==1)
    171     {
    172         cout<<"请选择除法有无余数:"<<endl<<"0.有"<<endl<<"1.无"<<endl;
    173         cin>>q;
    174     }
    175     
    176     switch(p)
    177     {
    178     case 0:        
    179         for(i=0;i<m;i++)
    180         {
    181             int a;
    182             a=rand()%2;
    183             switch(a)
    184             {
    185             case 0:
    186                 jia(n);
    187                 break;
    188             case 1:
    189                 if(r==1)
    190                 {
    191                     jianfu(n);
    192                 }
    193                 else
    194                 {
    195                     jian(n);
    196                 }
    197                 break;
    198             }
    199         }
    200         break;
    201     case 1:
    202         for(i=0;i<m;i++)
    203         {
    204             int b;
    205             b=rand()%4;
    206             switch(b)
    207             {
    208             case 0:
    209                 jia(n);
    210                 break;
    211             case 1:
    212                 if(r==1)
    213                 {
    214                     jianfu(n);
    215                 }
    216                 else
    217                 {
    218                     jian(n);
    219                 }
    220                 break;
    221             case 2:
    222                 cheng(n);
    223                 break;
    224             case 3:
    225                 if(q==1)
    226                 {
    227                     chuyu(n);
    228                 }
    229                 else
    230                 {
    231                     chu(n);
    232                 }
    233                 break;
    234             }
    235         }
    236     }
    237     cout<<"您回答正确的个数是:"<<i-j<<endl; //统计出回答正确的个数
    238     cout<<"您回答错误的个数是:"<<j<<endl; //统计出回答错误的个数    
    239 }

    四、截图

    五、PSP0级记录

  • 相关阅读:
    Jackcard类似度和余弦类似度(向量空间模型)的java实现
    Android Wear之android穿戴式设备应用开发平台
    poj 2955 Brackets 括号匹配 区间dp
    Gradle自己定义插件
    C语言之基本算法11—牛顿迭代法求平方根
    jquery ajax实现省市二级联动
    从0開始学习 GitHub 系列之「07.GitHub 常见的几种操作」
    Android Widget和悬浮窗 原理
    怎样推断一个数的二进制有多少个1
    Mac OSX Yosemite 10.10 brew 错误:mktemp: mkdtemp failed on /tmp/git-LIPo: No such file or directory
  • 原文地址:https://www.cnblogs.com/dr73/p/4356366.html
Copyright © 2011-2022 走看看