Qt实现简易计算机

这篇具有很好参考价值的文章主要介绍了Qt实现简易计算机。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Qt实现简易计算机

 这里我是用的qt图形界面直接创建按键转接槽函数,大家可以也可以使用代码创建界面,有时间的可以试试。

这是.h文件

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();

private slots:
    void on_close_clicked();

    void on_Button_add_clicked();

    void on_Button_sub_clicked();

    void on_Button_mul_clicked();

    void on_Button_dev_clicked();

    void on_Button_prrcent_clicked();

    void on_Button_1_clicked();

    void on_Button_2_clicked();

    void on_Button_3_clicked();

    void on_Button_4_clicked();

    void on_Button_5_clicked();

    void on_Button_6_clicked();

    void on_Button_7_clicked();

    void on_Button_8_clicked();

    void on_Button_9_clicked();

    void on_Button_0_clicked();

    void on_Button_d_clicked();

    void on_Button_equal_clicked();

    void on_Button_clear_clicked();

    void on_Button_delete_clicked();

private:
    Ui::Widget *ui;
    QString op1;
    QString op2;
    int flag;
};

#endif // WIDGET_H

.cpp文件

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    op1 = "";
    op2 = "";
    flag = 0;//设置标志位简化后面的操作
}

Widget::~Widget()
{
    delete ui;
}
void Widget::on_close_clicked()//退出计算机
{
    this->close();
}

void Widget::on_Button_add_clicked()
{
    flag = 1;
}

void Widget::on_Button_sub_clicked()
{
    flag = 2;
}

void Widget::on_Button_mul_clicked()
{
    flag = 3;
}

void Widget::on_Button_dev_clicked()
{
    flag = 4;
}


void Widget::on_Button_prrcent_clicked()
{
    flag = 5;
}



void Widget::on_Button_1_clicked()
{
    if(flag == 0)
    {
        op1 = "";
        op1 = op1 + "1";
        ui->textEdit->setText(op1);
    }
    else
    {
        op2 = op2 + "1";
        ui->textEdit->setText(op2);
    }
}

void Widget::on_Button_2_clicked()
{
    if(flag == 0)
    {
        op1 = "";
        op1 = op1 + "2";
        ui->textEdit->setText(op1);
    }
    else
    {
        op2 = op2 + "2";
        ui->textEdit->setText(op2);
    }
}

void Widget::on_Button_3_clicked()
{
    if(flag == 0)
    {
        op1 = "";
        op1 = op1 + "3";
        ui->textEdit->setText(op1);
    }
    else
    {
        op1 = "";
        op2 = op2 + "3";
        ui->textEdit->setText(op2);
    }
}

void Widget::on_Button_4_clicked()
{
    if(flag == 0)
    {
        op1 = "";
        op1 = op1 + "4";
        ui->textEdit->setText(op1);
    }
    else
    {
        op2 = op2 + "4";
        ui->textEdit->setText(op2);
    }
}


void Widget::on_Button_5_clicked()
{
    if(flag == 0)
    {
        op1 = "";
        op1 = op1 + "5";
        ui->textEdit->setText(op1);
    }
    else
    {
        op2 = op2 + "5";
        ui->textEdit->setText(op2);
    }
}

void Widget::on_Button_6_clicked()
{
    if(flag == 0)
    {
        op1 = "";
        op1 = op1 + "6";
        ui->textEdit->setText(op1);
    }
    else
    {
        op2 = op2 + "6";
        ui->textEdit->setText(op2);
    }
}


void Widget::on_Button_7_clicked()
{
    if(flag == 0)
    {
        op1 = "";
        op1 = op1 + "7";
        ui->textEdit->setText(op1);
    }
    else
    {
        op2 = op2 + "7";
        ui->textEdit->setText(op2);
    }
}

void Widget::on_Button_8_clicked()
{
    if(flag == 0)
    {
        op1 = "";
        op1 = op1 + "8";
        ui->textEdit->setText(op1);
    }
    else
    {
        op2 = op2 + "8";
        ui->textEdit->setText(op2);
    }
}

void Widget::on_Button_9_clicked()
{
    if(flag == 0)
    {
        op1 = "";
        op1 = op1 + "9";
        ui->textEdit->setText(op1);
    }
    else
    {
        op2 = op2 + "9";
        ui->textEdit->setText(op2);
    }
}

void Widget::on_Button_0_clicked()
{
    if(flag == 0)
    {
        op1 = "";
        op1 = op1 + "0";
        ui->textEdit->setText(op1);
    }
    else
    {
        op1 = "";
        op2 = op2 + "0";
        ui->textEdit->setText(op2);
    }
}


void Widget::on_Button_d_clicked()//小数点,此处逻辑上没有完全完善,大家可以自行完善
{

    if(flag == 0)
    {
        if(op1 == "")
            return ;
        op1 = op1 + ".";
        ui->textEdit->setText(op1);
    }
    else
    {
        if(op2 == "")
            return ;
        op2 = op2 + ".";
        ui->textEdit->setText(op2);
    }
}

void Widget::on_Button_equal_clicked()// =
{
    float result;
    float number1;
    float number2;
    number1 = op1.toFloat();
    number2 = op2.toFloat();
    if(flag == 1)
    {
        result = number1 + number2;
    }
    if(flag == 2)
    {
        result = number1 - number2;
    }
    if(flag == 3)
    {
        result = number1 * number2;
    }
    if(flag == 4)
    {
        result = number1 / number2;
    }
    if(flag == 5)
    {
        result = number1 / number2; // % 百分之多少还没实现,大家可以根据直接逻辑去实现,我就偷懒了
    }
    QString str;
    str = str.number(result);
    ui->textEdit->setText(str);
    flag = 0;
    op1 = QString::number(result);  //数字转换成字符串后继续运行
    op2 = "";
}


void Widget::on_Button_clear_clicked()//清空
{
    ui->textEdit->setText("");
    flag = 0;
    op1 = "";
    op2 = "";
}

void Widget::on_Button_delete_clicked()//删除一位
{
    if(flag == 0)
    {
        op1.chop(1);//剪切掉最后一位
        ui->textEdit->setText(op1);
    }
    else
    {
        op2.chop(1);
        ui->textEdit->setText(op2);
    }

}

有些许逻辑上没有实现,大家可根据自己需要完善文章来源地址https://www.toymoban.com/news/detail-506395.html

到了这里,关于Qt实现简易计算机的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 您的计算机已被.makop勒索病毒感染?恢复您的数据的方法在这里!

    引言: 近年来,网络犯罪日益猖獗,各种恶意软件不断涌现,其中一种备受关注的就是勒索病毒。 .Makop 勒索病毒(也被称为 Makop Ransomware )是其中的一种,它以其恶意加密用户文件并勒索赎金的手法,给全球范围内的个人和组织带来了巨大的威胁。 如果您正在经历数据恢复

    2024年02月10日
    浏览(36)
  • 您的计算机已被[datastore@cyberfear.com].mkp勒索病毒感染?恢复您的数据的方法在这里!

    导言: 在数字化时代,网络安全问题愈发严峻,而[datastore@cyberfear.com].mkp [henderson@cock.li].mkp [myers@airmail.cc].mkp勒索病毒正是其中一个颇具威胁的恶意软件。本章将深入剖析[datastore@cyberfear.com].mkp [henderson@cock.li].mkp [myers@airmail.cc].mkp 勒索病毒的传播途径、攻击手段以及最新变种的

    2024年02月01日
    浏览(44)
  • 基于AT89C51单片机的简易计算机设计

    点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87715642?spm=1001.2014.3001.5503 源码获取 主要内容: 本设计是以单片机AT89C51为核心的简易计算器设计,要通过芯片AT89C51实现计算器程序运行来完成加、减、乘和除的简单计算功能。 基本要求: 1、采

    2024年02月08日
    浏览(54)
  • 您的计算机已被[new_day@torguard.tg].faust 勒索病毒感染?恢复您的数据的方法在这里!

    导言: 随着科技的迅速发展,网络空间也变得越来越危险,而勒索病毒则是网络威胁中的一个严重问题。 [ new_day@torguard.tg ].faust 勒索病毒是最新的威胁之一,采用高度复杂的加密技术,将受害者的数据文件锁定,并勒索赎金以解密。本文91数据恢复将介绍 [ new_day@torguard.tg

    2024年02月09日
    浏览(43)
  • 双非保研北邮人工智能学院的逆袭之路 | 计算机就业形式、保研全流程、如何选导师...你想要的这里通通有

    作者: ShawnPi 编辑: CVHub 来源: https://zhuanlan.zhihu.com/p/601052513 刚经历过激烈的保研和一段时间的迷茫,希望此帖可以帮助到计算机专业的学弟学妹们。希望能从多维度,多视角解读计算机保研,为大家的未来发展方向提供一些建议。 适用对象:有志保研计算机专业的大一至大三

    2024年02月16日
    浏览(71)
  • Qt-获取计算机信息(MAC、IP、CPU、主机名等等)

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处        在我们开发软件时,会经常需要用到计算机的相关信息,基于这些信息,我们可以开发一些辅助模块。本文将分享几个可以应用在Qt中的常用函数,帮助大家更便

    2024年02月16日
    浏览(38)
  • QT6 C++获取Window系统计算机的主机BIOS序列号源代码

    这是自己用QT6 C++编程语言开发的获取主机BIOS序列号的程序。经过调试,可以在Window10系统和Win7系统运行。

    2024年02月09日
    浏览(52)
  • QT简易加法计算器项目实现

    完整代码见GitHub:点击进入 在该项目中,使用了三个文件,分别是CalculatorDialog.h, CalculatorDialog.cpp, main.cpp CalculatorDialog.h:在该头文件里定义了一些成员变量和槽函数,用于实现计算器基本功能。 CalculatorDialog.cpp: CalculatorDialog 类的构造函数,用于初始化计算器对话框界面和控

    2024年02月11日
    浏览(43)
  • 算法、数据结构、计算机系统、数据库MYSQL、概率论、数学实验MATLAB、数学建模、马原、英语、杂项、QT项目

    可以三个条件 以此类推 (condition1)?x:(condition2)?y:z string变成int int 变成string 可以用循环 模运算展开式推导 我们要证明等式: (a * b) mod m = ((a mod m) * (b mod m)) mod m 假设 a = q1 * m + r1 ,其中 q1 是 a 除以 m 的商, r1 是 a 除以 m 的余数。类似地,假设 b = q2 * m + r2 ,其中

    2024年02月08日
    浏览(65)
  • 【计算机视觉】基于OpenCV计算机视觉的摄像头测距技术设计与实现

    在当今技术日益进步的时代,计算机视觉已成为我们生活中不可或缺的一部分。从智能监控到虚拟现实,计算机视觉技术的应用范围日益广泛。在这篇博客中,我们将探索一个特别实用的计算机视觉案例:使用OpenCV实现摄像头测距。这一技术不仅对专业人士有用,也为编程爱

    2024年02月04日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包