20194616 自动生成四则运算题第一版报告
自动生成四则运算题第一版报告
一、需求分析:
需要为小学生生成一个可以自动生成四则运算题的小程序,并储存到外部txt文件中储存,并且需要根据不同的需求控制不同的变量。
二、 功能设计
基本功能
(1)自动生成10道100以内的2个操作数的四则运算算式(+ - * /),要求运算结果也在100以内
(2)剔除重复算式。 2 + 3 = 和 2 + 3 = 是重复算式 2 + 3 = 和3 + 2 = 不属于重复算式
(3)题目数量可定制
(4)相关参数可控制
- 是否包含乘法和除法
- 操作数数值范围可控(如操作数 在100以内 还是1000以内)
- 操作数是否含负数
(5)生成的运算题存储到外部文件result.txt中
扩展功能
能实现答案的展示
三、 设计实现
创建了以下函数
- signal函数提供随机的运算符号
- random函数提供随即运算操作数并控制是否有负数
- fun函数剔除重复算式
- result函数输出运算结果
以上函数均在主函数内被调用
并在主函数内实现了文件的创建,对运算题目及答案输出的循环,
四、测试运行
五、 粘贴自己觉得比较独特的或满意的代码片段,用博客园正确的代码控件来显示。(提示:要有必要的注释说明,提示:不要贴所有代码!不符合规定的要倒扣分)
//主题函数
for(i=1;i<=n;i++)
{
a=random(x,sym);
b=random(x,sym);
s=signal(f);
fun(a,s,b);
if(result(a,s,b,r)<100)
{
fprintf(fp,"%d%c%d=\n",a,s,b);
fprintf(fp1,"%.2f\n",result(a,s,b,r));
}
else
continue;
}
char signal(int f)//提供随机的运算符号
{ char c[4]={'+','-','*','/'};
if(f==2)
{
return c[rand()%2];
}
else if(f==4)
{
return c[rand()%4];
}
}
//输出结果
if(r==0)
printf("Thanks for your use!");
else
{
switch(s)
{
case '+':return a+b;break;
case '-':return a-b;break;
case '*':return a*b;break;
case '/':return (double)a/b;break;
}
if(s=='/'&&b==0)
printf("ERROR!");
}
//实现外部文件输出并控制输出结果范围
FILE *fp,*fp1;
fp=fopen("result.txt","w+");//创建文件
fp1=fopen("答案.txt","w+");
if(result(a,s,b,r)<100)
{
fprintf(fp,"%d%c%d=\n",a,s,b);
fprintf(fp1,"%.2f\n",result(a,s,b,r));
}
else
continue;
六、总结:
首先实现最基础的自动生成四则运算题算法
然后根据不同的需求增加单一函数
并通过在主函数中的调用实现函数功能
单一部分测试无误之后再进行下一模块的编辑
七、PSP
PSP2.1 | 任务内容 | 计划共完成需要的时间(min) | 实际完成需要的时间(min) |
---|---|---|---|
Planning | 计划 | 180 | 300 |
· Estimate | · 估计这个任务需要多少时间,并规划大致工作步骤 | 180 | 300 |
Development | 开发 | 130 | 255 |
·· Analysis | 需求分析 (包括学习新技术) | 15 | 30 |
· Design Spec | · 生成设计文档 | 5 | 5 |
· Design Review | · 设计复审 (和同事审核设计文档) | 10 | 15 |
· Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 3 | 3 |
· Design | 具体设计 | 10 | 10 |
· Coding | 具体编码 | 60 | 120 |
· Code Review | · 代码复审 | 7 | 12 |
· Test | · 测试(自我测试,修改代码,提交修改) | 20 | 60 |
Reporting | 报告 | 15 | 20 |
·· Test Report | · 测试报告 | 10 | 15 |
· Size Measurement | 计算工作量 | 2 | 1 |
· Postmortem & Process Improvement Plan | · 事后总结 ,并提出过程改进计划 | 3 | 5 |