四則演算--パッケージ5.1

17895 ワード

私のチームメイト:杜殷浩 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
コア:

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;

    }

}
コア
テストクラス:

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は除算などです.
乱数の範囲を生成
1から9まで
0または小数
結果
答えと同じ
答えとは違う
 
白い箱のテスト:
テスト

答えを予想する
実際の答え
足し算
1+1
2
2
減算演算
1-1
0
0
乗算演算
1*1
1
1
除算演算
1/1
1
1
 
感銘:
私たちが理解するようにするべきです.初めてユニットテストに直面しました.どうすればいいか分かりません.