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
    
    
  • 相关阅读:
    MSIL实用指南-一维数组的操作
    MSIL实用指南-给字段、属性、方法、类、程序集加Attribute
    MSIL实用指南-比较运算
    MSIL实用指南-逻辑运算
    MSIL实用指南-位运算
    MSIL实用指南-数学运算
    MSIL实用指南-创建对象
    MSIL实用指南-装箱拆箱
    MSIL实用指南-生成构造函数
    K8S从入门到放弃系列-(5)kubernetes集群之kube-apiserver部署
  • 原文地址:https://www.cnblogs.com/iois/p/4533471.html
Copyright © 2011-2022 走看看