个人软件开发流程----计应191第一小组李影
四则运算:
需求分析:自动生成50道 50 以内的 四则运算算数题,同时生成答案
主要代码:
package demo01; import java.util.Random; public class Calculate { /** * 自动生成50道 50 以内的 四则运算算数题,同时生成答案 * * 思路 1 定义3个int数组 ,int []num1,[]num2,[]num3,分别存 第一运算数 ,第二个运算数,结果, 定义一个字符数组,char * [] ch ;存50道题目的运算符, 2 随机生成一个长度50的运算符数组 3 根据运算符 ,随机组合运算数,并存入三个数组 4 * 输出的时候可以组合题目,答案存数组 int []result;单独输出 */ public static void main(String[] args) { // 运算符 char[] ch = new char[50]; // num first secend result Answer int[] numF = new int[50]; int[] numS = new int[50]; int[] numR = new int[50]; int[] numA = new int[50]; Random random = new Random(1); Random rnd2 = new Random(2); Random rnd3 = new Random(3); for (int i = 0; i < 50; i++) { // 用num生成运算类型 int num = random.nextInt(4); // numF numS 分别为第一、二个运算数 numF[i] = rnd2.nextInt(51); // 在生成题目时 考虑除数不为0 numS[i] = rnd3.nextInt(51); switch (num) { case 0: ch[i] = '+'; break; case 1: ch[i] = '-'; break; case 2: ch[i] = '*'; break; case 3: ch[i] = '÷'; break; default: break; } } // 组合+— * for (int i = 0; i < 50; i++) { switch (ch[i]) { case '+': numR[i] = numF[i] + numS[i]; break; case '÷': while (numS[i] == 0) { numS[i] = new Random().nextInt(51); } numR[i] = numF[i] / numS[i]; break; case '*': numR[i] = numF[i] * numS[i]; break; case '-': numR[i] = numF[i] - numS[i]; break; default: break; } } // 题目数组 String[] question = new String[50]; for (int i = 0; i < numR.length; i++) { // 随机抽取一个运算数用空格替代,存入答案numA数组中 int flag = random.nextInt(3); switch (flag) { case 0: question[i] = "___ " + ch[i] + numS[i] + "\t= " + numR[i]; numA[i] = numF[i]; break; case 1: question[i] = numF[i] + " " + ch[i] + " ___" + "= " + numR[i]; numA[i] = numS[i]; break; case 2: question[i] = numF[i] + " " + ch[i] + numS[i] + "\t= " + "___"; numA[i] = numR[i]; break; default: break; } } for (int i = 0; i < 50; i++) { System.out.print(question[i]); System.out.println("\t答案 :" + numA[i]); } } }
效果展示:

PSP对照表:
|
PSP |
任务内容 |
计划共完成需要的时间(min) |
实际完成需要的时间(min)
|
|
Planning |
计划 |
25 |
30 |
|
· Estimate |
· 估计这个任务需要多少时间,并规划大致工作步骤 |
25 |
30 |
|
Development |
开发 |
478 |
592 |
|
· Analysis |
·需求分析 (包括学习新技术) |
20 |
30 |
|
· Design Spec |
· 生成设计文档 |
15 |
10 |
|
· Design Review |
· 设计复审 (和同事审核设计文档) |
15 |
15 |
|
· Coding Standard |
·代码规范 (为目前的开发制定合适的规范) |
5 |
5 |
|
· Design |
·具体设计 |
23 |
28 |
|
· Coding |
·具体编码 |
350 |
450 |
|
· Code Review |
· 代码复审 |
30 |
30 |
|
· Test |
· 测试(自我测试,修改代码,提交修改) |
20 |
24 |
|
Reporting |
报告 |
21 |
18 |
|
· Test Report |
·测试报告 |
6 |
6 |
|
· Size Measurement |
·计算工作量 |
5 |
4 |
|
· Postmortem & Process Improvement Plan |
·事后总结 ,并提出过程改进计划 |
10 |
8 |
总结:
在具体编码与代码复审的阶段非常耗时间,许多方法都忘记了,好多都需要百度和查看书籍才能完成;具体编码环节估计和实践差距太大了。
还是要多加练习,思维逻辑太差了。
浙公网安备 33010602011771号