自动出题并判分(实用小程序)

public class AutoScore extends Applet {
    //private static final long serialVersionUID = 1L;
    java.awt.Button btnNew = new java.awt.Button();
    Button button2 = new Button();
    Label lblA = new Label();
    Label lblOp = new Label();
    Label lblB = new Label();
    Label label5 = new Label();
    TextField txtAnswer = new TextField();
    List listDisp = new List(0);

    public void init() {
        setLayout(null);
        setSize(380, 266);
        btnNew.setLabel("出题");
        add(btnNew);
        btnNew.setBackground(java.awt.Color.lightGray);
        btnNew.setBounds(36, 96, 98, 26);
        button2.setLabel("判分");
        add(button2);
        button2.setBackground(Color.lightGray);
        button2.setBounds(216, 96, 94, 25);
        lblA.setText("A");
        add(lblA);
        lblA.setFont(new Font("Dialog", Font.PLAIN, 24));
        lblA.setBounds(36, 24, 36, 36);
        lblOp.setText("~");
        add(lblOp);
        lblOp.setFont(new Font("Dialog", Font.PLAIN, 24));
        lblOp.setBounds(72, 24, 36, 36);
        lblB.setText("B");
        add(lblB);
        lblB.setFont(new Font("Dialog", Font.PLAIN, 24));
        lblB.setBounds(108, 24, 33, 36);
        label5.setText("=");
        add(label5);
        label5.setFont(new Font("Dialog", Font.PLAIN, 24));
        label5.setBounds(168, 24, 34, 36);
        add(txtAnswer);
        txtAnswer.setFont(new Font("Dialog", Font.PLAIN, 24));
        txtAnswer.setBounds(216, 24, 85, 42);
        listDisp.setFont(new Font("Dialog", Font.PLAIN, 16));
        add(listDisp);
        listDisp.setBounds(36, 144, 272, 106);

        SymAction lSymAction = new SymAction();
        btnNew.addActionListener(lSymAction);
        button2.addActionListener(lSymAction);

    }

    class SymAction implements ActionListener {
        public void actionPerformed(ActionEvent event) {
            Object object = event.getSource();
            if (object == btnNew)
                btnNew_ActionPerformed(event);
            else
                button2_ActionPerformed(event);
        }
        
        int a=0,b=0;
        String op="";
        double result=0;

        public void btnNew_ActionPerformed(ActionEvent event) {
            a = (int)(Math.random()*9+1);
            b = (int)(Math.random()*9+1);
            int c = (int)(Math.random()*4);
            switch(c) {
            case 0: op="+"; result=a+b;break;
            case 1: op="-"; result=a-b;break;
            case 2: op="*"; result=a*b;break;
            case 3: op="/"; result=a/b;break;
            
            }
            lblA.setText(""+a);
            lblB.setText(""+b);
            lblOp.setText(""+op);
            txtAnswer.setText("");
        }
        
        
        
        void button2_ActionPerformed(ActionEvent event) {
            String str = txtAnswer.getText();
            double d = Double.valueOf(str).doubleValue();
            String disp = "" + a + op + b + "=" + str + " ";
            if(d == result) disp += "$";
            else disp += "#";
            
            listDisp.add(disp);
        }
    }
    
    

    public static void main(String[] args) {
        Frame f = new Frame();
        f.setSize(400,300);
        AutoScore p = new AutoScore();
        f.add(p);
        p.init();
        p.start();
        f.setVisible(true);
    }
}
posted @ 2012-11-21 21:28  煮夫酱  阅读(1973)  评论(0)    收藏  举报