• 结对作业之四则运算网页版


    结对作业之四则运算网页版

    结对作业搭档:陈杰

    一、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、 乐于助人、热心大方

    缺点:沟通交流比较少

    十三、总结及反思

    这次作业对于我来说难度确实很大,我的队友陈杰给了我很大的帮助,我们的代码是基于他第一次作业的基础上做的,他也很辛苦,所以十分的感激他。但是也反映出我自己的水平不过关的事实,会继续努力学习,希望下次作业会做的更好。

  • 相关阅读:
    BZOJ5296 [CQOI2018] 破解D-H协议 【数学】【BSGS】
    Codeforces963C Frequency of String 【字符串】【AC自动机】
    Codeforces962F Simple Cycles Edges 【双连通分量】【dfs树】
    Hello World
    Codeforces963C Cutting Rectangle 【数学】
    BZOJ5203 [NEERC2017 Northern] Grand Test 【dfs树】【构造】
    20160422 --Switch…case 总结; 递归算法
    20160421字符串类型;日期时间类型数学类型
    20160420冒泡排序和查找
    20160419 while练习,复习
  • 原文地址:https://www.cnblogs.com/isccA/p/8776125.html
Copyright © 2020-2023  润新知