结对项目作业
结对成员:唐杰2016012058 于鑫宇2016012029
一、代码仓库地址:https://git.coding.net/jyuegq/project2.git
二、PSP
PSP |
任务内容 |
计划时间(min) |
完成时间(min) |
Planning |
计划 |
60 |
|
Estimate |
估计这个任务需要多少时间,并规划大致工作步骤 |
60 |
|
Development |
开发 |
300 |
|
Analysis |
需求分析 |
100 |
|
Design Spec |
生成文档 |
0 |
|
Design Review |
设计复审 |
120 |
|
Coding Standard |
代码规范 |
30 |
|
Design |
具体设计 |
100 |
|
Coding |
具体编码 |
540 |
|
Code Review |
代码复审 |
300 |
|
Test |
测试 |
30 |
|
Reporting |
报告 |
120 |
|
Test Report |
测试报告 |
30 |
|
Size Measurement |
计算工作量 |
30 |
|
Postmortem& ProcessImprovement Plan |
事后总结, 并提出过程改进计划 |
120 |
|
三、Information Hiding, Interface Design, Loose Coupling
信息隐藏(Information Hiding)
信息隐藏指在设计和确定模块时,使得一个模块内包含的特定信息(过程或数据),对于不需要这些信息的其他模块来说,是不可访问的。
在结对项目中,使用命令行模式执行和使用GUI界面执行出题部分时调用了同一部分核心代码,在这里我将出题这一部分信息隐藏,当改变人机交互模式的时候就不会给系统带来全局性的影响。在我的程序中避免了A类调用B类的程序,B类有调用A类的程序这种情况,这也是所谓的“循环依赖”,这种情况会阻碍信息隐藏。
接口设计(Interface Design)
在本项目设计接口过程中,使用有意义的命名方式使接口的功能一目了然,增强了可读性;类名和方法名也都使用了有意义的命名方式;在开发过程中加好了注释,方便自己和他人看懂代码
松耦合(Loose coupling)
在结对项目中,我尽量减少一个模块向另一个模块传递的数据量,如:是否有乘除法通过在主函数中判断调用不同的类,而不是通过传递参数。
四、
import java.io.IOException; import java.util.ArrayList; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; import IO.anwser; import Jisuan.creat; import Jisuan.creat2; import Jisuan.creat3; import Jisuan.dangejisuan; import Jisuan.jisuanshi; import Jisuan.pinjie; import entity.SuiJiShu; import entity.YunSuanFu; public class test { public static void main(String[] args) { creat c=new creat(); String flag="yes"; c.Create(7,4, 56, 5,flag);
for (int i = 0; i < args.length; i++) { if (args[i].equals("-n")) { isN = 1; try { n = Integer.parseInt(args[i + 1]); if (n <= 0 || n > 10000) { System.out.println("n的范围不在[1,10000]内,请重新输入"); return; } } catch (Exception e) { System.out.println("n的格式不合法,请重新输入!"); } }
界限的异常处理:
if (args[i].equals("-m")) { isM = 1; try { m1 = Integer.parseInt(args[i + 1]); m2 = Integer.parseInt(args[i + 2]); if (m1 <= 0 || m1 > 100) { System.out.println("m1的范围不在[1,100]内,请重新输入"); return; } if (m2 < 50 || m2 > 1000) { System.out.println("m1的范围不在[50,1000]内,请重新输入"); return; } } catch (Exception e) { System.out.println("m的格式不合法,请重新输入!"); } }
括号与符号的异常处理:
if (args[i].equals("-o")) { try { o = Integer.parseInt(args[i + 1]); if (o <= 0 || o > 10) { System.out.println("o的范围不在[1,10]内,请重新输入"); return; } } catch (Exception e) { System.out.println("o的格式不合法,请重新输入!"); } } if (args[i].equals("-b")) { b = 1;// 括号 } if (args[i].equals("-c")) { c = 1;// 乘除 }
PSP |
任务内容 |
计划时间(min) |
完成时间(min) |
Planning |
计划 |
60 |
120 |
Estimate |
估计这个任务需要多少时间,并规划大致工作步骤 |
60 |
120 |
Development |
开发 |
300 |
550 |
Analysis |
需求分析 |
100 |
120 |
Design Spec |
生成文档 |
0 |
0 |
Design Review |
设计复审 |
120 |
200 |
Coding Standard |
代码规范 |
30 |
50 |
Design |
具体设计 |
100 |
150 |
Coding |
具体编码 |
540 |
600 |
Code Review |
代码复审 |
300 |
350 |
Test |
测试 |
30 |
45 |
Reporting |
报告 |
120 |
320 |
Test Report |
测试报告 |
30 |
60 |
Size Measurement |
计算工作量 |
30 |
60 |
Postmortem& ProcessImprovement Plan |
事后总结, 并提出过程改进计划 |
120 |
240 |