实验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/

时间: 2024-10-13 16:14:00

实验2四则运算结对的相关文章

实验二----四则运算--结对

import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Calendar; import java.util.Random; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOpti

5.2 5.3 实验五 四则运算

5.2 5.3 实验五 四则运算编译环境 Eclipse集成开发环境+java开发人员         李泳江       学号 201306114314            队友  邵家文        学号 201306114322         博客:http://www.cnblogs.com/shaojiawen/ 心得:这次跟家文在一次完成5.2,5.3 实验五感到很开心,因为我们的大家一起合作,一起学习很高兴.随着我们合作的时间越长,我们的开发效率也增加了不少.但是,我们依然发

20165326 四则运算-结对编程 总结

四则运算-结对编程 总结 一.需求分析 能随机生成n道四则运算题目,n由使用者输入 支持整数和分数 支持多运算符 能够判断正误,错误时能提醒并输出正确答案 能计算出正确率 能多次生成题目,直到使用者选择退出 文件: 处理生成题目并输出到文件 完成题目后从文件读入并判题 二.设计思路 基于之前的工作,这一阶段的主要重心放在了生成txt文件,对文件进行输入输出等操作,此处设计了两个主类Questions和Results分别实现这两个操作.输出题目放在Exercisies.txt中,结果放在Exerc

实验二 四则运算 未完成版

package size; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JMenuBar; import javax.swing.JMenu; import javax.swing.JMenuItem; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListe

实验二:结对编程 第一阶段

一.实验目标: 1)体验敏捷开发中的两人合作. 2)进一步提高个人编程技巧与实践. 二 .实验内容: 1)根据以下问题描述,练习结对编程(pair programming)实践: 2)要求学生两人一组,自由组合.每组使用一台计算机,二人共同编码,完成实验要求. 3)要求在结对编程工作期间,两人的角色至少切换 4 次: 4)编程语言不限,版本不限.建议使用 Python 或 JAVA 进行编程. 三.问题描述 四则运算:开发一个自动生成小学四则运算题目的命令行 “软件”.实现 输入你要出题的个数,

结对子实验——小学生四则运算

实验开始时间:4月7日~4月9日 本次实验的组员分别是:郑泽成http://www.cnblogs.com/Oliver-zzc/,李天麟http://www.cnblogs.com/talent-demonic/: 1.代码是在Eclipse环境下开发的 2.在这次实验中我负责了写四则运算的算术代码和检查算法 同伴负责面板的设计和监听事件的实现 3.实现扩展方向有:用户在第一次答题时,需要用户输入用户名:程序可以设置答题时间,时间设置为整数,单位为秒:答题结束可以显示用户答错的题目个数和答对的

实验二 四则运算 完成版 ver.1

package size; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JMenuBar; import javax.swing.JMenu; import javax.swing.JMenuItem; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListe

20135337朱荟潼——实验三之结对实验项目

游戏名称:答题小能手 结对小伙伴:20135317韩玉琪 博客:http://www.cnblogs.com/hyq20135317 我的主要任务是:编写伪代码.完善代码.添加注释.TDD测试 Git:http://git.shiyanlou.com/135337 实验内容: 主要包括的类:JFrame.JPanel 1.JPanel类 JPanel类是主框架,程序的启动类. 其中包括游戏界面的创建.按钮的设置.事件监听器设置 2.JFrame类 JFrame类主要实现的是界面的布局绘制.按钮的

201571030319 201571030322 小学四则运算结对项目

GitHub源码地址:https://github.com/nigulasiletai/Demo2 1.需求分析: (1)随机选择20道混合运算: (2)用户输入答案,给出结果: (3)程序检查答案结果,正确计5分,错误不计分: (4)20道测试题结束给出总分: (5)带括号算式,真分数算式: (6)程序允许用户进行多轮测试,给出多轮测试分数柱状图: (7)程序记录用户答题结果,当程序退出再启动的时候,可为用户显示最后一次结果,并询问用户可否进行新一轮测试: (8)测试有记时功能,动态显示答题后