问题描述:
    NCL是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托
的一个任务:需要在该公司某型号的计算器上加上解一元一次方程的功能。实验室将这个任
务交给了一个刚进入的新手ZL先生。为了很好的完成这个任务,ZL先生首先研究了一些
一元一次方程的实例:   4+3x=8
   6a-5+1=2-2a
   -5+12Y=0    ZL先生被主管告之,在计算器上键入的一个一元一次方程中,只包含整数、小写字母
及十、一、=这三个数学符号(当然,符号“一”既可作减号,也可作负号)。方程中并没
有括号,也没有除号,方程中的字母表示未知数。问题求解:
    编写程序,解输入的一元一次方程,将解方程的结果(精确至小数点后三位)输出至屏幕。    你可假设对键入的方程的正确性的判断是由另一个程序员在做,或者说可认为键入的一
元一次方程均为合法的,且有唯一实数解。样例输入:
6a-5+1=2-2a输出:
a=0.750
应该发到哪个模块?

解决方案 »

  1.   

    import java.awt.*;
    import java.awt.event.*;
    class 圆 extends Panel implements ActionListener
    {
    double r,area;
    TextField  半径=null,结果=null;
    Button b=null;
    圆()
    {
    半径=new TextField(10);
    结果=new TextField(10);
    b=new Button("确定");
    add(new Label("输入半径"));
    add(半径);
    add(new Label("面积是:"));
    add(结果);
    add(b);
    b.addActionListener(this);
    }
    public void actionPerformed(ActionEvent e)
    {
    try{
    r=Double.parseDouble(半径.getText());
    area=Math.PI*r*r;
    结果.setText(""+area);
    }
    catch(Exception ee)
    {
    半径.setText("请输入数字字符");
    }
    }
    }
    class 三角形 extends Panel implements ActionListener
    {
    double a=0,b=0,c=0,area;
    TextField  边_a=new TextField(6), 边_b=new TextField(6),边_c=new TextField(6), 结果=new TextField(24);
        Button button=new Button("确定");
    三角形()

    add(new Label("输入三边的长度"));
    add(边_a);
    add(边_b);
    add(边_c);
    add(new Label("面积是:"));
    add(结果);
    add(button);
    button.addActionListener(this);
    }
    public void actionPerformed(ActionEvent e)
    {
    try{
    a=Double.parseDouble(边_a.getText());
    b=Double.parseDouble(边_b.getText());
    c=Double.parseDouble(边_c.getText());
    if(a+b>c&&a+c>b&&c+b>a)
    {
    double p=(a+b+c)/2;
    area=Math.sqrt(p*(p-a)*(p-b)*(p-c));
    结果.setText(""+area);
    }
    else
    {
    结果.setText("您输入的数字不能形成三角形");
    }
    }
    catch(Exception ee)
    {
    结果.setText("请入数字字符");
    }
    }
    }
    class Win extends Frame implements ActionListener
    {
    MenuBar bar=null;
    Menu menu=null;
    MenuItem item1,item2;
        圆 circle;
    三角形 trangle;
    Win()
    {
    bar=new MenuBar();
    menu=new Menu("选择");
    item1=new MenuItem("圆面积计算");
    item2=new MenuItem("三角形面积计算");
    menu.add(item1);
    menu.add(item2);
    bar.add(menu);
    setMenuBar(bar);
    circle=new 圆();
    trangle=new 三角形();
    item1.addActionListener(this);
    item2.addActionListener(this);
    setVisible(true);
    setBounds(100,120,100,90);
    }
    public void actionPerformed(ActionEvent e)
    {
    if(e.getSource()==item1)
    {
    removeAll();
    add(circle,"Center");
    validate();
    }
    else if(e.getSource()==item2)
    {
    removeAll();
    add(trangle,"Center");
    validate();
    }
    }
    }
    public class ex_3_8_2
    {
    public static void main(String args[])
    {
    Win win=new Win();
    win.setBounds(200,200,200,200);
    win.setVisible(true);
    win.addWindowListener(new WindowAdapter()
    {
    public void windowClosing(WindowEvent e)
    {
    System.exit(0);
    }
    });
    }
    }