作业1
鲁迅
一、预估与实际
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 650 | 700 |
• Estimate | • 估计这个任务需要多少时间 | 700 | 700 |
Development | 开发 | 600 | 600 |
• Analysis | • 需求分析 (包括学习新技术) | 80 | 100 |
• Design Spec | • 生成设计文档 | 10 | 20 |
• Design Review | • 设计复审 | 10 | 15 |
• Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 10 | 15 |
• Design | • 具体设计 | 200 | 200 |
• Coding | • 具体编码 | 200 | 250 |
• Code Review | • 代码复审 | 50 | 50 |
• Test | • 测试(自我测试,修改代码,提交修改) | 50 | 50 |
Reporting | 报告 | 40 | 50 |
• Test Repor | • 测试报告 | 15 | 20 |
• Size Measurement | • 计算工作量 | 15 | 20 |
• Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 10 | 10 |
合计 | 700 |
二、需求分析
我通过百度人教版教科书的方式了解到,小学一年级数学有如下的几个特点:
- 特点1:刚开始认识100以内的正整数。
- 特点2:学习到基础的100以内整数的加减法(仅限于整十数加减、两位数加一位数或整十数、两位数减一位数或整十数)。
- 特点3:已经学会加减法的进位与退位。
经过分析,我认为,这个程序应当:
- 使用的数字小于100。
- 减法中减数为整十数或者个位数。
- 算式的结果不能为负数且小于100。
三、设计
1. 设计思路
- 判断输入的参数是否合理。
- 实现数字与加减符号的随机生成。
- 使题目与标准答案符合需求。
- 将题目与答案输出至output.txt
2. 实现方案
- 准备工作:先在Github上创建仓库,克隆到本地,调查需求。
- 技术关键点:随机生成符合规范的数字与符号。
四、编码
不知道怎么生成随机符号。
1. 调试日志
使用Math.random()将100填入括号内。
2. 关键代码
if(e1) {
for(int i=1;i<=num;i++) {
int b =(int)(Math.random()100);
int c =(int)(Math.random()100);
int d;
int rd=Math.random()>0.5?1:0;
if(rd1) {
System.setOut(ps);
System.out.println("("+i+")"+" "+b+" "+"+"+" "+c+" "+"=");
d=b+c;list.add("("+i+")"+" "+b+" "+"+"+" "+c+" "+"="+" "+d);}
if(rd==0) {
while(b-c<0) {b=(int)(Math.random()*100);}
System.setOut(ps);
System.out.println("("+i+")"+" "+b+" "+"-"+" "+c+" "+"=");
d=b-c;list.add("("+i+")"+" "+b+" "+"-"+" "+c+" "+"="+" "+d);}
}
System.setOut(ps);
System.out.println("-----------标准答案-----------");
for (int i = 0; i < list.size(); i++) {
System.setOut(ps);
System.out.println( list.get(i));
随机生成数字b与c
3. 代码规范
请给出本次实验使用的代码规范:
- 第一条 代码中的命名均不能以下划线或美元符号开始,也不能一下划线或美元符号结束。
- 第二条 杜绝完全不规范的缩写,避免忘文不知义。
- 第三条 类型与中括号紧挨相连来定义数组。
- 第四条 常量命名全部大写,单词键用下划线隔开,力求语义表达完整,不要嫌名字长。
- 第五条 if/for/while/switch/do等保留字与括号之间都必须加空格。
- 第六条 方法参数在定义和传入是,多个参数逗号后边必须加空格。
- 第七条 注释的双斜线与注释内容之间有且仅有一个空格。
- 第八条 long或者Long初始赋值时,使用大写的L,不能小写的l,小写容易跟数字1混淆,造成误解。
并人工检查代码是否符合规范
五、测试
输入-5 提示输入错误 重新输入。
输入1 生成题目与答案 运行正确。
六、总结
- 容易想当然,想问题不够仔细。很多函数不会使用。