博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
四则运算--封装5.1
阅读量:4330 次
发布时间:2019-06-06

本文共 5807 字,大约阅读时间需要 19 分钟。

我的队友:杜殷浩  http://www.cnblogs.com/ddyyhh/

主程序:

package 小学生四则运算;import java.awt.FlowLayout;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.BoxLayout;import javax.swing.SwingConstants;public class Suanshi extends JFrame implements ActionListener{    JTextField[] kj;    JTextField yy;    JFrame g;    JLabel biaot,timu,kk,k1,jieguo,dd;    JButton wq,qd;    JPanel p1,p2,p3,p4;    int i,tj;    String ssss;    int []da=new int[5];    private JPanel panel;    public Suanshi()    {                super("小学生四则运算");        panel=new JPanel();         panel.setLayout(new GridLayout(0, 1, 0, 3));         add(panel);                       p1=new JPanel();          panel.add(p1);          FlowLayout fl1 = new FlowLayout(FlowLayout.CENTER,10,10);            p1.setLayout(fl1);          biaot=new JLabel("小学生四则运算");          biaot.setFont(new Font("楷体", Font.BOLD,20));          p1.add(biaot);          p1.setOpaque(false);                        p2=new JPanel();         panel.add(p2);         p2.setLayout(new GridLayout(1,0,10,10));         timu=new JLabel("\u968F\u673A\u9898\u76EE\uFF1A");         k1=new JLabel(" ");         k1.setHorizontalAlignment(SwingConstants.CENTER);         k1.setFont(new Font("黑体", Font.BOLD, 30));         p2.add(timu);         p2.add(k1);         p2.setOpaque(false);                   p3=new JPanel();          panel.add(p3);          p3.setLayout(new GridLayout(1,0,10,10));          jieguo=new JLabel("输入答案:");          p3.add(jieguo);          kk=new JLabel(" ");          kk.setFont(new Font("黑体", Font.BOLD, 28));          kk.setHorizontalAlignment(SwingConstants.CENTER);          p3.add(kk);          p3.setOpaque(false);                   p4=new JPanel();          panel.add(p4);                   p4.setLayout(null);          wq=new JButton("获取题目");          wq.setLocation(203, 10);          wq.setSize(118, 31);          qd=new JButton("提交答案");          qd.setLocation(350, 10);          qd.setSize(118, 31);          p4.add(wq);          p4.add(qd);          p4.setOpaque(false);          wq.addActionListener(this);          qd.addActionListener(this);          kj=new JTextField[10];         for (int i= 0;i<5;i++)          {              kj[i] = new JTextField();            p2.add(kj[i]);              }          for (int i= 5;i<10;i++)         {              kj[i] = new JTextField();            p3.add(kj[i]);          }          yy=new JTextField(3);        setBounds(350,250,640,227);        setVisible(true);    }    public void actionPerformed(ActionEvent e)    {                if(e.getActionCommand().equals("获取题目"))  //判断点击的按钮        {            for(i=0;i<5;i++)            {                int sz=(int)(Math.random()*4);                int sz1=(int)(Math.random()*10+1);                int sz2=(int)(Math.random()*10+1);                Core a=new Core();                da[i]=a.yunxing(sz,sz1,sz2);                kj[i].setText(Core.huoqu());            }        }        else if(e.getActionCommand().equals("提交答案"))        {             int a,b=0,c=0;             for(a=5;a<10;a++)             {                 int first= Integer.parseInt(kj[a].getText()); //把文本框输入的答案转为整形                 if (first==da[b]) //判断答案是否正确                 {                     c++; //记录答对题目的个数                 }                 b++;             }             g=new JFrame("答案");             GridLayout ggg = new GridLayout(6,0,10,10);              g.getContentPane().setLayout(ggg);             JLabel sm=new JLabel("答对题目数:"+c);             JLabel []ct=new JLabel[5];             for(a=0;a<5;a++)             {                 ct[a]=new JLabel("第"+(a+1)+"题"+"答案为:"+da[a]);                 g.getContentPane().add(ct[a]);             }             g.getContentPane().add(sm);             g.setBounds(550,270,180,180);             g.setVisible(true);        }        }    public static void main(String[] args) {        Suanshi frame=new Suanshi();        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    }}
Suanshi.java

Core:

package 小学生四则运算;import javax.swing.JTextField;public class Core {    static String ssss;    int deshu;    public int yunxing(int sz,int sz1,int sz2)    {        switch(sz)        {        case 0:  //0时为加法式子            ssss=String.valueOf(sz1)+'+'+String.valueOf(sz2); //把式子转为字符            deshu=sz1+sz2;            break;                case 1:  //1时为减法式子            ssss=String.valueOf(sz1)+'-'+String.valueOf(sz2);            deshu=sz1-sz2;            break;                    case 2:  //2时为乘法式子            ssss=String.valueOf(sz1)+'*'+String.valueOf(sz2);            deshu=sz1*sz2;            break;                case 3:  //3时为乘法式子            ssss=String.valueOf(sz1)+'/'+String.valueOf(sz2);            deshu=sz1/sz2;            break;        }        return deshu;        }    public static String huoqu()    {        return ssss;    }}
Core

测试类:

package 小学生四则运算;import static org.junit.Assert.*;import org.junit.Test;public class CoreText {    private Core h;     @Test    public void jia() {        int a=h.yunxing(0,1,1);        assertEquals(2, a);    }    @Test    public void jian() {        int b=h.yunxing(1,1,1);        assertEquals(0, b);    }    @Test    public void cheng() {        int c=h.yunxing(2,1,1);        assertEquals(1, c);    }    @Test    public void chu() {        int d=h.yunxing(3,1,1);        assertEquals(1, d);    }}
CoreText

 

黑盒子测试:

测试用例

有效等价值

无效等价值

运算符号是否配对

0,1,2,3对应加减乘除

0为减,1为除等

生成随机数范围

19

0或小数

结果

与答案一致

与答案不一样

 

白盒子测试:

测试

例子

预计答案

实际答案

加法运算

1+1

2

2

减法运算

1-1

0

0

乘法运算

1*1

1

1

除法运算

1/1

1

1

 

感受:

  按我们理解的应该是这样做吧。第一次面对单元测试,真不知道怎么做。

转载于:https://www.cnblogs.com/OuZeBo/p/4468925.html

你可能感兴趣的文章
静态链接与动态链接的区别
查看>>
Android 关于悬浮窗权限的问题
查看>>
如何使用mysql
查看>>
linux下wc命令详解
查看>>
敏捷开发中软件测试团队的职责和产出是什么?
查看>>
在mvc3中使用ffmpeg对上传视频进行截图和转换格式
查看>>
python的字符串内建函数
查看>>
Spring - DI
查看>>
微软自己的官网介绍 SSL 参数相关
查看>>
Composite UI Application Block (CAB) 概念和术语
查看>>
ajax跨域,携带cookie
查看>>
阶段3 2.Spring_01.Spring框架简介_03.spring概述
查看>>
阶段3 2.Spring_02.程序间耦合_1 编写jdbc的工程代码用于分析程序的耦合
查看>>
阶段3 2.Spring_01.Spring框架简介_04.spring发展历程
查看>>
阶段3 2.Spring_02.程序间耦合_3 程序的耦合和解耦的思路分析1
查看>>
阶段3 2.Spring_02.程序间耦合_5 编写工厂类和配置文件
查看>>
阶段3 2.Spring_01.Spring框架简介_05.spring的优势
查看>>
阶段3 2.Spring_02.程序间耦合_7 分析工厂模式中的问题并改造
查看>>
阶段3 2.Spring_02.程序间耦合_4 曾经代码中的问题分析
查看>>
阶段3 2.Spring_03.Spring的 IOC 和 DI_2 spring中的Ioc前期准备
查看>>