zoukankan      html  css  js  c++  java
  • 测试与封装5.2

    package sz;
    import java.util.*;
    import java.applet.*;         //引入Applet类
    import java.awt.*;          
    import java.awt.event.*;      //引入系统事件类包。
    public class V11 extends Applet implements ActionListener{//定义类的同时实现动作事件监听接口。
        Label label1,label2,label3,label4;   //声明四个标签对象。
        TextField tf1;                   //声明一个文本框对象
        TextArea area;                  //声明一个文本区域对象
        Button bt1,bt2;                 //声明两个按钮对象
        double lb2=0.0;
        int s=0;
        int a=0;
        int b=0;
        int y=0;
        int z=0;
    //s保存总题数;a保存答对的题数;b保存答错的题数。
    
    public void init(){    //初始化。
        label1=new Label();     //创建一个没有显示内容的对象。
        label2=new Label();
        label3=new Label();
        label4=new Label("="); //创建一个显示内容为“=”的对象。
        tf1=new TextField(8);
        area=new TextArea(13,40);//创建一个13行40列的文本区。
        bt1=new Button("计分");  //创建一个显示标题为“计分”的按钮。
        bt2=new Button("重来");
        add(label1);
        add(label2);
        add(label3);
        add(label4);
        add(tf1);
        add(area);
        add(bt1);
        add(bt2);
        this.setSize(400, 150);
        //利用顺序布局,增加各组件。
        tf1.addActionListener(this);
        bt1.addActionListener(this);
        bt2.addActionListener(this);       //将this注册为ft1、bt1、bt2的单击事件兼听器。
        label1.setText(String.valueOf((int)(Math.random()*10)));
        label3.setText(String.valueOf((int)(Math.random()*10)));//随机产生两个10以内的整数并分别显示在标签1、3上。
        lb2=(Math.random());   //随机产生一个0~1以内的小数。
        if (lb2>=0 && lb2<=0.25)
            label2.setText("+");
        else if (lb2>0.25 && lb2<=0.5)
            label2.setText("-");
        else if (lb2>0.5 && lb2<=0.75)
            label2.setText("*");
        else if (lb2>0.75 && lb2<=1)
            label2.setText("/");  }
        //if 语句用于控制随机显示“+、-、*、/”四个运算符。
    
     public void actionPerformed(ActionEvent e){  //实现事件接口方法。
         if (e.getSource()==tf1){  //判断事件源是tf1还是bt1或bt2。
         s=s+1;     //一触发tf1总题数就加1.
         if (label2.getText()=="+"){
             int  x=Integer.parseInt(label1.getText())+Integer.parseInt(label3.getText());
    //字符转换成数值。
         if (x==Integer.parseInt(tf1.getText()))
             a=a+1;  //如果文本框输入的正确,则答对的数目加一。
         else
             b=b+1;  //如果文本框输入的错误,则答错的数目加一。       
         }
         else if (label2.getText()=="-"){
             int x=Integer.parseInt(label1.getText())-Integer.parseInt(label3.getText());
             if (x==Integer.parseInt(tf1.getText()))
                 a=a+1;
             else
                 b=b+1;
             }
         else if (label2.getText()=="*"){
             int x=Integer.parseInt(label1.getText())*Integer.parseInt(label3.getText());
             if (x==Integer.parseInt(tf1.getText()))
                 a=a+1;
             else
                 b=b+1; 
             }
    
         else if (label2.getText()=="/"){
             y=Integer.parseInt(label1.getText());
             z=Integer.parseInt(label3.getText());                            
                    do{
                        label3.setText(String.valueOf((int)(Math.random()*10)));   
                        z=Integer.parseInt(label3.getText());  }
                    while (z==0);      //用循环保证被除数不为0。
                    double  x=Double.parseDouble(label1.getText())/Integer.parseInt(label3.getText());
                    if (Math.round(x)==(Integer.parseInt(tf1.getText())))//保证两数相除,四舍五入再取整。
                        a=a+1;
                    else
                        b=b+1;   
                    }
         label1.setText(String.valueOf((int)(Math.random()*10)));
         label3.setText(String.valueOf((int)(Math.random()*10)));
         lb2=Math.random();
         if (lb2>=0 && lb2<=0.25)
             label2.setText("+");
         else if (lb2>0.25 && lb2<=0.5)
             label2.setText("-");
         else if (lb2>0.5 && lb2<=0.75)
             label2.setText("*");
         else if (lb2>0.75 && lb2<=1)
             label2.setText("/");
         tf1.setText("");
         }
         else if(e.getSource()==bt1){      //bt1按钮单击事件。
             area.setText("");        //清空文本区。 area.append("*********************************************"+"
    ");
             area.append("     一共答了:"+s+"道题。"+"
    ");
             area.append("     恭喜你!答对了:"+a+"道题,答错了:"+b+" 道题。"+"
    ");                                     area.append("_____________________________________________"+"
    ");
             area.append("     你当前的成绩为:"+((a*100)/s));//在文本区添加文本。
             }
         else if (e.getSource()==bt2){      //bt2按钮单击事件。
             area.setText("");
             label1.setText(String.valueOf((int)(Math.random()*10)));
             label3.setText(String.valueOf((int)(Math.random()*10)));
             lb2=Math.random();
             if (lb2>=0 && lb2<=0.25)
                 label2.setText("+");
             else if (lb2>0.25 && lb2<=0.5)
                 label2.setText("-");
             else if (lb2>0.5 && lb2<=0.75)
                 label2.setText("*");
             else if (lb2>0.75 && lb2<=1)
                 label2.setText("/");
             tf1.setText("");
             }
         }
     }
     

    黄伟俊  http://www.cnblogs.com/hwj23/
    刘恒 http://home.cnblogs.com/u/iliuh/
  • 相关阅读:
    python抢票开发——设备预约助手实现
    树莓派的基本网络配置
    python 端口扫描程序
    数据通讯与网络 第五版第24章 传输层协议-TCP协议部分要点
    数据通讯与网络 第五版第24章 传输层协议-UDP协议部分要点
    利用python开发的flappy bird 游戏
    EMACS 快捷键笔记
    python程序中用类变量代替global 定义全局变量
    在树莓派下对多个串口转USB设备进行设备名称绑定操作
    python 编写的经纬度坐标转换类
  • 原文地址:https://www.cnblogs.com/hwj23/p/4488607.html
Copyright © 2011-2022 走看看