QT计算器 之 大数运算

1、简介:
计算器是我们生活中很常见的东西,它可以由多种语言多种方式来实现,今天我想讲的是基于C++语言,由QT实现的可以计算大数的简单计算器。

2、作品演示:
(1)简单四则运算
(2)大数运算

3、重点原理讲解
(1)四则运算如何实现
(2)大数的加减乘除

4、代码主体框架

1个主函数;
两个类:
一个calculator类,实现了对界面的布局,其实这个布局很简单,就设置了一些按钮以及一个显示框。

类的声明:

class calculator : public QMainWindow
{
    Q_OBJECT

public:
    calculator(QWidget *parent = 0);
    ~calculator();

private:
      QLineEdit *inputLine;//显示框
      QString input="0"; //输入框

      //0-9按钮
      QPushButton *zeroButton;
      QPushButton *oneButton;
      QPushButton *twoButton;
      QPushButton *threeButton;
      QPushButton *fourButton;
      QPushButton *fiveButton;
      QPushButton *sixButton;
      QPushButton *sevenButton;
      QPushButton *eightButton;
      QPushButton *nineButton;


      QPushButton *addButton;
      QPushButton *subButton;
      QPushButton *divButton;
      QPushButton *mulButton;
      QPushButton *equButton;
      QPushButton *timButton; //Time
      QPushButton *decButton;
      QPushButton *botButton;

      QPushButton *CEButton;
      QPushButton *ACButton;
      QPushButton *lefButton;
      QPushButton *rigButton;

private slots:

      void buttonZeroClicked();
      void buttonOneClicked();
      void buttonTwoClicked();
      void buttonThreeClicked();
      void buttonFourClicked();
      void buttonFiveClicked();
      void buttonSixClicked();
      void buttonSevenClicked();
      void buttonEightClicked();
      void buttonNineClicked();


      void buttonAddClicked();//+
      void buttonSubClicked();//-
      void buttonMulClicked();//乘
      void buttonDivClicked();//除
      void buttonTimClicked(); //时间
      void buttonDecClicked();//小数点
      void buttonBotClicked(); //加减号

      void buttonEquClicked();//等于号

      void buttonLefClicked();//左括号
      void buttonRigClicked();//右括号

      void buttonCEClicked();//CE
      void buttonACClicked();//AC
};

界面布局:

calculator::calculator(QWidget *parent) : QMainWindow(parent)
{


       QWidget *widget=new QWidget; //构建一个QWidget布局将设置的布局添加进这个QWidget
       this->setCentralWidget(widget);

       inputLine=new QLineEdit;
       inputLine->setText(input);

       zeroButton=new QPushButton("0");
       oneButton=new QPushButton("1");
       twoButton=new QPushButton("2");
       threeButton=new QPushButton("3");
       fourButton=new QPushButton("4");
       fiveButton=new QPushButton("5");
       sixButton=new QPushButton("6");
       sevenButton=new QPushButton("7");
       eightButton=new QPushButton("8");
       nineButton=new QPushButton("9");
       decButton=new QPushButton(".");

       botButton=new QPushButton("±");
       timButton=new QPushButton("Time");
       addButton=new QPushButton("+");
       subButton=new QPushButton("-");
       mulButton=new QPushButton("*");
       divButton=new QPushButton("/");
       equButton=new QPushButton("=");

       lefButton=new QPushButton("(");
       rigButton=new QPushButton(")");
       CEButton=new QPushButton("CE");
       ACButton=new QPushButton("AC");

       QGridLayout *H=new QGridLayout(this); //声明了一个网格布局

       inputLine->setFixedHeight(50); //调整第一行大小
       CEButton->setFixedHeight(50);
       ACButton->setFixedHeight(50);

       H->addWidget(inputLine,0,0,1,3);
       H->setRowStretch(0,100);
       H->addWidget(CEButton,0,3);
       H->addWidget(ACButton,0,4);

       H->addWidget(oneButton,1,0);
       H->addWidget(twoButton,1,1);
       H->addWidget(threeButton,1,2);
       H->addWidget(botButton,1,3);
       H->addWidget(timButton,1,4);

       H->addWidget(fourButton,2,0);
       H->addWidget(fiveButton,2,1);
       H->addWidget(sixButton,2,2);
       H->addWidget(addButton,2,3);
       H->addWidget(subButton,2,4);

       H->addWidget(sevenButton,3,0);
       H->addWidget(eightButton,3,1);
       H->addWidget(nineButton,3,2);
       H->addWidget(mulButton,3,3);
       H->addWidget(divButton,3,4);

       H->addWidget(zeroButton,4,0);
       H->addWidget(decButton,4,1);
       H->addWidget(lefButton,4,2);
       H->addWidget(rigButton,4,3);
       H->addWidget(equButton,4,4);

       widget->setLayout(H); //将布局显示出来

       connect(zeroButton,SIGNAL(clicked()),this,SLOT(buttonZeroClicked()));//信号与槽函数
       connect(oneBut
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值