《个人软件开发流程》------王晓蒙

四则运算练习

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.长时间不训练好多知识都忘了,今后继续努力。

 

posted @ 2021-04-11 00:02  19A3  阅读(170)  评论(0)    收藏  举报