zoukankan      html  css  js  c++  java
  • 实验2四则运算结对

    调试环境:Eclipse

    代码:

    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); //利用顺序布局,增加各组件。
    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("*********************************************"+"\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("");
    }
    }
    }

    33刘恒 博客:http://www.cnblogs.com/iliuh/

  • 相关阅读:
    Springboot 之 自定义配置文件及读取配置文件
    SQLSERVER系统视图 sql server系统表详细说明
    MySQL Workbench建表时 PK NN UQ BIN UN ZF AI 的含义
    使用Ecplise git commit时出现"There are no stages files"
    maven添加sqlserver的jdbc驱动包
    java将XML文档转换成json格式数据
    java将XML文档转换成json格式数据
    cannot be resolved. It is indirectly referenced from required .class files
    org.codehaus.jackson.map.JsonMappingException: Can not construct instance of java.util.Date from String value '2012-12-12 12:01:01': not a valid representation (error: Can not parse date "2012-12-
    @Autowired注解和静态方法 NoClassDefFoundError could not initialize class 静态类
  • 原文地址:https://www.cnblogs.com/iliuh/p/4411024.html
Copyright © 2011-2022 走看看