5.2,5.3-继续完善实验3内容

实验内容:

  1 package sizeyunsuan;
  2
  3 import static org.junit.Assert.*;
  4
  5 import org.junit.Test;
  6
  7 public class SiZeYunSuanTest {
  8
  9     @Test    //test1-4为一个运算符的运算
 10     public void testTest1()throws Exception
 11     {
 12         SiZeYunSuan core=new SiZeYunSuan();
 13         int a=core.test1(‘-‘,2,8);
 14         assertEquals(-6,a);
 15         System.out.print(a);
 16         System.out.print("    减法运算");
 17         System.out.println();
 18     }
 19     @Test
 20     public void testTest2()throws Exception {
 21         SiZeYunSuan core=new SiZeYunSuan();
 22         int a=core.test1(‘+‘,3,6);
 23         assertEquals(9,a);
 24         System.out.print(a);
 25         System.out.println("    加法运算");
 26         System.out.println();
 27     }
 28     @Test
 29     public void testTest3()throws Exception {
 30         SiZeYunSuan core=new SiZeYunSuan();
 31         int a=core.test1(‘*‘,2,9);
 32         assertEquals(18,a);
 33         System.out.print(a);
 34         System.out.println("    乘法运算");
 35         System.out.println();
 36     }
 37     @Test
 38     public void testTest4() throws ChuShuWeiLingException{
 39         SiZeYunSuan core=new SiZeYunSuan();
 40         try{
 41         int a=core.test1(‘/‘,6,0);
 42         System.out.print(a);
 43         assertEquals(2,a);
 44
 45         }catch(Exception e){}
 46
 47         System.out.println("    除法运算");
 48         System.out.println();
 49     }
 50
 51     @Test
 52     public void testTest5() {
 53         SiZeYunSuan core=new SiZeYunSuan();
 54         int b=core.test2(3);
 55         assertEquals(6,b);
 56         System.out.println("阶乘运算");
 57     }
 58     @Test
 59     public void testTest6() {
 60         SiZeYunSuan core=new SiZeYunSuan();
 61         int b=core.test2(4);
 62         assertEquals(24,b);
 63         System.out.println("阶乘运算2");
 64     }
 65     @Test
 66     public void testTest7()//这是两个运算符的运算
 67     {
 68         SiZeYunSuan core=new SiZeYunSuan();
 69         int a=core.test1(1,2,4,6);
 70         assertEquals(0,a);
 71         System.out.println("这是加减混合运算");
 72         int b=core.test1(2,2,4,6);
 73         assertEquals(26,b);
 74         System.out.println("这是加乘混合运算");
 75         int c=core.test1(3,2,6,6);
 76         assertEquals(3,c);
 77         System.out.println("这是加除混合运算");
 78         int d=core.test1(4,2,4,6);
 79         assertEquals(-22,d);
 80         System.out.println("这是减乘混合运算");
 81         int e=core.test1(5,2,6,6);
 82         assertEquals(1,e);
 83         System.out.println("这是减除混合运算");
 84         int f=core.test1(6,2,4,4);
 85         assertEquals(2,f);
 86         System.out.println("这是乘除混合运算");
 87     }
 88     @Test
 89     public void testTest8()//这是三个运算符的运算
 90     {
 91         SiZeYunSuan core=new SiZeYunSuan();
 92         int a=core.test1(1,2,4,6,8);
 93         assertEquals(-42,a);
 94         System.out.println("这是加减乘混合运算");
 95         int b=core.test1(2,2,4,6,6);
 96         assertEquals(5,b);
 97         System.out.println("这是加减除混合运算");
 98
 99     }
100     @Test
101     public void testTest9()//这是四个运算符的运算
102     {
103         SiZeYunSuan core=new SiZeYunSuan();
104         int a=core.test1(1,5,4,3,2,1);
105         assertEquals(3,a);
106         System.out.println("这是加减乘除混合运算");
107
108     }
109
110     }

SiZeYunSuanTest

 1 package sizeyunsuan;
 2
 3 public class SiZeYunSuan {
 4     int ranswer=0;
 5 public int test1(char op,int a,int b)throws ChuShuWeiLingException{
 6     if(a>0&&b>0)
 7     {
 8         System.out.print(String.valueOf(a)+String.valueOf(op)+String.valueOf(b)+"=");
 9     }
10     else if(a<0&&b>0)
11     {
12         System.out.print("("+String.valueOf(a)+")"+String.valueOf(op)+String.valueOf(b)+"=");
13     }
14     else if(a>0&&b<0)
15     {
16         System.out.print(String.valueOf(a)+String.valueOf(op)+"("+String.valueOf(b)+")"+"=");
17     }
18     else
19     {
20         System.out.print("("+String.valueOf(a)+")"+String.valueOf(op)+"("+String.valueOf(b)+")"+"=");
21     }
22         switch(op)
23         {
24
25         case ‘+‘:   ranswer=a+b;break;
26         case ‘-‘:   ranswer=a-b;break;
27         case ‘*‘:   ranswer=a*b;break;
28         case ‘/‘:  try{ if(b==0){throw new ChuShuWeiLingException();}}catch(Exception e){}ranswer=a/b;break;
29         }
30         return ranswer;
31 }
32
33 public int test2(int c){
34         int jc=1;
35         for(int i=c;i>0;i--)
36         {
37             jc=jc*i;
38         }
39         ranswer=jc;
40         return ranswer;
41 }
42
43 public int test1(int num,int a,int b,int c){
44
45     switch(num)
46     {
47     case 1:   ranswer=a+b-c;break;
48     case 2:   ranswer=a+b*c;break;
49     case 3:   ranswer=a+b/c;break;
50     case 4:   ranswer=a-b*c;break;
51     case 5:   ranswer=a-b/c;break;
52     case 6:   ranswer=a*b/c;break;
53     }
54     return ranswer;
55 }
56 public int test1(int num,int a,int b,int c,int d){
57
58     switch(num)
59     {
60     case 1:   ranswer=a+b-c*d;break;
61     case 2:   ranswer=a+b-c/d;break;
62     }
63     return ranswer;
64 }
65 public int test1(int num,int a,int b,int c,int d,int e){
66
67     switch(num)
68     {
69     case 1:   ranswer=a+b-c*d/e;break;
70     }
71     return ranswer;
72 }
73 }

SiZeYunSuan

1 package sizeyunsuan;
2
3 public class ChuShuWeiLingException extends Exception {
4     public ChuShuWeiLingException()
5     {
6         System.out.println("除数不能为0!");
7     }
8
9 }

ChuShuWeiLingException

上面这部分是实验总的代码,下面各部分会显示每一个部分的伪代码!

----------------------------------------------------------------------------------------------------------------

1.开发环境---Eclipse,Eclipse-Junit4

2.人员---吕日荣(201306114315)、张梓锋(201306114318)

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

下面是加减乘除阶乘及测试的伪代码:

@Test    //test1-4为一个运算符的运算
    public void testTest1()throws Exception
    {
        SiZeYunSuan core=new SiZeYunSuan();
        int a=core.test1(‘-‘,2,8);
        assertEquals(-6,a);
        System.out.print(a);
        System.out.print("    减法运算");
        System.out.println();
    }
    @Test
    public void testTest2()throws Exception {
        SiZeYunSuan core=new SiZeYunSuan();
        int a=core.test1(‘+‘,3,6);
        assertEquals(9,a);
        System.out.print(a);
        System.out.println("    加法运算");
        System.out.println();
    }
    @Test
    public void testTest3()throws Exception {
        SiZeYunSuan core=new SiZeYunSuan();
        int a=core.test1(‘*‘,2,9);
        assertEquals(18,a);
        System.out.print(a);
        System.out.println("    乘法运算");
        System.out.println();
    }
    @Test
    public void testTest4() throws ChuShuWeiLingException{
        SiZeYunSuan core=new SiZeYunSuan();
        try{
        int a=core.test1(‘/‘,6,0);
        System.out.print(a);
        assertEquals(2,a);

        }catch(Exception e){}

        System.out.println("    除法运算");
        System.out.println();
    }

    @Test
    public void testTest5() {
        SiZeYunSuan core=new SiZeYunSuan();
        int b=core.test2(3);
        assertEquals(6,b);
        System.out.println("阶乘运算");
    }
    @Test
    public void testTest6() {
        SiZeYunSuan core=new SiZeYunSuan();
        int b=core.test2(4);
        assertEquals(24,b);
        System.out.println("阶乘运算2");
    }

加减乘除阶乘的测试伪代码

int ranswer=0;
public int test1(char op,int a,int b)throws ChuShuWeiLingException{
    if(a>0&&b>0)
    {
        System.out.print(String.valueOf(a)+String.valueOf(op)+String.valueOf(b)+"=");
    }
    else if(a<0&&b>0)
    {
        System.out.print("("+String.valueOf(a)+")"+String.valueOf(op)+String.valueOf(b)+"=");
    }
    else if(a>0&&b<0)
    {
        System.out.print(String.valueOf(a)+String.valueOf(op)+"("+String.valueOf(b)+")"+"=");
    }
    else
    {
        System.out.print("("+String.valueOf(a)+")"+String.valueOf(op)+"("+String.valueOf(b)+")"+"=");
    }
        switch(op)
        {  

        case ‘+‘:   ranswer=a+b;break;
        case ‘-‘:   ranswer=a-b;break;
        case ‘*‘:   ranswer=a*b;break;
        case ‘/‘:  try{ if(b==0){throw new ChuShuWeiLingException();}}catch(Exception e){}ranswer=a/b;break;
        }
        return ranswer;
}

public int test2(int c){
        int jc=1;
        for(int i=c;i>0;i--)
        {
            jc=jc*i;
        }
        ranswer=jc;
        return ranswer;
}

加减乘除阶乘的核心代码

然后是两个运算符,三个运算符及四个运算符构造方法的重载

public int test1(int num,int a,int b,int c){                                                                                                   

    switch(num)
    {
    case 1:   ranswer=a+b-c;break;
    case 2:   ranswer=a+b*c;break;
    case 3:   ranswer=a+b/c;break;
    case 4:   ranswer=a-b*c;break;
    case 5:   ranswer=a-b/c;break;
    case 6:   ranswer=a*b/c;break;
    }
    return ranswer;
}
public int test1(int num,int a,int b,int c,int d){                                                                                                   

    switch(num)
    {
    case 1:   ranswer=a+b-c*d;break;
    case 2:   ranswer=a+b-c/d;break;
    }
    return ranswer;
}
public int test1(int num,int a,int b,int c,int d,int e){                                                                                                   

    switch(num)
    {
    case 1:   ranswer=a+b-c*d/e;break;
    }
    return ranswer;
}

伪代码

@Test
    public void testTest7()//这是两个运算符的运算
    {
        SiZeYunSuan core=new SiZeYunSuan();
        int a=core.test1(1,2,4,6);
        assertEquals(0,a);
        System.out.println("这是加减混合运算");
        int b=core.test1(2,2,4,6);
        assertEquals(26,b);
        System.out.println("这是加乘混合运算");
        int c=core.test1(3,2,6,6);
        assertEquals(3,c);
        System.out.println("这是加除混合运算");
        int d=core.test1(4,2,4,6);
        assertEquals(-22,d);
        System.out.println("这是减乘混合运算");
        int e=core.test1(5,2,6,6);
        assertEquals(1,e);
        System.out.println("这是减除混合运算");
        int f=core.test1(6,2,4,4);
        assertEquals(2,f);
        System.out.println("这是乘除混合运算");
    }
    @Test
    public void testTest8()//这是三个运算符的运算
    {
        SiZeYunSuan core=new SiZeYunSuan();
        int a=core.test1(1,2,4,6,8);
        assertEquals(-42,a);
        System.out.println("这是加减乘混合运算");
        int b=core.test1(2,2,4,6,6);
        assertEquals(5,b);
        System.out.println("这是加减除混合运算");

    }
    @Test
    public void testTest9()//这是四个运算符的运算
    {
        SiZeYunSuan core=new SiZeYunSuan();
        int a=core.test1(1,5,4,3,2,1);
        assertEquals(3,a);
        System.out.println("这是加减乘除混合运算");

    }
    

测试伪代码

----------------------------------------------------------------------------------------------------

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

其中我们解决了除0错误。

通过这些代码我们能够解决除0错误

5.心得:通过这个实验,我对这个测试功能有了更深的了解,我和我的小伙伴在工作过程中都有互相的指点,在这个过程中得到了进步。这是一个新的内容,以前我们并没有考虑这这个测试功能,或者说我们并没有意识到我们的代码要进行测试。而这是不对的。通过这个实验,我觉得对于以后的编程会有一个新的突破。因为有了测试功能,我们的代码的容错率就有了大大的提升,当我们遇到错误的时候,也更清楚如何解决问题了。

时间: 2024-12-07 16:15:35

5.2,5.3-继续完善实验3内容的相关文章

如何基于WKWebView开发一个功能完善的资讯内容页

前言 对于资讯类的APP来说 良好的阅读体验是必不可少的, 那么如何去开发一个功能完善的资讯文章页面就是本文要说的重点.相信本文会对很多在做同类功能开发的道友们有很大的帮助 , 如果某只大佬路过也欢迎指点一二. 废话不多说 开讲(chui)~ 分析 数据 对于图文混排的富文本形式 , 最好最通用的数据格式当属 HTML , 再加上 CSS 和 JS 的配合, 可以随心所欲的展示出成百上千在不同的样式.当然 , 除了 HTML 也不排除有使用其他规则的数据格式来表示.但这里我们还是选择使用 HTM

信息安全系统设计基础 实验一、实验二 20135327郭皓 20135329 李海空

北京电子科技学院(BESTI) 实     验    报     告 课程:信息安全设计基础                         班级:1353 姓名:郭皓 李海空 学号:20135327  20135329 成绩:             指导教师:娄嘉鹏        实验日期:2015.11.10 实验密级:         预习程度:         实验时间:15:30~18:00 仪器组次:          必修/选修:            实验序号:1 实验名称: 

实验十六 线程技术

实验十六  线程技术 实验时间 2017-12-8 1.实验目的与要求 (1) 掌握线程概念: (2) 掌握线程创建的两种技术: (3) 理解和掌握线程的优先级属性及调度方法: (4) 掌握线程同步的概念及实现技术: 2.实验内容和步骤 实验1:测试程序并进行代码注释. 测试程序1: l 在elipse IDE中调试运行ThreadTest,结合程序运行结果理解程序: l 掌握线程概念: l 掌握用Thread的扩展类实现线程的方法: l 利用Runnable接口改造程序,掌握用Runnable

C++程序设计--实验二

第二次实验主要内容是函数重载,快速排序及其模板实现,简单的user类实现. 实验结论: 一.函数重载编程练习 /*编写重载函数add(),实现对int型,double型和Complex型数据的加法.在main函数中定义不同类型数据,调用测试.*/ 代码如下: 1 #include<iostream> 2 using namespace std; 3 4 struct Complex//Complex结构体定义 5 { 6 double real; 7 double imaginary; 8 }

实验十--- MySQL过程式数据库对象

实验十 MySQL过程式数据库对象 一.  实验内容: 1. 存储过程的创建和调用 2. 存储函数的创建和调用 3. 触发器的创建和触发 4. 事件的创建和修改 一.  实验项目:员工管理数据库 用于企业管理的员工管理数据库,数据库名为YGGL中,YGGL数据库中包括三个表:Employees(员工信息表).Departments(部门信息表).Salary(员工薪水情况表). 二.  实验步骤:(要求创建成功后,必须调用或触发) 1.   创建存储过程,使用Employees表中的员工人数来初

实验七 MySQL语言结构

实验七 MySQL语言结构 一.  实验内容: 1. 常量的使用 2. 变量的使用 3. 运算符的使用 4. 系统函数的使用 二.  实验项目:员工管理数据库 用于企业管理的员工管理数据库,数据库名为YGGL中,YGGL数据库中包括三个表:Employees(员工信息表).Departments(部门信息表).Salary(员工薪水情况表). 三.  实验步骤:(要求用命令完成以下操作) 1. 常量的使用 (1)   计算85和32的和.差.积.商.余数: (2)   显示“I love Mys

实验十一 MySQLl备份与恢复1

实验十一 MySQL备份与恢复 一.  实验内容: 1. 使用SQL语句导入和导出表数据 2. 使用客户端工具备份还原数据库 3. 使用日志文件恢复数据库 二.  实验项目:学生成绩数据库 创建用于学生成绩管理数据库,数据库名为XSCJ中,XSCJ数据库中包括三个表:xs(学生基本情况表).kc(课程信息表).xs_cj(成绩表).. 三.  实验步骤:(要求使用语句完成) 1.   使用select into ……outfile导出xs表数据,导出文件名为xs.txt,要求每行记录结束回车换行

实验八 存储过程1

实验八存储过程 一.  实验内容: 1. 存储过程的创建 2. 存储过程的调用 二.  实验项目:学生成绩数据库 创建用于学生成绩管理数据库,数据库名为XSCJ中,XSCJ数据库中包括三个表:xs(学生基本情况表).kc(课程信息表).xs_cj(成绩表). 三.  实验步骤:(要求每个存储过程创建成功之后必须进行调用检验) 1.   在xscj数据库中创建存储过程, 实现的功能是删除一个特定的学生信息. 2.   创建一个存储过程,判断两个输入参数哪个更大,并将较大的值返回: 3.   创建一

实验八 存储过程2

实验八存储过程 一.  实验内容: 1. 存储过程的创建 2. 存储过程的调用 二.  实验项目:学生成绩数据库 创建用于学生成绩管理数据库,数据库名为XSCJ中,XSCJ数据库中包括三个表:xs(学生基本情况表).kc(课程信息表).xs_cj(成绩表). 三.  实验步骤:(要求每个存储过程创建成功之后必须进行调用检验) 1.   在xscj数据库中创建存储过程,将xs表中的前15条记录复制到一个新表xs1显示中,并查看新表内容: 2.   创建存储过程,修改显示xs1表中学生的性别,当性别