• 第三次作业——(吴明先 胡贵玲)


    - 题目: 请编写一个能自动生成小学四则运算题目的 “软件”。 让程序能接受用户输入答案,并判定对错。 最后给出总共 对/错 的数量。

    一: 要求:

    在之前编写的四则运算程序基础之上做如下改进:

    1  请参照教材Page57:4.2-4.3节中内容,修改原程序,使之符合 “代码风格和设计规范”的基本要求;

    2  请采用模块化设计思想,修改之前的code,将 “计算功能” 封装起来

    小提示:

    假如在C语言环境下,可将函数声明与具体实现分别存放在头文件(.h)和源文件(.c)中;

    二:需求分析

       累计每次测试答对,答错的题的个数

       对用户给出的答案做出相应判断

       显示答案的对错

    三:扩展功能:

      程序可以求出带括号的四则运算

      四则运算中允许有2位小数的出现

    四:设计:

      在原来程序基础上采用模块化思想,把源文件分成几个模块进行封装

     五:代码实现

    .cpp文件

     1 #include"h.h"
     2 void main()
     3 {
     4    int   shuru=0;
     5    char x;
     6    system("color F");                                                  
     7    printf("                     欢迎参加小学生数学四项法则测试
    ");
     8    system("pause"); 
     9    system("cls"); 
    10    while (1)
    11    { 
    12       printf("你需要做什么题型计算?请选择:加(输入1)  减 (输入2) 乘(输入3)  除(输入4)
    "); 
    13       if(shuru==0) 
    14          scanf("%c",&x);   
    15       switch(x) 
    16       { 
    17          case '1': jiafa();break;
    18          case '2': jianfa();break; 
    19          case '3': chengfa();break;
    20          case '4': chufa();break;
    21          default : printf("输入错误,请重新输入"); 
    22       }
    23       printf("请输入数字选择:
    1.继续
    2.重新选择题型
    3.结束
    "); 
    24       scanf("%d",&shuru); 
    25       if(shuru==1) shuru=1;
    26       if(shuru==2) {shuru=0;getchar();}
    27       if(shuru==3) break; 
    28    }
    29    printf("正确个数%d
    ",l);
    30    printf("错误个数%d
    ",h);
    31 }

    .h文件

     1 #include<stdio.h> 
     2 #include<stdlib.h> 
     3 #include<math.h>
     4 #include<time.h>
     5 #include<windows.h>
     6 int l,h;
     7 void jiafa() 
     8 {
     9     int i,j,m;
    10     srand(time(NULL));
    11     i=rand()%100;
    12     j=rand()%100;
    13     printf("%d+%d=",i,j);
    14     scanf("%d",&m); 
    15     if(i+j==m)
    16     {
    17         printf("回答正确"); 
    18         l++;
    19    } else { 
    20         printf("回答错误
    %d+%d=%d
    ",i,j,i+j); 
    21         h++; 
    22    }
    23 }
    24 
    25 void jianfa()
    26 {
    27     int i,j,m;
    28     i=rand()%100;
    29     j=rand()%100;
    30     printf("%d-%d=",i,j);
    31     scanf("%d",&m);
    32     if(i-j==m)
    33     {
    34         printf("回答正确");
    35         l++;
    36     }  else{ 
    37         printf("回答错误
    %d-%d=%d
    ",i,j,i-j);
    38         h++;
    39      }
    40 }    
    41 
    42 void chengfa()
    43 
    44 {
    45     int i,j,m;
    46     i=rand()%100;
    47     j=-rand()%10;
    48     if(j<0)
    49        printf("%d*(%d)=",i,j);
    50     else
    51       printf("%d*%d=",i,j);
    52     scanf("%d",&m);
    53     if(i*j==m)
    54     { 
    55          printf("回答正确");
    56          l++;
    57     } else{
    58         printf("回答错误
    %d*(%d)=%d
    ",i,j,i*j);
    59         h++;
    60   } 
    61 }
    62 void chufa()
    63   {
    64     int i,j;
    65     double m;
    66     i=rand()%100;
    67     j=1+rand()%100;
    68     printf("%d/%d=",i,j); 
    69     scanf("%0.2f",&m); 
    70     double a = (int((i / (j * 1.0)) * 100 + 0.5))/100.0;
    71     printf("a = %0.2f", a);
    72     if(a==m)
    73     {
    74          printf("回答正确");
    75          l++;
    76     } else{ 
    77          printf("回答错误
    "); 
    78          h++; 
    79     }
    80 } 

    运行结果

    六:两人合作步骤

         1、在做作业之前两人先各自看4.1和4.2的内容

           2、两人一起讨论对程序做哪些方面的改进

            3、讨论之后两人开始修改

            4、两人一起检查

            5、最后对代码进行复审

     七:总结:

            1、在编写程序时,一个人容易出现许多错误,这需要我们两人合作更快地解决错误,让代码得以完善。

           2、这次作业让我们体会到了与人合作的重要性。

  • 相关阅读:
    shell脚本进阶
    sort与uniq命令
    sed命令
    DNS与CDN
    nginx
    Docker Private Registry
    docker存储卷
    docker容器网络配置
    docker容器网络
    docker容器虚拟化
  • 原文地址:https://www.cnblogs.com/wumx/p/4451570.html
Copyright © 2020-2023  润新知