zoukankan      html  css  js  c++  java
  • 结对作业之四则运算网页版

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

    结对作业搭档:陈杰

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

    缺点:沟通交流比较少

    十三、总结及反思

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

  • 相关阅读:
    Data Base mysql备份与恢复
    java 乱码问题解决方案
    【知识强化】第二章 物理层 2.1 通信基础
    【知识强化】第二章 进程管理 2.2 处理机调度
    【知识强化】第二章 进程管理 2.1 进程与线程
    【知识强化】第一章 操作系统概述 1.3 操作系统的运行环境
    【知识强化】第一章 网络体系结构 1.1 数据结构的基本概念
    【知识强化】第一章 网络体系结构 1.2 计算机网络体系结构与参考模型
    【知识强化】第一章 网络体系结构 1.1 计算机网络概述
    【知识强化】第一章 操作系统概述 1.1 操作系统的基本概念
  • 原文地址:https://www.cnblogs.com/isccA/p/8776125.html
Copyright © 2011-2022 走看看