- 20
- 0
- 约1.06万字
- 约 21页
- 2018-06-01 发布于福建
- 举报
基于matlab计算器编程附代码
1.需求分析
本次的实验要求是设计一个计算器,主要功能如下:
(1)实现基本数学运算(加减乘除等),而且要能进行混合运算
(2)实现部分函数功能,如求平方根、求倒数等
(3)能实现小数运算
界面与标准计算器界面类似
根据要求以及以前的学习情况,决定使用matlab进行编程。Matlab强大的计算功能以及便捷的GUI设计,可以较为简便的实现所要求的功能。按照要求,数据输入和输出支持小数点,支持四则混合运算,决定使用如下几个数据进行分析:
(1+3)*5
Sqrt(4)
1/2
Sin4
Matlab的程序设计较为简便,用GUI设计出一个计算器的模型,然后系统会自动生成一个框架,在框架中,写入每一个按键对应的程序就可以实现功能。
3.调式分析
编程的过程中遇到的问题不是很多,基本就是找要实现各个功能的子程序,通过上网和去图书馆,加上自己的编写,终于实现了实验要求的功能。但是有一点很重要,matlab不支持中文,所以从路径到文件名必须是全英文的,不然就无法识别。此外,给每个按键命名也是很重要的,不然在生成的程序框架里面,就无法识别各个按键的作用,编写程序的时候也就无法做到一一对应。
4.使用说明
程序的使用比较简单,由于是可视化界面,直接打开matlab,然后建立一个GUI工程,再打开生成的fig文件,就是一个计算器的界面,直接按照市面上卖的计算器的方法,按键使用即可。
5.测试结果
计算结果为20
4sqrt=2
Sin4结果为
1/2=0.5
经过计算,这些结果均与实际结果相吻合,计算器的功能实现的较为完好。
6.心得体会
本次试验由于不限制语言,于是计算功能强大,操作简便的matlab变成了首选,matlab的GUI设计,操作是较为简单的,首先建立一个GUI工程,然后用可视化界面,设计出计算器的大致外观,为每一个按键设置预计的功能,然后就是将对应的函数写到框架生成的程序中,然后每个按键就可以实现对应的功能。
在设计的过程中还是遇到很多的困难的,首先就是程序的问题,搭建出计算器的外观以后,生成的框架程序是一个看似非常杂乱的程序,每个按键对应什么功能根本看不出来,于是我在原来的工程中修改了每一个按键的名称。编程的过程中,主要就是对全局变量和句柄的控制,对相应的值赋值以后,要返回给主程序,然后就可以在static text中显示出来的。句柄是一个很重要的概念,基本所有的操作都是通过句柄实现的,MATLAB在创建每一个图形对象时,都为该对象分配唯一的一个值,称其为图形对象句柄(Handle)。句柄是图形对象的唯一标识符,不同对象的句柄不可能重复和混淆。set(句柄,属性名1,属性值1,属性名2,属性值2,…)function varargout = untitled(varargin)
% Last Modified by GUIDE v2.5 29-Jun-2009 16:06:25
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct(gui_Name, mfilename, ...
gui_Singleton, gui_Singleton, ...
gui_OpeningFcn, @untitled_OpeningFcn, ...
gui_OutputFcn, @untitled_OutputFcn, ...
gui_LayoutFcn, [] , ...
gui_Callback, []);
if nargin ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
function untitled_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes u
原创力文档

文档评论(0)