JAVA--第十一周实验--编写一个算术测试小软件
2012-11-08 22:32
417 查看
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: 编写一个算术测试小软件。 * 版 本 号: V1.0 * 对任务及求解方法的描述部分 * 输入描述:程序组成:编写 一个Teacher类负责给出算术题目,随机给出两个整数并进行运算,并判断回答者的答案是否正确; * 输入描述:编写一个GUI类ComputerFrame,回答者可以通过GUI看到题目并给出答案;编写一个程序执行入口运行该软件。 * 输入描述:GUI界面如下所示。 * 问题描述: * 程序输出: * 程序头部的注释结束 */
package ma; public class TestMain { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub ComputerFrame frame = new ComputerFrame("算术测试"); } }
package ma; public class Teacher{ int numberone,numbertwo; String operator=" "; boolean right; public int getnumberone() { numberone= (int) (Math.random()*100); return numberone; } public int getnumbertwo() { numbertwo= (int) (Math.random()*100+1); return numbertwo; } public String getoperator() { int i=(int)(Math.random()*10+1); if(i>0&&i<=3) { operator="+"; } if(i>3&&i<=5) { operator="-"; } if(i>5&&i<=8) { operator="*"; } if(i>8&&i<=11) { operator="/"; } return operator; } public boolean check(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; } }
package ma; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFrame; @SuppressWarnings("serial") public class ComputerFrame extends JFrame implements ActionListener{ Teacher teacher; TextField text1,text2,textresult; Button getquestion,ensureanswer; Label label1,labelanswer,label2; ComputerFrame(String s) { super(s);//命名 teacher = new Teacher(); setLayout(new FlowLayout()); getquestion= new Button("获取题目"); text1 = new TextField(10);//创建textOne,其可见字符长是10 text2 = new TextField(10); textresult= new TextField(10); label1= new Label("+"); label2= new Label ("="); labelanswer= new Label("你还没有答案呢 ?"); ensureanswer= new Button("确认答案"); add(getquestion); add(text1); add(label1); add(text2); add(label2); add(textresult); add(getquestion); add(ensureanswer); add(labelanswer); // textresult.requestFocus(); text1.setEditable(false);//该方法设置文本框的可编辑性 text2.setEditable(false); getquestion.addActionListener(this);//将当前窗口注册为getquestion的ActionEvent事件监视器 ensureanswer.addActionListener(this); textresult.addActionListener(this); setBounds(100,100,450,100);//设置出现屏幕上时的初始位置 setLocationRelativeTo(null);//居中 setVisible(true);//窗口的可见性 validate(); } @Override public void actionPerformed(ActionEvent e) { if(e.getSource()==getquestion) { int numberone= teacher.getnumberone(); int numbertwo= teacher.getnumbertwo(); String operator = teacher.getoperator(); text1.setText(""+numberone);//设置文本框中为参数字符串指定的文本 text2.setText(""+numbertwo); label1.setText(operator); labelanswer.setText("请回答"); textresult.setText(null); } if(e.getSource()==ensureanswer) { String answer = textresult.getText(); try{ int result = Integer.parseInt(answer); if(teacher.check(result)==true){ labelanswer.setText("你回答正确"); } else{ labelanswer.setText("你回答错误"); } } catch(NumberFormatException x){ labelanswer.setText("请输入数字字符"); } //textresult.requestFocus(); validate();//确保组件具有有效的布局 } } }
相关文章推荐
- JAVA--第十一周实验--编写一个算术测试小软件
- 《编写一个算术测试小软件——Java第十一周》
- java上机 第十一周 任务1 算术测试小软件
- JAVA--第十一周实验--模拟一个信号灯的软件--代码重构--升级版
- JAVA--第十一周实验--模拟一个信号灯的软件
- java第十三周实验 编写一个一元二次函数的GUI
- Java--第十三周实验--任务0--编写一个简单的Java应用程序
- JAVA--第十周作业编写之一个Teacher类负责给出算术题目,随机给出两个整数并进行运算,并判断回答者的答案是否正确;编写一个GUI类ComputerFrame,回答者可以通过GUI看到题目并给出
- Java--第13周实验--封装一个求一元二次方程根的类SquareEquation,要求考虑解方程的异常,再编写一个窗口类EquationFrame
- 在Eclipse下,采用mulan多标签分类软件进行一个简单的测试实验
- JAVA--第12周实验--任务1--编写一个Panel的子类MyPanel,要求MyPanel的实例作为其按钮的ActionEvent事件的监视器
- Java程序设计(十二)----编写一个Teacher类负责给出算术题目
- Java--第13周实验--任务2--编写一个FontFamily类,该类对象获取当前机器可用的全部字体名称,编写一个对话框FontDialog,该对话框是模式对话框,采用BorderLayout布局
- 记录Sqlserver2012附加Sqlserver2008的数据库出错的解决方案一、摘要 最近在实验里面用台式编写好了一个软件,想移植到家里的笔记本上。在附加数据的时候却出现了错误,具体也没有提示
- Java 15.8.1 实验1 算术测试
- JAVA--第九周实验--编写一个模拟用户帐户的程序(内测版)
- java十二周实验.编写一个应用程序,要求编写一个Panel的子类MyPanel,MyPanel中有一个文本框和一个按钮,要求MyPanel的实例作为其按钮的ActionEvent事件的监视器,当单击
- java GUI 图形用户界面 算术测试小软件
- JAVA--第十周实验--编写一个JFrame,标题为“计算的窗口”,在该窗口中组件的布局是FlowLayout
- 为实验测试编写测试与数据处理软件(一)