结对作业之四则运算网页版
结对作业之四则运算网页版
结对作业搭档:陈杰
一、Coding.Net地址:https://git.coding.net/carlyle59/jiedui.git
二、十二、PSP表展示
为了方便展示和对比,我将两个PSP表格整合到一起
PSP2.1 |
任务内容 |
计划共完成需要的时间(min) |
实际完成需要的时间(min) |
Planning |
计划 |
60 |
90 |
· Estimate |
· 估计这个任务需要多少时间,并规划大致工作步骤 |
60 |
90 |
Development |
开发 |
37*60+5 |
65*60+25 |
· Analysis |
· 需求分析 (包括学习新技术) |
30 |
60 |
· Design Spec |
· 生成设计文档 |
10 |
10 |
· Design Review |
· 设计复审 (和同事审核设计文档) |
5 |
15 |
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
60 |
2*60 |
· Design |
· 具体设计 |
5*60 |
12*60 |
· Coding |
· 具体编码 |
3*6*60 |
4*6*60 |
· Code Review |
· 代码复审 |
12*60 |
2*12*60 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
20 |
2*60 |
Reporting |
报告 |
3*60+40 |
6*60+10 |
· Test Report |
· 测试报告 |
10 |
10 |
· Size Measurement |
· 计算工作量 |
30 |
60 |
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
3*60 |
5*60 |
三、接口设计
我先查了关于Information Hiding, Interface Design, Loose Coupling的资料。
Information Hiding(信息隐藏):信息隐藏指在设计和确定模块时,使得一个模块内包含的特定信息(过程或数据),对于不需要这些信息的其他模块来说,是不可访问的
摘自博客:https://blog.csdn.net/gongchuangsu/article/details/53895916
Interface Design(接口设计)和Loose Coupling(松耦合)两者相辅相成。Interface Design(接口设计)是面向接口设计的常用手段,Loose Coupling(松耦合)是基于面向接口编程的
我们在设计servlet传值时用了hidden表单
四、计算模块接口的设计与实现
我们设计了接收参数的输入类,还设计了有括号和无括号模式的两个类,除此之外还有两个模式下的一些计算类和判断类
五、计算模块接口部分的性能改进
我们分析了用随机数可能会产生效率下降,因此采用分步骤判断的方法提前去除错误,提高性能
六、计算模块部分单元测试展示
由于完成的较晚,所以我们还没来得及进行单元测试,我们会在之后补充图片
七、异常处理
在输入参数的过程中,用户可能存在输入的数值过大或过小,或者操作符的数量过大或过小,下面是解决这个异常的代码
我的手机 2018/4/10 6:38:17 if(Qn<1||Qn>10000) { out.println("请重新输入你的题目数量,范围为1-10000"); out.println("<br />"); String zzyc="<a href=\"http://localhost:8088/MyServlet/NewFile.jsp\">重新出题请点击这里</a>"; out.println(zzyc); out.close(); } if(On<1||On>10) { out.println("请重新输入你的操作符数量,范围为1-10"); out.println("<br />"); String zzyc="<a href=\"http://localhost:8088/MyServlet/NewFile.jsp\">重新出题请点击这里</a>"; out.println(zzyc); out.close(); } if(Mi<1||Mi>50) { out.println("请重新输入你的下界参数,范围为1-50"); out.println("<br />"); String zzyc="<a href=\"http://localhost:8088/MyServlet/NewFile.jsp\">重新出题请点击这里</a>"; out.println(zzyc); out.close(); } if(Ma<50||Ma>1000) { out.println("请重新输入你的上界参数,范围为50-1000"); out.println("<br />"); String zzyc="<a href=\"http://localhost:8088/MyServlet/NewFile.jsp\">重新出题请点击这里</a>"; out.println(zzyc); out.close(); } if(((On+1)*Mi)>Ma) { out.println("你的上界参数与下界参数之间很难形成算式,请重新出题"); out.println("<br />"); String zzyc="<a href=\"http://localhost:8088/MyServlet/NewFile.jsp\">重新出题请点击这里</a>"; out.println(zzyc); out.close(); } Command.ma(Qn,On,Mi,Ma,ym,yb,suShi); if(ym==0&&yyy==1) { for(int i=0;i<2*Qn;i+=2) { int ty=2+(i*2)%(2*On); if(ty+3>=2*On+2) ty-=2; if(ty>=2) { suShi[i+1][ty]=1; suShi[i+1][ty+3]=2; } } }
八、界面模块的详细设计过程
因为这一部分是我的结对搭档主要负责做的,因此我没有详细的设计过程
九、界面模块与计算模块的对接
这次项目我们做的是网页版,用servlet实现网页和Java代码的联系
我们的网页有设计题目、做题和显示做题结果三个部分组成
设计题目页面效果如下
做题页面效果如下
做题结果显示效果如下
十、结对照片
因为当时下课匆匆忙忙就直接让同学帮我们在食堂拍了一张
十一、结对评价
结对优点:
1、增强团队合作和适应能力
2、相互学习,弥补各自的不足
3、接触更多的代码风格
4、学会合作
结对缺点:
1、可能存在两人分工不均
2、花费时间解释各自代码的含义
3、两人各自的工作难以结合
队友评价:
优点:
1、 做事踏实认真
2、 技术强,代码能力强
3、 乐于助人、热心大方
缺点:沟通交流比较少
十三、总结及反思
这次作业对于我来说难度确实很大,我的队友陈杰给了我很大的帮助,我们的代码是基于他第一次作业的基础上做的,他也很辛苦,所以十分的感激他。但是也反映出我自己的水平不过关的事实,会继续努力学习,希望下次作业会做的更好。