刘恒 | 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 } }
下面是封装的代码。
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(""); } } }
因为有些不懂啊,只能这样了,加油
时间: 2024-10-05 23:09:04