zoukankan      html  css  js  c++  java
  • 基于Qt的简单计算器

    界面:

    UI


    ui由qtdesign中托控件形成。

    #ifndef WIDGET_H
    #define WIDGET_H
    
    #include <vector>
    #include <QWidget>
    #include"myoperator.h"
    
    namespace Ui {
    class Widget;
    }
    
    class Widget : public QWidget
    {
        Q_OBJECT
    
    public:
        explicit Widget(QWidget *parent = 0);
        ~Widget();
    
        enum NumberFlag   {first_flag,second_flag};//表示第一个数字还是第二个数字
        enum OperatorFlag {addition,subtraction,multiplication,division,none};//表示哪种操作
        enum DotFlag      {is_dot,not_dot};//表示是否有小数点
    
        void   clearpad();    // ac键
        void   get_number();  // 数字按键
        void   get_operator();// 操作键
        double get_result();  // =键
        void   set_zf();      // +/-键
        void   set_dot();     // .键 小数点按键
    
        void show_operator(int op);
    
    private:
        Ui::Widget *ui;
    
        int number_flag;
        int operator_flag;
        int dot_flag;
        double dot_step;//0.1
    
        double first;//第一个数的值
        double second;
    
        double result;//计算结果
        std::vector<MyOperator*> my_operaor;  //存放计算方法的数组,(命令模式)
    };
    
    #endif // WIDGET_H
    
    
    #ifndef MYOPERATOR_H
    #define MYOPERATOR_H
    
    // 抽象类,接口
    class MyOperator
    {
    public:
        MyOperator();
        ~MyOperator();
        virtual double compute(double x,double y)=0;
        //virtual double compute(double x);
    };
    
    // 抽象类的实现
    class Add:public MyOperator
    {
    public:
        double compute(double x,double y){return x+y;}
    };
    
    class Sub:public MyOperator
    {
        double compute(double x,double y){return x-y;}
    };
    
    class Mul:public MyOperator
    {
        double compute(double x,double y){return x*y;}
    };
    
    class Div:public MyOperator
    {
        double compute(double x,double y){return x/y;}
    };
    
    #endif // MYOPERATOR_H
    
    
  • 相关阅读:
    Expedition(POJ 2431)
    spring异步@Async原理和注意问题
    springBoot事件
    spring定时任务原理
    BeanFactory和FactoryBean的区别
    Spring容器启动流程——源码阅读分析
    spring循环依赖
    spring相关的问题和原因分析
    zookeeper原理
    zookeeper的使用
  • 原文地址:https://www.cnblogs.com/iois/p/4533471.html
Copyright © 2011-2022 走看看