软件工程第三次作业

时间:2022-10-13 21:53:30

小组成员:李利思  岳庆

题目:

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

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

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

需求分析:

  • 基本功能

    基本功能点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("欢迎来到小学计算器测试!\n");
10 printf("请输入1到4其中一个数字(1表示加法,2表示减法,3表示乘法,4表示除法),当输入为q时,结束测试:\n");
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("\n");
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("输入有误!\n");
56 result=100*r/all;
57 }
58 printf("您的成绩为:%d\n",result);
59 printf("您一共完了%d道题目,正确的有%d题,错误的有%d题\n",all,r,e);
60 if(result>=60)
61 {
62 printf("成绩还不错,别骄傲哦!\n");
63 }
64 else
65 {
66 printf("成绩有待提高,加油,别灰心哦!\n");
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