zoukankan      html  css  js  c++  java
  • 修改过的5.1测试与封装

    1.第一阶段目标 - 把计算的功能封装成类。

    2.设计测试用例:用白盒与黑盒测试设计技术,为计算核心设计测试用例。
    3.在实验环境中(如MyEclipse集成开发环境+Junit测试框架)运行测试用例,分析测试结果,找出程序问题,给出改进前后的代码对照。
    结对子:
    201306114454 陈汝婷 http://home.cnblogs.com/u/chenruting/
    201306114448 练丽云 http://i.cnblogs.com/EditPosts.aspx?opt=1
    import java.text.DecimalFormat;
    import java.util.Scanner;
    
    
    public class Calculator {
    
        private static  long x ;
        private static long y ;
        public double z ;
        private static String s; 
        public static void main(String[] args) {
            String condition = "";
             Calculator ys = new  Calculator();
             Core core = new Core();
            do{
            Scanner scanner = new Scanner(System.in);
            try{
            System.out.print("请输入第一个数:");
             x = scanner.nextLong();
            
             System.out.print("请输入第二个数:");
                y = scanner.nextLong();
             System.out.print("请输入运算符:");
             s = scanner.next();
            
              core.calc(s,x,y);
            
        
            }catch(Exception e){
                System.out.print("输入有错!"+e);    
            }
            
            System.out.print("是否继续?(continue or finish):");
            condition = scanner.next();
        
            }while("continue".equals(condition));
         
         
               
        }    
    
    
    }
    import java.text.DecimalFormat;
    import java.util.Scanner;
    
    public class Core {
        
        static final int NUM_MAX_OPERATOR = 1; // 最多4 个运算符
        static final int NUM_SCALE = 2; // 数值范围是 -1000 到 1000
        static final int NUM_PRECISION = 3; // 精度是小数点后两位
        public  static int i=0;
        public long z;
        public  double calc(String s) {
            double result = 0.0d;
            // 这个方法中我可以计算两个数的+ - * /
            return result;
        }
        public long add(long x,long y) {
            
            return x+y;
        }
        public long calc(String s, long x, long y) {
            
            Scanner scanner = new Scanner(System.in);
            if (s.equals("+")) {
                 z=(x+y);
                System.out.println(z);
            } else if (s.equals("-")) {
                 z=x-y;
                System.out.println(z);
            } else if (s.equals("*")) {
                 z=x*y;
                System.out.println(z);
            } else if (s.equals("/")) {
                if (y != 0) {
                     z=x/y;
                    System.out.println(z);
                } else {
                    i++;
                    try{ z=x/y;}
                    catch(Exception e){
                    if(i<3)
                    { 
                        System.out.println("分母不能为零!");
                        System.out.print("请重新输入第二个数:");
                    
                        y = scanner.nextLong();
                          calc(s,x,y);
                          
                    }
                    else{
                        System.out.println(i);
                        System.out.println(exit(i=3));
                    }
                    }
                }      
                }
                    
                     
                      
                
            else {
                System.out.println("输入不符合要求!");
            }return z;
        }
    
    public String geta(){
        return String.valueOf(z);
    }
        private char[] exit(int j) {
            // TODO 自动生成的方法存根
            return null;
        }
        
    }
    import static org.junit.Assert.*;
    
    import org.junit.Test;
    
    
    public class CoreTest {
    
        @SuppressWarnings("deprecation")
        @Test
    
        public void test() {
            Core core = new Core();
            long d = core.calc("+",12589456L,25364563L);
            assertEquals(37954019, d);
        }
        @Test
        public void jianfatest() {
            Core core = new Core();
            long d = core.calc("-",2,1);
            assertEquals(1, d);
        }
        @Test
        public void chengfatest() {
            Core core = new Core();
            long d = core.calc("*",2,1);
            assertEquals(2, d);
        }
        @Test
        public void cftest() {
            Core core = new Core();
            long d = core.calc("/",6,2);
            assertEquals(2, d);
        }
    }
    
    

    运行结果:

    测试类的测试:


    减法测试:


    乘法:
    除法:
    当除数为0的时候会有2次重新输入输入的机会

    最后献上我们的照骗,敬请欣赏:
    
    
  • 相关阅读:
    matlab读取不规则txt文件
    ImportError: No module named python_util.util
    Check failed: error == cudaSuccess (2 vs. 0) out of memory
    Check failed: error == cudaSuccess (10 vs. 0) invalid device ordinal
    求助 一个很简单的ACM题 java代码 自己电脑上测都是正确的 但提交总是wrong answer 先谢谢了
    1151Word Reversal ACM题答案 java版
    1051A New Growth Industry ACM题答案 java版
    1115Digital Roots ACM题答案 java版
    1049 I Think I Need a Houseboat ACM题答案 java版
    java.sql.SQLException:Access denied for user 'root'@'localhost' (using password:YES) mysql开发
  • 原文地址:https://www.cnblogs.com/Lianliyun/p/4468391.html
Copyright © 2011-2022 走看看