QT多项式计算器UI

最近做了一个多项式计算器

QT-C++实现

#对了,不是很清楚,UI 是不是就是属于前端,所以就把这篇文章放到了前端,如果不是,还望各位在评论指出,多谢!

如图:


内容介绍;

输入输出功能:

p1表示左边这个多项式

p2表示右边这个多项式

output用于输出结果

中间节点用于输入每一个多项式的节点 //说到这想必大家就看出来我是用链表做的了

基本运算功能:

加法

减法

乘法

特别点功能:

算值功能:用于将代入左边那个框的值到p1之中,算出整个值来,并输出。求F(x)

求导功能:将p1求导,后并输出。

交互方式:

做完添加节点之后,可以点击“确定完成输入”按钮,完成对于某一多项式的输入。(先输入的是p1,完成之后就是输入p2了,反之亦成立)

完成运算之后(特指加减乘),按等号按钮完成输出。


接下来——QT代码


mainwindow函数:

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include "fun.h"

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
private:
    Ui::MainWindow *ui;
    polynome p1,p2;
    polynome ans;
    bool left = true;
    double r;
    int e;
    double x;
private slots:
    void on_btn_add_clicked();
    void on_Ratio_editingFinished();
    void on_Expontion_editingFinished();
    void on_btnNode_clicked();
    void on_finishInputNode_clicked();
    void on_btn_minus_clicked();
    void on_btn_mutiply_clicked();
    void on_btn_derive_clicked();
    void on_btn_GetNum_clicked();
    void on_btn_equal_clicked();
    void on_GetNum_input_X_editingFinished();
    void on_pushButton_clicked();
};

#endif // MAINWINDOW_H


mainwindow.cpp


#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    x = 0;
    e = 0;
    r = 0;
    left = true;
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_Ratio_editingFinished()
{
    r = ui->Ratio->text().toDouble();
}

void MainWindow::on_Expontion_editingFinished()
{
    e = ui->Expontion->text().toInt();
}

void MainWindow::on_btnNode_clicked()
{
    if (left){
        r = ui->Ratio->text().toDouble();
        e = ui->Expontion->text().toInt();
        ui->Ratio->setValue(0);
        ui->Expontion->setValue(0);
        p1.insert(r,e,0);
    } else {
        r = ui->Ratio->text().toDouble();
        e = ui->Expontion->text().toInt();
        ui->Ratio->setValue(0);
        ui->Expontion->setValue(0);
        p2.insert(r,e,0);
    }
}

void MainWindow::on_finishInputNode_clicked()
{
    if (left) {
        left = false;
        p1.sort();
        ui->p1_lineEdit->clear();
        ui->p1_lineEdit->setText(p1.put());
    } else {
        left = true;
        p2.sort();
        ui->p2_lineEdit->clear();
        ui->p2_lineEdit->setText(p2.put());
    }
}

void MainWindow::on_btn_add_clicked()
{
    ans = p1+p2;
}

void MainWindow::on_btn_minus_clicked()
{
    ans = p1-p2;
}

void MainWindow::on_btn_mutiply_clicked()
{
    ans = p1*p2;
}

void MainWindow::on_btn_derive_clicked()
{
    ans = p1.dericative();
    //并且输出
    ui->ans_lineEdit->clear();
    ui->ans_lineEdit->setText(ans.put());
}

void MainWindow::on_btn_GetNum_clicked()
{
    double save_the_ans = ui->GetNum_input_X->text().toDouble();

    double save_the_ans_the_ans = p1.getNum(save_the_ans);
    ui->ans_lineEdit->clear();
    ui->ans_lineEdit->setText(QString::number(save_the_ans_the_ans));
}

void MainWindow::on_btn_equal_clicked()
{
    ui->ans_lineEdit->clear();
    ui->ans_lineEdit->setText(ans.put());
}

void MainWindow::on_GetNum_input_X_editingFinished()
{
    x = ui->GetNum_input_X->text().toDouble();
}

void MainWindow::on_pushButton_clicked()
{
    e = 0;
    r = 0;
    x = 0;
    p1.clear();
    p2.clear();
    ui->p1_lineEdit->clear();
    ui->p2_lineEdit->clear();
    ui->ans_lineEdit->clear();
}

ui代码:

UI 代码就不放了很长的相信大家也都可以自己做出来


这篇博文好像有点长了,那我的那个多项式实现也就不放在这了。不过,我还是很愿意分享我写的这个代码,要是有人想要,可以在评论区回复一下“想要”字样。我看到之后就会上传。

此外欢迎大家共同探讨,共同学习。


  • 1
    点赞
  • 2
    收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页
评论 2

打赏作者

肥宅_小清新

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值