基于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
基于Qt的简单计算器的更多相关文章
- Qt Creator简单计算器的Demo
小编在期末数据结构课设中遇到要做可视化界面的问题,特意去学习了一下Qt的用法,今天就来给大家分享一下. 我用的是Qt5.80,当然这只是一个简易的计算器Demo,,请大家勿喷. 首先我创建了一个Qt ...
- asp.net -mvc框架复习(6)-基于MVC实现简单计算器
1.创建好文件夹 2.视图层代码编写 <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dyn ...
- 基于MFC的一个简单计算器
写一个简单的计算器并不是什么很难的事,主要目的是要通过这个程序来学习和分析其中的核心算法.这个简易计算器的核心部分就是对输入的表达式的正确性判断与求值,其中包括对表达式的解析.中缀表达式转后缀表达式. ...
- 基于QT的webkit与ExtJs开发CB/S结构的企业应用管理系统
一:源起 1.何为CB/S的应用程序 C/S结构的应用程序,是客户端/服务端形式的应用程序,这种应用程序要在客户电脑上安装一个程序,客户使用这个程序与服务端通信,完成一定的 ...
- 基于QT的换肤整体解决方案(QSkinStyle)(提供Linux的XP风格)
基于QT的换肤整体解决方案(QSkinStyle) 对QT这个成功的跨平台GUI库,本身内置了对换肤功能的实现,比如cleanlooks.plastique等跨平台风格:还有一些是和平台相关的风格,比 ...
- 基于QT的一个简易的安防
工程描述 opencv2.4.8 QT5 背景建模后,当有异物入侵时,把入侵的帧写到视频文件 使用BackgroundSubtractorMOG2背景建模 程序基于QT对话框 .pro #------ ...
- 基于Qt的P2P局域网聊天及文件传送软件设计
基于Qt的P2P局域网聊天及文件传送软件设计 zouxy09@qq.com http://blog.csdn.net/zouxy09 这是我的<通信网络>的课程设计作业,之 ...
- YY语音从4.0版本开始是基于Qt的开发过程,以及碰到的问题
作者:姚冬链接:http://www.zhihu.com/question/21359230/answer/20127715来源:知乎著作权归作者所有,转载请联系作者获得授权. YY语音从4.0版本开 ...
- 基于Qt有限状态机的一种实现方式和完善的人工智能方法
基于Qt有限状态机的一种实现方式和完善的人工智能方法 人工智能在今年是一个非常火的方向,当然了.不不过今年,它一直火了非常多年,有关人工智能的一些算法层出不穷.人工智能在非常多领域都有应用,就拿我熟悉 ...
随机推荐
- Airport(未解决。。。)
Airport Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Sub ...
- delphi webbrowser 经常用法演示样例
var Form : IHTMLFormElement ; D:IHTMLDocument2 ; begin with WebBrowser1 do begin D := Document as IH ...
- objective-C学习笔记(二)类 class 和 结构 struct
Objective-C的类型 引用类型 类 class 指针 pointer 块 block 值类型 基础数值类型 结构 struct 枚举 enum 类型装饰 协议 protocol 类别 cate ...
- Smarterer Test
1.Using xp can swap two characters 2.In normal mode, use /abc/+4 can find the string "abc" ...
- Week 5a - Mouse input and more lists----learning notes
pyton 程序内容的颠倒,运用 [](列表) def reverse_string(s): """Returns the reversal of the given s ...
- eclipse 查看快捷键
无意中发现,ctrl+shift+L 能打开快捷键窗口
- r语言之生成随机序列,随机数生成函数及用法
(1)生成正态分布随机数: rnorm(n,mean,sd) 其中,n表示生成的随机数个数,mean表示正态分布均值,sd表示正态分布标准差 > rnorm(5,0,2)[1] -5.3 ...
- linq 总结
linq 常用方法: top var query=(from u in User ...).Take(10) dblinq的坑: 时间必须当参数传入,否则会报错 多个left join时,如果jo ...
- C语言宏的特殊用法和几个坑(转)
总结一下C语言中宏的一些特殊用法和几个容易踩的坑.由于本文主要参考GCC文档,某些细节(如宏参数中的空格是否处理之类)在别的编译器可能有细微差别,请参考相应文档. 宏基础 宏仅仅是在C预处理阶段的一种 ...
- Qt之QNetworkInterface(查询网络接口),QHostInfo(查询主机IP)
http://blog.csdn.net/u011012932/article/details/50775052 http://blog.csdn.net/u011012932/article/det ...