1樓
大 中
小 發表於 2006-8-7 20:46
[JAVA] 數學算式之求解
引用:/*****************************************
說明:請在視窗上配置一文字方塊及一按鈕,在
文字方塊上輸入一數學運算式,按上述按鈕後,
輸出該數學運算式的最後結果值。該運算式的運算元
皆介於0~10000,而運算子僅含「+」,且該運算式
的字元總個數(即運算元的個數加上運算子的個數)
最多為30,程式中必須有須有判斷範圍的程式,若是
超出題目所訂定的字串長度則要求重新輸入。
*************************************************/
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
//想想還有沒有其他的東西要import
public class f1 extends JFrame implements ActionListener//名稱改一改
{
Container c;
//設定UI元件
JTextField txt;
JLabel lab_p,lab_ans;
JButton bot;
//設定共用的變數與類別
public f1() //建構元,名稱改一改
{
super("數學算式之求解");
c=getContentPane();//取得ContentPane
//設定版面設定
c.setLayout(new FlowLayout(FlowLayout.CENTER));//設定為用flowlayout
//初始化UI元件
txt=new JTextField(30);
lab_p=new JLabel("請輸入數學運算式");
lab_ans=new JLabel("尚無答案!");
bot=new JButton("執行");
//將UI元件加入ContentPane
c.add(lab_p);
c.add(txt);
c.add(bot);
c.add(lab_ans);
//設定UI元件與滑鼠的事件觸發傾聽者
bot.addActionListener(this);
setSize(640,480);//設定size,顯示出去
show();
}
public void paint(Graphics g)
{
super.paint(g);//畫出元件
//額外的畫圖程式寫在這裡
}
//UI元件事件處理類別寫在這裡
/***按鈕事件的傾聽方法****/
public void actionPerformed(ActionEvent e) //按鈕事件的處理方法
{
int i;
int sum,pud;
char now;
sum=0;
pud=0;
if (txt.getText().length()>30)//檢查輸入字串長度
{
lab_ans.setText("範圍錯誤,請重新輸入(字元總個數"+txt.getText().length()+")個");
return;
}
for (i=0;i<txt.getText().length();i=i+1)
{
now=txt.getText().charAt(i);
if (now=='+') //ADD
{
sum=sum+pud;
pud=0;
}
else //數字
{
now=(char) (now - '0'); //算出數字值
pud=pud*10+now;
if (pud>10000)//檢查範圍
{
lab_ans.setText("範圍錯誤,請重新輸入");
return;
}
}
}
/*****最後的pud不會被處理到*****/
sum=sum+pud;
lab_ans.setText("答案是:"+sum);
}
//滑鼠事件處理類別寫在這裡
/***主程式***/
public static void main(String args[]) //程式起點
{
f1 app=new f1(); //名稱改一改,啟動UI元件
app.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}); //處理視窗關閉要求
}
}
|