psp流程下四则运算升级
实验开始设计:

实验实际时间:

源代码
1 package zqn2; 2 3 import java.awt.Button; 4 import java.awt.FlowLayout; 5 import java.awt.Label; 6 import java.awt.TextField; 7 import java.awt.event.ActionEvent; 8 import java.awt.event.ActionListener; 9 import java.awt.event.WindowAdapter; 10 import java.awt.event.WindowEvent; 11 12 import javax.swing.JFrame; 13 14 15 public class ComputerJFrame extends JFrame implements ActionListener{ 16 TextField textOne,textTwo,textResult; 17 Button getProblem,giveAnswer; 18 Label operatorLabel,message; 19 Teacher teacher; 20 ComputerJFrame(String s){ 21 super(s); 22 teacher = new Teacher(); 23 setLayout(new FlowLayout()); 24 textOne=new TextField(10); //创建textOne,其可见字符长是10 25 textTwo=new TextField(10); //创建textTwo,其可见字符长是10 26 textResult=new TextField(10); //创建textResult,其可见字符长是10 27 operatorLabel =new Label("+"); //创建 operatorLabel,初始值“+” 28 message =new Label("你还没有回答呢"); //创建message,初始值“你还没有回答呢” 29 getProblem =new Button("获取题目"); //创建getProblem,初始值“获取题目” 30 giveAnswer =new Button("确认答案"); //创建giveAnswer,初始值“确认答案” 31 add(getProblem); 32 add(textOne); 33 add(operatorLabel); 34 add(textTwo); 35 add(new Label("=")); 36 add(textResult); 37 add(giveAnswer); 38 add(message);//添加若干组件到窗口 39 textResult.requestFocus();//textResult 获得焦点 40 textOne.setEditable(false); 41 textTwo.setEditable(false);//textOne设置textOne和textTwo不可编辑 42 getProblem.addActionListener(this);//将当前窗口注册为getProblem的ActionEvent事件监视器 43 giveAnswer.addActionListener(this);//将当前窗口注册为giveAnwser的ActionEvent事件监视器 44 textResult.addActionListener(this);//将当前窗口注册为textResult的ActionEvent事件监视器 45 setBounds(100,100,450,100);//设置出现屏幕上时的初始位置,x=100,y=100,width=450,height=100 46 setLocationRelativeTo(null);//设置窗体居中显示 47 setVisible(true);//窗口的可见性设置 48 validate(); 49 addWindowFocusListener(new WindowAdapter(){ 50 public void windowClosing(WindowEvent e){ 51 System.exit(0); 52 } 53 } 54 ); 55 } 56 57 public void actionPerformed(ActionEvent e){ 58 if(e.getSource()== getProblem)//如果点击了“获取题目 ” 59 { 60 int number1 =teacher.giveNumberOne(100);//获取第一个操作数的值 61 int number2 =teacher.giveNumberTwo(100);//获取第二个操作数的值 62 String operator =teacher.giveOperator();//获取运算符 63 textOne.setText(""+number1); 64 textTwo.setText(""+number2); 65 textResult.setText(null); 66 operatorLabel.setText(operator); 67 message.setText("请回答");//设置图形界面上文本框以及标签的文本,包括:textOne,textTwo,textResult,operatorLabel,message 68 } 69 if(e.getSource()==giveAnswer )//如果点击了“确认答案 ” 70 { 71 String answer =textResult.getText();//获取文本框中输入的答案 72 try{ 73 int result=Integer.parseInt(answer); 74 if(teacher.getRight(result)==true) { 75 message.setText("恭喜你!!! 答对了!");//如果答案正确,message显示“你回答正确”,如果不正确,显示“你回答错误” 76 }else { 77 message.setText("很失望!!! 你答错了!"); 78 } 79 } 80 catch(NumberFormatException ex){ 81 message.setText("请输入数字字符");//如果输入的不是数字,显示“请输入数字字符” 82 } 83 } 84 textResult.requestFocus();//textResult 获得焦点 85 validate(); 86 } 87 }
1 package zqn2; 2 3 import java.awt.*; 4 import javax.swing.*; 5 import java.awt.event.*; 6 7 public class Teacher { 8 int numberOne,numberTwo; 9 String operator=""; 10 boolean right; 11 12 public int giveNumberOne(int n){ 13 numberOne=(int)(Math.random()*n)+1; 14 return numberOne; 15 } 16 17 public int giveNumberTwo(int n){ 18 numberTwo=(int)(Math.random()*n)+1; 19 return numberTwo; 20 } 21 22 public String giveOperator(){ 23 double d=Math.random(); 24 if(d>=0.8) 25 operator="+"; 26 else if(d<0.8&&d>0.5) 27 operator="-"; 28 else if(d<=0.5&&d>0.2) 29 operator="*"; 30 else if(d<=0.2) 31 operator="/"; 32 return operator; 33 } 34 35 public boolean getRight(int answer){ 36 if(operator.equals("+")){ 37 if(answer==numberOne+numberTwo) 38 right=true; 39 else 40 right=false; 41 } 42 else if(operator.equals("-")){ 43 if(answer==numberOne-numberTwo) 44 right=true; 45 else 46 right=false; 47 } 48 else if(operator.equals("*")){ 49 if(answer==numberOne*numberTwo) 50 right=true; 51 else 52 right=false; 53 } 54 else if(operator.equals("/")){ 55 if(answer==numberOne/numberTwo) 56 right=true; 57 else 58 right=false; 59 } 60 return right; 61 } 62 }
1 package zqn2; 2 3 public class MainClass { 4 public static void main(String[] args) { 5 ComputerJFrame frame; 6 frame = new ComputerJFrame("算术测试"); 7 } 8 }
测试共享




浙公网安备 33010602011771号