作业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

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

你可能感兴趣的:(四则运算)