迷你计算器设计1
《嵌入式系统》课程设计说明书 迷你计算器设计 院 、 部: 学生姓名: 指导教师: 专业: 班级: 完成时间: 湖南工学院嵌入式系统课程设计课题任务书湖南工学院嵌入式系统课程设计课题任务书 学院: 电气与课 题名称 迷你计算器设计 一、目标一、目标 在 GEC210 开发板上使用 QT 设计一个迷你计算器。 二、任务二、任务 根据控制要求,明确设计任务,拟定设计方案与进度计划,运用所学的理论知识, 进行迷你计算器原理设计、程序框架设计、创新设计,提高理论知识、系统调试能力、 分析问题与解决问题的能力。主要内容包括: 1.嵌入式交叉开发环境搭建。 2.Linux 操作系统的移植。 3.根据需求确定外围模块设计并完成相应驱动开发。 4.应用程序原理及框架设计。 5.Linux 下应用程序编写及移植。 内 容 及 任 务 6.系统总体功能调试。 7.编写设计说明书。 三、要求三、要求 1.迷你计算器的功能显示界面示例如下: 2.能够完成十进制数的加、减、乘、除等简单计算。 3.对不正确的表达式能指出其错误。 [1]马忠梅,ARM (2)能够实现开方,乘方,返回的功能; (3)定能够实现数值的记忆存储功能 (4)当输入错误时,输出错误; (5)可以一键回复计算器到初始状态. 1.3项目意义及特点 我们日常生活的开支, 大额数字或是多倍小数的计算都需要计算器的帮助, 处理数字的开方、正余弦都离不开计算器。虽然计算器现在价格比较低廉,但是 功能过于简单的不能满足个人需求,功能多的价格昂贵,操作不便不说,很多功 能根本用不到。 所以,我们可以运用自己所学的知识设计一款满足日常需求的简 1 易计算器。 在本次课程设计中比较好的把 C++与 Qt 结合起来使用。Qt 作为面向对象的 软件开发工具它使用信号 Signal/槽 slot 机制来进行对象间的通信。信号/槽 机制是 Qt 的一个中心特征并且也许是 Qt 与其它工具包的最不相同的部分。 这样 便解决了我们在用户界面上的操作如单击某个按钮与内部对象之间的信号传输。 Qt 运行速度快、执行效率高再加上它提供了一组更容易理解的 GUI 类信号与槽 易使用它所拥有的插入体系结构使得我们可以将代码加载到一个应用中而无需 进行重新编译或重链接等优点为我们本次设计增色不少能使图形界面看起来更 加舒服使用起来更加灵活。 2 2需求分析 2.1需求分析一 在程序设计中,通过设计、编制、调试一个模拟计算器的程序,加深对语法 及语义分析原理的理解,并实现对命令语句的灵活应用 在程序设计中,可以用 两种方法解决问题: 一是传统的结构化程序设计方法, 二是更先进的面向对象程 序设计方法。 而在面向对象程序设计中关键是如何将问题域中的实体 (即日常所 见的概念) 抽取出来,作为 C++程序中的类, 而属性与行为作为类的两类要素通 常是必不可少的,甚至还应考虑类必须满足的约束。 我们日常生活的开支,大额数字或是多倍小数的计算都需要计算器的帮助, 处理数字的开方、正余弦都离不开计算器。虽然现在的计算器价格比较低廉,但 是功能过于简单的不能满足个人需求,功能多的价格较贵,操作不便不说,很多 功能根本用不到。所以, 我们想到可不可以用自己的所学为自己设计开发一个属 于自己的简单计算器来完成日常生活的需求。 计算器是日常生活中十分便捷有效的工具,能实现加、减、乘、除、 开方、 求倒数等简单运算的工具。要实现计算功能,可以用 C++和 Qt 的知识编写程序 来解决此问题。 该计算器大大的降低了数字计算的难度及提高了计算的准确度和 精确度。 该计算器使用非常简单和方便, 对广大中小学生的学习有巨大帮助作用, 也对在职人员的工作有点帮助作用。本文的程序设计设计工作环境为 Linux +QT Creator,在程序设计中,采用了结构化与面向对象两种解决问题的方法。 2.2可行性分析 可行性分析计算器是日常生活中非常便捷有效的工具, 它具有普通计算和科学计 算, 能实现加减乘除等普通功能,还可以实现算是运算,并且可以进行进制装 换,不再局限于十进制,他大大的提高了我们的效率,节省了时间,可促进科技 的发展, 还可以用来存储算式, 可以方便下次使用, 采用 Qt 编写,Qt designer 设计的界面美观,还可以用拖拽功能进行设计控件的位置、大小、属性、结构等 功能, 这样在编写代码时就不用浪费时间对控件进行声明等代码了。 这降低了 程 序员的难度,提高了程序员的效率,并且上手快,具有一定的可行性。技术经济 分析是研究技术领域的经济问题和经济规律的科学, 是研究一定技术条件下如何 提高经济效果的科学,是技术与经济的交叉。在技术上,主要是采用 linux, 可 以进行复杂的数据库操作, 进行算是的增、 删、 改、 查等功能。 用 Qt 编写, 3 有些类似 C++, 但大多数都是 Qt 封装好的函数。在 linux 中安装 Qt 软件, 配置环境变量,并安装 Qt 插件。从而用 Qt 进行制作界面,做出的效果既美 观又快捷方便。使用 Qt 具有良好美观的界面,必要的信息存储和和较好的健 壮性,使用人员能够快捷简单的进行操作,可以快捷的获得计算结果 给人们带 来方便,对人们的生活有很大的帮助。 4 3系统设计 3.1系统流程图 系统流程图如下所示: 图 1: 系统流程图 3.2 模块设计 3.2.1基本功能模块 1)当用户单击“+“或“-“按钮时,系统将会调用 additiveOperatorClicked() 槽,additiveOperatorClicked()实现代码如下: void Widget::additiveOperatorClicked() { QPushButton *clickedButton = qobject_cast(sender()); QString clickedOperator = clickedButton-text(); double operand = ui-display-text().toDouble(); 5 if (!pendingMultiplicativeOperator.isEmpty()) { if (!calculate(operand, pendingMultiplicativeOperator)) { abortOperation(); return; } ui- display-setText(QString::number(factorSoFar)); operand = factorSoFar; factorSoFar = 0.0; pendingMultiplicativeOperator.clear(); } if (!pendingAdditiveOperator.isEmpty()) { if (!calculate(operand, pendingAdditiveOperator)) { abortOperation(); return; } ui-display-setText(QString::number(sumSoFar)); } else { sumSoFar = operand; } pendingAdditi