结对作业1

Posted on 2018-09-19 11:07  南森ns  阅读(149)  评论(1编辑  收藏  举报

结对作业1

  • 211606384夏培华
  • 211606371刘治江

一、预估与实际

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

二、需求分析

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

  • 一二年级不能出现小数和负数
  • 复合运算
  • 结果一般不超过四位数
  • 运算符在2到4个
  • 应该考虑括号的位置和运算的顺序

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

  • 使用的数字在0到10000之间,且用int类型
  • 被减数和减数不能为负数,且被减数要大于减数
  • 每道题目占一行
  • 保留一二年级的功能

三、设计

1. 设计思路

说明你如何设计这个程序

  • 这个程序有1个类
  • 题目与答案应该正确匹配
  • 运用随机数生成题目
  • 运用随机数控制括号的位置

2. 实现方案

写出具体实现的步骤

  • 准备工作:先在Github上创建仓库,克隆到本地...
  • 技术关键点:逆波兰函数和随机数的运用

四、编码

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

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语句括号中的等式要有两个等号。
  • 第二条:每个语句结束后要用;收尾。

五、测试

三年级代码未调试完成,程序无法运行

六、总结

  • 对于随机数的使用和写入文件还不是很熟练。
  • 写出的题目第一个数一定比第二个数大,这是我为了解决不出现负数所遗留下来的问题,还不能解决。
  • 还未想出算法来实现复合运算中的优先顺序。

Copyright © 2024 南森ns
Powered by .NET 8.0 on Kubernetes