《个人软件开发流程》------王晓蒙
四则运算练习
1. 题目要求
(1)随机产生加减乘除的练习题,数字在100以内,
(2)一个题内必须出现3个的运算符。
(3)一个题内必须出现4个的数字参与运算
(4)最后并计算出练习题的正确答案
2. 需求分析

3. 核心代码
package lianxi;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.concurrent.locks.ReentrantLock;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import org.omg.CORBA.PUBLIC_MEMBER;
import com.sun.corba.se.spi.orbutil.fsm.Guard.Result;
import com.sun.crypto.provider.RC2Parameters;
public class RandomCount {
// 参数随机数
public List<Integer> randnum() {
List<Integer> list = new ArrayList<Integer>();
for (int i = 0; i < 10; i++) {
int nums = (int) (Math.random() * 100);
list.add(nums);
}
return list;
}
//随机生成运算符
public List<String> randysf() {
List<String> list = new ArrayList<String>();
List<String> list1 = new ArrayList<String>();
for (int k = 0; k < 5; k++) {
list.add("+");
list.add("-");
list.add("*");
list.add("/");
int index = (int) (Math.random() * list.size());
list1.add (list.get(index)) ;
}
return list1;
}
//随机返回集合中的随机元素
public String returnListElement2(List<String> randysf) {
int index = (int) (Math.random() * randysf.size());
return randysf.get(index);
}
public int returnListElement1(List<Integer> randnum) {
int index = (int) (Math.random() * randnum.size());
return randnum.get(index);
}
/**
* 产生四则四位表达式
* @param args
* @throws ScriptException
*/
public String returnTi() throws ScriptException {
RandomCount ran = new RandomCount();
List<Integer> randnum=ran.randnum();
List<String> randysf = ran.randysf();
int su1 = ran.returnListElement1(randnum);
String fu1 = ran.returnListElement2(randysf);
int su2 = ran.returnListElement1(randnum);
String fu2 = ran.returnListElement2(randysf);
int su3 = ran.returnListElement1(randnum);
String fu3= ran.returnListElement2(randysf);
int su4 = ran.returnListElement1(randnum);
String shizi= su1+fu1+su2+fu2+su3+fu3+su4;
return shizi;
}
/*
* 得出结果*/
public static void main(String[] args) throws ScriptException {
RandomCount ran=new RandomCount();
List<Integer> randnum = ran.randnum();
List<String> randysf = ran.randysf();
for (int i = 0; i < 5; i++) {
String returnTi = ran.returnTi();
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
Object result = engine.eval(returnTi);
System.out.println(returnTi+"="+result);
}
}
}
4. 运行结果

5. psp(个人软件开发流程)
|
PSP阶段 |
预估时间(分钟) |
实际时间(分钟) |
|
计划 |
20 |
30 |
|
明确需求和其他相关因素,估计每个阶段的时间和成本 |
10 |
13 |
|
开发 |
225 |
306 |
|
需求分析 |
10 |
7 |
|
生成设计文档 |
20 |
30 |
|
设计复审(和同事审核设计文档) |
10 |
10 |
|
代码规范(为目前的开发制定合适的规范) |
20 |
25 |
|
具体设计 |
15 |
20 |
|
具体编码 |
120 |
150 |
|
代码复审 |
30 |
44 |
|
测试(自测、修改代码、提交修改) |
15 |
20 |
|
报告 |
25 |
33 |
|
测试报告 |
10 |
18 |
|
计算工作量 |
5 |
5 |
|
事后总结,并提出过程改进计划 |
10 |
10 |
6.总结
当知道这个项目时,当时的感觉应该不太难,当自己真的操作起来是真的不容易,写的过程也挺难的,磕磕绊绊写出这个效果。这次写的小项目还有很多不足,实现的功能很局限,非常不灵活。在本次实践的过程中是属于即兴开发。写项目的过程中遇见的困难。
1.在测试的时候不能达到自己的要求,所有在这方面浪费的时间比较多。
2.长时间不训练好多知识都忘了,今后继续努力。

浙公网安备 33010602011771号