版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、嵌入式系统课程设计报告题目:基于QT的简单计算器专业:计算机科学与技术班级:姓名:学号:指导老师:日期:2012-12-26第一章前言1.1设计背景计算器(calculator ; counter ) 般是指“电子计算器”,计算器是能进 行数学运算的手持机器,拥有集成电路芯片,其结构简单,比现代电脑结构简单 得多,可以说是第一代的电子计算机(电脑)。计算器这一小小的程序机器实际上 是从计算机中割裂出来的衍生品,虽然功能较单一,但因其操作模式的方便快捷 和价格的低廉,携带方便等特点,已经被广泛应用于工程、学习、商业贸易等日 常生活中,极大的方便了人们对于数字的整合运算,成为人们生活和办公中的必
2、备品之一,深得使用者的青睐1.2 设计目的本程序是基于 linux 下的嵌入式开发,所用软件为 QT Creator, 程序虽然简 单,但是通过本程序的设计, 可以进一步了解嵌入式系统开发工具以及熟悉 linux 环境下的常用命令,为以后进入嵌入式领域打下一定的基础。通过该计算器程序软件的设计,培养独立思考、综合运用所学有关相应知识的能力,更好地巩固C+程序语言设计和高级程序设计课程学习的内容, 掌握工程软件设计的基本方法,强化上机动手编程能力,体验理论与实践相结合 的过程。第二章 功能需求分析2.1 功能描述本次设计的计算器在功能上大致与 Win dows系统自带的计算器程序相似,对 于所设
3、计的科学计算器,其功能大致为可以进行加 (+) 、减(-) 、乘 (*) 、除 (/) 、 简单算术计算。由于接触 QT时间还不太久,所以目前只能简单地实现这些功能, 相信随着以后逐步的了解,本程序将实现更多的功能。第三章 开发工具简介3.1 QT简介由于本次设计的小程序是用 QT Creator 所设计的,所以我觉得有必要先介 绍下QT幵发工具的背景Qt是一个1991年由奇趣科技幵发的跨平台 C+图形界面应用程序幵发框架它既可以幵发GUI程式,也可用于幵发非 GUI程式,比如控制台工具和服务器。Qt是面向对象语言,易于扩展,并且允许组件编程。QT所具有的优势是:优良的跨平台特性,Qt支持下列
4、操作系统:Microsoft Windows95/98, Microsoft WindowsNT, 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图形渲染,支持Ope nGL大量的幵发文档。第四章详细设计过程4.1开发环境的搭建本次所用系统环境为 Ubuntu 10.04 LTS,内核为Ubuntu搭建QT环境大致过程为:1 .安装g+, ubuntu默认是不带g+的,如果不安装的话,后面是无法进行桌面版的qt应用程序进行编译的,在终端中执行以下命令:sudo apt-get install g+2. Qt 桌面版
6、的安装3安装 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 函数 添加部件,最后实现了基本勺简易计算机勺界面。程序最终界面如下: 首先
7、创建一个工程项目,名字为 jsq ,接着编写各个功能部件函数,这里仍使 用信函和槽连接机制,我们没有使用信号和槽编辑器,而是直接在 .cpp 文件 中添编写其代码来实现,首先在 .h 文件中对各个按键进行声明 , 再到 .cpp 文 件中编写相应勺代码实现其功能。例如窗体控制程序 MainWidget.cpp ,按钮 程序 myButton.cpp, 计算功能则在 OutputString.cpp 程序代码中实现。软件 工作界面如下: 对于计算器,在界面上,点击相应勺按钮,信号会随着点击传递到相应勺槽 函数中,并实现函数勺功能,经过处理得到相应勺结果。并能够将结果输出。 下面依次介绍按钮及所连
8、接勺槽函数 相应勺连接信号语句:Button *clearAllButton = createButton(tr(Clear), SLOT(Clear ();/ 用 createButton 函数定义除法按钮并且与除法槽函数建立Button *divisionButtonSLOT(multiplicativeOperatorClicked();/ 定义乘法按钮Button *timesButton SLOT(multiplicativeOperatorClicked();/ 定义减法按钮Button *minusButton SLOT(additiveOperatorClicked();/ 定
9、义加法按钮createButton(tr(367),createButton(tr(327),createButton(tr(-),createButton(tr(+),Button *plusButtonSLOT(additiveOperatorClicked();/ 定义等号按钮SLOT(equalClicked();Button *equalButton = createButton(tr(=),/实现代码 如下createButton 函数为自己定义的函数/ 定义 createButton 函数需要字符串参数和 一个 字符指针/ 在此函数内连接信号与槽QString &text, co
10、nst charButton *Calculator:createButton(const*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
11、(myString.isEmpty()return 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
12、 = secondNumStr.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-325
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 46372-2025飞轮储能电站调试导则
- 蛋白质过敏病的护理
- 2025年黄山市徽城投资集团有限公司招聘11人模拟试卷附答案解析
- 2025下半年广东深圳市坪山区教育局面向2026应届毕业生招聘教师76人备考题库带答案解析
- 2026年网络预约出租汽车驾驶员从业资格考试题库及完整答案1套
- 2026“梦想靠岸”招商银行南宁分行冬季校园招聘备考题库带答案解析
- 2025北京丰台教委第二批人才引进(含博士后出站人员)招聘工作人员23人模拟试卷附答案解析
- 2025国家电投集团水电产业平台公司筹备组人员选聘笔试模拟试卷附答案解析
- 2025广东佛山市技师学院招聘事业编制工作人员18人历年真题汇编带答案解析
- 2026秋季中国电信集团有限公司正式校园招聘历年真题汇编带答案解析
- 2025云南石林国有资本投资集团有限公司及下属公司招聘30人笔试考试参考试题及答案解析
- 输变电工程建设现行主要质量管理制度、施工与验收质量标准目录-2026年2月版-
- 十字阀组步骤详解课件
- 人教部编版六年级语文下册 14 文言文二则 【名校教案集体备课】
- DB32∕T 4307-2022 党政机关办公楼(区)物业管理服务规范
- 小学阅读兴趣小组记录
- (高清正版)JJF(浙)1090—2014薄片千分尺校准规范
- 司法所培训课件
- 某农村生活污水治理工程监理实施细则
- OPRP确认记录表
- 提升机安装验收表01
评论
0/150
提交评论