算数测试(Java实验)
来源:互联网 发布:java产生0到99的随机数 编辑:程序博客网 时间:2024/05/21 05:24
题目描述:
编写一个算术测试小软件,用来训练小学生的算术能力。
Teacher类对象充当监视器,负责给出算术题目,并判断回答者的答案是否正确。
package math;import java.util.Random;import java.awt.event.*;import javax.swing.*;public class Teacher implements ActionListener{int numberOne,numberTwo;String operator="";boolean isRight;Random random;int maxInteger;JTextField textOne,textTwo,textResult;JLabel operatorLabel,message;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="+";elseoperator="-";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("你回答正确");elsemessage.setText("你回答错误");}else if(operator.equals("-")){if(result==numberOne-numberTwo)message.setText("你回答正确");elsemessage.setText("你回答错误");}}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];}}
ComputerFrame对象负责为算术题目 提供视图。
package math;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class ComputerFrame extends JFrame {JMenuBar menubar;JMenu choiceGrade;JMenuItem grade1,grade2;JTextField textOne,textTwo,textResult;JButton getProblem,giveAnswer;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(){public void actionPerformed(ActionEvent e){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("获取题目");giveAnswer=new JButton("获取答案");add(textOne);add(operatorLabel);add(textTwo);add(new JLabel("="));add(textResult);add(giveAnswer);add(message);add(getProblem);textResult.requestFocus();textOne.setEditable(false);textTwo.setEditable(false);getProblem.setActionCommand("getProblem");textResult.setActionCommand("answer");giveAnswer.setActionCommand("answer");teacherZhang.setJTextField(textOne,textTwo,textResult);teacherZhang.setJLabel(operatorLabel,message);getProblem.addActionListener(teacherZhang);giveAnswer.addActionListener(teacherZhang);textResult.addActionListener(teacherZhang);setVisible(true);validate();setDefaultCloseOperation(DISPOSE_ON_CLOSE);}}
MainClass 主类
package math;public class MainClass {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubComputerFrame frame;frame=new ComputerFrame();frame.setTitle("算数测试");frame.setBounds(100,100,650,180);}}
运行结果:
阅读全文
0 0
- 算数测试(Java实验)
- 数据结构实验:算数表达式
- 实验一:算数编码实验
- 小学生算数测试系统
- 小学生算数测试
- 小学生算数测试系统
- 测试++算数运算符
- 第四周项目(3)-小学生算数能力测试系统
- 小学生算数能力测试系统
- java 算数运算 概率
- java算数据百分比
- Java中的算数运算
- Java向上转型,实验测试
- 《C语言接口与实现》实验——多精度算数(MPCalc)
- 《C语言接口与实现》实验——任意精度算数(Calc)
- 【Java】(一)运算符小结(算数运算符)
- 算数字(二进制)
- uva11582(模算数)
- js遍历键值对数组
- 使用 VSCode 编辑器来编译 Sass
- 【noip2016】换教室
- 0.5/0.1=4?
- Cmake编译OpenCV3.1源码
- 算数测试(Java实验)
- 如何正确入门Windows系统下驱动开发领域?
- 神经网络有什么理论支持? 本文作者:AI研习社 2017-11-08 18:30 导语:问:神经网络有什么理论支持? 答:目前为止(2017 年)没有什么特别靠谱的。 雷锋网按:本文原作者袁洋
- FTP错误详解及解决方案
- Android组件学习笔记(自定义设计View,以及布局直接引入的快捷方式)
- 运用Ansible作为您的自动化核心
- linux下导入、导出mysql数据库命令
- pycharm 远程调试 上传 helpers 卡住 解决
- File类文件路径详解