#ifndef MAINWINDOW_H#define MAINWINDOW_H
#include<QMainWindow>
#include<QDialog>
#include<QPushButton>
#include<QLineEdit>
#include<QString>
namespace Ui {
class MainWindow;}
class MainWindow : public QMainWindow{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
protected:
QPushButton* pushButton;
QPushButton* pushButton_2;
QPushButton* pushButton_3;
QPushButton* pushButton_4;
QPushButton* pushButton_5;
QPushButton* pushButton_6;
QPushButton* pushButton_7;
QPushButton* pushButton_8;
QPushButton* pushButton_9;
QPushButton* pushButton_10;
QPushButton* pushButton_11;
QPushButton* pushButton_12;
QPushButton* pushButton_13;
QPushButton* pushButton_14;
QPushButton* pushButton_15;
QPushButton* pushButton_16;
QLineEdit* lineEdit;
float num1,num2,result;//数1、数2、结果
QString S;
char sign;
int mark;//点击过运算符号,mark=1,默认是0
private slots:
void on_pushButton_clicked();
void on_pushButton_2_clicked();
void on_pushButton_3_clicked();
void on_pushButton_4_clicked();
void on_pushButton_5_clicked();
void on_pushButton_6_clicked();
void on_pushButton_7_clicked();
void on_pushButton_8_clicked();
void on_pushButton_9_clicked();
void on_pushButton_10_clicked();
void on_pushButton_11_clicked();
void on_pushButton_12_clicked();
void on_pushButton_13_clicked();
void on_pushButton_14_clicked();
void on_pushButton_15_clicked();
void on_pushButton_16_clicked();
private: Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
#include "mainwindow.h"#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){
ui->setupUi(this);
//初始化变量
num1=0.0;
num2=0.0;
result=0.0;
S="";
mark=0;
//初始化部件对象指针
pushButton=new QPushButton("1");
pushButton_2=new QPushButton("2");
pushButton_3=new QPushButton("3");
pushButton_4=new QPushButton("4");
pushButton_5=new QPushButton("5");
pushButton_6=new QPushButton("6");
pushButton_7=new QPushButton("7");
pushButton_8=new QPushButton("8");
pushButton_9=new QPushButton("9");
pushButton_10=new QPushButton("0");
pushButton_11=new QPushButton("+");
pushButton_12=new QPushButton("-");
pushButton_13=new QPushButton("*");
pushButton_14=new QPushButton("/");
pushButton_15=new QPushButton("=");
pushButton_16=new QPushButton("C");
lineEdit=new QLineEdit("S");
lineEdit->setText(S);
//实现连接函数
connect(pushButton,SIGNAL(clicked()),this,SLOT(on_pushButton_clicked())); connect(pushButton_2,SIGNAL(clicked()),this,SLOT(on_pushButton_2_clicked())); connect(pushButton_3,SIGNAL(clicked()),this,SLOT(on_pushButton_3_clicked())); connect(pushButton_4,SIGNAL(clicked()),this,SLOT(on_pushButton_4_clicked())); connect(pushButton_5,SIGNAL(clicked()),this,SLOT(on_pushButton_5_clicked())); connect(pushButton_6,SIGNAL(clicked()),this,SLOT(on_pushButton_6_clicked())); connect(pushButton_7,SIGNAL(clicked()),this,SLOT(on_pushButton_7_clicked())); connect(pushButton_8,SIGNAL(clicked()),this,SLOT(on_pushButton_8_clicked())); connect(pushButton_9,SIGNAL(clicked()),this,SLOT(on_pushButton_9_clicked())); connect(pushButton_10,SIGNAL(clicked()),this,SLOT(on_pushButton_10_clicked())); connect(pushButton_11,SIGNAL(clicked()),this,SLOT(on_pushButton_11_clicked())); connect(pushButton_12,SIGNAL(clicked()),this,SLOT(on_pushButton_12_clicked())); connect(pushButton_13,SIGNAL(clicked()),this,SLOT(on_pushButton_13_clicked())); connect(pushButton_14,SIGNAL(clicked()),this,SLOT(on_pushButton_14_clicked())); connect(pushButton_15,SIGNAL(clicked()),this,SLOT(on_pushButton_15_clicked())); connect(pushButton_16,SIGNAL(clicked()),this,SLOT(on_pushButton_16_clicked()));}
MainWindow::~MainWindow(){
delete ui;
}
void MainWindow::on_pushButton_clicked(){
S+="1"; lineEdit->setText(S); if(mark==0) num1=num1*10+1; else num2=num2*10+1;}
void MainWindow::on_pushButton_2_clicked(){
S+="2"; lineEdit->setText(S); if(mark==0) num1=num1*10+2; else num2=num2*10+2;}
void MainWindow::on_pushButton_3_clicked(){
S+="3"; lineEdit->setText(S); if(mark==0) num1=num1*10+3; else num2=num2*10+3;}
void MainWindow::on_pushButton_4_clicked(){
S+="4"; lineEdit->setText(S); if(mark==0) num1=num1*10+4; else num2=num2*10+4;}
void MainWindow::on_pushButton_5_clicked(){
S+="5"; lineEdit->setText(S); if(mark==0) num1=num1*10+5; else num2=num2*10+5;}
void MainWindow::on_pushButton_6_clicked(){
S+="6"; lineEdit->setText(S); if(mark==0) num1=num1*10+6; else num2=num2*10+6;}
void MainWindow::on_pushButton_7_clicked(){
S+="7"; lineEdit->setText(S); if(mark==0) num1=num1*10+7; else num2=num2*10+7;}
void MainWindow::on_pushButton_8_clicked(){
S+="8"; lineEdit->setText(S); if(mark==0) num1=num1*10+8; else num2=num2*10+8;}
void MainWindow::on_pushButton_9_clicked(){
S+="9"; lineEdit->setText(S); if(mark==0) num1=num1*10+9; else num2=num2*10+9;}
void MainWindow::on_pushButton_10_clicked(){
S+="0"; lineEdit->setText(S); if(mark==0) num1=num1*10; else num2=num2*10;}
void MainWindow::on_pushButton_11_clicked(){ S+="+"; lineEdit->setText(S); sign='+'; mark=1;}
void MainWindow::on_pushButton_12_clicked(){ S+="-"; lineEdit->setText(S); sign='-'; mark=1;}
void MainWindow::on_pushButton_13_clicked(){ S+="*"; lineEdit->setText(S); sign='*'; mark=1;}
void MainWindow::on_pushButton_14_clicked(){ S+="/"; lineEdit->setText(S); sign='/'; mark=1;}
void MainWindow::on_pushButton_15_clicked(){
S+="=";
switch (sign) {
case '+': result=num1+num2; break;
case '-': result=num1-num2; break;
case '*': result=num1*num2; break;
case '/': result=num1/num2; break;
default: break; }
S+=QString("%1").arg(result);//float转QString
lineEdit->setText(S);}
void MainWindow::on_pushButton_16_clicked(){
S="";
lineEdit->setText(S);
num1=0; num2=0; result=0; mark=0;}
#include<QMainWindow>
#include<QDialog>
#include<QPushButton>
#include<QLineEdit>
#include<QString>
namespace Ui {
class MainWindow;}
class MainWindow : public QMainWindow{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
protected:
QPushButton* pushButton;
QPushButton* pushButton_2;
QPushButton* pushButton_3;
QPushButton* pushButton_4;
QPushButton* pushButton_5;
QPushButton* pushButton_6;
QPushButton* pushButton_7;
QPushButton* pushButton_8;
QPushButton* pushButton_9;
QPushButton* pushButton_10;
QPushButton* pushButton_11;
QPushButton* pushButton_12;
QPushButton* pushButton_13;
QPushButton* pushButton_14;
QPushButton* pushButton_15;
QPushButton* pushButton_16;
QLineEdit* lineEdit;
float num1,num2,result;//数1、数2、结果
QString S;
char sign;
int mark;//点击过运算符号,mark=1,默认是0
private slots:
void on_pushButton_clicked();
void on_pushButton_2_clicked();
void on_pushButton_3_clicked();
void on_pushButton_4_clicked();
void on_pushButton_5_clicked();
void on_pushButton_6_clicked();
void on_pushButton_7_clicked();
void on_pushButton_8_clicked();
void on_pushButton_9_clicked();
void on_pushButton_10_clicked();
void on_pushButton_11_clicked();
void on_pushButton_12_clicked();
void on_pushButton_13_clicked();
void on_pushButton_14_clicked();
void on_pushButton_15_clicked();
void on_pushButton_16_clicked();
private: Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
#include "mainwindow.h"#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){
ui->setupUi(this);
//初始化变量
num1=0.0;
num2=0.0;
result=0.0;
S="";
mark=0;
//初始化部件对象指针
pushButton=new QPushButton("1");
pushButton_2=new QPushButton("2");
pushButton_3=new QPushButton("3");
pushButton_4=new QPushButton("4");
pushButton_5=new QPushButton("5");
pushButton_6=new QPushButton("6");
pushButton_7=new QPushButton("7");
pushButton_8=new QPushButton("8");
pushButton_9=new QPushButton("9");
pushButton_10=new QPushButton("0");
pushButton_11=new QPushButton("+");
pushButton_12=new QPushButton("-");
pushButton_13=new QPushButton("*");
pushButton_14=new QPushButton("/");
pushButton_15=new QPushButton("=");
pushButton_16=new QPushButton("C");
lineEdit=new QLineEdit("S");
lineEdit->setText(S);
//实现连接函数
connect(pushButton,SIGNAL(clicked()),this,SLOT(on_pushButton_clicked())); connect(pushButton_2,SIGNAL(clicked()),this,SLOT(on_pushButton_2_clicked())); connect(pushButton_3,SIGNAL(clicked()),this,SLOT(on_pushButton_3_clicked())); connect(pushButton_4,SIGNAL(clicked()),this,SLOT(on_pushButton_4_clicked())); connect(pushButton_5,SIGNAL(clicked()),this,SLOT(on_pushButton_5_clicked())); connect(pushButton_6,SIGNAL(clicked()),this,SLOT(on_pushButton_6_clicked())); connect(pushButton_7,SIGNAL(clicked()),this,SLOT(on_pushButton_7_clicked())); connect(pushButton_8,SIGNAL(clicked()),this,SLOT(on_pushButton_8_clicked())); connect(pushButton_9,SIGNAL(clicked()),this,SLOT(on_pushButton_9_clicked())); connect(pushButton_10,SIGNAL(clicked()),this,SLOT(on_pushButton_10_clicked())); connect(pushButton_11,SIGNAL(clicked()),this,SLOT(on_pushButton_11_clicked())); connect(pushButton_12,SIGNAL(clicked()),this,SLOT(on_pushButton_12_clicked())); connect(pushButton_13,SIGNAL(clicked()),this,SLOT(on_pushButton_13_clicked())); connect(pushButton_14,SIGNAL(clicked()),this,SLOT(on_pushButton_14_clicked())); connect(pushButton_15,SIGNAL(clicked()),this,SLOT(on_pushButton_15_clicked())); connect(pushButton_16,SIGNAL(clicked()),this,SLOT(on_pushButton_16_clicked()));}
MainWindow::~MainWindow(){
delete ui;
}
void MainWindow::on_pushButton_clicked(){
S+="1"; lineEdit->setText(S); if(mark==0) num1=num1*10+1; else num2=num2*10+1;}
void MainWindow::on_pushButton_2_clicked(){
S+="2"; lineEdit->setText(S); if(mark==0) num1=num1*10+2; else num2=num2*10+2;}
void MainWindow::on_pushButton_3_clicked(){
S+="3"; lineEdit->setText(S); if(mark==0) num1=num1*10+3; else num2=num2*10+3;}
void MainWindow::on_pushButton_4_clicked(){
S+="4"; lineEdit->setText(S); if(mark==0) num1=num1*10+4; else num2=num2*10+4;}
void MainWindow::on_pushButton_5_clicked(){
S+="5"; lineEdit->setText(S); if(mark==0) num1=num1*10+5; else num2=num2*10+5;}
void MainWindow::on_pushButton_6_clicked(){
S+="6"; lineEdit->setText(S); if(mark==0) num1=num1*10+6; else num2=num2*10+6;}
void MainWindow::on_pushButton_7_clicked(){
S+="7"; lineEdit->setText(S); if(mark==0) num1=num1*10+7; else num2=num2*10+7;}
void MainWindow::on_pushButton_8_clicked(){
S+="8"; lineEdit->setText(S); if(mark==0) num1=num1*10+8; else num2=num2*10+8;}
void MainWindow::on_pushButton_9_clicked(){
S+="9"; lineEdit->setText(S); if(mark==0) num1=num1*10+9; else num2=num2*10+9;}
void MainWindow::on_pushButton_10_clicked(){
S+="0"; lineEdit->setText(S); if(mark==0) num1=num1*10; else num2=num2*10;}
void MainWindow::on_pushButton_11_clicked(){ S+="+"; lineEdit->setText(S); sign='+'; mark=1;}
void MainWindow::on_pushButton_12_clicked(){ S+="-"; lineEdit->setText(S); sign='-'; mark=1;}
void MainWindow::on_pushButton_13_clicked(){ S+="*"; lineEdit->setText(S); sign='*'; mark=1;}
void MainWindow::on_pushButton_14_clicked(){ S+="/"; lineEdit->setText(S); sign='/'; mark=1;}
void MainWindow::on_pushButton_15_clicked(){
S+="=";
switch (sign) {
case '+': result=num1+num2; break;
case '-': result=num1-num2; break;
case '*': result=num1*num2; break;
case '/': result=num1/num2; break;
default: break; }
S+=QString("%1").arg(result);//float转QString
lineEdit->setText(S);}
void MainWindow::on_pushButton_16_clicked(){
S="";
lineEdit->setText(S);
num1=0; num2=0; result=0; mark=0;}