小组成员:李利思 岳庆
题目:
请编写一个能自动生成小学四则运算题目的 “软件”;
让程序能接受用户输入答案,并判定对错;
最后给出总共 对/错 的数量。
需求分析:
-
基本功能
基本功能点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 |