学号1:211606328 姓名:田先强 学号2:211606331 姓名:王鑫
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | ||
Estimate | 估计这个任务需要多少时间 | 0.5 | 1 |
Development | 开发 | 30 | 25 |
Analysis | 需求分析 (包括学习新技术) | 90 | 180 |
Design Spec | 生成设计文档 | 80 | 120 |
Design Review | 设计复审 | 60 | 70 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 30 | 30 |
Design | 具体设计 | 50 | 50 |
Coding | 具体编码 | 600 | 1800 |
Code Review | 代码复审 | 60 | 50 |
Test | 测试(自我测试,修改代码,提交修改) | 100 | 90 |
Reporting | 报告 | 30 | 25 |
Test Repor | 测试报告 | 40 | 55 |
Size Measurement | 计算工作量 | 15 | 15 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 40 | 60 |
合计 | 1225.5 | 2571 |
我通过百度的方式了解到,小学三年级数学有如下的几个特点:
经过分析,我认为,这个程序应当:
出现的问题:1.开始时,不知道怎么判断生成的一道题该从哪里开始计算,我们通过将运算符保存在两个不同数组中从而区分其的计算优先级;2.随机生成一个数后,无法生成符合条件的数,例如出现除号时,我们通过一个方法将传入的参数和运算符进行判断,运算符不同时采用不同的方法来生成符合条件的数字;3.最难的还是当出现括号运算符时,括号该加在什么地方,只有三个运算符的时候,括号只能加在两个地方,而有四个运算符时则有五个地方,当时没想到什么好方法,就只能通过穷举的方式来判别括号的位置
1.刚开始测试时遇到有除法运算时,总是无法整除,我们写了一个求因数的方法,遇到除号时便从它的因数数组中随机生一个除数,保证一定能够整除;2.当遇到括号运算,括号里的结果为0可能会作为除数,系统便会进行报错,目前没有想到什么好办法,只能将所有可能生成0的计算给排除了
```public static int sc2(String s1, int answer) {
int number;
if(s1.equals("+")) {
number=(int)(Math.random()1000);
return number;
}
if(s1.equals("-")) {
number=(int)(Math.random()1000)+answer+1;
return number;
}
if(s1.equals("×")) {
number=(int)(Math.random()(1000/answer))+1;
return number;
}
if(s1.equals("÷")) {
if (answer!=0) {
number=(int)(Math.random()(3000/answer)+1)*answer;
return number;}
else {
out3();
}
}
return 0;
}
public static int sc1(String s2,int answer) {
int number3 ;
if(s2.equals("+")) {
number3=(int)(Math.random()*1000);
return number3;
}
if(s2.equals("-")) {
number3=(int)(Math.random()*(answer));
return number3;
}
if(s2.equals("×")) {
if(answer!=0) {
number3=(int)(Math.random()*(1000/answer))+1;
return number3;}
else {
number3=(int)(Math.random()*(1000));}
}
if(s2.equals("÷")) {
if(answer==0) number3=(int)(Math.random()*1000)+1;
else{int[] yin=yinshu(answer);
number3=yin[(int)(Math.random()*(yin.length))];
return number3;}
}
return 0;
}```
已知一个数和运算符,如何生成符合条件的另一个数
请给出本次实验使用的代码规范:
输入:10 0/001/wqd/ 4554 5 6 /
1 0/002/4/ 1 /4 55 6/(请输入正确的题数与年级)
-输入:5
3 结果:3 + 4 - 6 = 1,( 25 + 5 )? 60 = 1800, 45 + 55 ? 11 - 40 = 10
这次的作业是真的有点难好吧,主要问题是在如何正确生成符合条件的算式以及如何计算出正确的答案,最难的还是四个运算符的计算,包括括号的位置、怎么计算,情况复杂,这也是自己第一次花这么多时间在写一个代码作业上,也是第一次体会到了熬夜写代码的感受,这次的结对编程和之前也有所不同,通过和队友的沟通有时一些自己很难想到的方法很快就能有头绪,也能学到一些别人会而自己却没有掌握的东西,取长补短,所以与他人的沟通是很重要的总比自己一个人在一边苦想要更快有思路。
原文:https://www.cnblogs.com/txq1997/p/9676558.html