第二次作业

 

 

套你猴子的小学计算

一、预估与实际

PSP2.1

Personal Software Process Stages

预估耗时(分钟)

实际耗时(分钟)

Planning

计划

1h

数不过来了

• Estimate

• 估计这个任务需要多少时间

两天

三天熬夜都没完成

Development

开发

一天

数不清了

• Analysis

• 需求分析 (包括学习新技术)

并没有很久

并没有太久

• Design Spec

• 生成设计文档

1h

1h

• Design Review

• 设计复审

15min

15min

• Coding Standard

• 代码规范 (为目前的开发制定合适的规范)

 

由于没有写完

• Design

• 具体设计

 

半天

• Coding

• 具体编码

 

很久很久

• Code Review

• 代码复审

 

 

• Test

• 测试(自我测试,修改代码,提交修改)

一小时

 

Reporting

报告

 

 

• Test Repor

• 测试报告

 

 

• Size Measurement

• 计算工作量

 

 

• Postmortem & Process Improvement Plan

• 事后总结, 并提出过程改进计划

 

还没来得及

 

 

合计

四天

二、需求分析

我通过网络的方式了解到,小学三四年级数学有如下的几个特点:

  • 运算符随机 括号的 最后的数字不能是负数和小数

… 
但是我因为具体认识不足 有时候会几千不知道三四年级有没有能力计算 
经过分析,我认为,这个程序应当:

最难的是应当解决括号位置

三、设计

1. 设计思路

说明你如何设计这个程序

 

 

比如: 
虽然最后我没有用这个方法,以结对对象的思路来写

  • 这个程序有个一类,5个函数,函数之间的调用关系是怎样的?
  • 算法的关键的关键是什么?

- 我觉得五个函数略显复杂但是却能够清晰调用 主要函数为加减乘除的随机判断,最后结果输出,主要算法

- 关键函数的流程图是怎样的?

关键是对算式的括号的位置

2. 实现方案

写出具体实现的步骤

比如:

  • 准备工作:先在Github上创建仓库,克隆到本地…
  • 技术关键点:最主要是是数的判断

四、编码

请说明你如何按照设计思路进行编码,并记录你在开发中遇到的问题,与解决过程

1. 调试日志

记录编码调试的日志,请记录下开发过程中的 debug 历程

- 换了太多种方法   这个也是学习了很多算法的应用

2. 关键代码

请展示一段程序的关键代码,并解释代码的作用 
static ScriptEngine js = new ScriptEngineManager().getEngineByName(“JavaScript”); 
public static void creatArith() throws ScriptException, IOException{ 
boolean flag=true; 
int num=0; 
do { 
System.out.print(“输入需要产生的四则运算的个数:”); 
Scanner arith_num = new Scanner(System.in); 
num=arith_num.nextInt(); 
if(num>=1) { 
flag = true; 

else { 
flag=false; 
System.out.println(“输入有误”); 

}while(flag==false); 
ArrayList arithList = new ArrayList();//运算式 
for(int i=0;i

3. 代码规范

请给出本次实验使用的代码规范:

  • 第一条
  • 第二条… 
    没有很多要说的

并人工检查代码是否符合规范

五、测试

输入需要产生的四则运算的个数:10 
90+80+4 
90+80+4=174 
34+79+22*59+88 
34+79+22*59+88=1499 
62*27*91*37 
62*27*91*37=5636358 
37+85+63*12+19 
37+85+63*12+19=897 
42/7+40 
42/7+40=46 
43+69*88 
43+69*88=6115 
87*54-42+82*10 
87*54-42+82*10=5476 
10*80*68*59+24 
10*80*68*59+24=3209624 
85*23+97 
85*23+97=2052 
31*35-0*60+21 
31*35-0*60+21=1106

六、总结

这次作业因为个人能力和时间问题并没有将功能写完善,还是有很多遗憾的,导致的原因是括号的位置这个难点一直没有突破,将我的基础问题暴露的完整无疑

其实我有另外一种方法因为两人分歧问题 和时间问题和想挑战一下 只能实现一种 
这种方法简单粗暴 但是却要列出18种情况 
能将所有情况全部列入 
由于 结果判断问题已经解决就不再解释 
采用的是 
当两位运算符时,有三个数字例如 1+1*1 其中数字以及符号随机都不是难点 
括号情况可分为 1+1)*1 (1+1*1) 1+(1*1) 
当有三位 或者四位时同理 共有18种情况 
代码虽长 但胜在简单! 
由于想挑战自我 想用更难的思路或者算法 并没有采用这种方法 没有将功能实现完全实在是有些许遗憾啊! 
望这门课能给我带来较大提升! 谢谢老师!

 

 

posted on 2018-09-18 23:39  老司机滴滴滴  阅读(138)  评论(0编辑  收藏  举报