zoukankan      html  css  js  c++  java
  • 20165205 2017-2018-2《Java程序设计》结对编程一 第一周总结

    20165205 2017-2018-2《Java程序设计》结对编程一 第一周总结

    需求分析

    对输入的算式进行计算,要求满足一下条件:

    1. 支持整数运算,如2+5,47+7865.
    2. 支持多运算符运算,如6/9+4/9,4+7*9.
    3. 支持分数运算(真分数),如3/4.
    4. 正确率高
    5. 有输入提示信息
    6. 能够处理非法输入(返回异常)

    扩展需求:

    1. 支持自动生成题目
    2. 支持多语言

    设计思路

    1. 编写主类Arithmetic4
    2. 编写ArithmeticFunc类来实现计算,其中包括:加、减、乘、除、次方、开方的方法,也包含抛出异常的方法。

    核心代码及注释

    1. 计算内容, 以加法方法为例:

       public void add(String s)//加法
      
       {
           String[] str=s.split("\+");
           if(str[0].indexOf("/")>-1 || str[1].indexOf("/")>-1)//分数
           {
               String[] str1=str[0].split("[/]");
               String[] str2=str[1].split("[/]");
               if(Integer.parseInt(str1[1]) != 0 && Integer.parseInt(str2[1]) != 0)//分母不为零
               {
                   result =simplefraction(((Integer.parseInt(str1[0])*Integer.parseInt(str2[1]))+(Integer.parseInt(str2[0])*Integer.parseInt(str1[1]))),(Integer.parseInt(str1[1])*Integer.parseInt(str2[1])));
               }else{
                   throw new IllegalArgumentException("Divisor cannot be zero!");//除数为零时抛出异常
               }
           }
           else{//整数
               if( Integer.parseInt(str[0])<1000&&Integer.parseInt(str[1])<1000&&Integer.parseInt(str[0])>-1000&&Integer.parseInt(str[1])>-1000)
               {
                   result = Integer.parseInt(str[0])+Integer.parseInt(str[1])+"";
               }
      
               else{
                   throw new IllegalArgumentException("overrun!");}//数值范围超出时抛出异常
           }
      
       }
      
    2. 抛出异常运算符:以减法为例

           if(s.indexOf("-")>-1){
               int i=s.indexOf("-");
               if(s.indexOf("-",i+1)==i+1){
                   throw new IllegalArgumentException("Input error! Don't like 1--1");//格式错误时抛出异常
               }else{
                   substract(s);
               }
      

    测试方法

    代码托管

    对结对小伙伴的评价

    • 结对伙伴:20165233 张雨昕
    • 我与我的伙伴在一起讨论了很久对于代码的的设计,在学习了老师对于堆栈的代码之后得到了一些灵感,所以写出了最先的框架,对不同运算符做筛选,然后针对不同运算符做出运算,这样就完成了这个代码。

    PSP表格

    PSP Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
    Planning 计划 30 45
    Estimate 估计这个任务需要多少时间 180 180
    Development 开发 100 130
    Analysis 需求分析(包括学习新技术) 130 140
    Design Spec 生成设计文档 100 65
    Design Review 设计复审(和同事审核设计文档) 30 20
    Coding Standard 代码规范 (为目前的开发制定合适的规范) 20 40
    Design 具体设计 50 60
    Coding 具体编码 45 30
    Code Review 代码复审 15 15
    Reporting 报告 60 90
    Test Report 测试报告 30 45
    Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划 10 25
    合计 880 985

    感想

    对于本次结对编写代码,我感受到了1+1>2的感觉,在编写代码的过程中两个人的合作可以及时改写不正确的代码,并且能够得到新的灵感和想法,使我们的代码更加完善,更加严谨。同时也能够找出自己知识上的漏洞,进行补充,真的是妙啊。

  • 相关阅读:
    最全的 Twitter Bootstrap 开发资源清单
    jQuery布局插件UI Layout简介及使用方法
    SQLcode错误代码汇总和sqlstate=37000的解决方案
    JQUERY插件学习之jQuery UI
    如何判断/检查一个集合(List<string>)中是否有重复的元素
    反射原理及简介
    C# 获取文件夹下的所有文件的文件名
    委托编程指南
    模块封装与程序集
    Redis Lock
  • 原文地址:https://www.cnblogs.com/mushroomissmart/p/8849078.html
Copyright © 2011-2022 走看看