1.题目要求:能自动生成小学四则运算题目,且每一道题目的运算结果不能为负。除了支持整数运算外,还要支持真分数四则运算。
psp流程展示
| 预计耗时(分钟) | 实际耗时(分钟) | ||
|---|---|---|---|
| Planning | 计划 | 20 | 20 |
| Estimate | 估计这个任务需要多少时间 | 90 | 90 |
| Development | 开发 | 120 | 90 |
| Analysis | 需求分析 | 10 | 10 |
| Design Spec | 生成设计文档 | / | / |
| Design Review | 设计复审(和同事审核设计文档) | / | / |
| Coding Standerd | 代码规范(为目前的开发制定合适的规范) | / | / |
| Design | 具体设计 | 30 | 30 |
| Coding | 具体编码 | 100 | 100 |
| Code Review | 代码复审 | 10 | 15 |
| Text | 测试(自测,修改代码,提交修改) | 20 | 20 |
| Reporting | 报告 | 20 | 20 |
| Text Report | 测试报告 | 10 | 10 |
| Size Measurement | 计算工作量 | 5 | 5 |
| Postmortem & Process Improvement Plan | 事后总结,并提出过程改进计划 | 5 | 5 |
| Sum | 合计 | 440 | 415 |
二、开发环境调试:Visual C++
三、代码呈现
#include<stdio.h>
#include<math.h>
#include<time.h>
#include <stdlib.h>
void operation(void);
float plus(float a,float b);
float minus(float a,float b);
float multiply(float a,float b);
float divide(float a,float b);
float caculate(int i,float a,float b);
char Operator(int i);
void main()
{
int i=0,n;
printf("你想要输入的运算题目数为:");
scanf("%d",&n);
do{
operation();
i++;
}while(i<n);
system("pause");
}
void operation()
{
float answer;
float x,y,z;
int a,b,c;
int j,k;
char op1,op2;
srand((unsigned)time(NULL));
do{
a=rand()%100;
b=rand()%100;
c=rand()%100;
//0,1为加减 2,3为乘除
j=rand()%4;
k=rand()%4;
if(j>1){
y=(float)a;
z=(float)b;
x=caculate(j,y,z);
y=x;
z=(float)c;
x=caculate(k,y,z);
}
else
{
if(k<2)
{
y=(float)a;
z=(float)b;
x=caculate(j,y,z);
y=x;
z=(float)c;
x=caculate(k,y,z);
}
else
{
y=(float)b;
z=(float)c;
x=caculate(k,y,z);
y=(float)a;
z=x;
x=caculate(j,y,z);
}
}
}while(x<0.0);
op1=Operator(j);
op2=Operator(k);
printf("%d %c %d %c %d = ",a,op1,b,op2,c);
scanf("%f",&answer);
if(j==3&&k==3)
{
if((answer-x)<0.01)
{
printf("恭喜你,答对啦!\n");
}
else
{
printf("很遗憾,你答错了!正确答案是:%.1f\n",x);
}
}
else
{
if((x-answer)<0.01)
{
printf("恭喜你,答对啦!\n");
}
else
{
printf("很遗憾,你答错了!正确答案是:%.1f\n",x);
}
}
}
float caculate(int i,float a,float b) //当它是哪种符号就进行哪个计算
{
float x;
switch(i)
{
case 0:
x=plus(a,b);
break;
case 1:
x=minus(a,b);
break;
case 2:
x=multiply(a,b);
break;
case 3:
x=divide(a,b);
break;
default:
break;
}
return x;
}
float plus(float a,float b)
{
float x;
x=a+b;
return x;
}
float minus(float a,float b)
{
float x;
x=a-b;
return x;
}
float multiply(float a,float b)
{
float x;
x=a*b;
return x;
}
float divide(float a,float b)
{
float x;
x=a/b;
return x;
}
char Operator(int i) //运算符
{
char fh;
switch(i)
{
case 0:
fh='+';
break;
case 1:
fh='-';
break;
case 2:
fh='*';
break;
default:
fh='/';
break;
}
return fh;
}
















