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. 支持多语言

    设计思路

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

1296460-20180415192248641-1073638581.png

核心代码及注释

  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);
             }

测试方法

1296460-20180415192122056-1866454734.png

1296460-20180415192128313-1759238402.png

代码托管

对结对小伙伴的评价

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

PSP表格

PSPPersonal Software Process Stages预估耗时(分钟)实际耗时(分钟)
Planning计划3045
Estimate估计这个任务需要多少时间180180
Development开发100130
Analysis需求分析(包括学习新技术)130140
Design Spec生成设计文档10065
Design Review设计复审(和同事审核设计文档)3020
Coding Standard代码规范 (为目前的开发制定合适的规范)2040
Design具体设计5060
Coding具体编码4530
Code Review代码复审1515
Reporting报告6090
Test Report测试报告3045
Postmortem & Process Improvement Plan事后总结, 并提出过程改进计划1025
合计880985

感想

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

posted on 2018-04-15 19:34 mushroom1111 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/mushroomissmart/p/8849078.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值