?? 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 + -