用C给小学生出题目
一、预估与实际
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 600 | 300 |
• Estimate | • 估计这个任务需要多少时间 | 600 | 300 |
Development | 开发 | 120 | 90 |
• Analysis | • 需求分析 (包括学习新技术) | 120 | 70 |
• Design Spec | • 生成设计文档 | 100 | |
• Design Review | • 设计复审 | 200 | 200 |
• Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 120 | 60 |
• Design | • 具体设计 | 30 | 60 |
• Coding | • 具体编码 | 30 | 120 |
• Code Review | • 代码复审 | 30 | 15 |
• Test | • 测试(自我测试,修改代码,提交修改) | 120 | 60 |
Reporting | 报告 | 120 | 60 |
• Test Repor | • 测试报告 | 100 | 60 |
• Size Measurement | • 计算工作量 | 120 | 60 |
• Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 120 | 60 |
合计 | 1000 |
二、需求分析
我通过网络搜索的方式了解到,小学一年级数学有如下的几个特点:
- 特点1
- ..两位数加减,没有负数
-特点2
-简单
经过分析,我认为,这个程序应当:
- 使用的数字小于三位数
- ..没有负数
三、设计
1. 设计思路
说明你如何设计这个程序
比如:
- 这个程序有x个类,x个函数,函数之间的调用关系是怎样的?
- 关键函数的流程图是怎样的?
- 算法的关键的关键是什么?
- 由于JAVA没学好导致不太会调用各种类,所以这次编程题我使用了爷爷级别的C
-调用随机数种子((unsigned)time(NULL))
-然后选择循环输出定义的一大堆数进行加减乘除
2. 实现方案
写出具体实现的步骤
比如:
- 准备工作:先在Github上创建仓库,克隆到本地...
- 技术关键点:梳理一下设计思路,可能遇到哪些技术关键点
- 打开VS2015开始敲
四、编码
请说明你如何按照设计思路进行编码,并记录你在开发中遇到的问题,与解决过程
1. 调试日志
记录编码调试的日志,请记录下开发过程中的 debug 历程
比如:
- 在代码的什么位置,代码出现了什么问题,问题会导致什么结果,怎么解决的
2. 关键代码
for(i=1;i<=10;i++) //循环
{
d1=rand()%91+10,d2=rand()%91+10; //rand()%91+10,输出10-100之前的随机数字
d3=rand()%91+10,d4=rand()%91+10;
d5=d1+d2;d6=d3*d4; //进行符号运算
d7=d1-d2;d8=d3/d4;
}
3. 代码规范
请给出本次实验使用的代码规范:
- 第一条 注释双斜杠//
- 第二条 printf注意在循环里面
-第三条 答案在另外一个循环里
并人工检查代码是否符合规范
五、测试
运行程序后先审查题目是否有重复,格式是否正确,再用计算器简单计算随机几道题答案是否正确
六、总结
请总结过程中的教训和经验,思考
-由于没学好JAVA,在思考了两天如何用JAVA实现这道题目后彻底懵逼,太多基础要补了
-所以用C写了这道后发现原理其实蛮简单的,就是格式化规范比较繁琐
-参数实现也非常容易
-另外感觉还是要紧跟潮流用JAVA比较好