ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:260.75KB ,
资源ID:27754749      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/27754749.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(迷你计算器设计.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

迷你计算器设计.docx

1、迷你计算器设计嵌入式系统课程设计说明书迷你计算器设计院 、 部:学生姓名湖南工学院嵌入式系统课程设计课题任务书指导教师学生姓名课题名称迷你计算器设计内容及任务一、目标 在GEC210开发板上使用QT设计一个迷你计算器。二、任务根据控制要求,明确设计任务,拟定设计方案与进度计划,运用所学的理论知识,进行迷你计算器原理设计、程序框架设计、创新设计,提高理论知识、系统调试能力、分析问题与解决问题的能力。主要内容包括:1 嵌入式交叉开发环境搭建。2 Linux操作系统的移植。3 根据需求确定外围模块设计并完成相应驱动开发。4 应用程序原理及框架设计。5 Linux下应用程序编写及移植。6 系统总体功能

2、调试。7 编写设计说明书。三、要求1迷你计算器的功能显示界面示例如下:2能够完成十进制数的加、减、乘、除等简单计算。3对不正确的表达式能指出其错误。主要参考资料1马忠梅,ARM & Linux嵌入式系统教程(第3版)M。北京:北京航空航天大学出版社,20142曹忠明,程姚根。从实践中学嵌入式Linux操作系统M。北京:电子工业出版社,20123宋宝华,Linux设备驱动开发详解(第二版)M。北京:人民邮电出版社,2010。4韦东山,嵌入式Linux应用开发完全手册M。北京:人民邮电出版社,20085 陆文周,Qt5开发及实例M。北京:电子工业出版社,20156 Stephen Prata,C

3、Primer PlusM。北京:人民邮电出版社,2005教研室意见教研室主任:年 月 日摘 要人类已经进入信息化时代。信息技术发展如新月异,计算器已经进入人们生活的各个领域,在现代生活中不可或缺。大型复杂的计算是人脑不能胜任的,而且比较容易出错。本文针对QT计算器进行研究,设有简单的四则运算:“+”、“-”、“*”、“/”,给用户带来了很多方便,并且提高了用户的运算效率。本文从项目背景、需求分析、软件设计等方面详细说明了QT计算器的开发设计过程。软件采用VM虚拟机,用Linux编写代码,QT设计界面来开发。计算器包含简单计算功能。计算器具有界面可视化,方便用户操作等特点,用户只能使用计算器做简

4、单的四则运算,尽管如此,此计算器还是能够满足人们日常简单的运算,为用户提供了有效保证。关键词:计算器;四则运算;QT设计界面;Linux目 录1嵌入式系统基础 11.1 嵌入式系统的基本概述 11.1.1嵌入式系统的基本概念 11.1.2嵌入式系统的体系结构 21.1.3嵌入式系统发展趋势 21.2 ARM处理器硬件平台 31.2.1嵌入式处理器简介 31.2.2 ARM处理器简介 32Qt开发工具简介 42.1 Qt概述 42.2 Qt主要特点 42.3 Qt编程机制简介 53项目设计 83.1 项目构想 83.2 需求分析 83.2.1 功能需求 83.2.2 功能分析 93.2.3 硬件

5、需求 93.2.4 软件需求 93.2.5 程序流程图 104嵌入式计算器的设计与实现 114.1 项目实施 114.1.1 创建工程 114.1.2 计算器程序的实现 114.1.3计算器程序的编译运行 135项目总结 14致 谢 15参考文献 16附录 171 嵌入式系统基础1.1 嵌入式系统的基本概述在社会日益信息化的今天,计算机和网络的应用已经全面渗透到日常生活中。应用嵌入式系统的电子产品随处可见,如人们平常使用的手机、摄像机、医疗仪器、汽车。在经济发达国家,每个家庭平均拥有255个嵌入式系统,如每辆汽车平均装有35个嵌入式系统。嵌入式系统的应用广泛进入到工业、军事、宇宙、通信、运输、

6、金融、医疗、气象、农业等众多领域。1.1.1嵌入式系统的基本概念在嵌入式系统行业内有一个被普遍接受的定义:嵌入式系统是以应用为中心,以计算机控制系统为基础,并且软硬件可裁减,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。将一套计算机控制系统嵌入到已具有某种完整的特定功能的(或者将会具备完整功能的)系统内(例如各种机械设备),以实现对原有系统的计算机控制,此时将这个计算机控制系统叫做嵌入式系统。简单地说,嵌入式系统就是被嵌入到电子设备中的专用计算系统。嵌入式系统通常由特定功能模块和计算机控制模块组成,主要由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户应用软件等

7、部分组成。它具有“嵌入性”、“专用性”、与“计算机系统”的三个基本要素。嵌入式系统的特点如下。(1) 面向特定应用。(2) 嵌入式系统的硬件和软件都必须进行高效地设计。(3) 嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合的产物。(4) 为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片中或单片机本身,而不是存储于磁盘中。(5) 嵌入式开发的软件代码尤其要求高质量、高可靠性。(6) 嵌入式系统本身不具备二次开发功能,即设计完成后用户通常不能在该平台上直接对程序进行修改,必须有一套开发工具和环境才能进行再次开发。1.1.2嵌入式系统的体系结构嵌

8、入式系统是一类特殊的计算机系统,一般包括硬件设备、嵌入式操作系统和应用软件。它们之间的关系如图1所示。图1 嵌入式系统的组成硬件设备包括嵌入式处理器和外围设备。其中的嵌入式处理器是嵌入式系统的核心部分,它与通用处理器最大的区别在于,嵌入式处理器大多工作在为特定用户群所专门设计的系统中,它将通用处理器中许多由板卡完成的任务集成到芯片内部,从而有利于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。外围设备是指嵌入式系统中用于完成存储、通信、调试、显示等辅助功能的其他部件。目前常用的嵌入式外围设备按功能可以分为存储设备(如RAM、SRAM、Flash等)、通信设备(如RS-232接口、S

9、PI接口、以太网接口、USB接口、无线通信等)和显示设备(如显示屏等)3类。1.1.3嵌入式系统发展趋势1. 提供强大的网络服务针对外部联网要求,嵌入设备必须配有通信接口,相应需要TCP/IP协议簇软件支持;为满足家用电器相互关联及实验现场仪器的协调工作等要求,新一代嵌入式设备还需要具备IEEE1394、USB、CAN、Bluetooth或IrDA通信接口,同时也需要提供相应的通信组网协议软件和物理层驱动软件。为了支持应用软件的特定编辑模式,还需要相应的浏览器。2. 小型化、低成本、低功耗为满足这种特性,要求嵌入式产品设计者相应降低处理器的性能,限制内存容量和复用接口芯片。这就相应提高了对嵌入

10、式软件设计技术要求。3. 人性化的人机界面用户之所以乐于接受嵌入式设备,其重要因素之一是它们与使用者之间的亲和力。它具有自然的人机交互界面。人们与信息终端交互要求以GUI屏幕为主的多媒体界面。4. 完善的开发平台随着Internet技术的成熟、带宽的提高,ICP和ASP在网上提供的信息内容日趋丰富、应用项目多种多样。为了满足应用功能的升级,设计者一方面采用更强大的嵌入式处理器,如32位、64位RISC芯片或数字信号处理器(DSP)增强处理能力;同时还采用实时多任务编程技术和交叉开发工具技术来控制功能复杂性,简化应用程序设计、保障软件质量和缩短开发周期。1.2 ARM处理器硬件平台1.2.1嵌入

11、式处理器简介嵌入式系统的核心部件是各种类型的嵌入式处理器,据不完全统计,全世界嵌入式处理器的品种总量已经超过1000种,流行的体系结构有30多个系列,数据总线宽度从8位到32位,处理速度从0.1到2000MIPS(MIPS指每秒执行的百万条指令数)。按功能和内部结构等因素,嵌入式系统硬件平台可以分为嵌入式RISC微处理器、嵌入式CISC微处理器两种。它们之间主要区别如表1所示。表1 RISC和CISC之间的主要区别指标RISCCISC指令集一个周期执行一条指令,通过简单指令的组合实现复杂操作;指令长度固定指令长度不固定,执行需要多个周期流水线流水线每周期前进一步指令的执行需要调用微代码的一个微

12、程序寄存器更多通用寄存器用于特定目的的专用寄存器Load/Store结构独立的Load和Store指令完成数据在寄存器和外部存储器之间的传输处理器能够直接处理存储器中的数据1.2.2 ARM处理器简介ARM有3种含义,它是一个公司的名称,是一类微处理器的通称,还是一种技术的名称。ARM公司是微处理器行业的一家知名企业,其设计了大量高性能、廉价、低耗能的RISC芯片,并开发了相关技术和软件。ARM处理器具有高性能、低成本和低功耗的特点,适用于嵌入式控制、消费/教育类多媒体、DSP和移动式应用等领域。ARM处理器的产品分为多个系列,包括ARM7、ARM9、ARM9E、ARM10E、ARM11和Se

13、curCore等。每个系列提供一套特定的性能来满足设计者对功耗、性能、体积的需求。SecurCore是独立的一个产品系列,是专门为安全设备而设计的。2 Qt开发工具简介Qt作为嵌入式Linux环境下图形用户界面的强大编成工具,能给用户提供精美图形界面所需要的所有元素,已经得到越来越广泛的应用。2.1 Qt概述Qt是一个跨平台的C+图形用户界面库,由挪威TrollTech公司开发,目前包括Qt/X11、基于Framebuffer的Qt/Embedded、快速开发工具Qt Designer以及国际化工具Qt Linguist等。人们所熟知的Linux下面的KDE环境就是基于Qt开发而成的。Qt支持

14、Unix和Linux系统以及Windows系统。Qt能以漂亮的用户界面,快速而有效地开发软件。专业版,用于创造成功地商业贸易方面的跨平台软件,技术支持可依赖于Troll Tech公司。Qt自由版已经成为用C+ GUI工具包在Unix上自由软件的开发的主流,并获得广泛的认可,它是Linux上流行的KDE桌面环境的基础。这意味着在Internet上有很多关于Qt编程的有用资源,比如Qt发布程序和一个动态的Qt编程人员的E-mail列表。Qt有广阔的应用前景,开发Qt绝对安全,Troll Tech公司将负责维护Qt,他们将持续地为最新的版本在公布给自由软件联盟方面提供合法保障。2.2 Qt主要特点Q

15、t的主要特点有:面向对象,很容易扩展,并且允许真正的组件编程;Qt对各个模块进行了良好的封装,使各模块可重用性较好;优良的跨平台特性, 使用Qt类编写的程序可以实现 “一次编码,到处编译”,极大的降低了跨平台开发的难度(丁丁等,2004);构件支持,对于对象间通信,Qt没有采用函数回调的方法,而是采用了一种全新并且可选的被称为“信号与槽”的对象间通信机制,通过一个对象信号的发射,另一个槽函数的响应,使各个对象之间的通信安全而且高效。Qt的这些特点使它非常适合于真正的构件编程,同时使各个组件之间的协同工作变得十分简单,并且 Qt是直接基于 Xlib的,不依赖 Motif 工具包,所以它的执行效率

16、比一般的基于平台的代码的执行效率要高。2.3 Qt编程机制简介1. Qt系统的信号与槽机制简介 信号/槽机制是Qt的一个中心特征并且也许是Qt与其它工具包的最不相同的部分。在图形用户界面编程中,我们经常希望一个窗口部件的一个变化被通知给另一个窗口部件。更一般地,我们希望任何一类的对象可以和其它对象进行通讯。较老的工具包使用一种被称作回调的通讯方式来实现同一目的。回调是指一个函数的指针,所以如果你希望一个处理函数通知你一些事件,你可以把另一个函数(回调)的指针传递给处理函数。处理函数在适当的时候调用回调(倪继利,2006)。回调有两个主要缺点。首先他们不是类型安全的。我们从来都不能确定处理函数使

17、用了正确的参数来调用回调。因此容易造成进程崩溃,另外一个问题是,回调这种方式紧紧的绑定了图形用户接口的功能元素,因而很难把开发进行独立的分类。Qt的信号与槽机制是不同的。Qt的信号与槽均以函数形式出现,Qt的窗口部件有很多预定义的信号,但我们也可以通过继承来加入我们自己的信号。槽就是一个可以被调用处理特定信号的函数。Qt的窗口部件有很多预定义的槽,但是通常的习惯是你可以加入自己的槽,这样你就可以处理你所感兴趣的信号。我们可以用connect()函数对需要的信号和槽进行连接。当对象的内部状态发生改变,信号就被发射。从某种意义上讲,它们也许对外面的世界感兴趣。这就是所有的对象通讯时所做的一切。它不

18、知道也不注意无论有没有东西接收它所发射的信号。当一个信号被发射,它所连接的槽会被立即执行,就像一个普通函数调用一样(见图2.1)。信号/槽机制完全不依赖于任何一种图形用户界面的事件回路。当所有的槽都返回后发射的信号也将返回。信号与插槽机制并不要求类之间互相知道细节,这样就可以相对容易的开发出代码可高重用的类(Matthias Dalheimer,2002)。 信号和槽的机制是类型安全的:一个信号的签名必须与它的接收槽的签名相匹配。(实际上一个槽的签名可以比它接收的信号的签名少,因为它可以忽略额外的签名。)因为签名是一致的,编译器就可以帮助我们检测类型不匹配。它以警告的方式报告类型错误,而不会使

19、系统产生崩溃。信号和槽是宽松地联系在一起的:一个发射信号的类不用知道也不用注意哪个槽要接收这个信号(Johan Thelin,2007)。Qt的信号和槽的机制可以保证如果你把一个信号和一个槽连接起来,槽会在正确的时间使用信号的参数而被调用。信号和槽可以使用任何数量、任何类型的参数。它们是完全类型安全的:不会再有回调核心转储(core dump)。你可以把许多信号和你所希望的单一槽相连,并且一个信号也可以和你所期望的许多槽相连。把一个信号和另一个信号直接相连也是可以的。(这时,只要第一个信号被发射时,第二个信号立刻就被发射。)总体来看,信号和槽构成了一个强有力的组件编程机制。如果一个类要使用信号

20、与槽机制,它就必须是从QObject或QObject的子类继承,而且类的定义必须加上Q_OBJECT宏。signals、slots和emit是Qt特有的关键字,分别用来表示信号、槽、和发送信号,移除这些关键字和预处理程序,就可以使用标准的C+编译器。槽同其他函数一样也具有访问权限,只是槽的访问权限决定了谁可以和它相连,如一个public slots:包含了任何信号都可以相连的槽(Andrew Krause,2007) 。一个protected slots:包含了只有这个类和它的子类的信号才能连接的槽。这就是说这些槽只是类的实现的一部分,而不是它和外界的接口。 一个private slots:包

21、含了只有这个类本身的信号可以连接的槽,甚至它的子类都没有获得连接的权利。2. Qt元对象系统Qt中的元对象系统是用来处理对象间通讯的信号/槽机制、运行时的类型信息和动态属性系统。它基于下列三类:QObject类、类声明中的私有段中的Q_OBJECT宏、元对象编译器(moc)。moc读取C+源文件。如果它发现其中包含一个或多个类的声明中含有Q_OBJECT宏,它就会给含有Q_OBJECT宏的类生成另一个含有元对象代码的C+源文件。这个生成的源文件可以被类的源文件包含(#include)到或者和这个类的实现一起编译和连接。 除了提供对象间通讯的信号和槽机制之外(介绍这个系统的主要原因),QObje

22、ct中的元对象代码实现其它特征: className()函数在运行的时候以字符串返回类的名称,不需要C+编译器中的本地运行类型信息(RTTI)的支持。 inherits()函数返回这个对象是否是一个继承于QObject继承树中一个特定类的类的实例。 tr()和trUtf8() 两个函数是用于国际化中的字符串翻译。 setProperty()函数和property()函数,这两个函数是用来通过名称动态设置和获得对象属性的。 metaObject()函数返回这个类所关联的元对象。 虽然使用QObject作为一个基类而不使用Q_OBJECT宏和元对象代码是可以的,但是如果Q_OBJECT宏没有被使用

23、,那么这里的信号和槽以及其它特征描述都不会被提供。根据元对象系统的观点,一个没有元代码的QObject的子类和它含有元对象代码的最近的祖先相同。举例来说就是,className()将不会返回你的类的实际名称,返回的是它的这个祖先的名称。故强烈建议QObject 的所有子类使用Q_OBJECT宏,而不管它们是否实际使用了信号、槽和属性(Jonathan Corbet, 2005)。 3 项目设计3.1 项目构想根据嵌入式Linux应用开发课程设计说明以及网上的一些介绍,我决定此次课程设计将制作一个简易的四则计算器。当今社会,计算器已经成了人们工作生活中必不可少的一种计算工具,有了计算器,人们在需

24、要算数的时候就会很快的得出答案,并且能保证结果的准确性。以前,人们有算盘之类的算数工具,但相比计算器而言就没那么直观、方便,还不易学习。计算器的发明无疑成了人们最好的帮手。因此,通过这样的启发,我决定自己亲手尝试做一个简易计算器,从而能够让自己了解计算器内部的程序结构。3.2 需求分析3.2.1 功能需求在程序设计中,通过设计、编制、调试一个模拟计算器的程序,加深对语法及语义分析原理的理解,并实现对命令语句的灵活应用。在程序设计中,可以用两种方法解决问题:一是传统的结构化程序设计方法,二是更先进的面向对象程序设计方法。而在面向对象程序设计中关键是如何将问题域中的实体(即日常所见的概念)抽取出来

25、,作为C+程序中的类,而属性与行为作为类的两类要素通常是必不可少的,甚至还应考虑类必须满足的约束。 我们日常生活的开支 大额数字或是多倍小数的计算都需要计算器的帮助处理数字的开方、正余弦都离不开计算器。虽然现在的计算器价格比较低廉,但是功能过于简单的不能满足个人需求,功能多的价格较贵,操作不便不说,很多功能根本用不到。所以,我们想到可不可以用自己的所学为自己设计开发一个属于自己的简单计算器来完成日常生活的需求。 计算器是日常生活中十分便捷有效的工具,能实现加、减、乘、除、开方、求倒数等简单运算的工具。要实现计算功能,可以用C+和Qt的知识编写程序来解决此问题。该计算器大大的降低了数字计算的难度

26、及提高了计算的准确度和精确度。该计算器使用非常简单和方便,对广大中小学生的学习有巨大帮助作用,也对在职人员的工作有点帮助作用。本文的程序设计设计工作环境为Fedora-VMware workstation、QtCreator,在程序设计中,采用了结构化与面向对象两种解决问题的方法。3.2.2 功能分析该计算器采用简单的四则运算模块。这一模块要求进行加减乘除运算。支持十进制的直接输入、计算,并设有清除键、等号键。当输入等号键时直接给出当前算式的运算结果。3.2.3 硬件需求GEC210开发板简介GEC210是一款高性能的Cortex A8核心板,它由广州粤嵌股份设计、生产和发行销售。它采用三星S

27、5PV210作为主处理器,运行主频可高1GHz。S5PV210内部集成了 PowerVR SGX540高性能图形引擎,支持3D图形流畅运行,并可流畅播放1080P大尺寸视频。GEC210主要采用了2.0mm间距的双排针,引出CPU大部分常用功能引脚,另外还根据S5PV210芯片的特性,分别引出了标准的miniHDMI接口,GEC210板载512M DDR2内存,可流畅运行Android, Linux和WinCE6等高级操作系统。它非常适合开发高端物联网终端,广告多媒体终端,智能家居,高端监控系统,游戏机控制板等设备。3.2.4 软件需求 要实现项目需求目标,完成项目任务,需要解决软件方案的确定

28、问题,以下详细列出了8个需要安装的软件。1.配置超级终端2.安装与配置DNW3.安装与配置虚拟机4.安装Linux操作系统5.实现Windows共享6.配置NFS服务7.配置FTP服务8.安装与配置交叉编译工具链3.2.5 程序流程图本项目为嵌入式计算器,具体流程图如下图2所示。图 2流程图4 嵌入式计算器的设计与实现本章内容主要为大家详细讲述一下嵌入式计算器的设计过程以及需要用到的一些程序代码。4.1 项目实施4.1.1 创建工程1.打开QtCreator,选择 File-New File or Project,然后在弹出的对话框中选择“其他控件”-“空的Qt项目”,然后进入下一步。2.定义

29、新工程的工程名并选择保存路径,然后进入下一步。3.选择创建于“桌面”,点击完成,即可完成新工程的创建。如图3所示。图3 系统工程图4.1.2 计算器程序的实现计算器程序主要分以下两部分工作:一是实现计算器的图形界面;二是实现按键事件和该事件对应的功能绑定,即信号和对应处理槽函数的绑定。1.计算器图形界面的实现通过分析计算器的功能我们可知,需要16个按键和一个显示框,同时考虑到整体的排布,还需要水平布局器和垂直布局器。通过组织这些类我们可以实现一个简单的带有数字09,可以进行简单四则运算且具有清屏功能的计算器。对于这些类的具体操作会在后面的代码中详细说明。2.信号和对应槽函数的绑定3.分析计算器

30、的按键我们可以把按键事件分为以下三类,一是简单的数字按键,4.主要进行数字的录入,这类按键包括按键09;二是运算操作键,用于输入数学运算符号,进行数学运算和结果的显示,这类按键包括“+”,“-”,“*”,“/”,“=”;三是清屏操作键,用于显示框显示信息的清除。5.进入刚才创建的空工程,双击左侧的Calculator.pro,在主编辑框中目前显示Calculator.pro的内容为空,如上图4.1所示。这是因为目前什么文件都没有添加的缘故。6.添加文件calculator.h7.在工程Calculator上面点击右键,然后点击Add New,选择添加C+ Header File,进入下一步后输

31、入文件名calculator.h,然后完成文件的添加。8.添加文件calculator.cpp和main.cpp9.与添加文件calculator.h的过程类似,只是在选择文件类型时选择为C+ Source File。完成后可以查看Calculator.pro文件的内容,整个工程的文件结构如图4所示。图4 系统工程图4.1.3 计算器程序的编译运行1.完成程序的编辑后,可以直接点击运行按钮,这时QtCreator会自动编译源程序并生成可执行程序。2.计算器在PC机上的界面如图5所示,可以进行简单的计算来测试计算器的功能。图5 计算器界面图3. 将其下载到目标机上运行,在此之前要先进行交叉编译。利用FTP登录到目标机,将应用程序下载到目标机的/home/plg/jisuanqi下。修改应用程序执行权限,最后运行应用程序。计算器应成功的在目标机中显示,此时便可对计算器做相应的测试工作,至此,项目全部完成。5 项目总结本文围绕用户的基本需求,提出了一个基于嵌入式Qt的计算器设计

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1