《个人软件开发流程》---计应191第三组刘世龙

1.任务要求

1)编写一个关于四则运算的程序,运算法则需要(先乘除后加减).

2)要有四个数字进行运算。

3)得到式子并进行计算,输出到控制台

2. 需求分析:

本次任务的 需求是为小学生设计一个简单的四则运算系统,这个程序要能够实现简单的加减乘除运算并且要得到运算的结果用以判断答案的正确性;

 

3.Psp

 

任务内容

计划完成需要的时间(min)

实际完成需要的时间(min)

计划

80

90

l  明确需求和其他相关因素,估计每个阶段的时间成本。

20

25

开发

60

120

l  需求分析

5

10

l  生成设计文档

5

8

l  设计复审

20

15

代码规范

5

15

具体设计

20

30

具体编码

90

150

代码复审

10

20

测试

10

15

报告

15

20

 

l  测试报告

10

15

l  计算工作量

5

5

l  事后总结,并提出改进计划

5

5

 

4.代码:

package lianxi;

import java.util.ArrayList;
import java.util.List;

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class lianxi1 {
// 参数随机数
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 faze(List<String> randysf) {
int index = (int) (Math.random() * randysf.size());
return randysf.get(index);
}
//返回集合中的数字
public int shuzi(List<Integer> randnum) {
int index = (int) (Math.random() * randnum.size());
return randnum.get(index);
}

//产生四则四位表达式

public String gongshi() throws ScriptException {
lianxi1 ran = new lianxi1();
List<Integer> randnum = ran.randnum();
List<String> randysf = ran.randysf();

int shu1 = ran.shuzi(randnum);
String fa1 = ran.faze(randysf);
int shu2 = ran.shuzi(randnum);
String fa2 = ran.faze(randysf);
int shu3 = ran.shuzi(randnum);
String fa3 = ran.faze(randysf);
int shu4 = ran.shuzi(randnum);
String shizi = shu1 + fa1 + shu2 + fa2 + shu3 + fa3 + shu4;
return shizi;
}

/*
* 得出结果
*/
public static void main(String[] args) throws ScriptException {
lianxi1 lx = new lianxi1();
List<Integer> randnum = lx.randnum();
List<String> randysf = lx.randysf();
for (int i = 0; i < 5; i++) {
String returnTi = lx.gongshi();
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
Object result = engine.eval(returnTi);
System.out.println(returnTi + "=" + result);
}
}
}

 

5.结果

 

 6.总结

  任何程序都是不断改进,不断扩展,实现的功能很局限,非常不灵活。后期如果需要改进,需要不断改进源码,这是程序大忌,应预留需要的接口。

当自己真的操作起来是真的不容易,写的过程也挺难的,预想的结果总是和实际结果不相符,编写过程总是发现,这里或哪里缺一块或可以更加简便的方法。

代码的练习程度还是太少,软件编写的思维还不够成熟。

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