三年级计算题

211606390 张晋誌 211606329 王浩

一、预估与实际

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 60 65
• Estimate • 估计这个任务需要多少时间 60 65
Development 开发 590 1195
• Analysis • 需求分析 (包括学习新技术) 90 120
• Design Spec • 生成设计文档 30 60
• Design Review • 设计复审 20 60
• Coding Standard • 代码规范 (为目前的开发制定合适的规范) 30 15
• Design • 具体设计 60 90
• Coding • 具体编码 240 500
• Code Review • 代码复审 60 200
• Test • 测试(自我测试,修改代码,提交修改) 60 150
Reporting 报告 65 80
• Test Repor • 测试报告 30 30
• Size Measurement • 计算工作量 20 20
• Postmortem & Process Improvement Plan • 事后总结, 并提出过程改进计划 15 30
合计 1340

二、需求分析

我通过查询小学三年级的教案的方式了解到,小学三年级数学有如下的几个特点:

  • 没有进行负数的运算
  • 除法运算除数不能为0,不能产生余数,被除数可以为0,一位数和两位数的除法。
  • 乘法运算一个乘数为一位数,另一个乘数一般不超过三位数或者一个乘数为二位数,另一个乘数一般不超过三位数
  • 是复合四则运算

经过分析,我认为,这个程序应当:

  • 每道题目占一行
  • 参与运算的数值和产生的答案都不能出现负数
  • 运算结果一般不超过四位数
  • 题目是起码有两个不同符号的复合运算

三、设计

1. 设计思路

说明你如何设计这个程序

比如:

  • 这个程序有5个类

  • 关键函数的流程图

  • 算法的关键是通过逆波兰实现题目的运算

2. 实现方案

写出具体实现的步骤

比如:

  • 准备工作:先在Github上创建仓库,克隆到本地,通过git命令进行操作
  • 技术关键点:逆波兰的实现

四、编码

请说明你如何按照设计思路进行编码,并记录你在开发中遇到的问题,与解决过程

1. 调试日志

记录编码调试的日志,请记录下开发过程中的 debug 历程

无法运行

2. 关键代码

if(flag[i]==0) 
			{
				flag[i]=random.nextInt(4)+1;
				fg++;
				L.append(fg+1,")");
			}
			if(flag[i]==1) 
			{
				 L.append("+");
				 fg++;
 			}
 			else if(flag[i]==2) 
 			{
 				L.append("-");
 				fg++;
 			}
 			else if(flag[i]==3)
 			{
 				L.append("*");
 				fg++;
 			}
 			else if(flag[i]==4)
 			{
 				L.append("÷");
 				fg++;
 			}

通过产生随机数生成不同的运算符号。

3. 代码规范

请给出本次实验使用的代码规范:

  • 第一条:方法简短抓住重点
  • 第二条:同一个变量不在不同目的中使用
  • 第三条:变量和方法的名称能体现实现功能
  • 第四条:合理分配运用空间

五、测试

  • 命令行输入参数: -n 0 -grade 3
  • 命令行输入参数: -n -5 -grade 3
  • 命令行输入参数: -n 10 -grade 10
  • 命令行输入参数: -n 10 -grade -3
  • 命令行输入参数: -n 5
  • 命令行输入参数: -grade 3

六、总结

请总结过程中的教训和经验,思考
很多东西都还不会,写出的代码无法运行,不能熟练使用git,需要多加学习和练习。