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

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

一: 要求:

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

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("                     欢迎参加小学生数学四项法则测试\n");
 8    system("pause"); 
 9    system("cls"); 
10    while (1)
11    { 
12       printf("你需要做什么题型计算?请选择:加(输入1)  减 (输入2) 乘(输入3)  除(输入4)\n"); 
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("请输入数字选择:\n1.继续\n2.重新选择题型\n3.结束\n"); 
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\n",l);
30    printf("错误个数%d\n",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("回答错误\n%d+%d=%d\n",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("回答错误\n%d-%d=%d\n",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("回答错误\n%d*(%d)=%d\n",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("回答错误\n"); 
78          h++; 
79     }
80 } 

运行结果

六:两人合作步骤

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

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

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

        4、两人一起检查

        5、最后对代码进行复审

 七:总结:

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

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

 

posted @ 2015-04-23 19:42  吴明先  阅读(194)  评论(1编辑  收藏  举报