第一次作业
自己取一个大气又可爱的标题
一、预估与实际
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 600 | 650 |
• Estimate | • 估计这个任务需要多少时间 | 600 | 650 |
Development | 开发 | 600 | 650 |
• Analysis | • 需求分析 (包括学习新技术) | 60 | 70 |
• Design Spec | • 生成设计文档 | 20 | 20 |
• Design Review | • 设计复审 | 20 | 30 |
• Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 20 | 20 |
• Design | • 具体设计 | 200 | 200 |
• Coding | • 具体编码 | 200 | 200 |
• Code Review | • 代码复审 | 40 | 40 |
• Test | • 测试(自我测试,修改代码,提交修改) | 30 | 30 |
Reporting | 报告 | 30 | 30 |
• Test Repor | • 测试报告 | 20 | 20 |
• Size Measurement | • 计算工作量 | 10 | 10 |
• Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 20 | 20 |
合计 | 650 |
二、需求分析
我通过网络的方式了解到,小学一年级数学有如下的几个特点:
- 简单点的加减乘除运算
经过分析,我认为,这个程序应当:
- 出题数量应该符合正整数
- 加减使用的数字小于50,乘除小于20
- 不能出现负数 不出现小数
三、设计
1. 设计思路
判断输入的题目数量和年级数字是否符合规范
随机数的生成
调用函数实现不同年级不同随机题目生成
打印结果至屏幕以及output.txt
程序有三个方法,主方法判定生成一年级或者二年级,然后分别执行对应方法
设置a,b两个数字,让他们随机进行加减法,如果是加法,不用考虑特殊情况,如是减法,则要控制被减数大于或等于减数,从而不会得到负数的结果
设置a,b两个数字,让他们随机进行乘除法,如果是乘法,不用考虑特殊情况,如是除法,则要控制被除数大于或等于除数,从而不会得到小数的结果
2. 实现方案
写出具体实现的步骤
-准备工作:先在Github上创建仓库,克隆到本地
-技术关键点:输出至txt,判断输入的数字是否符合规范
四、编码
输入题目数和年纪数 调用不同的方法从而达到不同目的
1. 调试日志
记录编码调试的日志,请记录下开发过程中的 debug 历程
加减结果出现了负数 然后进行了改正
2. 关键代码
public static void main(String[] args) throws IOException {
int n;
while (true) {
Scanner input = new Scanner(System.in);
try {
n=input.nextInt();
}catch(Exception e) {
System.out.println("输入的不是整数请重新输入");
continue;}
if(n<0) {
System.out.println("输入的不是正数请重新输入");
}
break;
}
Scanner x = new Scanner(System.in);
int grade = x.nextInt();
if(grade==1) {
grade_one();
}else if(grade == 2) {
grade_two();
利用输入的信息判断题目数和年级数 来调用后面的方法
3. 代码规范
不适用未定义的变量
右括号后换行
对应好每个循环
并人工检查代码是否符合规范
五、测试
请思考并记录你认为必要的测试点,并记录测试用例与测试结果
六、总结
请总结过程中的教训和经验,思考
- 是否使用了“软件开发的基本策略:分而治之”,是否需要重构
- “高质量的设计、规范的编码以及有效的测试是保证软件产品质量的三个重要方面”,你是否采用了相关的手段,是否需要重构
自己在实践中还有很多问题,以后要认真学习专业知识,不会重构