小学一二年级数学

Posted on 2018-09-18 18:06  南森ns  阅读(186)  评论(0编辑  收藏  举报

自己取一个大气又可爱的标题

一、预估与实际

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

二、需求分析

我通过百度的方式了解到,小学一年级数学有如下的几个特点:

  • 特点1 不能出现小数和负数
  • 特点2 数字要求在0到100之间

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

  • 使用的数字在0到100之间,且用int类型
  • 被减数和减数不能为负数,且被减数要大于减数

三、设计

1. 设计思路

说明你如何设计这个程序

  • 这个程序有1个类
  • 题目与答案应该正确匹配
  • 运用随机数生成题目

2. 实现方案

写出具体实现的步骤

  • 准备工作:先在Github上创建仓库,克隆到本地...
  • 技术关键点:出的题目必须是随机的

四、编码

请说明你如何按照设计思路进行编码,并记录你在开发中遇到的问题,与解决过程
1.一年级题目中出现超过100的数
解决方法:把随机数的范围从2个都是100改为第一个数范围为100,第二个数范围为100-第一个数。
2.答案出现负数
解决方法:if(x<y){t=x;x=y;y=t;},第一个数为x,第二个数为y,确保第一个数大于第二个数。

1. 调试日志

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

  • 用eclipse运行时出现
    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
    at MathExam6384.main(MathExam6384.java:18)
    解决方法:把public static void main(String[] arg)中的arg改为想要输出的数学题数。

2. 关键代码

if(Integer.parseInt(arg[1])==1)
{
	for(i=1;i<=Integer.parseInt(arg[0]);i++)
	{
		x=ne.nextInt(100);
		y=ne.nextInt(100-x);
		if(x<y)
		{
			t=x;
			x=y;
			y=t;
		}
		a[i]=x;
		b[i]=y;
		if(x%2==0)
		{
			System.out.println("("+i+")"+" "+x+" "+"+"+" "+y+" "+"=");
		}
		else
		{
			System.out.println("("+i+")"+" "+x+" "+"-"+" "+y+" "+"=");
		}
	}

其中的a[i]=x;b[i]=y;是记录下数学题中的加数或者被减数和减数,确保在下一个for语句中实现题目与标准答案的数字一样;
其中if(x%2==0)是为了实现加法与减法出现的随机性。

3. 代码规范

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

  • 第一条:if语句括号中的等式要有两个等号。
  • 第二条:每个语句结束后要用;收尾。

五、测试

测试1 java MathExam6384 2 1
结果
(1) 48 + 33 =
(2) 92 + 3 =
"-----------------标准答案-----------------"
(1) 48 + 33 = 81
(2) 92 + 3 = 95
测试2 java MathExam6384 2 2
结果
(1) 51 ÷ 17 =
(2) 88 + 1 =
"-----------------标准答案-----------------"
(1) 52 ÷ 17 = 3...1
(2) 88 + 1 = 89

六、总结

  • 对于随机数的使用和写入文件还不是很熟练。
  • 写出的题目第一个数一定比第二个数大,这是我为了解决不出现负数所遗留下来的问题,还不能解决。

Copyright © 2023 南森ns
Powered by .NET 7.0 on Kubernetes