软件工程第二次作业

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

- 需求分析

针对小学生练习的需要,设计一个自测系统,要求该系统能随机产生两个数和运算符,当输入答案是,能自动判断对错,并给出提示,退出系统时,统计对、错的题数。

- 设计

用C语言实现小学生自测系统的加、减、乘、除四则运算

- 代码实现

 1 #include <stdio.h>
 2 #include <time.h>
 3 #include <stdlib.h>
 4 void main(){
 5  int a,b,c,d;
 6  int right=0,wrong=0;
 7  while(1){
 8   srand(time(NULL));    
 9   d=a=rand()%100;    
10   b=(rand()%a+a)%100;
11   if(a%4==1&&a<b)
12    c=a,a=b,b=c;
13   if(b==0&&a%4==3)b=rand()%10+1;
14   if(a%4==3&&a%b!=0)
15   {
16    srand(time(0));     
17    a=b*(rand()%a);
18   }  
19   switch(d%4)
20   {
21   case 0:printf("%d + %d = ",a,b);
22    break;
23   case 1:printf("%d - %d = ",a,b);
24    break;
25   case 2:printf("%d × %d = ",a,b);
26    break;
27   case 3:printf("%d ÷ %d = ",a,b);
28    break;
29   }  
30   scanf("%d",&c);
31   switch(d%4)
32   {
33   case 0:
34    if(c==a+b)
35    {
36     printf("回答正确
");
37     right++;
38    }
39    else
40    {
41     printf("回答错误
");
42     wrong++;
43    }
44    break;
45   case 1:
46    if(c==a-b)
47    {
48     printf("回答正确
");
49     right++;
50    }
51    else
52    {
53     printf("回答错误
");
54     wrong++;
55    }
56    break;
57   case 2:
58    if(c==a*b)
59    {
60     printf("回答正确
");
61     right++;
62    }
63    else
64    {
65     printf("回答错误
");
66     wrong++;
67    }
68    break;
69   case 3:
70    if(c==a/b)
71    {
72     printf("回答正确
");
73     right++;
74    }
75    else 
76    {
77     printf("回答错误
");
78     wrong++;
79    }
80    break;
81   }
82   printf("按任意键继续,0退出!
");
83   fflush(stdin);
84   if(getchar()=='0')
85    break; 
86  }
87  printf("你答对了%d道题,答错%d道题
",right,wrong);
88 }

- 测试

       步 骤           

      耗   时                百分比(%)   
    需求分析

           5   

26.3
     设计            4 21
    代码实现            8 42.1
    测试            1 5.3
  分析和总结            1 5.3

事后分析和总结

我觉得编写程序是很大的问题,主要是对编程语言不熟悉,也不知道该如何去编写。

原文地址:https://www.cnblogs.com/lizhuanyan/p/4415426.html