版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、工程设计报告设计题目: 基于Matlab的简易计算器 学 院: 专 业: 班 级: 学 号: 姓 名: 电子邮件: 日 期: 2015年12 月 成 绩: 指导教师: 装订线 西 安 电 子 科 技 大 学电 子 工 程 学 院工 程 设 计 任 务 书学生姓名 指导教师 职称 学生学号 专业 题目 基于Matlab的简易计算器 任务与要求任务如下:利用MATLAB GUI设计实现一个图形用户界面的计算器程序,实现:A.实现十进制数的加、减、乘、除、简单计算。B. 科学计算函数,包括正弦、余弦、正切、余切、开方、指数等函数运行。C. 有清除键,能清除操作。 要求如下:A熟练掌握Matlab G
2、UI界面的设计与应用B最终计算器能够实现预期的相关功能开始日期 2015年 11月 日 完成日期 2016年1月 日 课程设计所在单位 本表格由电子工程学院网络信息中心 编辑录入 . 摘要 基于Matlab GUI计算器设计时利用GUI的创建图像用户界面进行计算器设计。设计计算器时,主要是考虑到计算器的易用性、功能的常用程度进行计算器界面与功能的设计。通过调整控件和文本的布局及颜色,使界面简单大方、布局合理,达到界面友好的效果。计算器设计时主要利用到get和set两个函数进行各个控件属性值的传递和设置。计算器实现的功能有:数字09和小数点的输入显示
3、,平方开方和对数的输入显示。进行四则运算、正弦函数、余弦函数、正切函数以及反正弦函数、反余弦函数、反正切函数的计算等等。最后运行调试,实现基于Matlab GUI的计算器的设计。关键词:Matlab GUI 计算器AbstractsBased on Matlab GUI calculator design using the user interface to create images of GUI calculator design.Design calculator, mainly considering the ease of use, function calculators cal
4、culator interface and function of the common level of design.By adjusting the control and the layout of the text and color, make the interface simple and easy, rational layout, to achieve the effect of friendly interface. Calculator design used to get and set two main function for each attribute val
5、ue transfer and control Settings.Calculator the functions are: 0 9, according to input and decimal square root and logarithm of input.Arithmetic, sine function and cosine function, tangent function and the arcsine function,arccosine function, the calculation of the arctangent function and so on.Fina
6、lly running debugging, implementation design based on Matlab GUI calculator.Keywords: Matlab GUI calculator目录摘要3Abstracts3目录4第一章 绪论51.MATLAB简介:52本文安排:5第二章 GUI设计界面62.1打开GUI72.2.添加按钮72.3.根据按钮的作用及视觉效果做一定的修改72.4.保存、添加功能函数82.4.1 数字键编写82.4.2 符号键的编写82.4.3 运算符“=”的编写92.4.4 按键“back”的编写92.4.5 按键“清空”的编写92.4.6 按
7、键“退出”的编写9第三章 计算器的使用和抽样检验103.1 除法运算()103.2 平方运算(2)103.3 函数cos (/3) 的计算113.4 函数arcsin(/3) 的计算113.5 以2为底的对数(log 2)的计算123.6 总结:12第四章 特殊函数的源代码及总结13函数代码及思路:13总结:问题及其优化14第五章 心得体会16参考文献17 第一章 绪论1.MATLAB简介:MATLAB是matrix和laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计
8、算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
9、2本文安排:本文第一章是绪论部分,主要是关于Matlab的一个北京介绍,以及对本文的一个大体上的内容上的安排。本文第二章侧重介绍了如何运用Matlab中GUI界面功能设计一个合理的、实用的简易计算器,并且介绍了如何在设计好的计算器中添加功能函数,实现预期的相关功能。本文第三章粗略的介绍的计算器的基本使用方法以及相关的一些计算器功能实现效果的检验,并对检验结果作简单的分析介绍。本文第四章主要对部分特殊函数的源代码作简单的分析与介绍,以及总结程序在设计过程中发现的问题及其相应的优化方案。本文第五章是对本次作业的心得体会。本文最后是相关的参考文献第二章 GUI设计界面计算器的效果图:图1图22.1打
10、开GUI输入Guide 回车或者在工具栏上点击图标打开Guide 窗口:图 32.2.添加按钮图 42.3.根据按钮的作用及视觉效果做一定的修改双击按钮(Puch Button)进入按键属性修改显示字符串大小、字体和颜色,然后对按钮的位置进行排布,尽量使按钮集中在静态文本框下面。图52.4.保存、添加功能函数 把做好的按钮及静态文本框保存后自动弹出Editor的M文本,对然后对相应的pushbutton添加功能函数。以下是相应按钮的功能函数。2.4.1 数字键编写在function pushbutton1_Callback(hObject, eventdata, handles)下输入:tex
11、tString = get(handles.text1,String);textString =strcat(textString,0);set(handles.text1,String,textString)这是使用句柄handles指向对象text1,并以字符串形式来存储数据文本框text1的内容,并存储数个“0”,然后由set(handles.text1,String,textString在text1中输出。同理,分别在function pushbutton210_Callback(hObject, eventdata, handles)下给19数字按键下编写此类程序。2.4.2 符号键
12、的编写function pushbutton12_Callback(hObject, eventdata, handles)textString = get(handles.text1,String);textString =strcat(textString,);set(handles.text1,String,textString)strcat的作用是将两个字符串连接起来,就是在已输入的存储数据textString后添加“”进行运算。然后执行set(handles.text1,String,textString)。符号键-、*、/与的运算函数类似。“平方运算”,主要是由“2”功能实现。2.
13、4.3 运算符“=”的编写textString = get(handles.text1,String);ans =eval(textString);“eval”的作用是将符号表达式转换成数值表达式。再由set(handles.text1,String,ans)输出。2.4.4 按键“back”的编写textString=get(handles.text1, String)w=length(textString)t=char(textString)textString=t(1:w-1) %将w个字符串转成w-1个,即删除了末位字符set(handles.text1,String,textStri
14、ng)2.4.5 按键“清空”的编写set(handles.text1,String,)2.4.6 按键“退出”的编写close(gcf);第三章 计算器的使用和抽样检验3.1 除法运算() 图 6图 7由结果可知,除法运算功能正确实现。3.2 平方运算(2)图 8图 9由结果可知,乘方运算功能正确实现。3.3 函数cos (/3) 的计算 图 10图 11由结果可知,cos()运算功能正确实现。3.4 函数arcsin(/3) 的计算 图 12图 13由结果可知,arcsin()运算功能正确实现。3.5 以2为底的对数(log 2)的计算图 14 图 15调试的时候发现一个问题,发现以2为底
15、的对数(log 2)计算需要先输入数字,然后点击log2按钮键直接可以计算出正确的结果,但是不能按照普通计算器那样先安log2按钮键然后输入要计算的数字,再安=键显示结果,说明书写的程序还有一些bug,但是我调试后仍然没有能够发现问题所在,所以该功能还需谨慎使用。13.6 总结:在对计算器其他功能键进行的检验结果显示,该计算器除了log2的计算功能存在bug外,其他功能计算的结果均与实际结果相吻合,计算器的功能实现的基本完好且能实现较大数值的运算,计算结果用科学技术法表示。第四章 特殊函数的源代码及总结函数代码及思路:4.1 按键“”:通过get函数获得输入的字符,函数strread获得输入字
16、符,并用sqrt函数计算结果,set函数进行显示输出textString = get(handles.text1,String);if(strcmp(textString,0)=1) set(handles.text1,String,0) ;elsea = strread(textString, %f);a=sqrt(a);set(handles.text1,String,a)end4.2 按键“sin”通过get函数获得输入的字符,函数strread获得输入字符,并用sin函数计算结果,set函数进行显示输出:textString = get(handles.text1,String);te
17、xtString = strcat(textString,sin();set(handles.text1,String,textString)4.3 按键“cos” :textString = get(handles.text1,String);textString = strcat(textString,cos();set(handles.text1,String,textString)4.4 按键“tan” : textString = get(handles.text1,String);if(strcmp(textString,1.57)=1)|(strcmp(textString,-1
18、.57)=1) set(handles.edit1,String,inf);elsetextString = strcat(textString,tan();set(handles.text1,String,textString)end4.5 按键“arcsin” : textString = get(handles.text1,String);textString = strcat(textString,asin();set(handles.text1,String,textString)4.6 按键“arccos” : textString = get(handles.text1,Stri
19、ng);textString = strcat(textString,acos();set(handles.text1,String,textString)4.7 按键“arctan” : textString = get(handles.text1,String);textString = strcat(textString,atan();set(handles.text1,String,textString)4.8 按键“log2” : textString = get(handles.text1,String);if(strcmp(textString,0)=1) set(handles
20、.text1,String,error) ;elsea = strread(textString, %f);a=log2(a);set(handles.text1,String,a)end总结:问题及其优化1.本次课程设计中开始时遇到的问题是数据进行清零后,再输入其他的数据,清零后的字符0仍会保留,会影响其他数据,解决办法是将数据用空格替换掉就实现了清空: set(handles.text1,String,)2.在定义正弦余弦等函数的时候,需要注意其定义域,值域的问题。3开始时我的“sin” 函数编程如下:textString = get(handles.text1,String);a = strread(textString, %f); a=sin(a);set(handles.text1,String,a)%这样只能在输入完数据后按“sin”键实现运算,很不直观。修改后可以实现按下sin键后显示 “sin(”再输入要运算的数据之后加上“)”按下“=”键后就可以运算出结果了,这样相对更直观明了。textString = get(handles
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024物业管理与业主委员会协作合同
- 2025年《机场航站楼改造合同》
- 2025年度窗帘墙布行业电子商务平台建设与合作合同4篇
- 二零二五年度大学宿舍物业管理外包合同4篇
- 二零二五版园艺苗木研发与销售合同集3篇
- 2025年度挖掘机运输途中环境保护与废弃物处理合同
- 2025年度二零二五虚拟现实游戏开发与运营合同4篇
- 2025年度苗木市场调研与信息共享合同范本4篇
- 2025年企业债务重组和解合同
- 二零二五年度数据中心能源优化搭建合同4篇
- 【传媒大学】2024年新营销
- 乳腺癌的综合治疗及进展
- 【大学课件】基于BGP协议的IP黑名单分发系统
- 2025届广东省佛山市高三上学期普通高中教学质量检测(一模)英语试卷(无答案)
- 自身免疫性脑炎课件
- 人力资源管理各岗位工作职责
- 信阳农林学院《新媒体传播学》2023-2024学年第一学期期末试卷
- 2024建筑公司年终工作总结(32篇)
- 信息安全意识培训课件
- 2024年项目投资计划书(三篇)
- 配电安规课件
评论
0/150
提交评论