小学一二年级出题器

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

一、预估与实际

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

二、需求分析

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

  • 特点1:小学数学一年级学习了基础的加减法,包含100以上。
  • 特点2:小学数学二年级学习了乘法和除法还有余数。
  • 特点3:小学一年级还没学负数。
  • 特点4:小学二年级会九九乘法表。
    经过分析我认为这个程序
  • 加法减法的俩个数不能超过100,但结果可以超出一点100以上的。
  • 乘法和除法的数字不能大于10。
  • 减法不能出现负数。
  • 除法不能出现分数。
  • 被除数不能为0。

三、设计

1. 设计思路

说明你如何设计这个程序

比如:

  • 这个程序有个2个类一年级的出题类和二年级的出题类,2个方法取余数的方法和选择年级的方法。
  • 关键函数的流程图是怎样的?
  • 算法的关键的关键是输入的参数是否合法,还有产生的随机数和得出的结果是否超过题目的要求范围。
  • ...

2. 实现方案

写出具体实现的步骤

比如:

  • 准备工作:先在Github上创建仓库,克隆到本地,完成后提交。
  • 技术关键点:要现在Eclipse先打出代码然后把代码输入到out.txt文件后,要在cmd上运行检测。还有要注意String类型和Int类型的转换。

四、编码

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

1. 调试日志

  • 第一次运行时发现出现负数,就在代码上加了一个循环让出现负数的时候跳过重新循环一组数字,但最后发现运行结果会出现NULL,最后我换了种思路,出现负数时X和Y对调,通过这种方法顺利解决了问题。

2. 关键代码

public static void zzz(int n,String[] str) {
int x;
int y;
for (int i = 0; i < n; i++) {
int z = (int)(Math.random()(2));
x = (int)(Math.random()
100);
y = (int)(Math.random()*100);
//输入X和Y,给z随机出现0或者1俩个数字。

	if(z==0) {
		System.out.println("("+(i+1)+")" + "" + x + "+" + y + "" + "=" + " " );
		str[i] = "(" + (i+1) + ")" +" " + x + "+" + y + " " + "=" + " " + (x+y);}
		//当z为0的时候,就是X+Y的加法,输出结果。
	else{
		if(x-y<0) {
			System.out.println("("+(i+1)+")" + "" + y + "-" + x + "" + "=" + " " );
			str[i] = "(" + (i+1) + ")" +" " + y + "-" + x + " " + "=" + " " + (y-x);
			}//当z不为0也就是1的时候,就是x-y的减法并且当x-y<0时x与y的位置互换,从而避免出现负数。输出结果。
		else {
			System.out.println("("+(i+1)+")" + "" + x + "-" + y + "" + "=" + " " );
			str[i] = "(" + (i+1) + ")" +" " + x + "-" + y + " " + "=" + " " + (x-y);
	}//x-y>0输出结果。
		}
	}
	System.out.println("标准答案");
	for(String s:str)
		System.out.println(s);

}

}

3. 代码规范

  • 方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵循驼峰形式。
  • 代码中的命名均不能以下划线或美元符号开始,也不能一下划线或美元符号结束。

五、测试

uploading-image-238890.png

六、总结

基础太差,做的很吃力,所以花了非常多时间,但还是有很多地方不理解,以后需要更努力了。

原文地址:https://www.cnblogs.com/Dollarss/p/9631864.html