PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 100 | |
• Estimate | • 估计这个任务须要多少时间 | 10 | 10 |
Development | 开发 | ||
• Analysis | • 需求分析 (包括学习新技术) | 30 | 30 |
• Design Spec | • 生成设计文档 | 30 | 70 |
• Design Review | • 设计复审 | 10 | 10 |
• Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 10 | 20 |
• Design | • 具体设计 | 20 | 20 |
• Coding | • 具体编码 | 500 | 300 |
• Code Review | • 代码复审 | 20 | 100 |
• Test | • 测试(自我测试,修改代码,提交修改) | 200 | 300 |
Reporting | 报告 | ||
• Test Repor | • 测试报告 | 40 | 100 |
• Size Measurement | • 计算工做量 | 15 | 10 |
• Postmortem & Process Improvement Plan | • 过后总结, 并提出过程改进计划 | 50 | 100 |
合计 | 1170 |
· 数学一年级下学期 第五单元测试题
· 两位数减两位数 不退位减
· 两位数减两位数(退位减)
· 两位数加两位数(进位加)
· 两位数加两位数(不进位加)
· 两位数减一位数(退位)
· 两位数加一位数(进位)
· 两位数减一位数、整十数(不退位)
· 小括号
· 两位数加一位数、整十数(不进位)
· 整十数加、减整十数
· 整十数加、减整十数java
· 万之内的加法和减法
· 求比一个数多几的应用题
· 不连续进位加
· 连续进位加
· 加法的验算
· 万之内的加法和减法算法
程序运行中、文件输出后要给明确的提示编程
写出具体实现的步骤数组
查阅别人的博客并无找到带括号的四则运算。而后我就先试着生成随机的没有括号的四则运算,完成任务后我再考虑如何加上括号,设计了很久终于加了一些if判断而且生成了带括号的四则运算了。app
解决:这是我本次开发浪费最多时间调试的bug。缘由知道后其实很简单,字符串转字符我没用str.toCharrArrays()这个方法,而是本身开辟一个char[100],默认温馨化是0。当遍历字符串末尾的时候天然就跃界报错了。dom
解决:当时在这个地方也困扰了我好久,一步步的增长判断,随机安排括号,因为很差控制括号出现的位置我调试了好久才生成带括号的四则运算函数
public static StringBuffer init3(String[] args) throws Exception { int m = 1; int l = 1; String str = null; // 生成2个字符串用于拼接题目和答案 StringBuffer strbuf = new StringBuffer(); StringBuffer strbuf1 = new StringBuffer(); StringBuffer strbuf2 = new StringBuffer(); // random用于随机生成题目中的操做数 int random = 0; // int flag=5; // 将四种运算符放入数组 String[] strop = { "+", "-", "x", "÷" }; // 将随机生成的2-4个运算符存入ostr数组 String[] ostr = new String[4]; int w = Integer.valueOf(args[args[0].equals("-n") ? 1 : 3]); for (int i = 0; i < w; i++) { // 随机生成的2-3个运算符 int operator = (int) (Math.random() * 3) + 2; int k = 0; // 随机生成运算符号(至少有2种不一样运算符号) for (int j = 0; j < operator; j++) { k = (int) (Math.random() * 4); ostr[j] = strop[k]; if (operator == 2 && j == 1) { // 控制在只有2个运算符的状况下2个运算符号必定不一样 while (ostr[0] == ostr[1]) { k = (int) (Math.random() * 4); ostr[0] = strop[k]; } } } int flag1 = 1; int flag = 1; for (int j = 0; j < operator + 1; j++) { if (operator == 4) // 若是运算符有+-就自动生成括号运算符 if (j < operator && (ostr[j].equals("+") || ostr[j].equals("-")) && flag == 1) { strbuf.append("( "); flag = 0;// 判断是否加了左括号0表明已近加了 flag1 = 0;// 判断是否能够加右括号了 } random = (int) (Math.random() * 101); if (j == operator) { // 最后一个随机数的末尾不加空格 if (flag == 0 && flag1 == 1) { strbuf.append(random + " )"); flag1 = 0; flag = 100; } else { strbuf.append(random); if (flag == 0) { // 在最后一个数后面加上右括号 flag1 = 1; } } } else { if (flag == 0 && flag1 == 1) { strbuf.append(random + " )" + " "); flag1 = 0; flag = 100; } else { strbuf.append(random + " "); if (flag == 0) { // 在下一次循环当中能够加入右括号 flag1 = 1; } } } if (j < operator) strbuf.append(ostr[j] + " "); } l = 1; // 从新初始化数组 ostr = new String[4]; // MathExam mathExam = new MathExam(); mathExam.Init(); str = strbuf.toString(); char[] charArray = str.toCharArray(); double shuntYardAlgo = mathExam.ShuntYardAlgo(charArray); String vf = String.valueOf(shuntYardAlgo); boolean matches = vf.matches("\\d+.[0]?"); if (matches) { // strbuf2用于拼接题目 strbuf2.append("(" + m + ")" + " " + strbuf + "\r\n"); // strbuf1用于拼接答案 strbuf1.append("(" + m + ")" + " " + strbuf + " " + "=" + " " + (int) shuntYardAlgo + "\r\n"); m++; l = 0; } strbuf = new StringBuffer(); if (l != 0) i--; } strbuf2.append("\r\n"); strbuf2.append(strbuf1); return strbuf2; }
请给出本次实验使用的代码规范:单元测试
测试 | 预期结果 | 实际结果 | |
---|---|---|---|
不输入参数 | -grade和-n标识符错误!! | -grade和-n标识符错误!! | |
只输入一个参数:100 | -grade和-n标识符错误!! | -grade和-n标识符错误!! | |
-n 10 -grade 1 | 题目已经生成,详情请见out.txt | 题目已经生成,详情请见out.txt | |
-n 10.5 -grade 1 | 请输入正整数 | 请输入正整数 | |
-n ascc -grade 2 | 请输入正整数 | 请输入正整数 | |
-n 10 -grade vsdv | 年级参数错误,只能在[1~3]之内 | 年级参数错误,只能在[1~3]之内 | |
-n 00001 -grade 3 | 题目已经生成,详情请见out.txt | 题目已经生成,详情请见out.txt | |
-n 1000 -grade 2.3 | 年级参数错误,只能在[1~3]之内 | 年级参数错误,只能在[1~3]之内 | |
-n 10 -grade 002 | 题目已经生成,详情请见out.txt | 题目已经生成,详情请见out.txt | |
-n 10000 -grade 3 | 题目已经生成,详情请见out.txt | 题目已经生成,详情请见out.txt | |
-n -1 -grade 3 | 请输入正整数 | 请输入正整数 | |
1000 -n -grade 2 | -grade和-n标识符错误!! | -grade和-n标识符错误!! | |
-n 10 -grade -3 | 年级参数错误,只能在[1~3]之内 | 年级参数错误,只能在[1~3]之内 | |
-n 1000 2 -grade | -grade和-n标识符错误! | -grade和-n标识符错误! | |
-grade 2 -n 1000 | 题目已经生成,详情请见out.txt | 题目已经生成,详情请见out.txt | |
-grade 0.1 -n 800 | 年级参数错误,只能在[1~3]之内 | 年级参数错误,只能在[1~3]之内 | |
-grade a1 -n 10 | 年级参数错误,只能在[1~3]之内 | 年级参数错误,只能在[1~3]之内 | |
-grade 001 -n 20 | 题目已经生成,详情请见out.txt | 题目已经生成,详情请见out.txt | |
-grade 1 -n 0000000002 | 题目已经生成,详情请见out.txt | 题目已经生成,详情请见out.txt | |
-grade 0.1 -n 0.1 | 请输入正整数 | 请输入正整数 | |
-n a1 -grade a1 | 请输入正整数 | 请输入正整数 |