• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

nlx秦安

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

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 }

 

测试共享

 

 

 

 

 

 

 

posted on 2021-09-25 15:11  秦安233  阅读(80)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3