⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 polynomialtest.java

📁 该程序实现两个一元多项式表达式的输入
💻 JAVA
字号:
package me;

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.LinkedList;
import java.util.ListIterator;
import javax.swing.*;

public class PolynomialTest extends JFrame{
    Polynomial pa=new Polynomial();
    Polynomial pb=new Polynomial();
    JTextArea show=new JTextArea();
    JTextField ceof;
    JTextField expn;
    boolean isAddPa=true;
    boolean paFirst=true;
    boolean pbFirst=true;
    PolynomialTest(){
        
        setSize(400,300);
        JPanel buttonPanel=new JPanel();
        buttonPanel.setLayout(new FlowLayout(FlowLayout.CENTER));
        JButton addPoly=new JButton("Add");
        JButton subPoly=new JButton("Subtract");
        JButton mulPoly=new JButton("Multiply");
        JButton reset=new JButton("Reset");
        buttonPanel.add(addPoly);
        buttonPanel.add(subPoly);
        buttonPanel.add(mulPoly);
        buttonPanel.add(reset);
        reset.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                pa.getLinkList().clear();
                pb.getLinkList().clear();
                show.setText("");
            }
        });
        addPoly.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                Polynomial p1=pa.clone();
                Polynomial p2=pb.clone();
                if(p1!=null&&p2!=null){
                    p1.addPoly(p2);
                    show.append("\npa + pb = ");
                    showPolynomial(p1);
                }
                else JOptionPane.showMessageDialog(PolynomialTest.this,null,"error!",JOptionPane.ERROR_MESSAGE);
            }
            
        });
        subPoly.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                Polynomial p1=pa.clone();
                Polynomial p2=pb.clone();
                if(p1!=null&&p2!=null){
                    p1.subtractPolyn(p2);
                    show.append("\npa - pb = ");
                    showPolynomial(p1);
                }
                else JOptionPane.showMessageDialog(PolynomialTest.this,null,"error!",JOptionPane.ERROR_MESSAGE);
            }
        });
        mulPoly.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                Polynomial p1=pa.clone();
                Polynomial p2=pb.clone();
                if(p1!=null&&p2!=null){
                    p1.multiplyPolyn(p2);
                    show.append("\npa * pb = ");
                    showPolynomial(p1);
                }
                else JOptionPane.showMessageDialog(PolynomialTest.this,null,"error!",JOptionPane.ERROR_MESSAGE);
            }
        });
        ceof=new JTextField(10);
        expn=new JTextField(10);
        JButton addTerm=new JButton("AddTerm");
        JPanel addTermPanel=new JPanel();
        addTermPanel.add(new JLabel("ceof"));
        addTermPanel.add(ceof);
        addTermPanel.add(new JLabel("expn"));
        addTermPanel.add(expn);
        addTermPanel.add(addTerm);
        addTerm.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                if(ceof.getText().equals("")&&expn.getText().equals("")){
                     JOptionPane.showConfirmDialog(PolynomialTest.this,"please input ceof and expn");
                     return;
                }
                if(isAddPa){
                    if(pa.getLinkList().isEmpty())show.append("\npa= ");
                    Term t=new Term(Float.parseFloat(ceof.getText()),Integer.parseInt(expn.getText()));
                    pa.addTerm(t);
                    showTerm(t,paFirst);
                    if(paFirst==true)paFirst=false;
                }
                else{ 
                    if(pb.getLinkList().isEmpty())show.append("\npb= ");
                    Term t=new Term(Float.parseFloat(ceof.getText()),Integer.parseInt(expn.getText()));
                    pb.addTerm(t);
                    showTerm(t,pbFirst);
                    if(pbFirst==true)pbFirst=false;
                }
                ceof.setText("");
                expn.setText("");
            }
        });
        JMenuBar bar=new JMenuBar();
        JMenu menu=new JMenu("Create");
        JMenuItem cPa=new JMenuItem("Create pa");
        JMenuItem cPb=new JMenuItem("Create pb");
        cPa.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e) {
                isAddPa=true;
            }
        });
        cPb.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e) {
                isAddPa=false;
            }
        });
        bar.add(menu);
        menu.add(cPa);
        menu.add(cPb);
        setJMenuBar(bar);
        add(buttonPanel,BorderLayout.SOUTH);
        add(addTermPanel,BorderLayout.NORTH);
        add(new JScrollPane(show),BorderLayout.CENTER);
    }
    private void showTerm(Term t,boolean first){
        if(first){
            show.append(t.getCoef()+"x"+t.getExpn());
        }
        else show.append(" + "+t.getCoef()+"x"+t.getExpn());
    }
    private void showPolynomial(Polynomial p){
        LinkedList<Term> l=p.getLinkList();
        ListIterator<Term> it=l.listIterator();
        while(it.hasNext()){
            Term t=it.next();
            if(it.previousIndex()==0)show.append(""+t.getCoef()+"x"+t.getExpn()+" ");
            else show.append("+ "+t.getCoef()+"x"+t.getExpn()+" ");
        }
    }
    public static void main(String args[]){
        PolynomialTest frame=new PolynomialTest();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -