自己取一个大气又可爱的标题
一、预估与实际
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
六、总结
基础太差,做的很吃力,所以花了非常多时间,但还是有很多地方不理解,以后需要更努力了。