精华内容
下载资源
问答
  • c++人机交互界面
    2020-11-02 15:56:09

    【基于C++C#编程语言在人机交互界面工业领域应用的优缺点分析与研究】 

    语言

    优点

    缺点

    应用领域

     

     

     

     

     

     

    C++

    1. 容易调用底层代码,运行效率高。

    2. 可直接调用C语言代码,在编写界面程序时,能够直接调用系统API,比较适合跟系统底层打交道多的程序。如杀毒程序等。

    3. 界面编程可使用MFC,WTL等,MFC使用方便,类库繁多,能够很简单的写出正常界面的程序。WTL为轻量级界面库,代码更加简洁,但WTL不受微软官方维护。

    4. 语言特性:

    宽松类型检查,支持宏;但建议用Const来定义常量,具有类型安全检查机制

    5类可多继承,但并不推荐多继承

    C++支持模板类

    需要手动管理内存,指针使用方便,效率

    单层命名空间

    变量不初始化也能使用

    支持Try/Catch异常处理

    支持函数指针,无类型安全检查

    1. MFC的对系统的封装不够彻底例如选择文件框,只有选择文件的类,并不提供选择文件夹的类,许多功能需要自己实现,开发较慢。

    2. MFC中有各种基本的Windows控件,但是操作或修改都需要自己画控件了。

    3. 没有数组边界检查,容易溢出。指针操作容易出错。内存管理需要耗费大量精力。

    4. 界面画图需要调用系统API,有些Windows平台API不同,可能导致画出界面的效果出问题。

    5. 美化界面难度很高,使用商业控件的价格不菲

    6. C++为C的超集,为了兼容C语言,使得程序发展得非常复杂,造成开发周期长,成本高

    7. 界面编程不是C++的强项,用C++编写界面程序需要一砖一瓦全部自己搭建,当然自由度很高,但是代码量更多,容易出Bug,耗时间。

     

    主要用操作系统设备驱动程序,视频游戏等领域。如果用于编写界面程序,运行速度将很快。

     

     

     

     

     

     

    C #

    1. 集成大量类库,开发效率高,开发周期短。主要用于开发Windows应用软件,企业管理,网络应用等领域。

    2. 可利用除界面代码以外的C++代码。但是需要通过C++\CLI, COM组件,PInvoke等形式。

    3. .Net内封装了大量网络应用,数据库方面的类库,直接调用非常方便,支持串口,TCP编程等。

    4. 界面编程可使用Winform,WPF。其中WPF属于新一代界面引擎,无需通过GDI+画图, 直接与显卡DirectX交互,渲染速度很快。WPF是微软专门为界面编程打造的类库。

    5. WPF中有更丰富的Windows控件,修改也比较方便。有些直接改Xaml的样式即可。

    6. 语言特性:

    强制类型检查,所有类型继承至Object类型;不支持宏;

    类单继承,接口多继承

    C#支持泛型

    C#支持动态语言特性

    自动内存回收管理

    多层命名空间

    变量初始化后才能使用

    自动检查数组边界

    支持Try/Catch/Final异常处理

    委托”可模拟函数指针,是一个对象,支持类型安全检查。 

    1. 需要在Windows系统上安装.Net运行库,.Net 4.0 大概40MB左右。只与.Net运行库相关,与Windows平台无关,Winxpwin7win2008运行无区别。

    2. 需要解析成中间代码再被解释器运行,运行速度较慢。

    3. 调用系统API需使用PInvoke间接调用,需要先声明为PInvoke接口,不能直接调用。

     

     

    适合企业内高效的开发模式;

     

    更多:

    1. C++的代码错误容易引起安全问题,造成内存泄漏,运行出错。C#的代码错误容易引起性能问题。如果追求性能,用C++,如果追求安全,用C#。

    2. C++的开发难度高,开发周期较长,但是运行效率高;C#的开发难度低,开发效率高,运行效率低;

    3. C++注重实现功能,只要时间充裕,可以实现非常强大的功能;C#更加注重软件工程的应用,各种设计模式的使用,面向对象,是现代软件工程的思想体现。适合企业内高效的开发模式;

    4. C++的MFC界面编程难度较高,美化界面需要大量代码的支持。C#的WPF的界面编程很简单,界面代码与程序代码分开,界面可使用可视化设计程序,如Expression Blend设计。

    5. C++对串口,网络TCP,数据库方便的编程都支持,但是没有现成的完整类库调用,需要大量代码支持。 C#中这些都已经有类库,直接调用即可。代码量少很多。

    6. C++打造界面像使用画笔画图,想怎么画就怎么画,结果取决于画家的功力;C#打造界面像使用Photoshop画图,不会画画的人也能画出一些精美图片来。

     

     

    更多相关内容
  • 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++的程序,使用MFC做的界面,此程序实现了服务器与客户端的通信,使用socket通信。一个服务器端可以同时对应多个客户端,此程序代码注释清楚,十分适合应用与学习。服务器端和客户端之间可以发送指定的自己...
  • matlab人机交互界面设计

    千次阅读 2020-02-28 14:39:01
    再通过switch语句对不同方法进行封装 3、滚动条 类似于opencv中的createTrackerbar 通过 val = get(handles.slider1,'value')获得滑动条的实时数据,滑动条数据范围可通过属性中的max进行设置 其中handles为界面句柄...

    1、通过路径选择读取图片

    新建一按钮,在回调函数中编写通过路径选择读取图片的程序

    v2-8d715d71ee9f30f82c0c1f0e6c6a9722_b.jpg

    2、弹出式菜单

    在GUI中新建一弹出式菜单,在弹出式菜单的属性string中命名不同方法

    通过 val = get(hObject,'value')获得弹出式菜单中不同方法对应的顺序数字1、2、3。。。

    再通过switch语句对不同方法进行封装

    v2-aeb1fb8283918fa1a2163e9000917777_b.jpg

    3、滚动条

    类似于opencv中的createTrackerbar

    通过 val = get(handles.slider1,'value')获得滑动条的实时数据,滑动条数据范围可通过属性中的max进行设置

    其中handles为界面句柄,slider1为滑动条的tag值。

    4、可编辑文本

    可编辑文本用于显示结果

    set(handles.edit1,'string',‘显示结果’)

    其中edit1为可编辑文本的属性tag值,如果显示结果不是字符串如数字a,需要用num2str(a)转换为字符串才能显示。

    欢迎咨询课题,有什么不懂的地方可以私信解答。

    展开全文
  • QT人机交互(动态界面

    千次阅读 2020-11-23 00:03:13
    QT简单的人机交互界面设计 人机交互-----用户能够与界面进行动态交互 信号和槽:当一个事件发生时,那么一个对应的信号会触发,如果与该信号已建立的连接的槽函数它就会被自动调用。自定义信号并建立连接,槽函数...

    QT简单的人机交互界面设计

    人机交互-----用户能够与界面进行动态交互
    信号和槽:当一个事件发生时,那么一个对应的信号会触发,如果与该信号已建立的连接的槽函数它就会被自动调用。自定义信号并建立连接,槽函数必须要实现。
    信号和槽使用方式一:在UI文件来完成信号和槽建立,当用户在操作该控件时,那么相当于触发了该信号,然后就会响应用户的操作。
    第一步:右击QPushButton按键类控件,在下拉列表中,选择"转到槽"。
    第二步:在弹出的对话框中,选择对应的信号,如下图所示。
    第三步:点击OK后,那么,系统会自动创建一个槽函数,并且与信号也会建立连接。整个过程,由系统来完成。
    在源文件中会生成一个函数:

    void MainWindow::on_loginBtn_clicked()
    {
    	//在改函数内,完成功能的编写
    	//当用户点击界面按钮时,会自动发送信号,该函数进行响应
    }
    

    在头文件中,在所在类中,声明槽函数:

    class MainWindow : public QMainWindow
    {
        //支持信号与槽
        Q_OBJECT
    
    public:
        //指向父控件,管理子控件的内存。关闭父控件,所有子控件自动被关闭
        MainWindow(QWidget *parent = nullptr);
        ~MainWindow();
    
    //槽函数(已经自动与信号建立了连接,自定义信号与槽函数才需要手动去建立两者的连接connect)
    private slots:
        void on_loginButton_clicked();
    
    private:
        Ui::MainWindow *ui;
        //纯代码编写控件(必须包含该控件的头文件#include <QPushButton>)
        QPushButton* exitButton;
    };
    

    第四步:开发者可以在函数体中,实现自己功能

    void MainWindow::on_loginButton_clicked()
    {
        //在c++中,使用string 来描述字符串,在QT中,使用QString来描述字符串
        QString user = ui->userEdit->text();
        QString password = ui->passwordEdit->text();
        
        //可以成功登陆(账号与密码相匹配)
        //设置系统默认的用户名与密码(root--123456)
        if(user == "root" && password == "123456")
        	//相当于cout的功能;但用户是无法看见输出的信息,只有开发者能看见
            qDebug() <<"登陆成功"; //必须包含头文件#include <QtDebug>   
        //用户名正确,但是密码错误
        else if(user == "root" && password != "123456")
        {
            //创建消息盒子对象(必须包含消息盒子头文件#include <QMessageBox>)
            QMessageBox msgBox;    
            //设置弹出消息盒子界面显示的文本内容
            msgBox.setText("密码错误");  
            //在界面上显示消息盒子,只有消息盒子消息,界面才能操作。  
            msgBox.exec();    
        }
        //用户名与密码不匹配
        else
        {
            QMessageBox msgBox;    
            msgBox.setText("用户名或密码错误");   
            msgBox.exec();   
        }
    }
    
    

    开发者也可以纯代码编写控件

    MainWindow::MainWindow(QWidget *parent)
        : QMainWindow(parent)
        , ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
    
        //纯代码编写控件
        //控件指向父控件(也就是当前界面)
        exitButton = new QPushButton(this);
        //设置控件显示的文本内容
        exitButton->setText("退出");
        //设置控件在父控件的位置(超出父控件大小范围,编写的该控件将不会显示在父控件界面上)
        exitButton->move(0,270);
    }
    
    

    运行结果:

    当我们输入的登陆信息有误,消息盒子将弹出
    并且不关闭消息盒子,将无法继续操作。

    展开全文
  • 想要使用qt开发交互界面,看一以下网上的环境配置教程都很复杂,因此做一个简单的,希望能帮助大家少走弯路 1.安装ROS Qt Creator Plug-in 1.根据以下链接下载.run安装包 How to Install (Users) — ROS Qt ...
  • 第一章 人机交互概述

    千次阅读 2022-03-24 17:07:49
    人机交互概述
  • #基于LabVIEW的WIFI通信人机交互界面设计# 文章目录前言一、LabVIEW简介二、LabVIEW人机交互界面的软件设计三、 LabVIEW人机交互界面测试总结 前言 我们可以使用多种编程软件对实验数据进行处理,比如:C++、...
  • 本文旨在分析造成人机交互界面难以设计的原因以及解决办法。
  • 人机界面程序

    2011-11-27 21:24:22
    一个用C++写的人机界面,注重美观.亮点在于: 1.用户可更换主界面背景; 2.“课程学习”功能界面的左侧做了个百叶窗效果的章节选择菜单; 3.主界面下的“按钮”在移动上和按下有特效; 4.各个功能界面的背景色是根据...
  • C++简单人机交互——走迷宫

    千次阅读 2017-09-11 15:08:24
    //打印出迷宫边界和初始界面 { b[ 0 ]= "*********************************************" ; b[ 1 ]= "■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■" ; b[ 2 ]= "■ ...
  • 小商品管理系统界面优化,东南大学c++常选个人大项目,数据库处理,链表操作,人机交互
  • 1、引言   近年来,“嵌入式”一词越来越多的被人们提及,嵌入式产品被应用到各行各业。与嵌入式相关的技术如嵌入式产品,嵌入式系统...基于嵌入式技术的工业人机界面人机交互系统中一颗耀眼的明星。高可靠, 寿命
  • 分析了Google Earth(GE)的基本概况和应用前景,研究如何在C++平台上对Google Earth客户端进行二次开发.通过软件编程,调用Windows API函数和GE ...所设计的人机交互平台具有三维场景逼真、界面友好、功能丰富等特点.
  • 基于键盘的人机交互 一、实验目的 了解基于键盘的人机交互技术,掌握windows程序设计中键盘控制的编程方法。 二、实验内容及要求 1、设计并实现通过键盘控制棋子在棋盘中的运动。 2、画出10×10的棋盘格和一个棋子...
  • ROS人机交互软件

    千次阅读 2021-04-13 16:19:06
    前言 在使用ROS的过程中,我们常常需要...为此人机交互界面氤氲而生,使用按钮,输入框等控件简化这一过程,并且使调试过程更加清晰明确,下方是一个人机交互界面的结构图: 整个软件被分为6个界面,主要部分为.
  • 相信很多做机器人人机交互界面开发的相关的人员都会接触或使用Qt,在ros的wiki上也存在着qt_ros的使用方案,但是界面大多数都以UI文件为主,但是有时候这并不能满足我们的需求,我们需要开发的界面更加炫酷,或者...
  • 从设计图形用户界面的框架结构及实现人机交互入手,说明了用C++语言进行图形用户界面设计的相关内容和处理要点,并以具体例程论述了制作图形界面时函数的编写方法。运用MFC进行界面菜单和对话框的设计,为平台实现...
  • 基于QT制作的天气指数人机交互界面

    千次阅读 2019-06-03 23:00:49
    闲来无事,打算做一个人机交互界面,用来查看各地区的天气指数。 ... 项目的代码文件我放在了自己的git...
  • 航空电子设备尤其是航电显示系统的开发,对安全和开发效率提出了越来越高的要求。VAPS XT是Presagis公司开发的下一代动态、交互、实时和图形化的人机界面开发工具。它是为高级座舱仪表设计和应用而开发的理想的...
  • 工业控制上位机软件界面设计 上位机功能需求分析: (1)动态模拟机械手从血浆台抓取血浆袋到血浆盒的过程; (2)周期更新血浆盒中血浆袋数量; (3)实现至少3路模拟; 设计思路: (1)绘制模型元素:机械手、...
  • 一个简单的人机交互程序,也是一个画图程序,可以画圆,方形之类的图像
  • 初学数据库的可以借鉴一下噢,可实现对链表的各种基本操作
  • 界面要求:程序的界面要友好,便于人机交互,用菜单驱运程序的运行。 功能要求:程序应提供的基本管理功能有: (1)装入:将数据文件中的数据读入程序的数组或结构体数组中。 (2)添加:增加一个对象的记录到数组...
  • 人机交互时暂停系统时间 建立日志文件 记录学生课程、活动状态变化 导航信息、各种查询操作 选做功能 设计图形界面 途径最短距离策略 以课表图形界面方式进行课程管理查询 对课程作业资料进行版本管理
  • 以嵌入式微处理器ARM&DSP主从控制模式下设计直流电机控制系统,重点介绍基于QT/Embedded设计的直流电机监控系统界面,包括串口通讯和电机控制。...并完成Linux操作系统的移植,通过触摸屏实现人机交互
  • 由于Windows7的广泛...讨论一种门禁控制管理系统的人机交互、操作逻辑、界面美观相关的整体设计,主要内容包含设计原则和编程实现,重点对门禁系统基于Visual C++编程工具和MFC类库的界面框架的实现进行了详细讨论。
  • STM32遥控小车上位机部分(C++环境下的Qt界面编程)

    千次阅读 热门讨论 2021-08-28 11:13:10
    遥控小车上位机设计(Windows)介绍一、界面效果二、各部分的实现1. 核心部分:串口实现2. 连接组3. 控制组4. 显示组5. 设置组功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入...
  • 以嵌入式微处理器ARM&DSP主从控制模式下设计直流电机控制系统,重点介绍基于QT/Embedded设计的直流电机监控系统界面,包括串口通讯和电机控制。...并完成Linux操作系统的移植,通过触摸屏实现人机交互

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 34,406
精华内容 13,762
关键字:

c++人机交互界面

c++ 订阅
友情链接: SVGBrowser.zip