Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 687|回复: 0

Java 算数测试小程序

[复制链接]

该用户从未签到

发表于 2011-8-3 23:02:24 | 显示全部楼层 |阅读模式
TestFrame.java
  import javax.swing.*;
  import java.awt.FlowLayout;
  import java.awt.event.*;
  public class TestFrame extends JFrame implements ActionListener
  {
  JTextField textOne,textTwo,textResult;
  JButton getProblem,giveAnwser;
  JLabel operatorJLabel,message;
  TestOperator testOperator;
  public TestFrame()
  {
  testOperator=new TestOperator();
  setLayout(new FlowLayout());
  textOne=new JTextField(10); //创建textOne,其可见字符长是10
  textTwo=new JTextField(10); //创建textTwo,其可见字符长是10
  textResult=new JTextField(10); //创建textResult,其可见字符长是10
  operatorJLabel=new JLabel("+");
  message=new JLabel("你还没有回答呢");
  getProblem=new JButton("获取题目");
  giveAnwser=new JButton("确认答案");
  add(getProblem);
  add(textOne);
  add(operatorJLabel);
  add(textTwo);
  add(new JLabel("="));
  add(textResult);
  add(giveAnwser);
  add(message);
  textOne.setEditable(false);
  textTwo.setEditable(false);
  getProblem.addActionListener(this);//当前窗口注册为getProblem的ActionEvent事件监视器
  giveAnwser.addActionListener(this);//当前窗口注册为giveAnwser的ActionEvent事件监视器
  textResult.addActionListener(this);//当前窗口注册为textResult的ActionEvent事件监视器
  }
  public void actionPerformed(ActionEvent e)
  {
  if(e.getSource()==getProblem) //判断事件源是否是getProblem
  {
  int number1=testOperator.giveNumberOne(100);
  int number2=testOperator.giveNumberTwo(100);
  String operator=testOperator.giveOperator();
  textOne.setText(""+number1);
  textTwo.setText(""+number2);
  operatorJLabel.setText(operator);
  message.setText("请回答");
  textResult.setText(null);
  }
  if(e.getSource()==giveAnwser) //判断事件源是否是giveAnwser
  {
  String answer=textResult.getText();
  try{ int result=Integer.parseInt(answer);
  if(testOperator.getRight(result)==true)
  {
  message.setText("你回答正确");
  }
  else
  {
  message.setText("你回答错误");
  }
  }
  catch(NumberFormatException ex)
  {
  message.setText("请输入数字字符");
  }
  }
  }
  }
TestOperator.java
  public class TestOperator
  {
  int numberOne,numberTwo;
  String operator="";
  boolean right;
  //随机生成第一个数
  public int giveNumberOne(int n)
  {
  numberOne=(int)(Math.random()*n)+1; //强制转换为int型
  //因为Math.random()返回的为double型
  return numberOne;
  }
  //随机生成第二个数
  public int giveNumberTwo(int n)
  {
  numberTwo=(int)(Math.random()*n)+1;
  return numberTwo;
  }
  //随机生成运算符号
  public String giveOperator()
  {
  double d=Math.random();
  if(d>=0&&d<0.25)
  operator="+";
  else if(d>0.25&&d<=0.5)
  operator="-";
  else if(d>0.5&&d<=0.75)
  operator="*";
  else
  operator="/";
  return operator;
  }
  //判断测试结果是否正确
  public boolean getRight(int answer)
  {
  if(operator.equals("+"))
  {
  if(answer==numberOne+numberTwo)
  right=true;
  else
  right=false;
  }
  else if(operator.equals("-"))
  {
  if(answer==numberOne-numberTwo)
  right=true;
  else
  right=false;
  }
  else if(operator.equals("*"))
  {
  if(answer==numberOne*numberTwo)
  right=true;
  else
  right=false;
  }
  else if(operator.equals("/"))
  {
  if(answer==numberOne/numberTwo)
  right=true;
  else
  right=false;
  }
  return right;
  }
  }
  MainClass.java
  import javax.swing.JFrame;
  import javax.swing.UIManager;
  public class MainClass
  {
  public static void main(String args[])
  {
  try {
  UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); //windows界面风格
  } catch (Exception e) {
  e.printStackTrace();
  }
  TestFrame frame=new TestFrame();
  frame.setTitle("算数测试小程序");
  frame.setBounds(100,100,500,100);
  frame.setVisible(true);
  frame.setLocationRelativeTo(null);//窗体居中显示
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  frame.setResizable(false);
  }
  }
效果图:
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2024-5-24 00:43 , Processed in 0.418099 second(s), 46 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表