📄 java.txt
字号:
/*
*** 程序名称:Cacmath1_1.java
*** 程序功能:本例是一个 考一考!小学生四则运算趣味测试游戏。游戏有计算机随机产生一个算术表达式,
*** 由你给除答案,然后将你的答题情况记录下来。当答题一段时间后,你可以点击【计分】统计。还可以
*** 点击【重来】开始新的测试
*** 时间 08.04.02
*/
package lijunfenghegouxiangyang;
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class MathGame extends Applet implements ActionListener
{
Label MathExp;
TextField TxtResult;
TextArea OutputInfo;
Button ButReset,TotalScore;
int Num1,Num2,Opt,IntResult;
int TNum=0,FNum=0;
float FNum1,FNum2,FResult; //dang Opt==3 shi,两数相除可能为小数
String SExp="",SOpt=" ";
public void init()
{
MathExp=new Label(" ",Label.RIGHT); //此标签用来显示随即产生的数学表达式
MathExp.setFont(new Font("Courier",Font.BOLD,24));
TxtResult=new TextField(8);
TxtResult.setFont(new Font("Courier",Font.BOLD,24));
TxtResult.setForeground(Color.blue);
OutputInfo=new TextArea(" 这里是你的答题信息,怎么样!!挑战一下………………………\n",6,50,TextArea.SCROLLBARS_BOTH);
OutputInfo.append("****************\n");
ButReset=new Button("重来");TotalScore=new Button("计分"); this.setLayout(null); //取消java语言提供的布局管理。采用自定布局各组件位置和大小
MathExp.setBounds(70,20,130,30); //设置MathExp组件的位置(20,20)和大小(130,30)
this.add(MathExp,null);
TxtResult.setBounds(220,20,100,30);
this.add(TxtResult,null);
OutputInfo.setBounds(20,80,400,150);
this.add(OutputInfo,null);
TotalScore.setBounds(140,240,60,30);
ButReset.setBounds(220,240,60,30);
this.add(TotalScore,null);
this.add(ButReset,null);
TxtResult.addActionListener(this);
TotalScore.addActionListener(this);
ButReset.addActionListener(this);
}
public void paint(Graphics g)
{
Num1=(int)(Math.random()*100); //Integer.MAX_VALUE);
Num2=(int)(Math.random()*100); //Integer.MAX_VALUE);
Opt=(int)(Math.random()*4);
switch(Opt)
{
case 0:SOpt="+";IntResult=Num1+Num2;break;
case 1:SOpt="-";IntResult=Num1-Num2;break;
case 2:SOpt="*";IntResult=Num1*Num2;break;
case 3:SOpt="/";FResult=Num1/Num2;break;
//注:两数相除,可能带小数.
}
SExp=" "+Num1+" "+SOpt+" "+Num2+"=";
MathExp.setText(SExp);
}
public void actionPerformed(ActionEvent evt)
{
if(evt.getActionCommand()=="重来")
{
Num1=Num2=IntResult=0;
TNum=FNum=0;
FNum1=FNum2=FResult=0f; //当OPt==3时,两数相除可能为小数
OutputInfo.setText("");
TxtResult.setText("");
TxtResult.requestFocus(); //获取焦点
repaint();
}
if(TxtResult.getText()!="")
{
if(evt.getActionCommand()=="计分")
{
OutputInfo.append("\n=================\n");//OutputInfo.getRows()
OutputInfo.append("\n一共答了;"+(TNum)+"道题。");
if(TNum>=2*FNum)//判断成绩是否为中等以上。
{
OutputInfo.append("\n 恭喜你!");
OutputInfo.append(" 答对了: "+TNum+" 道题,"+" 答错了:"+FNum+" 道题。");
}
else
{
OutputInfo.append("\n 哈哈!你得努力。");
OutputInfo.append("对了:"+TNum+" 道题,"+" 错了: "+FNum+" 道题。");
}
OutputInfo.append("\n--------------");
OutputInfo.append("\n 你当前的成绩为:"+TNum*1.0/(TNum+FNum)*100+"\n");//OutputInfo.getRows()-1
}
else
{
if(Opt==3)//当做除法运算时,
{
if((int)FResult==(int)Float.valueOf(TxtResult.getText()).floatValue())//这儿用了模糊相等。即判断整数部分。
{
TNum++;
OutputInfo.append(SExp+TxtResult.getText()+" @ 你真棒!\n");
}
else
{
FNum++;
OutputInfo.append(SExp+TxtResult.getText()+" # 继续努力!\n");
}
}
else //当做加,减,乘运算时,
{
if(IntResult==Integer.parseInt(TxtResult.getText()))
{
TNum++;
//OutputInfo.insert(SExp+TxtResult.getTxt()+" @ 你真棒!\n",0);
OutputInfo.append(SExp+TxtResult.getText()+" @ 你真棒!\n");
}
else
{
FNum++;
//OutputInfo.insert(SExp+TxtResult.getText()+"# 继续努力\n",0);
OutputInfo.append(SExp+TxtResult.getText()+"# 继续努力\n");
}
}
TxtResult.setText("");//清空文本框
repaint();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -