精华内容
下载资源
问答
  • c++用户交互界面
    千次阅读
    2020-05-10 14:49:49

    一、实验目的和要求

    要求:在实验-03、实验-05的作业内容基础上

    (1)增加图形交互功能。

    (2)增加3个逻辑运算符 &&、||、 !,并能处理逻辑运算符和算术运算符的混合运算。

    (3)增加容错功能,能进行异常处理。

    说明

    (1)其中牵涉到数据结构相关的可复用代码,可自行选择。

    (2)提交时间:3周至4周左右时长,具体时间节点另行通知。

    (3)其它要求同实验-01 。

    二、实验环境

    编译器:Vscode & DevC++&QT creator个人推荐下载版本

    系统:Windows10

    更多相关内容
  • c++写出带交互界面的简单计算器

    千次阅读 多人点赞 2020-05-21 15:53:59
    利用devc++和QT写交互界面的计算器 一.先下载一个QT 下载地址 http://download.qt.io/archive/qt/ 我下载的是 5.12.8 版本的 第四个是windos的 第五个是mac的 第六个是linux的 按需下载就行了 这里有一篇下载安装...

    利用devc++和QT写交互界面的计算器

    一.先下载一个QT

    下载地址
    http://download.qt.io/archive/qt/
    我下载的是 5.12.8 版本的
    在这里插入图片描述
    第四个是windos的
    第五个是mac的
    第六个是linux的
    按需下载就行了

    这里有一篇下载安装教程可以看看
    https://blog.csdn.net/cfan927/article/details/98115783?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-5&depth_1-utm_source=distribute.pc_releva
    (转@Cfan927)
    比较详细

    二. 学习Qt

    b站有个教学视频,可以先看看,他讲的比较详细
    https://www.bilibili.com/video/BV1g4411H78N
    我个人感觉看到 P10 就行了,因为我知道看我这篇文章的多半都是合工大的孩子被数据结构作业逼疯才来的,先学这么多
    弄懂怎么实现按钮的操作,弄懂什么是信号,什么是槽就可以了

    三.实现计算器代码

    有两点可能要注意一下(没有这个大作业的可以不看后面这段)
    我们的大作业里面有&& || !三种逻辑运算符
    !问题不大
    主要是&&和||
    这个到时候在计算器输入的时候要输入两个&&
    但是我们只入栈一个& 这样方便后面运算
    那怎么实现呢?
    我们用a来代表你的输入的算式
    a[i]遍历这个式子,当 i 指向第一个&时,i++
    再入栈运算符,这样就只入栈了一个运算符

    || 和上面的处理方式一样
    但是要注意的时 | 的ascii码是 124 ,判断运算符和数字时要注意

    其次要注意&& || !之间的优先级,还有运算联系等

    else if(a[i]=='&')
    			{
    			    if(a[i+1]=='&')
    			    	i++;
    			}
    

    类似于上面这样的代码来让它判断

    下面放上源码

    #include<iostream>
    #include<string>
    #include<cmath>
    #include<stack>
    using namespace std;
    
    int symbol(char c)             //赋予优先级
    {
    	switch (c)
    	{
    	case '#': return 0;
    	case '+': return 2;
    	case '-': return 2;
    	case '*': return 3;
    	case '/': return 3;
    	case '(': return 6;
    	case ')': return 1;
    	case '&': return 4;
    	case '|': return 4;
    	case '!': return 5;
    	default: break;
    	}
    	return 0;
    }
    
    double jisuan( char c='#',double b=1,double a=1)
    {
    	switch (c)
    	{
    	case '+': return b + a;
    	case '-': return b - a;
    	case '*': return b * a;
    	case '/': return b / a;
    	case '&': if(a!=0&&b!=0)  return 1;
    	          else          return 0;
        case '|': if(a==0&&b==0) return 0;
                  else           return 1;
    	default: break;
    	}
    	return 0;
    }
    
    double js(double a)
    {
    	if(a==0)  return 1;
    	else      return 0;
    }
    
    int main()
    {
    	stack<double>s1;
    	stack<char>s2;
    	string a;
    	cout << "请输入" << endl;
    	cin >> a;
    	a = a + '#';
    	s2.push('#');
        for (int i = 0;i<a.size(); i++)
    	{
    		if (a[i] <= 47||a[i]==124)                  //用阿斯克码判断扫描到的是数字还是运算符
    		{
    			if (a[i] == '#'&&s2.top() == '#') break; //两个#碰到一起运算结束
    			if (s2.top() == '(')   //括号特殊讨论
    			{
    				if (a[i] == ')')
    				{
    					s2.pop();
    					continue;
    				}
    				s2.push(a[i]);
    				continue;
    			} 
    			else if(a[i]=='&')
    			{
    			    if(a[i+1]=='&')
    			    {
    			    	i++;
    				}
    			}
    			else if(a[i]=='|')
    			{
    				if(a[i+1]=='|')
    			    {
    			    	i++;
    				}
    			}
    			if (symbol(s2.top()) >= symbol(a[i])) //判断运算符优先级
    			{
    				if(s2.top()=='!')
    				{
    					double vel=js(s1.top());
    					s1.pop();
    					s2.pop();
    					s1.push(vel);
    					i--;
    				}
    				else 
    				{
    					char temp1 = s2.top();
    				    s2.pop();
    				    double temp2 = s1.top();
    				    s1.pop();
    				    double temp3 = s1.top();
    				    s1.pop();
    				    s1.push(jisuan(temp1, temp3, temp2));
    				    i--;//要把a[i]再走一遍 不然同级运算a[i]不能push 
    				    continue;
    				}
    			}
    			else
    			{
    				s2.push(a[i]);
    				continue;
    			}
    		}
            else                     //对数字的运算
    		{
    			double sum = static_cast<int>(a[i]) - 48;
    			for (; a[i + 1] > 47&& a[ i + 1 ] != 124 ; i++)     //实现多位数的运算
    				sum = sum * 10 + static_cast<int>(a[i + 1]) - 48;
    			if(static_cast<int>(a[i+1])==46)    //计算小数
    			{
    			    int j=1;
    			    i=i+2;
    				for(;a[i]>47&&a[ i ] != 124;i++)
    				{
    					sum=sum+pow(10,-j)*(static_cast<int>(a[i]) - 48);
    					j++;
    				}
    				i--;
    			} 
    			s1.push(sum);
    		}
    	}
    	double result = s1.top();
    	cout << "计算结果:" << endl;
    	cout << result ;
    }
    
    

    四.实现QT代码

    1. 创立一个widge类型的项目
    在这里插入图片描述
    注意这里把那个Generate form 勾选上,方便后面设计界面

    在这里插入图片描述
    创建好以后就是这样 注意左上角那个板块 要有这几个文件夹

    如果没有那就把QT关了 然后点开刚刚创立的路径的文件夹 把那个文件打开
    再打开QT
    出现如下页面
    点击右下方的按钮就好了
    如果这还没好,那就说明可能你的QT没有下载完整 有的插件没下
    重新下吧

    在这里插入图片描述

    2.开始写代码

    2.1 首先我们要想一个问题 如何把计算器按钮上面输入的式子和自己的计算器源码连接起来

    我们可以创立一个 QString 类型的字符串 s (QT的头文件一般都是QString,QStack什么的)
    每输入一个字符,就把他加入到 s 中
    这样最后再把 s 传入你的源码中,进行后面的计算
    那他的结果我们也可以用一个QString 类型来记录,我们记为 res
    我们再来想一个问题
    那个教学视频中也说到过
    QT中 widget是一个类,他有头文件,我们想要 s 再每一次按下按钮后都记录
    所以我们就可以把 s 定为这个类的私有 ,res 也一样

    在widget.h文件中就有这样一段代码

    private:
        Ui::Widget *ui;
    
        QString s;
        QString res;
    

    在widget.cpp文件中的构造函数对它们初始化

    Widget::Widget(QWidget *parent)
        : QWidget(parent)
        , ui(new Ui::Widget)
    {
        ui->setupUi(this);
        s="";            //初始化
        res="";          //初始化
        setWindowTitle("肝到昏天黑地的计算器");    //这是个改变界面名称的函数
    }
    

    2.2 我们现在可以来编辑界面了

    点开在这里插入图片描述这个文件
    我们就进入了设计界面
    在这里插入图片描述
    这是我已经设计好的 注意背景图 (我是男生,这不是我的自拍)
    背景图有个链接 讲的也很清楚 https://blog.csdn.net/nb_zsy/article/details/104136793
    上面两个白框框 我选择的是 TextEdit,在左边的工具栏能找到
    按钮选择的是PUsh button
    鼠标选中以后 拖过来就好了
    (b站视频按钮是自己输入坐标的,这里的ui直接是自己选位置,方便了很多,这就是在创立新项目时让你们勾选那个Generate form 的原因)

    2.3 开始实现按钮

    鼠标放到你的按钮上 点击右键
    有个 转到槽 的选项
    之后选择clicked 这就是点击的信号
    点一下之后就跳到了代码页面
    之后就在这个函数里面实现你的按钮就可以了

    这里我们举一个例子

    void Widget::on_pushButton_clicked()
    {
         s+="1";
         ui->textEdit->setText(s);
    }
    

    s前面解释过了
    ui就是你这个设计页面,textedit就是第一个白框框,setText(s)就是在这个白框框里面输入s
    在这里插入图片描述
    那么这个连起来的意思就是
    在你的设计页面中的 textEdi t这个对象中输入 s
    具体怎么看对象名,在设计页面,点击你的按钮或者文本框,右上角有显示他的对象名

    再说三个特殊的
    ①后退键 :

    void Widget::on_pushButton_20_clicked()
    {
        s=s.left(s.length()-1);
        ui->textEdit->setText(s);
    }
    

    ②清除键 :

    void Widget::on_pushButton_19_clicked()
    {
        s="";
        res="";
        ui->textEdit->setText(s);
        ui->textEdit_2->setText(res);
    }
    

    res是在第二个文本框中的字符串

    ③ 等号键 :
    下面 “= ”的按钮是个特例
    我们有两种想法
    第一就是直接把你的计算器源码整个放在这个槽函数里面
    也可以在外面单独写一个函数,最后return一个值,把这个值传入 = 的槽函数

    但是值得注意的有两点
    第一
    如果你的计算器源码其中一个栈是char类型的,而你的s又是string类型,这样是过不了QT的编译器的
    因此要把string转成char型

    char *a=s.toLocal8Bit().data();
    

    第二
    最后传到设计界面的文本框中的数据应该是Qstring类型
    如果你最后的计算结果是 int 或者 double 类型的
    要把它转成Qstring的

        double num = s1.top();
        res = QString::number(num);
        ui->textEdit_2->setText(res);
    

    num是我的最后计算结果
    textEdit_2是我的第二个文本框的对象名

    到现在我们的计算器基本上就完成了
    还有两点也要注意一下
    第一就是我们在写槽函数的时候 输入文本框的字符一定时英文键盘下的字符,不然程序不会进行的
    第二就是QT有的错误不会报错,只会警告,尽量把所有的警告也改了,有的警告不影响结果,有的警告会让最后的程序异常关闭,虽然能编译通过
    上面两条都是我血的教训,好几个小时看不出到底是那错了,程序一直异常关闭

    我能说的也就这么多了,如果还有什么问题可以发在下面
    ****有一种营销号的感觉 ****

    我的这个计算器的文件在这里
    https://gitee.com/jinhesuannaijiaofu/jisuanqi
    进去下载那个计算器的文件就好了
    下载完成以后用QT打开就OK了
    要是看主要部分的代码的话,点开untit 文件里面的widget.cpp文件就行
    不用下载就能看

    如果能点个赞就更好了!!!

    展开全文
  • QPowerShell 为 Qt C++ 开发人员提供了一种与 Windows PowerShell CLI 交互的简单方法。 它仅在 PS 2.0 上进行过测试,但也应在较新的版本上进行测试。 这是我向公众发布的第一个项目。 请随时提交错误、建议或功能...
  • vc制作Visual Studio风格的用户界面窗口.visual c++
  • C++ 一些界面的编写

    2013-03-04 09:39:04
    C++ 绚丽界面编写
  • C++之人机交互

    2021-09-07 22:39:07
    最近在跟着菜鸟教程及bilibili上搜的视频学习C++,也已经看了几天了。突然想到还是把自己的学习过程记录一下吧,这样印象会更深一些,也方便后续查询。 main.cpp #include <iostream> #include <string>...

    最近在跟着菜鸟教程及bilibili上搜的视频学习C++,也已经看了几天了。突然想到还是把自己的学习过程记录一下吧,这样印象会更深一些,也方便后续查询。
    main.cpp

    #include <iostream>
    #include <string>
    using namespace std;
    
    
    int main() {
        int a;
        string str;
        cout << "请输入a的值" << endl;
        cin >> a;
        cout << "请给字符串str赋值" << endl;
        cin >> str;
        cout << "a=" << a << endl;
        cout << str << endl;
        return 0;
    }
    

    在这里插入图片描述

    展开全文
  • c++的聊天界面

    2014-05-27 14:54:35
    c++做的一个qq聊天 重庆理工大学 课程设计
  • c++简单用户界面

    千次阅读 2015-09-16 19:25:46
    #include #include #include using namespace std; int main() { char usename[10]; char password[10]; cout 输入用户名" ; cin >> usename; cout 输入密码" ; cin >> password;... cout << "----
    #include<iostream>
    #include<string>
    #include<iomanip>
    using namespace std;
    int main()
    {
    	char usename[10];
    	char password[10];
    	cout << "输入用户名" << endl;
    	cin >> usename;
    	cout << "输入密码" << endl;
    	cin >> password;
    	cout << "----------------------\n";
    	cout << "|       登陆面        \n";
    	cout << "|---------------------\n";
    	cout << "|  用户名:|" << usename << setw(13 - strlen(usename)) << "|\n";
    	cout << "|----------------------\n";
    	cout << "|    密码  |   " << password << setw(13 - strlen(password)) << "|\n";
    	cout << "------------------------\n";
    	system("pause");
    	return 0;
    }

    展开全文
  • #define _CRT_SECURE_NO_WARNINGS_ #include<graphics.h> #include<stdio.h> #include<string.h> #include<mmsystem.h> #pragma comment(lib,"winmm.lib") struct button ...
  • 这是人机交互学科的实验报告,我选择的课题是命令行菜单界面
  • python+pyqt5手工编写一个含交互界面的简易词法分析器 @author:x1nge. 编译原理基础实验 基础 在之前的一篇博文中我记录了一个不含交互界面的简易词法分析器程序编写内容 点击此处查看 在本文我将用pyqt5写一个...
  • QML作为界面,在简单的交互中可能EMCA通过事件就可以解决简单的交互,但是往往复杂的计算或者用到后台一些服务的时候往往用C++去开发,这就需要两者互相传递数据,实际过程中,在QML与C++交互用的最多的就是QString...
  • 实现了6位和8位的电话号码频谱打印及电话号码的信息反馈
  • 一般情况下windows的服务程序运行权限时system,不能显示可以与用户交互界面,本文讲述了一个用vc2008创建ATL的service,并在服务启动时启动一个可以显示出来,并且可以与用户交互的notepad窗口,同理你可以用此...
  • QML与C++交互

    2020-12-22 17:10:41
    Qt Quick 是一种高级用户界面技术,使用它可轻松地创建供移动和嵌入式...  研究了几天QML,我想编程人员关心的还是QML怎样与C++ Application交互了。发现网上QT中文资料很少,唉,只能参照官网文档:  一、QML引
  • qt之qml与C++数据交互

    2021-04-29 22:02:25
    qml界面c++界面之间传递数据 qml与c++之间的交互天然的与flux架构一致。可以直接套用,所有的事件通过信号进行分发。与android的EventBus差不多。 qml传递数据给c++ 一般用于传递qml【View】上面的一些操作。...
  • 交互选择界面(c语言)

    万次阅读 多人点赞 2019-04-09 18:06:36
    一个交互界面用户和终端交流的形式。是以用户为中心的设计流程,关注用户的使用流畅度和方便性,符合用户使用习惯的解决方案。交互不一定需要很华丽的界面,但是使用过程肯定是很人性化,减少用户思考返回的次数...
  • C++写窗口界面

    千次阅读 2017-11-05 18:14:07
    //定义一个对话框界面 w.resize( 400 , 300 ); //设置对话框大小 QLabel label(&w); //实现一个标签,并将w作为其父级 label.move( 120 , 120 ); //移动标签 label.setText( "Hello World" ); //标签...
  • Qt Quick QML 与 C++ 交互系列之一

    万次阅读 2020-10-24 17:44:50
    QML 负责界面C++ 负责逻辑,这也是 Qt 官方推荐的开发方式。那么 QML 与 C++交互必然是每一个Qt开发老师需要掌握并且精通的。 接下来,我们会对QML 与 C++ 交互的几种方式进行详细讲解。我们通过创建项目,...
  • Qt官方推荐使用QML构建界面,使用C++实现非界面的业务逻辑和复杂运算,大多数开发者也是基于这样的原则来混合使用QML和C++。因此QML与C++交互必然是我们需要掌握的技能。 此次Webinar将向大家介绍QML与C++交互...
  • qt与C++交互

    千次阅读 2018-05-22 16:41:36
    c++与qml结合开发中,通常需要在qml中使用到C++类实例,这时候就需要在C++中将类注册为qml组建 主要是继承QObject 并且使用Q_PROPERTY将类的私有变量注册为qml组建属性,如果需要在qml中调用c++类中封装的函数,...
  • Go与C/C++交互

    千次阅读 2018-11-03 15:25:57
    因为CGO只支持C,C调用C++函数实例(关键是让C调用的C++函数接口按照C规范,即使用extern "C"的方式进行声明。 #ifdef __cplusplus extern "C" { #endif void hello1(); #ifdef __cplusplus } #endif C与...
  • 怎样用C/C++开发图形界面(GUI)程序——点名器示例 原文链接:https://mp.weixin.qq.com/s/O9PXaibAyd__ONBBASYI_Q 仍旧是Via What系列,昨天熬夜读了FLTK的文档,今天终于可以给大家介绍一下了。为什么首选这个...
  • QML入门教程(11) : qml C++交互介绍

    千次阅读 2021-03-20 18:18:46
    qml和C++可以相互调用,可以在qml代码中调用C++的类对象,也可以用C++类来获取qml的控件对象,下面分别介绍这两这种用法 qml调用C++ ​ Qt 提供了两种在 QML 环境中使用 C++对象的方式∶ ​ 方式1:在C+中实现一个类...
  • HALCON:与C++交互

    千次阅读 2018-06-16 08:52:37
    HALCON:与C++交互
  • 【基于C++和C#编程语言在人机交互界面工业领域应用的优缺点分析与研究】 语言 优点 缺点 应用领域 C++ 1.容易调用底层...
  • QT人机交互(动态界面

    千次阅读 2020-11-23 00:03:13
    QT简单的人机交互界面设计 人机交互-----用户能够与界面进行动态交互 信号和槽:当一个事件发生时,那么一个对应的信号会触发,如果与该信号已建立的连接的槽函数它就会被自动调用。自定义信号并建立连接,槽函数...
  • (1)问题描述 设计一个简单的一元稀疏多项式计算器。 (2)基本要求 一个简单的一元稀疏多项式计算器...计算器仿真界面。 (3)数据结构及算法分析 可用带表头结点的单链表存储多项式,多项式的项数存放在头结点中。
  • 想利用C或C++界面设计,怎么做?

    千次阅读 2021-02-14 12:00:32
    想利用C或C++界面设计,怎么做? 方法步骤如下: 1、首先打开计算机在,在计算机内打开打开QtCreator,新建一个qt工程。 2、工程建立完毕,bai代码编辑界面出现,先不管代码。双击左侧的dialog.ui,将会打开图形...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 80,713
精华内容 32,285
关键字:

c++用户交互界面

c++ 订阅
友情链接: STM32LTC6803.rar