• 加减法画面感的优化


      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语句只对包含它的最里层的循环体语句起作用。

  • 相关阅读:
    C# 中 finally 的用法
    相似度算法(转载)
    OpenCV 安装与调试
    win7 debug 工具
    wpf 登录时显示状态动态图
    C# 比较两张图片是否完全相同
    ABSD 基于架构的软件设计方法方法简介(摘抄)
    基于SQL Server的简单数据同步方案
    软件:产品和过程的统一(转)
    cpp extern 关键字用法
  • 原文地址:https://www.cnblogs.com/wcherry/p/5352790.html
Copyright © 2020-2023  润新知