作业5 四则运算 测试与封装 5.1 5.2

第二阶段目标 - 通过测试程序和API 接口测试其简单的加减乘除功能。并能看到代码覆盖率。

第三阶段目标 - 通过测试程序和API 接口测试对于各种参数的支持。并能看到代码覆盖率。

代码如下:

  1 import java.math.BigDecimal;
  2 import java.text.NumberFormat;
  3 import java.util.*;
  4 public class Core {
  5     public  int  calc(String zifu,int max,int fanwei1,int fanwei2,int jingdu) throws ChushulingException, fanweiException, zifushuException
  6     {
  7         float a[]=new float [20];
  8         int b[]=new int [20];
  9         char c[]=new char [20];
 10          int j=0;
 11          int shu;
 12         float sum = 0;
 13          String fu="+-/*";
 14          //System.out.println(zifu.length());
 15         for(int i=0;i<zifu.length();i++)
 16         {
 17         if(zifu.charAt(i)==‘+‘)
 18         {
 19             b[j]=i;
 20             c[j]=‘+‘;
 21             j++;     //System.out.println("++++");
 22         }
 23         else if(zifu.charAt(i)==‘-‘)
 24         {
 25             b[j]=i;
 26             c[j]=‘-‘;
 27             j++;         // System.out.println("---");
 28         }
 29         else if(zifu.charAt(i)==‘*‘)
 30         {
 31             b[j]=i;
 32             c[j]=‘*‘;
 33             j++;
 34         }
 35         else if(zifu.charAt(i)==‘/‘)
 36         {
 37             b[j]=i;
 38             c[j]=‘/‘;
 39             j++;
 40         }
 41
 42         }
 43         //System.out.println(j);
 44         //System.out.println(zifu.substring(2,5));
 45         for(int i=0;i<j+1;i++)
 46         {
 47             if(i==0) a[i]=Integer.parseInt(zifu.substring(0,b[i]));
 48             else if(i==j)  a[i]=Integer.parseInt(zifu.substring(b[i-1]+1,zifu.length()));
 49             else    a[i]=Integer.parseInt(zifu.substring(b[i-1]+1,b[i]));
 50         }
 51
 52         /*for(int i=0;i<j+1;i++)
 53         {
 54             System.out.print(a[i]+" ");
 55         }
 56         for(int i=0;i<j;i++)
 57         {
 58             System.out.println(c[i]);
 59         }*/
 60         String yunsuanfu1=String.valueOf(c);
 61         if(j-1>max)
 62         {
 63             throw new zifushuException("字符数大于"+max+"");
 64
 65         }
 66         for( shu=0;shu<j+1;shu++)
 67         {//System.out.println("111");
 68             if(a[shu]>fanwei2||a[shu]<fanwei1)
 69             {
 70                 throw new fanweiException("有些数字不在范围内");
 71
 72             }
 73         }
 74         //System.out.println(j+"!!!!!!!");
 75         StringBuffer yunsuanfu=new StringBuffer(yunsuanfu1);
 76         //System.out.println(yunsuanfu.indexOf("*"));
 77         //System.out.println(yunsuanfu);
 78         //System.out.println(yunsuanfu.indexOf("*"));
 79         while(yunsuanfu.indexOf("*")!=-1||yunsuanfu.indexOf("/")!=-1)
 80         {
 81         if(yunsuanfu.indexOf("/")==-1&&yunsuanfu.indexOf("*")!=-1)
 82         {
 83             sum=a[yunsuanfu.indexOf("*")]*a[yunsuanfu.indexOf("*")+1];
 84             a[yunsuanfu.indexOf("*")]=a[yunsuanfu.indexOf("*")]*a[yunsuanfu.indexOf("*")+1];
 85             for(int i=yunsuanfu.indexOf("*")+1;i<yunsuanfu.length()-1;i++)
 86             {
 87             a[i]=a[i+1];
 88             }
 89
 90             //System.out.println(sum);
 91             yunsuanfu.delete(yunsuanfu.indexOf("*"), yunsuanfu.indexOf("*")+1);
 92         }
 93
 94             else    if(yunsuanfu.indexOf("*")<yunsuanfu.indexOf("/")&&yunsuanfu.indexOf("*")!=-1)
 95             {
 96                 sum=a[yunsuanfu.indexOf("*")]*a[yunsuanfu.indexOf("*")+1];
 97                 a[yunsuanfu.indexOf("*")]=a[yunsuanfu.indexOf("*")]*a[yunsuanfu.indexOf("*")+1];
 98                 for(int i=yunsuanfu.indexOf("*")+1;i<yunsuanfu.length()-1;i++)
 99                 {
100                 a[i]=a[i+1];
101                 }
102                 //System.out.println(sum);
103
104                 yunsuanfu.delete(yunsuanfu.indexOf("*"), yunsuanfu.indexOf("*")+1);
105             }
106             else    if(yunsuanfu.indexOf("/")<yunsuanfu.indexOf("*")&&yunsuanfu.indexOf("/")!=-1)
107             {
108                 if(a[yunsuanfu.indexOf("/")+1]==0)
109                 {
110                     throw new ChushulingException("除数不能为0!");
111                 }
112                 sum=a[yunsuanfu.indexOf("/")]/a[yunsuanfu.indexOf("/")+1];
113                 a[yunsuanfu.indexOf("/")]=a[yunsuanfu.indexOf("/")]/a[yunsuanfu.indexOf("/")+1];
114                 for(int i=yunsuanfu.indexOf("/")+1;i<yunsuanfu.length()-1;i++)
115                 {
116                 a[i]=a[i+1];
117                 }
118                 //System.out.println(sum);
119
120                 yunsuanfu.delete(yunsuanfu.indexOf("/"), yunsuanfu.indexOf("/")+1);
121             }
122             else    if(yunsuanfu.indexOf("*")==-1&&yunsuanfu.indexOf("/")!=-1)
123             {
124                 if(a[yunsuanfu.indexOf("/")+1]==0)
125                 {
126                     throw new ChushulingException("除数不能为0!");
127                 }
128                 sum=a[yunsuanfu.indexOf("/")]/a[yunsuanfu.indexOf("/")+1];
129                 a[yunsuanfu.indexOf("/")]=a[yunsuanfu.indexOf("/")]/a[yunsuanfu.indexOf("/")+1];
130                 for(int i=yunsuanfu.indexOf("/")+1;i<yunsuanfu.length()-1;i++)
131                 {
132                 a[i]=a[i+1];
133                 }
134                 //System.out.println(sum);
135
136                 yunsuanfu.delete(yunsuanfu.indexOf("/"), yunsuanfu.indexOf("/")+1);
137             }
138         }
139         while(yunsuanfu.indexOf("+")!=-1||yunsuanfu.indexOf("-")!=-1)
140         {
141
142             if(yunsuanfu.indexOf("+")!=-1&&yunsuanfu.indexOf("+")<yunsuanfu.indexOf("-"))
143             {
144                 sum=a[yunsuanfu.indexOf("+")]+a[yunsuanfu.indexOf("+")+1];
145                 a[yunsuanfu.indexOf("+")]=a[yunsuanfu.indexOf("+")]+a[yunsuanfu.indexOf("+")+1];
146                 for(int i=yunsuanfu.indexOf("+")+1;i<yunsuanfu.length()-1;i++)
147                 {
148                 a[i]=a[i+1];
149                 }
150                 yunsuanfu.delete(yunsuanfu.indexOf("+"), yunsuanfu.indexOf("+")+1);
151             //    System.out.println(yunsuanfu);
152                 //System.out.println(1);
153             }
154             else if(yunsuanfu.indexOf("-")!=-1)
155             {
156                 sum=a[yunsuanfu.indexOf("-")]-a[yunsuanfu.indexOf("-")+1];
157                 a[yunsuanfu.indexOf("-")]=a[yunsuanfu.indexOf("-")]-a[yunsuanfu.indexOf("-")+1];
158                 for(int i=yunsuanfu.indexOf("-")+1;i<yunsuanfu.length()-1;i++)
159                 {
160                 a[i]=a[i+1];
161                 }
162                 yunsuanfu.delete(yunsuanfu.indexOf("-"), yunsuanfu.indexOf("-")+1);
163                 //System.out.println(yunsuanfu);
164                 //System.out.println(2);
165             }
166             else{
167                 sum=a[yunsuanfu.indexOf("+")]+a[yunsuanfu.indexOf("+")+1];
168                 a[yunsuanfu.indexOf("+")]=a[yunsuanfu.indexOf("+")]+a[yunsuanfu.indexOf("+")+1];
169                 for(int i=yunsuanfu.indexOf("+")+1;i<yunsuanfu.length()-1;i++)
170                 {
171                 a[i]=a[i+1];
172                 }
173                 yunsuanfu.delete(yunsuanfu.indexOf("+"), yunsuanfu.indexOf("+")+1);
174                 //System.out.println(yunsuanfu);
175                 //System.out.println(3);
176             }
177             //System.out.println(sum);
178         }
179         BigDecimal bd = new BigDecimal(sum);
180         bd = bd.setScale(jingdu,BigDecimal.ROUND_HALF_UP);
181         System.out.println(bd);
182             System.out.println(yunsuanfu);
183             /*for(int i=0;i<j+1;i++)
184             {
185                 System.out.print(a[i]+" ");
186             }*/
187             return 0;
188
189     }
190
191
192 }
 1 import java.util.Scanner;
 2
 3 public class Calculator {
 4
 5     /**
 6      * @param args
 7      */
 8     public static void main(String[] args) {
 9         Core c=new Core();
10         try{
11         c.calc("20-8/2-20*5+5",4,-1000,1000,4);
12         }
13         catch(ChushulingException e)
14         {
15             System.out.println(e.getMessage());
16             e.printStackTrace();
17         }
18         catch(fanweiException e)
19         {
20             System.out.println(e.getMessage());
21             e.printStackTrace();
22         }
23         catch(zifushuException e)
24         {
25             System.out.println(e.getMessage());
26             e.printStackTrace();
27         }
28
29
30     }
31
32 }
class ChushulingException extends Exception
{
    public ChushulingException(String msg)
    {
        super(msg);
    }
}
 class fanweiException extends Exception {
     public fanweiException(String msg)
        {
            super(msg);
        }
}
 class zifushuException extends Exception {
     public zifushuException(String msg)
        {
            super(msg);
        }
}

我的伙伴是罗凯旋   http://home.cnblogs.com/u/kasion/

时间: 2024-10-12 15:09:23

作业5 四则运算 测试与封装 5.1 5.2的相关文章

作业5 四则运算 测试与封装 5.2

作业5 四则运算 测试与封装  5.2 开发环境:   Eclipse 开发人员:   欧其锋(201306114305) 余汉城(201306114317)(http://www.cnblogs.com/yuhancheng/) 分工:   欧其锋:异常处理 余汉城:重构 源代码: 1 package GongNengpk; 2 3 import GongNengpkTest.ChuShuLingException; 4 import GongNengpkTest.JCException; 5

【作业报告】作业5 四则运算 测试与封装 5.1

测试与封装 5.1 程序开发简介: [开发环境]:eclipse [开发人员]:Ives & 郑胜斌 [博客地址]:38郑胜斌 [开发时间]:2015-04-30 [版本]:5.1 [要求]: 封装 测试 封装: 概念 封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口.面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治.封装的对象,这些对象通过一个受保护的接口访问其他对象.封装是一种信息隐藏技术,在java中通过关键字private实现封装.什么是封装?封装把对象的所

作业5 四则运算 测试与封装 5.1

刘恒 http://www.cnblogs.com/iliuh/ chaorenken http://www.cnblogs.com/lixuanzong/ 这个是主函数 package tion; import java.util.*; import java.applet.*; //引入Applet类 import java.awt.*; import java.awt.event.*; //引入系统事件类包. public class ta extends Applet implement

20150421 作业5 四则运算 测试与封装 5.1

import java.util.ArrayList; import java.util.Random; import java.util.Scanner; public class fengzhuang {// Software Engineering 軟件工程 作業2 static String jia = "+"; static String jian = "-"; static String cheng = "*"; static Str

作业5 四则运算 测试与封装

1 import java.math.BigDecimal; 2 import java.text.NumberFormat; 3 import java.util.*; 4 public class Core { 5 public int calc(String zifu,int max,int fanwei1,int fanwei2,int jingdu) throws ChushulingException, fanweiException, zifushuException 6 { 7

20150421 作业5 四则运算 测试与封装 5.1 5.2(doing)

结伴队友:王佳寧,他的博客地址:http://www.cnblogs.com/paopaotai/ 5.2 黑白盒測試 測試項目名稱 黑盒測試 測試人員 葉子鵬&王佳寧 測試編號 測試頁面 測試部件 輸入數據 預測輸出 實際輸出 測試狀態 1 SE2_2.jsp 請輸入題目數量:  aa(字母) 提示:請輸入數字   正常 2 SE2_2.jsp 請輸入題目數量:  啊(中文) 提示:請輸入數字   正常 3 SE2_2.jsp 請輸入題目數量:  --(字符) 提示:請輸入數字 !請輸入一個數

练习5.1——四则运算 测试与封装

主程序 package com.h2; import java.text.DecimalFormat; import java.util.Scanner; import java.util.regex.Pattern; /* * 1.定制数量 * 2.控制是否有乘除法 * 3.控制数值范围 * 4.定制真分数练习题 * 5.校检用户输入 * 6.输出答题正确率 */ public class Main { public static int max = 10;// 控制算式个数 public s

四则运算 测试与封装 (完善) 5.2 5.3

一.结对小伙伴:陈淑筠 http://www.cnblogs.com/babybluecsj/ 二.(1)我用小伙伴上一次5.1的作业来单元测试,发现当除数为零时,运行时未抛出异常,于是我们加上了    1.     if(fh2=='/'){             if(b==0){                 throw new Exception("除数不能为0!");             }             answer=a/b;         } 2. t

四则运算测试与封装5.1 结对

开发环境:eclipse 结对同伴 :罗凯杰 同伴博客:http://www.cnblogs.com/lkjie/ 未封装的程序: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Size { public static void main(String[] args) { // TODO Auto-generated method stub myframe f=new myframe(