• 作业5 四则运算 测试与封装 5.1


    刘恒 http://www.cnblogs.com/iliuh/

    chaorenken

    http://www.cnblogs.com/lixuanzong/
    这个是主函数
    package tion;
    
    import java.util.*;
    import java.applet.*; //引入Applet类
    import java.awt.*; 
    import java.awt.event.*; //引入系统事件类包。
    public class ta 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 语句用于控制随机显示“+、-、*、/”四个运算符。
    
         Init init=new Init();
    
        @Override
        public void actionPerformed(ActionEvent e) {
            // TODO Auto-generated method stub
            
        }
    }
    View Code

    下面是封装的代码。

    package tion;
    
    import java.awt.Button;
    import java.awt.Label;
    import java.awt.TextArea;
    import java.awt.TextField;
    import java.awt.event.ActionEvent;
    
    public class Init {
        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 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("*********************************************"+"\n");
            area.append(" 一共答了:"+s+"道题。"+"\n");
            area.append(" 恭喜你!答对了:"+a+"道题,答错了:"+b+" 道题。"+"\n"); area.append("_____________________________________________"+"\n");
            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("");
        }
    }
    }
    View Code

    因为有些不懂啊,只能这样了,加油

  • 相关阅读:
    JavaScript Date对象
    BOM 和 DOM
    JS变量声明方式
    CSS3 选择器
    Python文件操作
    第十三章 迭代器、生成器、 装饰器
    python专题 --- 递归
    React JSX
    ES6——面向对象应用
    ES6——面向对象-基础
  • 原文地址:https://www.cnblogs.com/iliuh/p/4469660.html
Copyright © 2020-2023  润新知