自己取一个大气又可爱的标题
一、预估与实际
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 500 | 1350 |
• Estimate | • 估计这个任务需要多少时间 | 700 | 1100 |
Development | 开发 | 460 | 700 |
• Analysis | • 需求分析 (包括学习新技术) | 40 | 60 |
• Design Spec | • 生成设计文档 | 30 | 50 |
• Design Review | • 设计复审 | 40 | 65 |
• Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 40 | 70 |
• Design | • 具体设计 | 650 | 700 |
• Coding | • 具体编码 | 700 | 800 |
• Code Review | • 代码复审 | 60 | 90 |
• Test | • 测试(自我测试,修改代码,提交修改) | 80 | 120 |
Reporting | 报告 | 30 | 40 |
• Test Repor | • 测试报告 | 60 | 80 |
• Size Measurement | • 计算工作量 | 20 | 40 |
• Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 40 | 55 |
合计 | 1350 |
二、需求分析
我通过百度查资料的方式了解到,小学3年级数学有如下的几个特点:
- 特点1
加减乘除混合运算 - 特点2
-九九乘法表内的乘除
经过分析,我认为,这个程序应当:
在作业一上新增带括号的四则混合运算。
三、设计
1. 设计思路
-判断输入的题目数量和年级数字是否符合规范
-随机数的生成
-调用函数实现不同年级不同随机题目生成
-把运算符存进数组中
-打印结果及output.txt上
2. 实现方案
写出具体实现的步骤
- 准备工作:先在Github上创建仓库,克隆到本地,让队友FOK我的仓库
-技术关键点:输出至txt,还有加入四则混合运算。
四、编码
请说明你如何按照设计思路进行编码,并记录你在开发中遇到的问题,与解决过程
我先创建文件,然后通过创建数组的方式把变量设置好,然后用byte[] m = e.getBytes(); 以及in.write(m);的比特流的方式输出TXT文件
1. 调试日志
记录编码调试的日志,请记录下开发过程中的 debug 历程
- 在弄混合运算的时候没有注意优先级的使用导致运行有问题
2. 关键代码
private static void jiajian(int count[]) throws IOException {
File file =new File("out.txt");
FileWriter fw = new FileWriter(file);
BufferedWriter bw = new BufferedWriter(fw);
int [] as = new int[count[0]+5];
int [] bs = new int[count[0]+5];
char [] cs = new char[count[0]+5];
int [] ds = new int[count[0]+5];
for(int i =1;i<=count[0];i++) { //n循环,有n道题
int a=(int)(Math.random()*100+1); //随机生成100以内的数字
as[i] = a; //把a存入数组
//bw.write(String.valueOf(a)); //向文本输入a值
int c=(int)(Math.random()*100+1); //判断符号并且存入
{
if(c%2==1) {
//bw.write(String.valueOf("-"));
cs[i] = '-';
}
else {
//bw.write(String.valueOf("+"));
cs[i] = '+';
}
}
int b=(int)(Math.random()*100+1); //b值
//bw.write(String.valueOf(b));
bs[i] = b;
if(c%2==1 && a<b) {
int answer = a+b;
cs[i]='+';
ds[i]=answer;
}
else if(c%2==1 ) {
int answer = a-b;
ds[i] = answer;
//System.out.print("("+i+")"+a+"-"+b+"="+answer+"\n");
//bw.write(String.valueOf("="+answer));
//bw.newLine();
}
else {
int answer =a+b;
ds[i] = answer;
// System.out.print("("+i+")"+a+"+"+b+"="+answer+"\n");
// bw.write(String.valueOf("="+answer));
// bw.newLine();
}
}
for(int i=1;i<=count[0];i++) {
System.out.print(as[i]);
bw.write(String.valueOf(as[i]));
System.out.print(cs[i]);
bw.write(String.valueOf(cs[i]));
System.out.println(bs[i]);
bw.write(String.valueOf(bs[i]));
bw.newLine();
System.out.println("-------------标准答案--------------");
bw.write(String.valueOf("-------------标准答案--------------"));
bw.newLine();
for( i=1;i<=count[0];i++) {
System.out.print(as[i]);
bw.write(String.valueOf(as[i]));
System.out.print(cs[i]);
bw.write(String.valueOf(cs[i]));
System.out.print(bs[i]);
bw.write(String.valueOf(bs[i]));
System.out.println("="+ds[i]);
bw.write(String.valueOf("="+ds[i]));
bw.newLine();
bw.close();
fw.close();
}
}
}
3. 代码规范
请给出本次实验使用的代码规范:
手动处理异常,不抛出。
合理利用开辟的空间
进行适当合理的代码注释,方便理解,修正
代码中不能使用拼音与英文混合的方式,更不允许直接使用中文的方式。
并自己检查代码是否符合规范
五、测试
请思考并记录你认为必要的测试点,并记录测试用例与测试结果
代码没添加混合运算还可以运行,弄完到最后运行不出来了....
六、总结
请总结过程中的教训和经验,思考
我在其中感觉到这次作业增加的难度还是对于我来说真的写不了,没有思绪,直到百度了解许多东西还有记起了以前老师教过的东西,才逐渐搞出点东西,感觉自己还需要多理解代码意义还有多实践去打代码,欠缺太多敲代码的过程了。