软件工程第二次作业

题目:

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

需求分析:

  • 基本功能

    基本功能点1:实现小学四则运算;

    基本功能点2:该程序能接受用户输入答案,并判断对错;

        基本功能点3:给出总共对/错的数量。

设计

  • 设计点1:用C语言编程环境实现程序代码的编写;
  • 设计点2:随机产生两个数,分别用1,2,3,4表示计算加法,减法,乘法,除法,通过计算判断出计算的正确与否,并统计出正确与错误的个数。

代码实现

 1 #include<stdio.h>
 2 #include <stdlib.h>                                                    
 3 #include <time.h>                                                    
 4 
 5 int main()
 6 {
 7     int x,y,all=0,r=0,e=0,result;
 8     char z;
 9     int m,n;
10     printf("欢迎来到小学计算器测试!
");
11     printf("请输入1到4其中一个数字(1表示加法,2表示减法,3表示乘法,4表示除法),当输入为q时,结束测试:
");             
12     scanf("%d",&m);
13        srand( (unsigned)time( NULL ) );            
14        while ((z=getchar())!='q')               
15        {
16            all++;
17            x=rand()%50;y=rand()%50;
18            if(m==1)
19            {
20                printf("%d+%d=",x,y);            
21                scanf("%d",&z);
22                printf("
");
23                if (x+y==z) r++;
24                else
25                    e++;
26            }
27            else if(m==2)
28            {                                      
29                printf("%d-%d=",x,y);
30                scanf("%d",&z);
31                if (x-y==z) r++;
32                else
33                    e++;  
34            }
35            else if(m==3)
36            {                                    
37                printf("%d*%d=",x,y);
38                scanf("%d",&z);
39                if (x*y==z) r++;
40                else
41                    e++;
42            }
43            else if(m==4)
44            {                             
45                printf("%d/%d=",x,y);
46                scanf("%d",&z);
47                if (x/y==z) r++;
48                else
49                    e++;   
50            }
51            else                                                        
52                printf("输入有误!
");
53            result=100*r/all;                                          
54        }
55        printf("您的成绩为:%d
",result);
56        printf("您一共完了%d道题目,正确的有%d题,错误的有%d题
",all,r,e);
57        if(result>=60){
58            printf("成绩还不错,别骄傲哦!
");
59        }
60        else{
61            printf("成绩有待提高,加油,别灰心哦!
");
62        }
63        return 0;       
64 }

程序截图

加法:

减法:

乘法:

除法:

分析与总结

PSP耗时:

PSP Personal Software Process Stage Time(h) Time(%)
●Design ●具体设计 10 20
●Coding ●具体编码 20 40
●Code Review ●代码复审 5 10
●Test ●测试(自测,修改代码) 10 20

●Postmortem & Process

Improvement Plan

●事后总结,并提出过程改进计划 5 10

 

总结:

1.编程是一个积累的过程,只要认真去思考,总会有解决问题的方法;

2.该程序的设计需要符合题目的要求,满足小学四则运算。

 

               

原文地址:https://www.cnblogs.com/hy1314520/p/4412570.html