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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

嵌入式系统之基于QT的简单计算器.docx

1、嵌入式系统之基于QT的简单计算器嵌入式系统课程设计报告题目:基于QT的简单计算器专业:计算机科学与技术 班级: 姓名: 学号: 指导老师: 日期:2012-12-26 第一章 前言1.1设计背景计算器(calculator;counter)一般是指“电子计算器”,计算器是能进行数学运算的手持机器,拥有集成电路芯片,其结构简单,比现代电脑结构简单得多,可以说是第一代的电子计算机(电脑)。计算器这一小小的程序机器实际上是从计算机中割裂出来的衍生品,虽然功能较单一,但因其操作模式的方便快捷和价格的低廉,携带方便等特点,已经被广泛应用于工程、学习、商业贸易等日常生活中,极大的方便了人们对于数字的整合运

2、算,成为人们生活和办公中的必备品之一,深得使用者的青睐。1.2设计目的本程序是基于linux下的嵌入式开发,所用软件为QT Creator,程序虽然简单,但是通过本程序的设计,可以进一步了解嵌入式系统开发工具以及熟悉linux环境下的常用命令,为以后进入嵌入式领域打下一定的基础。通过该计算器程序软件的设计,培养独立思考、综合运用所学有关相应知识的能力,更好地巩固C+程序语言设计和高级程序设计课程学习的内容,掌握工程软件设计的基本方法,强化上机动手编程能力,体验理论与实践相结合的过程。第二章 功能需求分析2.1功能描述本次设计的计算器在功能上大致与Windows系统自带的计算器程序相似,对于所设

3、计的科学计算器,其功能大致为可以进行加(+)、减(-)、乘(*)、除(/)、简单算术计算。由于接触QT时间还不太久,所以目前只能简单地实现这些功能,相信随着以后逐步的了解,本程序将实现更多的功能。第三章 开发工具简介3.1 QT简介由于本次设计的小程序是用QT Creator所设计的,所以我觉得有必要先介绍下QT开发工具的背景。Qt是一个1991年由奇趣科技开发的跨平台C+图形界面应用程序开发框架。它既可以开发GUI程式,也可用于开发非GUI程式,比如控制台工具和服务器。Qt是面向对象语言,易于扩展,并且允许组件编程。QT所具有的优势是:优良的跨平台特性,Qt支持下列操作系统: Microso

4、ft Windows 95/98, Microsoft Windows NT, Linux, Solaris, SunOS, HP-UX, Digital UNIX (OSF/1, Tru64), Irix, FreeBSD, BSD/OS, SCO, AIX, OS390,QNX 等等。 面向对象:Qt 的良好封装机制使得 Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是非常 方便的。 Qt 提供了一种称为 signals/slots 的安全类型来替代 callback,这使得各个元件 之间的协同工作变得十分简单。 丰富的 API:Qt 包括多达 250 个以上的 C+ 类,还提供

5、基于模板的 collections, serialization, file, I/O device, directory management, date/time 类。甚至还包括正则表达式的处理 功能。支持 2D/3D 图形渲染,支持 OpenGL大量的开发文档。第四章 详细设计过程4.1开发环境的搭建本次所用系统环境为Ubuntu 10.04 LTS,内核为Ubuntu搭建QT环境大致过程为:1安装g+,ubuntu默认是不带g+的,如果不安装的话,后面是无法进行桌面版的qt应用程序进行编译的,在终端中执行以下命令:sudo apt-get install g+2. Qt桌面版的安装3安

6、装arm-linux-gcc (配置环境变量gedit /.bashrc 添加路径export PATH=$PATH:/opt/FriendlyARM/toolschain/4.7.4/bin)使配置文件立即生效:source /.bashrc或者注销logout 最好重启(arm-linux-gcc -v查看版本信息)4安装编译库文件5. 配置Qt编译ARM的环境(解压编译时间较长,具体过程不再赘述)4.2 程序实现对于界面的设计,采用的网格布局作为主布局,然后使用其addWidget函数添加部件,最后实现了基本的简易计算机的界面。程序最终界面如下:首先创建一个工程项目,名字为jsq,接着编

7、写各个功能部件函数,这里仍使用信函和槽连接机制,我们没有使用信号和槽编辑器,而是直接在.cpp文件中添编写其代码来实现,首先在.h文件中对各个按键进行声明, 再到.cpp文件中编写相应的代码实现其功能。例如窗体控制程序MainWidget.cpp,按钮程序myButton.cpp,计算功能则在OutputString.cpp程序代码中实现。软件工作界面如下:对于计算器,在界面上,点击相应的按钮,信号会随着点击传递到相应的槽函数中,并实现函数的功能,经过处理得到相应的结果。并能够将结果输出。下面依次介绍按钮及所连接的槽函数相应的连接信号语句:Button *clearAllButton = cr

8、eateButton(tr(Clear), SLOT(Clear (); /用createButton函数定义除法按钮并且与除法槽函数建立 Button *divisionButton = createButton(tr(367), SLOT(multiplicativeOperatorClicked(); /定义乘法按钮 Button *timesButton = createButton(tr(327), SLOT(multiplicativeOperatorClicked(); /定义减法按钮 Button *minusButton = createButton(tr(-), SLOT(

9、additiveOperatorClicked(); /定义加法按钮 Button *plusButton = createButton(tr(+), SLOT(additiveOperatorClicked(); /定义等号按钮Button *equalButton = createButton(tr(=), SLOT(equalClicked(); /实现代码 如下createButton函数为自己定义的函数/定义createButton函数 需要字符串参数 和 一个 字符指针/在此函数内连接信号与槽Button *Calculator:createButton(const QString

10、 &text, const char *member) Button *button = new Button(text); connect(button, SIGNAL(clicked(), this, member); return button;这样每次为每个部件分配内存空间的时候就已经建立了相应的槽函数。4.3计算功能的实现本程序计算功能主要在OutputString.cpp中实现的,主要代码如下:QString& myOutputString:getMyString(void) QString static ZeroStr(0); if(myString.isEmpty() retu

11、rn ZeroStr; static QString topStr; QString myStr; topStr = myString.pop(); if(isOperator(topStr) &(myString.count()=3) QString secondNumStr = myString.pop(); QString opeStr = myString.pop(); QString firstNumStr = myString.pop(); double firstNum = firstNumStr.toDouble(); double secondNum = secondNumS

12、tr.toDouble(); double equal = 0; if(opeStr = *) equal = firstNum * secondNum; else if(opeStr = /) equal = firstNum / secondNum; else if(opeStr = +) equal = firstNum + secondNum; else if(opeStr = -) equal = firstNum - secondNum; QVariant var1(equal); myStr = var1.toString(); myString.push(myStr); if(

13、topStr != =) myString.push(topStr); topStr = myString.top(); return topStr;void myOutputString:deleteAll(void) myString.clear();int myOutputString:isNumStr(QString& Str) bool ok = 0; Str.toInt(&ok, 10); if(ok = 1) return 1; return 0;第五章 程序测试输入一个操作数:5输入操作符:+输入另一个操作数:7点击“=”号按钮,会出现结果:最后点击“Clear”按钮,可以清除

14、之前的数据:测试程序基本无误,目前只能完成简单的四则运算。第六章 课程总结这次的简易计算机的编写,能实现基本的加减乘除算法,也能实现小数的加减乘除,通过此次的QT学习以及上学期的C+学习,深刻的了解到设计程序并不是一件简单的事情。并且通过网上了解到QT的强大功能,虽然现在本人的技术及知识还很贫乏,但是相信通过现在及日后的学习一定可以达到自己想要达到的水平。 就这次的课程设计报告来说,从最初的相当陌生到现在的可以理解使用。但还有一些问题没有彻底理解。此次课程设计并没有完全构成当初想的那样,但认为还是基本满足了老师的要求。对于以后学习嵌入式也打下了一定的基础,最后也谢谢何高明老师上课时耐心的讲解。参考文献1 邹思轶嵌入式 Linux 设计与应用M北京:清华大学出版社,2002:318-3252 张石.ARM嵌入式系统教程M.北京:机械工业出版社,2012:191-261.3 闫锋欣,曾泉人.C+ GUI QT4编程(第二版)M.北京:电子工业出版社,2010:108-232.4 闫放莺基于嵌入式 Linux 软件平台技术的研究D西安:西北大学,20065 郭兵嵌入式软件开放式集成开发平台体系结构研究D成都:电子科技大学,20026 谭浩强.C+面向对象程序设计M.北京:清华大学出版社,2006.69-111.

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

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