zoukankan      html  css  js  c++  java
  • 加减法画面感的优化

      1 #include "stdafx.h"
      2 #include "stdio.h"
      3 #include "stdlib.h"
      4 #include "time.h" 
      5 #include "stdlib.h"
      6 int gys(int a,int b);
      7 int gbs(int a,int b);
      8 int yue(int a,int b);
      9 int fen(int a,int b);
     10 
     11 
     12 int main(int argc, char* argv[])
     13 {    bool Decide;
     14     float m,n,result,answer;
     15     int i=0,flag,flog,r;
     16     int a,b,c,d;
     17     int u1,u2,v,x,m1,n1,q,p;
     18     int result1,answer1;
     19     srand(time(0));
     20     while(i<30)
     21     {
     22         flag=rand()%5;
     23         m = rand()%10;
     24         n = rand()%10;
     25         a = rand()%10;
     26         b = rand()%10;
     27         c = rand()%10;
     28         d = rand()%10;
     29         switch (flag)
     30         {
     31         case 0:
     32                 system("cls");   
     33                 printf("
    
    
    
    
    
    
    ");
     34                    printf("              %0.2f+%0.2f=",m,n);
     35                 result = m+n;
     36                 scanf("%f",&answer);
     37                 if(result == answer)
     38                      Decide = true;
     39                    else
     40                     Decide = false;
     41             break;
     42         case 1:
     43                 system("cls");  
     44                 printf("
    
    
    
    
    
    
    ");
     45                 printf("              %0.2f-%0.2f=",m,n);
     46                 result = m-n;
     47                 scanf("%f",&answer);
     48                 if(result == answer)
     49                     Decide = true;
     50                 else
     51                     Decide = false;            
     52             
     53             break;
     54         case 2:
     55                 system("cls");  
     56                 printf("
    
    
    
    
    
    
    ");
     57                 printf("              %0.2f*%0.2f=",m,n);
     58                 result = m*n;
     59                 scanf("%f",&answer);
     60                 if(result == answer)
     61                     Decide = true;
     62                 else
     63                     Decide = false;            
     64             
     65             break;
     66         case 3:
     67                 system("cls"); 
     68                 printf("
    
    
    
    
    
    
    ");
     69                 if (n==0)
     70                 continue;
     71                 printf("              %0.2f/%0.2f=",m,n);
     72                 result= m/n;
     73                 scanf("%f",&answer);
     74                 r=(int)m%(int)n;
     75                 if (r==0)
     76                     printf("              结果余数为零
    ");
     77                 else                            
     78                     printf("              余数是%d
    ",r);
     79                 if(result == answer)
     80                     Decide = true;
     81                 else
     82                     Decide = false;    
     83                 break;
     84         case 4:    
     85                 system("cls");  
     86                 printf("
    
    
    
    
    
    
    ");
     87                 flog=rand()%4;
     88               printf("              计算结果,格式为分数
    ");
     89                 system("pause");
     90               if (b==0)
     91                  continue;
     92               if (d==0)
     93                  continue;
     94             switch (flog)
     95             {
     96                 case 0 :
     97                     system("cls");   
     98                        printf("
    
    
    
    
    
    
    ");
     99                     printf("              %d/%d+%d/%d=",a,b,c,d);    //分数加法
    100                     x=gbs(b,d);
    101                     u1=x/b*a;
    102                     u2=x/d*c;
    103                     v=u1+u2;
    104                     m1=yue(v,x);
    105                     n1=fen(v,x);
    106                     result1=m1/n1;
    107                      scanf("%d/%d",&q,&p);
    108                        answer1=q/p;
    109                     if(result1 == answer1)
    110                           Decide = true;
    111                     else
    112                         Decide = false;    
    113                      break;
    114                 case 1:    
    115                     system("cls");  
    116                     printf("
    
    
    
    
    
    
    ");
    117                     printf("              %d/%d*%d/%d=",a,b,c,d);     //分数乘法
    118                     int u3,u4;
    119                     u3=a*c;
    120                     u4=b*d;
    121                     m1=yue(u3,u4);
    122                     n1=fen(u3,u4);
    123                     result1=m1/n1;
    124                      scanf("%d/%d",&q,&p);
    125                     answer1=q/p; 
    126                     if(result1 == answer1)
    127                           Decide = true;
    128                     else
    129                         Decide = false;    
    130                      break;
    131                 case 2:
    132                     system("cls");  
    133                     printf("
    
    
    
    
    
    
    ");
    134                     printf("              %d/%d-%d/%d=",a,b,c,d);    //分数减法
    135                     int u5,u6,v1,x1;
    136                     x1=gbs(b,d);
    137                     u5=x1/b*a;
    138                     u6=x1/d*c;
    139                     v1=u5-u6;
    140                     m1=yue(v1,x1);
    141                     n1=fen(v1,x1);
    142                     result1=m1/n1;
    143                      scanf("%d/%d",&q,&p);
    144                     answer1=q/p; 
    145                     if(result1 == answer1)
    146                           Decide = true;
    147                     else
    148                         Decide = false;    
    149                      break;
    150                    case 3:    
    151                     system("cls");
    152                     printf("
    
    
    
    
    
    
    ");
    153                     printf("              %d/%d/%d/%d=",a,b,c,d);     //分数除法
    154                     int u7,u8;
    155                     u7=a*d;
    156                     u8=b*c;
    157                     m1=yue(u7,u8);
    158                     n1=fen(u7,u8);
    159                     result1=m1/n1;
    160                      scanf("%d/%d",&q,&p);
    161                     answer1=q/p; 
    162                     if(result1 == answer1)
    163                           Decide = true;
    164                     else
    165                         Decide = false;    
    166                      break;
    167                 default: printf ("程序运行错误,请稍后重试!
    ");
    168                             system("pause");
    169                    break;                            
    170             }              
    171            break;
    172 
    173         default: printf ("程序运行错误,请稍后重试!
    ");
    174                     system("pause");
    175             break;
    176         }
    177         if (flag==4)
    178         {
    179             if(Decide == true)
    180             {
    181                 printf("              答案正确
    ");
    182                  system("pause");
    183             }
    184             else
    185             {
    186                 printf("              答案错误   正确答案是 %d/%d
    ",m1,n1);
    187                 system("pause");
    188             }
    189         }
    190     
    191         else
    192         {
    193                 if(Decide == true)
    194                 {
    195                     printf("              答案正确
    ");
    196                         system("pause");
    197                 }
    198                 else
    199                 {
    200                     printf("              答案错误   正确答案是 %0.2f
    ",result);
    201                         system("pause");
    202                 }
    203         }
    204     
    205 
    206     
    207     }
    208     return 0;
    209 }
    210 
    211 
    212 
    213 
    214 int gys(int a,int b)   //求最大公约数
    215 {
    216     return b?gys(b,a%b):a;
    217 }
    218 
    219 int gbs(int a,int b)    //求最小公倍数
    220 {
    221     return a*b/gys(a,b);
    222 }
    223 
    224 int yue(int a,int b)
    225 {
    226     int c,fz;
    227     c=gys(a,b);
    228     fz=a/c;
    229 return fz;
    230 }
    231 
    232 int fen(int a,int b)
    233 {
    234     int c,fm;
    235     c=gys(a,b);
    236 
    237     fm=b/c;
    238 return fm;
    239 }

    之前呢,加减法的程序功能完成的差不多,但感觉运行出来的结果画面太差了,感觉乱糟糟的。有密集恐惧症的人估计都要吐了吧!所以呢,我用

    system("cls");进行了一下清屏,现在看着好多了。
    以前程序遇到除数为零的情况时,除数会自动加一,有点简单粗暴。现在更简单了,用了一个continue直接跳出这次循环。顺道复习了一下break和continue的用法和不同点。

    break

    (1)break语句只能用于由while语句,do-while语句或for语句构成的循环结构中和switch选择结构中。

    (2) 在嵌套循环的情况下,break语句只能终止并跳出包含它的最近一层的循环体。

    (3) 在嵌套循环的情况下,如果想让break语句跳出最外层的循环体。那么可通过设置一标志变量tag,然后在每层循环后面加上一条语句:if(tag)break;其值为1表示跳出循环体,为零则不跳出。

    continue

    (1)continue语句只能用于由while语句,do-while语句或for语句构成的循环结构中。

    (2)在嵌套循环的情况下,continue语句只对包含它的最里层的循环体语句起作用。

  • 相关阅读:
    结巴分词 0.14 版发布,Python 中文分词库
    Lazarus 1.0.2 发布,Pascal 集成开发环境
    Android全屏 去除标题栏和状态栏
    服务器日志现 Android 4.2 传将添多项新特性
    Percona XtraBackup 2.0.3 发布
    长平狐 Android 强制设置横屏或竖屏 设置全屏
    NetBeans 7.3 Beta 发布,全新的 HTML5 支持
    CppDepend现在已经支持Linux
    GromJS 1.7.18 发布,服务器端的 JavaScript
    Apache OpenWebBeans 1.1.6 发布
  • 原文地址:https://www.cnblogs.com/wcherry/p/5352790.html
Copyright © 2011-2022 走看看