结对项目作业
结对成员:唐杰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 |




浙公网安备 33010602011771号