软件工程第三次作业-------(李利思 岳庆)

小组成员:李利思  岳庆

题目:

请编写一个能自动生成小学四则运算题目的 “软件”;

让程序能接受用户输入答案,并判定对错;

最后给出总共 对/错 的数量。

需求分析:

  • 基本功能

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

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

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

设计

  • 设计点1:用C语言编程环境实现程序代码的编写;
  • 设计点2:随机产生两个数,分别用1,2,3,4表示计算加法,减法,乘法,除法,通过计算判断出计算的正确与否,并统计出正确与错误的个数。
 1 #include<stdio.h>
 2 #include <stdlib.h>                                                    
 3 #include <time.h>                                                    
 4 int main()
 5 {
 6     int x,y,all=0,r=0,e=0,result;
 7     char z;
 8     int m,n;
 9     printf("欢迎来到小学计算器测试!
");
10     printf("请输入1到4其中一个数字(1表示加法,2表示减法,3表示乘法,4表示除法),当输入为q时,结束测试:
");             
11     scanf("%d",&m);
12     srand( (unsigned)time( NULL ) );            
13     while ((z=getchar())!='q')               
14     {
15         all++;
16         x=rand()%50;y=rand()%50;
17         if(m==1)
18         {
19             printf("%d+%d=",x,y);            
20             scanf("%d",&z);
21             printf("
");
22             if (x+y==z) 
23                 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) 
32                 r++;
33             else
34                 e++;  
35         }
36         else if(m==3)
37         {                                    
38             printf("%d*%d=",x,y);
39             scanf("%d",&z);
40             if (x*y==z) 
41                 r++;
42             else
43                 e++;
44         }
45         else if(m==4)
46         {                             
47             printf("%d/%d=",x,y);
48             scanf("%d",&z);
49             if (x/y==z) 
50                 r++;
51             else
52                 e++;   
53         }
54         else                                                        
55             printf("输入有误!
");
56         result=100*r/all;                                          
57     }
58     printf("您的成绩为:%d
",result);
59     printf("您一共完了%d道题目,正确的有%d题,错误的有%d题
",all,r,e);
60     if(result>=60)
61     {
62         printf("成绩还不错,别骄傲哦!
");
63     }
64     else
65     {
66         printf("成绩有待提高,加油,别灰心哦!
");
67     }
68     return 0;     
69 }

计算加、减、乘、除法:

#include<stdio.h>
void main()
{
	/*加法计算*/
	int Jiafa(int a,int b,int c)
	{
		int c = a + b;
		return c;
	}
	/*减法计算*/
	int Jianfa(int a,int b,int c)
	{
		int c = a - b;
		return c;
	}
	/*乘法计算*/
	int Chengfa(int a,int b,int c)
	{
		float c = a * b;
		return c;
	}
	/*除法计算*/
	float Chufa(int a,int b,int c)
	{
		if(b==0)
		{
			b=1;
		}
		float c =(float) a /(float)b;
		return c;
	}
}

把函数声明放在头文件中:

1 #include<stdio.h>
2 #include<stdio.h>
3 #include<stdio.h>
4 
5 int Jiafa(int a,int b,int c);
6 int Jianfa(int a,int b,int c);
7 int Chengfa(int a,int b,int c);
8 float Chufa(int a,int b,int c);

调试结果:

两人合作步骤:

1.修改原程序,使之符合代码风格和设计规范的基本要求;

2.两人对原程序进行认真分析,得出解决问题的基本思路,拟定做题计划;

3.采用模块化的设计思想,修改之前的code,将计算功能封装起来;

4.测试加法功能。

总结:

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

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

3.规范了代码的格式,使得代码更容易读,也便于检查和修改程序。

4.学会了一些简单的测试程序中基本功能的方法。

PSP耗时:

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

●Postmortem & Process

Improvement Plan

●事后总结,并提出过程改进计划 5 12.5
原文地址:https://www.cnblogs.com/hy1314520/p/4448758.html