unknown
软工-1
一、预估与实际
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | ||
• Estimate | • 估计这个任务需要多少时间 | 2880 | 2160 |
Development | 开发 | ||
• Analysis | • 需求分析 (包括学习新技术) | 60 | 60 |
• Design Spec | • 生成设计文档 | 0 | 0 |
• Design Review | • 设计复审 | 0 | 0 |
• Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 10 | 30 |
• Design | • 具体设计 | 0 | 0 |
• Coding | • 具体编码 | 240 | 300 |
• Code Review | • 代码复审 | 60 | 120 |
• Test | • 测试(自我测试,修改代码,提交修改) | 120 | 100 |
Reporting | 报告 | ||
• Test Report | • 测试报告 | 30 | 60 |
• Size Measurement | • 计算工作量 | 20 | 20 |
• Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 30 | 30 |
合计 | 720 |
二、需求分析
我通过查阅百度文库的方式了解到,小学一年级数学有如下的几个特点:
- 特点1:小学一年级的算术题仅限于100以内的加减计算。
- 特点2:小学一年级的算术题不涉及小数计算和正负数计算。
- 特点2:小学二年级的算术题仅限于100以内的乘除计算。
经过分析,我认为,这个程序应当:
- 为了避免出现负数结果:在减法运算时判断减数和被减数的大小关系,若被减数小于减数则交换被减数和减数的顺序再进行运算。
- 为了避免出现小数结果:在除法运算时判断除数和被除数的大小关系,若被除数小于除数则交换被除数和除数的顺序再进行运算。
三、设计
1. 设计思路
1.用户输入的两个参数格式的判断;
2.在命令行或控制台中接收的数据,都是字符串型,需要强制转换;
3.随机生成的题目和答案的存储;
2. 实现方案
- 准备工作:先在Github上创建仓库,克隆到本地;
- 创建out.txt文件;
- 如何生成随机数和随机运算符;
- 如何将生成的题目存入文档...
四、编码
1. 调试日志
2. 关键代码
char[] ch = {'+','-'};
Random r = new Random();
int index = r.nextInt(ch.length);
c = ch[index];
随机生成两个运算符中的一个(代码写得好寒碜啊感觉没什么好展示的。。。)
3. 代码规范
请给出本次实验使用的代码规范:
-
第一条:[强制]代码中的命名均不能以下划线或美元符号开始,也不能一下划线或美元符号结束。
反例:name / name / $name / name / name$ / name -
第二条:[强制]代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。
-
第三条:[强制]常量命名全部大写,单词键用下划线( _ )隔开,力求语义表达完整,不要嫌名字长。
-
第四条:[强制]不允许任何魔法值(即未经预先定义的常量)直接出现在代码中。
-
第五条:[强制]大括号的使用约定。如果是大括号内为空,则简介地写成{}即可,不需要换行;如果是非空代码块则:
左大括号前不换行。
左大括号后换行。
右大括号前换行。
右大括号后还有 else 等代码则不换行;表示终止的右大括号后必须换行。 -
第六条:[强制] if/for/while/switch/do等保留字与括号之间都必须加空格。
-
第七条:[强制]任何二目、三木运算符的左右两边都需要加一个空格。
说明:运算符包括赋值运算符=、逻辑运算符&&、加减乘除符号等。 -
第八条:[强制]采用4个空格缩进,禁止使用tab字符。
五、测试
请思考并记录你认为必要的测试点,并记录测试用例与测试结果
(代码不够完善,测试表格后续补充)
六、总结
第一次作业没有把要求全部达成,看到作业要求第一感觉是会怕,然后分分块去看,作业的要求细则挺多的。卡在Github那步要求,然后clone完就扔下作业去学其他东西了。作业是卡了三四天才开始做,期间断断续续地回看要求想着怎么去实现但就是没有开敲(说实话光看不做知道那问题难一直搁着心里一点也不好受)。然后开始打会发现问题层出不穷,我觉得以后敲代码还是先写注释比较好,先由外而内地把需求写进去,不然真的是为了完成要求东改西改,然后乱七八糟的,也导致代码冗长。过程中当然有问大佬问题,被回应的一句“突然发现你带不动”让我对自己无奈地嗤笑至今(哈哈哈哈)。后面列出代码中需要解决的问题,花了大概一小时解决了一个,其他的查改了一下午还是没有解决(真是太佩服我自己了),别说我没去问同学,问过了但没得到解决。其实归结为一点那就是基础没打好= =。