计算器第四版:C++,QT

2023-05-16

 核心算法和第二版一样:

头文件:calculate.h


#ifndef CALCULATE_H  

#define CALCULATE_H  

  

#include <QMainWindow>  

#include<QPushButton>  

#include<QLineEdit>  

#include<QHBoxLayout>  

#include<QVBoxLayout>  

#include<QGridLayout>  

#include<QString>  

#include<QStack>  

#include<QTime>  

  

//extern QStack<double>Data;  

//extern QStack<char>Symb;  

  

class calculate : public QMainWindow  

{  

    Q_OBJECT  

      

public:  

    calculate(QWidget *parent = 0);  

    ~calculate();  

   // static QStack<double>Data;  

   // static QStack<char>Symb;  

  

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;  

  

          //运算符8个,两个功能键  

          QPushButton *addButton;// '+'  

          QPushButton *subButton;// '-'  

          QPushButton *mulButton;// '*'  

          QPushButton *divButton;// '/ '  

  

          QPushButton *equButton;// '='  

          QPushButton *decButton;// '.'  

          QPushButton *lefButton;// '('  

          QPushButton *rigButton;// ')'  

  

          QPushButton *CEButton; //清除一个字符  

          QPushButton *ACButton; //全部清除  

  

  

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 buttonEquClicked();//等于号  

      void buttonDecClicked();//小数点  

  

      void buttonLefClicked();//左括号  

      void buttonRigClicked();//右括号  

  

      void buttonCEClicked();//CE  

      void buttonACClicked();//AC  

  

  

};  

  

#endif // CALCULATE_H  

  

源文件:calculate.cpp


#include "calculate.h"  

  

//QStack<double> Data;  

//QStack<char> Symb;  

  

double allocate(const char *S); //数和运算符分类  

QStack<char> check(char c,QStack<double>* Data, QStack<char> Symb);//运算符分类处理  

int  getPri(char c); //计算优先级  

QStack<char> calcu(QStack<double>* Data, QStack<char> Symb);//计算栈顶元素  

  

calculate::calculate(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(".");  

  

    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);  //在(0,0)位置设置一行三列的区域  

    H->setRowStretch(0,100);//设置行宽  

    H->addWidget(CEButton,0,3);  

    H->addWidget(ACButton,0,4);  

  

    H->addWidget(sevenButton,1,0);  

    H->addWidget(eightButton,1,1);  

    H->addWidget(nineButton,1,2);  

    H->addWidget(addButton,1,3);  

    H->addWidget(subButton,1,4);  

  

    H->addWidget(fourButton,2,0);  

    H->addWidget(fiveButton,2,1);  

    H->addWidget(sixButton,2,2);  

    H->addWidget(mulButton,2,3);  

    H->addWidget(divButton,2,4);  

  

    H->addWidget(oneButton,3,0);  

    H->addWidget(twoButton,3,1);  

    H->addWidget(threeButton,3,2);  

    H->addWidget(lefButton,3,3);  

    H->addWidget(rigButton,3,4);  

  

    H->addWidget(zeroButton,4,0);  

    H->addWidget(decButton,4,1,1,2);  

    H->addWidget(equButton,4,3,1,2);  

  

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

  

    //数字输入  

    connect(zeroButton,SIGNAL(clicked()),this,SLOT(buttonZeroClicked()));//信号与槽函数  

    connect(oneButton,SIGNAL(clicked()),this,SLOT(buttonOneClicked()));  

    connect(twoButton,SIGNAL(clicked()),this,SLOT(buttonTwoClicked()));  

    connect(threeButton,SIGNAL(clicked()),this,SLOT(buttonThreeClicked()));  

    connect(fourButton,SIGNAL(clicked()),this,SLOT(buttonFourClicked()));  

    connect(fiveButton,SIGNAL(clicked()),this,SLOT(buttonFiveClicked()));  

    connect(sixButton,SIGNAL(clicked()),this,SLOT(buttonSixClicked()));  

    connect(sevenButton,SIGNAL(clicked()),this,SLOT(buttonSevenClicked()));  

    connect(eightButton,SIGNAL(clicked()),this,SLOT(buttonEightClicked()));  

    connect(nineButton,SIGNAL(clicked()),this,SLOT(buttonNineClicked()));  

    //加减乘除  

    connect(addButton,SIGNAL(clicked()),this,SLOT(buttonAddClicked()));  

    connect(subButton,SIGNAL(clicked()),this,SLOT(buttonSubClicked()));  

    connect(mulButton,SIGNAL(clicked()),this,SLOT(buttonMulClicked()));  

    connect(divButton,SIGNAL(clicked()),this,SLOT(buttonDivClicked()));  

    connect(decButton,SIGNAL(clicked(bool)),this,SLOT(buttonDecClicked()));//点号  

  

    connect(lefButton,SIGNAL(clicked(bool)),this,SLOT(buttonLefClicked()));//左括号  

    connect(rigButton,SIGNAL(clicked(bool)),this,SLOT(buttonRigClicked()));//右括号  

  

    connect(CEButton,SIGNAL(clicked()),this,SLOT(buttonCEClicked())); //清除一个字符  

    connect(ACButton,SIGNAL(clicked()),this,SLOT(buttonACClicked()));//全部清除  

  

    connect(equButton,SIGNAL(clicked()),this,SLOT(buttonEquClicked())); //等于号*/  

  

}  

void calculate::buttonZeroClicked()  //以下是实现相应的槽函数  

{  

    if(input=="0")  

    input='0';  

    else input=input+'0';  

    inputLine->setText(input);  

}  

  

void calculate::buttonOneClicked()  

{  

    if(input=="0")  

    input='1';  

    else input=input+'1';  

    inputLine->setText(input);  

}  

  

void calculate::buttonTwoClicked()  

{  

    if(input=="0")  

    input='2';  

    else input=input+'2';  

    inputLine->setText(input);  

}  

  

void calculate::buttonThreeClicked()  

{  

    if(input=="0")  

    input='3';  

    else input=input+'3';  

    inputLine->setText(input);  

}  

  

void calculate::buttonFourClicked()  

{  

    if(input=="0")  

    input='4';  

    else input=input+'4';  

    inputLine->setText(input);  

}  

  

void calculate::buttonFiveClicked()  

{  

    if(input=="0")  

    input='5';  

    else input=input+'5';  

    inputLine->setText(input);  

}  

  

void calculate::buttonSixClicked()  

{  

    if(input=="0")  

    input='6';  

    else input=input+'6';  

    inputLine->setText(input);  

}  

  

void calculate::buttonSevenClicked()  

{  

    if(input=="0")  

    input='7';  

    else input=input+'7';  

    inputLine->setText(input);  

}  

  

void calculate::buttonEightClicked()  

{  

    if(input=="0")  

    input='8';  

    else input=input+'8';  

    inputLine->setText(input);  

}  

  

void calculate::buttonNineClicked()  

{  

    if(input=="0")  

    input='9';  

    else input=input+'9';  

    inputLine->setText(input);  

}  

  

void calculate::buttonAddClicked()  

{  

    if(input=="0")  

    input='+';  

    else input=input+'+';  

    inputLine->setText(input);  

}  

  

void calculate::buttonSubClicked()  

{  

    if(input=="0")  

    input='-';  

    else input=input+'-';  

    inputLine->setText(input);  

}  

  

void calculate::buttonMulClicked()  

{  

    if(input=="0")  

    input='*';  

    else input=input+'*';  

    inputLine->setText(input);  

}  

  

void calculate::buttonDivClicked()  

{  

    if(input=="0")  

    input='/';  

    else input=input+'/';  

    inputLine->setText(input);  

}  

  

void calculate::buttonDecClicked() //小数点  

{  

    if(input=="0")  

    input='.';  

    else input=input+'.';  

    inputLine->setText(input);  

}  

  

void calculate::buttonLefClicked()//左括号  

{  

    if(input=="0")  

    input='(';  

    else input=input+'(';  

    inputLine->setText(input);  

}  

  

void calculate::buttonRigClicked()//右括号  

{  

    if(input=="0")  

    input=')';  

    else input=input+')';  

    inputLine->setText(input);  

}  

  

void calculate::buttonCEClicked()  

{  

    input = input.left(input.length()-1); //减去一字符  

    inputLine->setText(input);  

}  

void calculate::buttonACClicked() //直接清空  

{  

    input='0';  

    inputLine->setText(input);  

}  

  

void calculate::buttonEquClicked()//等于号 ,输入等于号后开始运算,相当于原来的main  

{  

  std::string str=input.toStdString();  

  const char *S=str.c_str();  

  //QStack<double> Data;  

  //QStack<char> Symb;  

  double result;  

  QString change;  

  result=allocate(S); //数和运算符分类  

  change=QString::number(result,10,6);  

  //gcvt(result,10,change);  

  input=input+"="+change;  

  inputLine->setText(input);  

}  

  

double allocate(const char *num)  

{  

   QStack<double> Data;  

   QStack<char> Symb;  

    char   tnsarr[30]="0";//存放数字字符的临时字符串数组  

    int    tnsarr_i=0;//存放数字字符的临时字符串数组的的下标  

    int  i=0;  

  

    while(i<strlen(num))  

    {  

        char c=num[i];  

        if((c>='0'&&c<='9')||c=='.')//c是数字,放入tnsarr  

        {  

            tnsarr[tnsarr_i]=num[i];//分离出单个数字,字符串形式保存  

            tnsarr_i++;//临时数组中字符数量  

        }  

        else//c不是数字  

        {  

            if(c!='('&&num[i-1]!=')')//c不是左括号,且c之前不是右括号,防止转化两次,多出零  

            {  

  

                Data.push(atof(tnsarr));//数字存入数据栈  

                tnsarr_i=0;//分离数字重新计数  

                memset(tnsarr,'\0',sizeof(tnsarr));//清空临时数组  

            }  

            Symb=check(c,&Data,Symb);//c 是运算符,进行运算符分类处理  

        }  

        i++;  

    }  

    if(num[i-1]>='0'&&num[i-1]<='9'&&num[i]=='\0')//解决最后一个数字无法录入问题  

    {  

        Data.push(atof(tnsarr));//数字存入数据栈  

    }  

  

    if(i==strlen(num))//字符已经遍历到最后  

    {  

        while(!Symb.empty())//计算符栈不是空的,说明栈顶向下运算符优先级递减。这应该是个循环的过程,保证计算所有的数  

        {  

           Symb=calcu(&Data,Symb);//取出Data栈顶向下两个数据,和Symb中栈顶运算符计算  

        }  

    }  

    return Data.top();  

}  

//c不是数字,进行运算符分类处理  

QStack<char> check(char c,QStack<double>* Data,QStack<char> Symb)  

//void check(char c,QStack<double>& Data,QStack<char>& Symb)  

{  

    if(Symb.empty())//运算符栈为空  

    {  

        Symb.push(c);  

        return Symb;  

    }  

    if(c=='(')//c是左括号,直接放入运算栈  

        {  

            Symb.push(c);  

        }  

    else if(c==')')//c是右括号,则进行运算  

        {  

            if(Symb.top()=='(')  

            {  

                Symb.pop();  

            }  

            else  

            {  

            Symb=calcu(Data,Symb);//取出Data栈顶向下两个数据,和Symb中栈顶运算符计算  

            Symb=check(c,Data,Symb);//重新代入检测程序  

            }  

        }  

    else//c不是括号  

    {  

        char sym=Symb.top();  

        if(sym=='(')//当前栈顶运算sym符为‘(’  

        {  

            Symb.push(c);  

        }  

        else//当前栈顶运算符sym不是‘(’,不会是)括号,有括号不会存入Symb中  

        {  

            if(getPri(c)<=getPri(sym))//c的优先级小于等于Symb栈顶运算符sym  

            {  

                Symb=calcu(Data,Symb);//取出Data栈顶向下两个数据,和Symb中栈顶运算符计算  

                Symb=check(c,Data,Symb);//Symb 栈顶下移后,重新比较c和栈顶运算符  

            }  

            else//c的优先级大于当前运算符栈栈顶运算符sym  

            {  

                Symb.push(c);// 运算符c压入Sym栈顶  

            }  

        }  

    }  

    return Symb;  

}  

  

//获得符号的优先性  

int getPri(char c)  

{  

    switch(c)  

    {  

    case '+': return 0;    //如果是加减,返回0  

    case '-': return 0;  //如果是加减,返回0  

  

    case '*': return 1;   //如果是乘除,返回1  

    case '/': return 1;  //如果是乘除,返回1  

  

    default : break;  

     }  

}  

  

//计算Data栈顶两个元素  

QStack<char> calcu(QStack<double>* Data,QStack<char> Symb)  

//void calcu(QStack<double>& Data,QStack<char>& Symb)  

{  

    float op1=0,op2=0;  

  

    if(!Symb.empty())//非空  

    {  

        char c=Symb.pop();//取出运算符栈顶的运算符放入c//栈顶向下移一位  

  

        //取出数据栈栈顶元素和栈顶下一位,栈顶向下两位  

        op1=Data->pop();  

        op2=Data->pop();  

        //Data->top--;  

  

        switch(c)  

        {  

        case'+':Data->push(op2+op1);break;  

        case'-':Data->push(op2-op1);break;  

        case'*':Data->push(op2*op1);break;  

        case'/':Data->push(op2/op1);break;  

        }  

    }  

    return Symb;  

}  

  

  

  

  

calculate::~calculate()  

{  

      

}  

  

源文件:main.cpp


#include "calculate.h"  

#include <QApplication>  

  

int main(int argc, char *argv[])  

{  

    QApplication a(argc, argv);  

    calculate w;  

    w.show();  

      

    return a.exec();  

}  

  



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算器第四版:C++,QT 的相关文章

  • 2014年计算机求职总结--准备篇

    版权所有 xff0c 转载请注明出处 xff0c 谢谢 xff01 http blog csdn net walkinginthewind article details 13000431 找工作是一个长期准备的过程 xff0c 突击是没什
  • 2022智源大会议程公开 | 人工智能新基建论坛

    2022年北京智源大会召开在即 xff0c 5月31日至6月2日 xff0c 持续三天 xff0c 26场由各领域领军学者主导的专题论坛 大会将紧紧围绕这些当前学术领域迫切需要解决的问题 xff0c 以及产业落地过程中存在的诸多挑战 xff
  • 因特尔神经计算棒(NCS)+树莓派+yolo-v3实现object-detection

    因特尔神经计算棒 NCS 43 树莓派 43 yolo v3实现object detection 踩了好多坑啊 一言难尽 Step1 在树莓派上安装环境 首先安装openVINO工具包 xff08 最好不要在树莓派上装NCSDK 太坑了 x
  • prometheus监控k8s集群

    prometheus监控k8s集群 1 监控方式 node expoter部署在k8s节点收集当前节点资源 xff0c Prometheus用来分析处理收集汇总的数据 xff0c grafana用来进行图形展示 2 部署Prometheus
  • 耦合、解耦是什么?怎么做到解耦呢?

    一 耦合 耦合指的是两个类之间的联系的紧密程度 xff1b 强耦合 类之间存在着直接关系 弱耦合 xff1a 在两个类的中间加入一层 xff0c 将原来的直接关系变成间接关系 xff0c 使得两个类对中间层是强耦合 xff0c 两类之间变为
  • 圈复杂度检测

    1 下载链接 xff1a https github com terryyin lizard 2 使用 xff1a python lizard py 文件名 文件路径 3 显示 NLOC xff1a 代码行数 CCN xff1a 复杂度 to
  • 服务限流降级

    https segmentfault com a 1190000015967922 高并发的线上服务 xff0c 有时候面对突发流量 xff0c 比如流量突然激增 xff0c 服务扛不住了 xff0c 类似这种场景 xff0c 需要有一个防
  • gdb调试

    c 43 43 编译生成可执行文件 g 43 43 main cpp 1 进入gdb gdb main 2 运行 r 查看 l 断点 b line num 查看 p 参数 展示display 参数 继续 c 3 比如展示vector首地址
  • git 修改commit的名字与撤回提交

    当你不小心 xff0c 写错了提交的注视 信息 xff0c 该如何处理呢 理论上 xff0c SCM是不应该修改历史的信息的 xff0c 提交的注释也是 不过在git中 xff0c 其commit提供了一个 amend参数 xff0c 可以
  • SQLAlchemy 的 scoped_session

    SQLAlchemy 的 scoped session 是啥玩意 通常我们用 SQLAlchemy 写数据的时候要创建 Session 对象来维护数据库会话 xff0c 用完了再关掉 但是听说还有个叫scoped session的玩意 xf
  • python 的StringIO

    1 IO的含义 在计算机中 xff0c IO是Input Output的简写 xff0c 也就是输入和输出 由于程序和运行时数据是在内存中驻留 xff0c 由CPU这个超快的计算核心来执行 xff0c 涉及到数据交换的地方 xff0c 通常
  • python 的fcntl模块

    python 中给文件加锁 fcntl模块 import fcntl 打开一个文件 f 61 open 39 test 39 当前目录下test文件要先存在 xff0c 如果不存在会报错 对该文件加密 xff1a fcntl flock f
  • Jmeter添加MD5方法插件

    1 xff1a 下载 https jmeter plugins org install Install 2 xff1a jmeter plugins manager 1 3 jar放到 apache jmeter 5 0 lib ext目录
  • sql 语句 将查询结果中数字等标示转成汉字

    使用case 语句 将sex 字段进行转换 0 1 2 男 xff0c 女 xff0c 未知 SELECT u userid u username CASE u sex WHEN 0 THEN 39 女 39 WHEN 1 THEN 39
  • linux的more命令

    more命令 xff0c 功能类似 cat xff0c cat命令是整个文件的内容从上到下显示在屏幕上 more会以一页一页的显 示方便使用者逐页阅读 xff0c 而最基本的指令就是按空白键 xff08 space xff09 就往下一页
  • docker入门实例

    1 image文件 Docker 把应用程序及其依赖 xff0c 打包在 image 文件里面 只有通过这个文件 xff0c 才能生成 Docker 容器 image 文件可以看作是容器的模板 Docker 根据 image 文件生成容器的
  • vim批量替换&行首尾增加&删除列

    删除列 删除列的方法 xff1a 1 ctrl 43 v 这样会启动可视模式 xff0c 按 j k 可以发现它能够在一列上面选中字符 2 按下 G 这样可以从文本的第一行选中到最后一行 3 按下 x 就会把这一列删掉 行首尾替换 xff1
  • vim 支持 python

    https www jianshu com p 3e606e31da5f 前段时间刚玩linux时为了图个简单打算直接用vim来写python代码省得再下个软件 xff08 好吧 xff0c 其实是自己下了好多次都失败了 xff0c 一气之
  • 用户态和核心态的概念以及为什么要区别?以及两者之间的切换

    一 用户态和核心态的概念 用户态 xff1a 内核态与用户态是操作系统的两种运行级别 当程序运行在3级特权级上时 xff0c 就可以称之为运行在用户态 xff0c 因为这是最低特权级 xff0c 是普通的用户进程运行的特权级 xff0c 大

随机推荐

  • strstr(str1,str2)函数使用时注意事项

    可能有的人还没听过strstr函数 xff0c 个人认为这个一个很实用的函数 xff0c strstr str1 str2 函数是字符串处理函数之一 xff0c 位于头文件 string h 中 对于处理字符串的一些问题有很大的帮助 定义
  • Java This 的用法

    JAVA This的用法 先写一个要调用的类 都放在名为test的包下面 在这里插入代码片package test span class token keyword public span span class token keyword
  • 关于松耦合和紧耦合的理解

    松耦合系统通常是基于消息的系统 xff0c 此时客户端和远程服务并不知道对方是如何实现的 客户端和服务之间的通讯由消息的架构支配 只要消息符合协商的架构 xff0c 则客户端或服务的实现就可以根据需要进行更改 xff0c 而不必担心会破坏对
  • 第六篇 键盘中断与应用程序读取键盘缓冲区

    这篇博文主要介绍在X86下键盘的中断过程 xff0c 以及应用程序如何利用中断读取键盘缓冲区内容 一 撰写该篇博文的背景介绍 在我们全屏看视频时 xff0c 按下Esc键 xff0c 播放器还原或者最小化 xff1b 在利用其他软件的时候
  • 发现一个aruco在线生成器,可以在线生成aruco CharucoBoard GridBoard AprilTag 图片, 真香

    最近在研究 opencv 检测 aruco标记项目 xff0c 想弄点aruco标记码来测试 xff0c 发现网上很少在线生成aruco标记码的工具 xff0c 导致在做测试时候浪费了很多时间去搞这个码 xff0c 基本上大家都用 xff0
  • FreeRTOS基础六:中断管理1

    嵌入式实时系统需要对外界的某个事件做出及时的响应动作 例如串口外设收到了一帧数据后 xff0c 需要通知数据解析任务 xff0c 同时还要将数据帧传递给解析任务 xff0c 完成数据的处理 设计出一种好的策略来完成这个过程时需要考虑以下几个
  • FreeRTOS基础四:队列

    简介 FreeRTOS中的队列是一种用于实现 任务与任务 xff0c 任务与中断 以及 中断与任务 之间的通信 机制 此外 xff0c 任务从队列读数据或者写入数据到队列时 xff0c 都可能被阻塞 这个特性使得任务可以被设计成基于事件驱动
  • FreeRTOS基础二:堆内存管理之heap_4方案

    背景知识 从FreeRTOS V9 0 0内核版本开始 xff0c 内核对象占用的内存可以在编译期间静态分配 xff0c 也可以在运行期间动态分配 内核对象如 xff1a tasks xff08 任务 xff09 xff0c queues
  • MQ与Webservice的区别

    Webservice 和MQ MessageQueue 都是解决跨平台通信的常用手段 xff0c 两者有哪些区别呢 xff1f 个人认为最本质的区别在于 Webservice近乎实时通信 xff0c 而MQ却通常是延时通信 什么意思呢 xf
  • uORB通信机制和添加自己的topics学习笔记

    本文参考 Ubuntu16 04下PX4环境快速搭建及uORB通信机制进行操作 结合网上一篇uROB的介绍PX4 Pixhawk uORB深入理解和应用进行深入的了解 1 简介 uORB Micro Object Request Broke
  • 看到一篇很好的介绍磁力计原理的博客

    详细内容戳这里http blog sina com cn s blog 402c071e0102v8ig html
  • QT工程转换为VS2013项目文件

    xff08 win7系统 xff09 1 点击开始 xff0c 输入cmd xff0c 打开cmd 2 输入cd c apm点击回车键 注 xff1a apm是我的qt的工程文件夹 xff0c 最好放在c盘 xff0c 其他盘转换都不成功
  • C语言:函数返回字符串的四种方法

    转载连接 xff1a 1 https blog csdn net turkeyzhou article details 6104135 comments 2 https www cnblogs com qingergege p 649668
  • C语言:字符串中查找指定字符——strchr()和strrchr()

    参考文章连接 xff1a 1 http c biancheng net cpp html 161 html 2 http c biancheng net cpp html 172 html 1 头文件 xff1a include lt st
  • C语言:整型、浮点型和字符串间转换

    参考文章链接 xff1a 1 http c biancheng net cpp html 1573 html 2 http c biancheng net cpp html 1574 html 1 整型 浮点型 gt 字符串 整数转换为字符
  • 学习贵在坚持!

    最近学习颇为不顺 xff0c 周围都是一些不利的消息 xff0c 有些心灰意冷 可是这不是与我写本文的初衷相悖了么 xff1f 看到了比自己优秀的人干出来辉煌的事情 xff0c 写出来文字优美的文章 xff0c 自己就有相形见绌的自卑感 可
  • Qt中 QString 和int, char等的“相互”转换

    原文链接 xff1a https blog csdn net ei nino article details 7297791 Qt中 int float double转换为QString 有两种方法 1 使用QString number 如
  • 计算器第二版:C语言,VC++6.0

    使用栈实现 xff0c 前缀表达式变后缀表达式的原理 xff0c 但是没有转换 xff0c 是边转换边实现 xff1a include lt stdio h gt include lt stdlib h gt include lt coni
  • 计算器第三版:C语言,递归,VC++6.0

    参考文章 xff1a https blog csdn net u011692041 article details 49796343 https blog csdn net u011692041 article details 497991
  • 计算器第四版:C++,QT

    核心算法和第二版一样 xff1a 头文件 xff1a calculate h ifndef CALCULATE H define CALCULATE H include lt QMainWindow gt include lt QPushB