问题描述:

编写一个算术测试小软件,用来训练小学生的算术能力。程序由3个类组成,其中Teacher类对象负责给出算术题目,并判断回答者的答案是否正确:ComputerFrame类对象提供的GUI界面看到题目并通过该GUI界面给出题目的答案;MailClass是主类。

运行结果如下图所示。图中标出了各个组件的变量名称。

点击“获取题目”后,显示题目:

点击“确认答案”后,如果输入答案错误,显示:“你回答错误”,如果答案正确,显示“你回答正确”,如果输入的不是数字,显示“请输入数字字符”。

问题解决:

新建Java工程test,工程下新建package,命名为Exer。

ComputerJFrame.java

package Exer;import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;import javax.swing.JFrame;public class ComputerJFrame extends JFrame implements ActionListener{
TextField textOne,textTwo,textResult;
Button getProblem,giveAnswer;
Label operatorLabel,message;
Teacher teacher;
ComputerJFrame(String s){super(s);teacher = new Teacher();setLayout(new FlowLayout());textOne=new TextField(10);     //创建textOne,其可见字符长是10textTwo=new TextField(10);     //创建textTwo,其可见字符长是10textResult=new TextField(10);  //创建textResult,其可见字符长是10operatorLabel =new Label("+");  //创建 operatorLabel,初始值“+”message =new Label("你还没有回答呢");   //创建message,初始值“你还没有回答呢”getProblem =new Button("获取题目"); //创建getProblem,初始值“获取题目”giveAnswer =new Button("确认答案"); //创建giveAnswer,初始值“确认答案”add(getProblem);add(textOne);add(operatorLabel);add(textTwo);add(new Label("="));add(textResult);add(giveAnswer);add(message);//添加若干组件到窗口textResult.requestFocus();//textResult 获得焦点textOne.setEditable(false);textTwo.setEditable(false);//textOne设置textOne和textTwo不可编辑getProblem.addActionListener(this);//将当前窗口注册为getProblem的ActionEvent事件监视器    giveAnswer.addActionListener(this);//将当前窗口注册为giveAnwser的ActionEvent事件监视器textResult.addActionListener(this);//将当前窗口注册为textResult的ActionEvent事件监视器setBounds(100,100,450,100);//设置出现屏幕上时的初始位置,x=100,y=100,width=450,height=100setLocationRelativeTo(null);//设置窗体居中显示setVisible(true);//窗口的可见性设置validate();addWindowFocusListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});
}public void actionPerformed(ActionEvent e){if(e.getSource()== getProblem)//如果点击了“获取题目 ”{int number1 =teacher.giveNumberOne(100);//获取第一个操作数的值int number2 =teacher.giveNumberTwo(100);//获取第二个操作数的值String operator =teacher.giveOperator();//获取运算符textOne.setText(""+number1);textTwo.setText(""+number2);textResult.setText(null);operatorLabel.setText(operator);message.setText("请回答");//设置图形界面上文本框以及标签的文本,包括:textOne,textTwo,textResult,operatorLabel,message}if(e.getSource()==giveAnswer )//如果点击了“确认答案 ”{String answer =textResult.getText();//获取文本框中输入的答案try{int result=Integer.parseInt(answer);if(teacher.getRight(result)==true) {message.setText("你回答正确");//如果答案正确,message显示“你回答正确”,如果不正确,显示“你回答错误”}else {message.setText("你回答错误");}}catch(NumberFormatException ex){message.setText("请输入数字字符");//如果输入的不是数字,显示“请输入数字字符”}}textResult.requestFocus();//textResult 获得焦点validate();
}
}

MainClass.java

package Exer;public class MainClass {
public static void main(String[] args) {ComputerJFrame frame;frame = new ComputerJFrame("算术测试");
}
}

Teacher.java

package Exer;import java.awt.*;
import javax.swing.*;
import java.awt.event.*;public class Teacher {
int numberOne,numberTwo;
String operator="";
boolean right;public int giveNumberOne(int n){numberOne=(int)(Math.random()*n)+1;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.8)operator="+";else if(d<0.8&&d>0.5)operator="-";else if(d<=0.5&&d>0.2)operator="*";else if(d<=0.2)operator="/";return operator;
}public boolean getRight(int answer){if(operator.equals("+")){if(answer==numberOne+numberTwo)right=true;elseright=false;}else if(operator.equals("-")){if(answer==numberOne-numberTwo)right=true;elseright=false;}else if(operator.equals("*")){if(answer==numberOne*numberTwo)right=true;elseright=false;}else if(operator.equals("/")){if(answer==numberOne/numberTwo)right=true;elseright=false;}return right;
}
}

运行结果:

Java——编写一个算术测试小软件相关推荐

  1. java算术测试软件_Java——编写一个算术测试小软件

    问题描述: 编写一个算术测试小软件,用来训练小学生的算术能力.程序由3个类组成,其中Teacher类对象负责给出算术题目,并判断回答者的答案是否正确:ComputerFrame类对象提供的GUI界面看 ...

  2. 用java实现一个算术测试软件,最新Java算术测试

    <最新Java算术测试>由会员分享,可在线阅读,更多相关<最新Java算术测试(8页珍藏版)>请在人人文库网上搜索. 1.精品文档组件及事件处理1实验1算术测试一,实验目的学习 ...

  3. java编写一个ATM取款机小程序

    此程序效果图如下: 一下为源代码: package step4; import java.util.Scanner; public class ForPractice4 { public static ...

  4. 21点小游戏java编程_用Java编写一个二十一点小游戏

    21点又名黑杰克(Blackjack),起源于法国,已流传到世界各地,有着悠久的历史.现在在世界各地的赌场中都可以看到二十一点,随着互联网的发展,二十一点开始走向网络时代.该游戏由2到6个人玩,使用除 ...

  5. 用Java编写一个租车小程序

    要求实现的功能有: 1.展示所有可租车辆 2.选择车型,租车量 3.显示租车清单,包括:总载货量,总载客量,总金额等: 4.车辆类型 客车:只能载客 货车:只能载货 皮卡:既能载人,有能载货 Java ...

  6. java二分查找宿舍管理_1、任务:为宿舍管理人员编写一个宿舍管理查询软件, 程序设计要求: (1)采用交互工作方式...

    1.任务:为宿舍管理人员编写一个宿舍管理查询软件, 程序设计要求: (1)采用交互工作方式 2016-08-22 0 0 0 暂无评分 其他 1 积分下载 如何获取积分? 1.任务:为宿舍管理人员编写 ...

  7. python测试开发自学教程-Web开发哪家强?看我用 Python 写一个颜值测试小工具

    我们知道现在有一些利用照片来测试颜值的网站或软件,其实使用 Python 就可以实现这一功能,本文我们使用 Python 来写一个颜值测试小工具. 简介 要实现颜值测试功能,大致有两种方式:一种是自己 ...

  8. 利用 Python 写一个颜值测试小工具

    我们知道现在有一些利用照片来测试颜值的网站或软件,其实使用 Python 就可以实现这一功能,本文我们使用 Python 来写一个颜值测试小工具. 很多人学习python,不知道从何学起. 很多人学习 ...

  9. 用 Python 写一个颜值测试小工具

    我们知道现在有一些利用照片来测试颜值的网站或软件,其实使用 Python 就可以实现这一功能,本文我们使用 Python 来写一个颜值测试小工具. 简介 要实现颜值测试功能,大致有两种方式:一种是自己 ...

最新文章

  1. python box2d_win10+Anaconda3成功使用pip安装Box2d
  2. android启动白屏的分析,Android 启动白屏,跳转黑屏以及冷启动优化
  3. 树:哈夫曼树和哈夫曼编码的详细介绍以及代码实现
  4. cmake2 配合1
  5. python学习笔记:操作Excle
  6. 一行代码下载网页视频!
  7. 百度热力图和高德热力图对比
  8. 【详细教程】阿里云ECS服务器搭建
  9. HDUOJ 2059 龟兔赛跑——
  10. 【从零开始学深度学习编译器】十三,如何在MLIR里面写Pass?
  11. linux异常(九):Linux虚拟机启动异常/打不开 位-000005.vmdk”或它所依赖的某个快照磁盘 | 做映射时提示:读取卷信息时出错 请选择其他磁盘文件
  12. 【蓝桥杯】简单数论4——丢番图方程
  13. 漫谈程序员(十六)健康程序猿系列之健康体魄
  14. 在 Jupyter Notebook 中使用R语言
  15. 寺库拟私有化:报价较发行价缩水75%,趣店为第一大股东
  16. 1、Centos7系统的初化始配置
  17. 前端面试题:Token一般是存放在哪里? Token放在cookie和放在localStorage、sessionStorage中有什么不同?
  18. 海波龙 11.1.2.4安装指南// hyperion install
  19. 不起眼但暴利的蓝海项目,人人可做!
  20. 北京联发科嵌入式软件工程师笔试题目解析

热门文章

  1. 2022“SEED”第三届江苏大数据开发与应用大赛--能源管理赛道
  2. caffe2的安装与遇到的问题和解决问题步骤
  3. matcom支持matlab版本,matlab哪个版本用得最多?
  4. 静息态下大脑的动态模块化指纹
  5. CVE-2020-1938 幽灵猫( GhostCat ) Tomcat-Ajp协议 任意文件读取/JSP文件包含漏洞分析
  6. 疯狂Python讲义学习笔记(含习题)之 类和对象
  7. Unreal Engine 4 —— GAS系统学习 (二十一) 为主角添加技能图标
  8. 工作组win7计算机无法访问,win7系统不能访问工作组计算机的解决方法
  9. python 字符串拼接_Python中拼接字符串的方法 | 萧小寒
  10. linux系统的烤机软件,NVIDIA英伟达 GeForce8/9/100/200/300/400/500/GeForce 600系列显卡Linux驱动...