四則演算--パッケージ5.1
17895 ワード
私のチームメイト:杜殷浩 http://www.cnblogs.com/ddyyhh/
メインプログラム:
コア:
テストクラス:
ブラックボックスのテスト:
テストケース
有効価値
無効などの価値
演算記号がペアリングされていますか?
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
感銘:
私たちが理解するようにするべきです.初めてユニットテストに直面しました.どうすればいいか分かりません.
メインプログラム:
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
感銘:
私たちが理解するようにするべきです.初めてユニットテストに直面しました.どうすればいいか分かりません.