四则运算训练图形界面小程序

先看运行效果:

做题界面:

判题界面:

代码:

Start.java

import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

import javax.swing.*;

public class Start extends JFrame{
	int rightSum=0;
	CreateArithmetic createArithmeticnew=new CreateArithmetic();
	private JPanel panel1=new JPanel();
	private JLabel label=new JLabel();
	JTextField text=new JTextField(10);
	ArrayList<String> list=new ArrayList<String>();
	public static void main(String[] args) {
		// TODO Auto-generated method stub
      JFrame frame=new  Start();
      frame.setTitle("小学四则运算训练小程序");
      frame.setSize(300,200);
      frame.setLocationRelativeTo(null);
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setVisible(true);
	}
	public Start(){
		setLayout(new GridLayout(3, 2,5,5));
		addAnswer();
		JPanel panel2=new JPanel();
		//panel2.setSize(10,100);
		panel2.add(new JLabel("请输入答案:"));
		panel2.add(text);
		this.add(panel2);
		JButton buttonSubmit=new JButton("提交答案");
		buttonSubmit.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				int size=list.size();
				int errorSum=size-rightSum;
				JFrame resultFrame=new JFrame();
				resultFrame.setTitle("运算结果");
				resultFrame.setSize(500,500);
				resultFrame.setLocationRelativeTo(null);
				resultFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				resultFrame.setVisible(true);
				JPanel panel=new JPanel();
				Font font = new Font(Font.DIALOG, Font.PLAIN, 20);
				panel.add(new JLabel("做题总数: "+size+" "+"正确数:"+rightSum));
				setLayout(new GridLayout(100, 1,5,5));
				for(int i=0;i<size;i++){
					panel.add(new JLabel(list.get(i)));
				}
				resultFrame.add(panel);
			}});
		JButton buttonNext=new JButton("下一题");
		buttonNext.addActionListener(new ActionListener() {//定义时间监听器
		   public void actionPerformed(ActionEvent e) {
			   String question=label.getText();
			   double result=Double.parseDouble(text.getText());
			   String ifRight="";
			   if(createArithmeticnew.result==result){
				 ifRight="正确";
				 rightSum++;
			   }else{
				   ifRight="错误";
			   }
			   String message=question+", "+"你的答案:"+result+", "+"正确答案: "+createArithmeticnew.result+", 状态: "+ifRight;
			   list.add(message);
			   text.setText("");
			   String answer=createArithmeticnew.creat();
			    label.setText(answer);
			   }
			  });
		JPanel panel3=new JPanel();
		//button.setSize(10,10);
		panel3.add(buttonNext);
		panel3.add(buttonSubmit);
		add(panel3);
	}
	public void addAnswer(){
		//System.out.println("hah");
		//panel1.setSize(0,50);
		Font font = new Font(Font.DIALOG, Font.PLAIN, 20);
        label.setFont(font);
		String answer=createArithmeticnew.creat();
		label.setText(answer);
		panel1.add(label);
	
		add(panel1);
	}
}

 CreateArithmetic.java

import java.util.ArrayList;
import java.util.Random;

public class CreateArithmetic {
	 //private ArrayList<Double> list=new ArrayList<Double>();
	double result=0;
     public String creat(){
    	 Random random=new Random();
    	 int a=random.nextInt(101);
    	 int b=random.nextInt(101);
    	 int c=random.nextInt(4);
    	 char character='+';
    	 switch(c){
    	    case 0:character='+'; result=a+b; break;
    	    case 1:character='-'; if(a<b){int temp=a;a=b;b=temp;} result=a-b; break;
    	    case 2:character='x'; result=a*b; break;
    	    case 3:character='/'; result=a/b; break;
    	 }
    	 return "题目:"+a+character+b+"=?";
     }
}

 可运行jar包:

下载地址: https://i.cnblogs.com/Files.aspx

注:小程序还有很多不完善的地方,部分功能还在完善当中

原文地址:https://www.cnblogs.com/mafx/p/8536796.html