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

上传人:新** 文档编号:487760136 上传时间:2023-11-28 格式:DOCX 页数:11 大小:25.89KB
返回 下载 相关 举报
嵌入式系统之基于QT的简单计算器_第1页
第1页 / 共11页
嵌入式系统之基于QT的简单计算器_第2页
第2页 / 共11页
嵌入式系统之基于QT的简单计算器_第3页
第3页 / 共11页
嵌入式系统之基于QT的简单计算器_第4页
第4页 / 共11页
嵌入式系统之基于QT的简单计算器_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《嵌入式系统之基于QT的简单计算器》由会员分享,可在线阅读,更多相关《嵌入式系统之基于QT的简单计算器(11页珍藏版)》请在金锄头文库上搜索。

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

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

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

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

5、zation , 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 .安装arm-linux-gcc (配置

6、环境变量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 *clearAHButton =

8、 cr6ateButton (tr (Clear), SLOT (Clear ();/用createButton函数定义除法按钮并且与除法槽函数建立Button *divisionButtonSLOT(multiplicativeOperatorClicked();/定义乘法按钮Button *timesButtonSLOT(multiplicativeOperatorClicked();/定义减法按钮Button minusButtonButton plusButtonSLOT (additiveOperatorClicked();SLOT(additiveOperatorClicked (

9、);/定义加法按钮/定义等号按钮createButton(tr (367),createButton (tr (327),createButton(tr( createButton (tr (+),Button *equalButton = createButton (tr (=),SLOT(equalClicked ();/实现代码如下createButton函数为自己定义的函数/定义createButton函需要字符串参和一个字符指针Button *Calculator:createButton(const QString Stext, const char *member)Button

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

11、pStr;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. toDoubleO ;double secondNum = secondNumStr. toDouble();double equal

12、 = 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 varl(equal);myStr = varl. toStringO ;myString. push(myStr);if (topStr != =)myString.push (topSt

13、r);topStr = myString. top ();return topStr;void myOutputString:deleteAll(void)myString. clear ();int myOutputString:isNumStr(QStringfe Str)bool ok = 0;Str. tolnt (&ok, 10);if (ok = 1)return 1; return 0;第五章程序测试输入一个操作数:5输入操作符:+输入另一个操作数:7点击“二”号按 钮,会出现结果:最后点击“ Clear 按钮,可以清除之前的数据:测试程序 基本无误,目前只能完成简单的四则运算第

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

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号