天天看點

軟體工程——四則運算更新作業

package mainClass;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.util. Random;

public class MainClass {

public static void main (String args[]) {

ComputerFrame frame;

frame=new ComputerFrame();

frame.setTitle("算數測試");

frame.setBounds (100,100, 650, 180);

}

}

class ComputerFrame extends JFrame{

JMenuBar menubar;

JMenu choiceGrade;

JMenuItem grade1,grade2;

JTextField textOne,textTwo,textResult;

JButton getProblem,giveAnwser;

JLabel operatorLabel,message;

Teacher teacherZhang;

ComputerFrame (){

teacherZhang=new Teacher () ;

teacherZhang.setMaxInteger (20) ;

setLayout (new FlowLayout () ) ;

menubar=new JMenuBar () ;

choiceGrade=new JMenu("選擇級别");

grade1=new JMenuItem("幼兒級别");

grade2=new JMenuItem("兒童級别");

grade1.addActionListener (new ActionListener () {

public void actionPerformed (ActionEvent e) {

teacherZhang.setMaxInteger (10) ;

}

});

grade2.addActionListener (new ActionListener () {

teacherZhang.setMaxInteger (50) ;

choiceGrade.add (grade1) ;

choiceGrade.add (grade2) ;

menubar.add (choiceGrade);

setJMenuBar (menubar) ;

textOne=new JTextField(5);

textTwo=new JTextField (5) ;

textResult=new JTextField (5) ;

operatorLabel=new JLabel ("+") ;

operatorLabel.setFont (new Font ("Arial", Font. BOLD, 20) ) ;

message=new JLabel("你還沒有回答呢");

getProblem=new JButton("擷取題目");

giveAnwser=new JButton("确認答案");

add (getProblem) ;

add (textOne) ;

add (operatorLabel) ;

add (textTwo) ;

add (new JLabel ("=") ) ;

add (textResult) ;

add (giveAnwser) ;

add (message) ;

textResult.requestFocus () ;

textOne.setEditable (false) ;

textTwo.setEditable (false) ;

getProblem.setActionCommand ("getProblem") ;

textResult.setActionCommand ("answer") ;

giveAnwser.setActionCommand ("answer") ;

teacherZhang.setJTextField (textOne,textTwo,textResult) ;

teacherZhang.setJLabel (operatorLabel,message);

getProblem.addActionListener(teacherZhang);

giveAnwser.addActionListener(teacherZhang);

textResult.addActionListener(teacherZhang);

setVisible (true) ;

validate ();

setDefaultCloseOperation (DISPOSE_ON_CLOSE) ;

class Teacher implements ActionListener{

int numberOne,numberTwo;

String operator="";

boolean isRight;

Random random;

int maxInteger;

Teacher (){

random = new Random () ;

public void setMaxInteger (int n) {

maxInteger=n;

public void actionPerformed (ActionEvent e) {

String str=e.getActionCommand () ;

if (str.equals ("getProblem") ) {

numberOne =random.nextInt(maxInteger)+1;

numberTwo=random.nextInt (maxInteger) +1;

double d=Math.random () ;

if (d>=0.5) {

operator="+";

if(d>=0.5&&d<0.8){

operator="-";

}

else if(d>=0.3&&d<0.5) {

operator="*";

else

operator="/";

textOne.setText (""+numberOne) ;

textTwo.setText (""+numberTwo) ;

operatorLabel.setText (operator) ;

message.setText("請回答");

textResult.setText (null) ;

}

else if (str.equals ("answer") ) {

String answer=textResult.getText () ;

try{

int result=Integer.parseInt (answer) ;

if (operator.equals ("+") ) {

if (result==numberOne+numberTwo)

message.setText("你回答正确");

else

message.setText("你回答錯誤");

if (operator.equals ("-") ) {

if (result==numberOne-numberTwo)

if (operator.equals ("/") ) {

if (result==numberOne/numberTwo)

else if (operator.equals ("*") ) {

if (result==numberOne*numberTwo)

catch (NumberFormatException ex) {

message.setText("請輸入數字字元");

public void setJTextField (JTextField...t) {

textOne=t [0] ;

textTwo=t [1] ;

textResult=t[2];

}

public void setJLabel (JLabel...label) {

operatorLabel=label [0] ;

message=label [1] ;

軟體工程——四則運算更新作業
軟體工程——四則運算更新作業
軟體工程——四則運算更新作業
軟體工程——四則運算更新作業