收藏 分销(赏)

用MATLAB制作简单计算器.doc

上传人:仙人****88 文档编号:9072411 上传时间:2025-03-12 格式:DOC 页数:17 大小:180.04KB 下载积分:10 金币
下载 相关 举报
用MATLAB制作简单计算器.doc_第1页
第1页 / 共17页
用MATLAB制作简单计算器.doc_第2页
第2页 / 共17页


点击查看更多>>
资源描述
安阳工学院电子信息与电气工程学院 《MATLAB编程与应用》课程大作业 题目:用MATLAB制作简单计算器 班级:电子信息工程(专升本) 教师成绩由以下评分标准累计得出 1、 设计和仿真结果正确,分析清晰合理。 40% 2、 大作业报告重点突出、阐述清晰。 30% 3、 陈述清晰正确、有说服力,能够正确回答问题。 30% 总分 (上述成绩由教师填写) 学生自评分值(该表格全部由学生填写) 任务 分值 (%) 个人贡献分值 (%) 姓名 姓名 张新建 李国斌 1 设计和仿真 50 30 20 2 报告 50 20 30 个人平均分值(%) 50 50 大作业总成绩(该表格“姓名”和“学号”由学生填写,“成绩”由教师填写) 姓名 张新建 李国斌 学号 13020730129 13020730109 成绩 用MATLAB制作简单计算器 1.计任务: 1、熟悉MATLAB的主要控件使用方法。 2、熟悉MATLAB的GUI设计流程。 2.设计方案 利用MATLAB GUI设计实现一个图形用户界面的计算器程序,要求实现: A.实现十进制数的加、减、乘、除、简单计算。 B. 科学计算函数,包括正弦、余弦、正切、(余切、开方、指数等函数运行。 C. 能够保存上次历史计算的答案,先是答案存储器中得内容。 D. 有清除键,能清除操作。 3.方案实施 通过MATLAB的gui程序设计较为简单,在gui设计中主要用到两种控件,显示框用到文本编辑框(edit text),说明框用到静态文本框(Static text),数字以及运算等按钮用到命令按钮(push button)。然后在通过各个按钮的回调函数,实现简单的计算功能。 4.方案施舍 首先用MATLAB GUI功能,在绘制一个静态文本框和一个文本编辑框,以及24个命令按钮,调整好各控件大小、颜色,整体布局如图所示: 图-1 一、布局GUI 1.打开Matlab,输入Guide 回车或者在工具栏上点击图标出现Guide 窗口: 图–2 2.然后双击“Blank GUI(Default)”出现GUI窗口 图-3 3.添加按钮 图-4 4.根据按钮的作用及视觉效果做一定的修改 把按钮的字符串大小、颜色进行设置,对按钮的位置进行排布,尽量使按钮集中在静态文本框下面。最终设置的静态文本框为白色,其他按钮均为分红色。 5.保存、添加功能函数 把做好的按钮及静态文本框保存后自动弹出Editor的M文本,对然后对相应的pushbutton添加功能函数。以下是相应按钮的功能函数。 (1)数字按键编写。 在function pushbutton1_Callback(hObject, eventdata, handles)下输入: textString = get(handles.text1,'String'); textString =strcat(textString,'0'); set(handles.text1,'String',textString) 这是使用句柄handles指向对象text1,并以字符串形式来存储数据文本框text1的内容,并存储数个“0”, 然后由set(handles.text1,'String','textString'在text1中输出。 同理,分别在function pushbutton2~10_Callback(hObject, eventdata, handles)下给1~9数字按键下编写此类程序。 (2).符号键: 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”功能实现。 (3)运算符“=”的编程: textString = get(handles.text1,'String'); ans =eval(textString); “eval”的作用是将符号表达式转换成数值表达式。 再由set(handles.text1,'String',ans)输出。 (4)按键“back”编程:即显示一个空字符: set(handles.text1,'String','') ; 按键“back”编程: textString = get(handles.text1,'String'); set(handles.text1,'String','') ; ss=char(textString); n=length(textString); textString=ss(1:w-1); %将w个字符串转成w-1个,即删除了末位字符 set(handles.text1,'String',textString) (5)按键“清空”:把静态文本框的字符清空,返回一个空格 set(handles.text1,'String','') (6)三角函数的编辑 function cos_Callback(hObject, eventdata, handles) textString=handles.text1; textString=cos(str2num(get(handles.text1,'String'))*pi/180); set(handles.text1,'String',num2str(textString)) (get(handles.text1,'String'))*pi/180是把角度转换为弧度,这样在编程环境中才能识别,cos才能起作用。然后执行set函数,把结果输出来。同理在sin,tan的回调函数中夜输入相应的函数,只需把textString=cos(str2num(get(handles.text1,'String'))*pi/180); 中的cos改为sin,tan即可 (7)按键“退出”:关闭计算器 close(gcf); 二、计算器的使用 加法运算(+): 图-5 按“=”后显示 图-6 平方运算: 图-7 按“=”后显示 图-8 5.通过本次实验实现十进制数的加、减、乘、除、简单计算对Matlab的操作有了进一步的认识和了解,通过多次的修改调查做出实验,验证了实验的正确性,大大的提高了我们对Matlab功能的认识,培养了我们的兴趣。 6.任务分工 张新建:主要负责设计和仿真; 李国斌:主要负责设计和实验报告的撰写。 三、附各按键的程序源代码: function pushbutton1_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String'); textString =strcat(textString,'0'); set(handles.text1,'String',textString) function pushbutton2_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String'); textString =strcat(textString,'1'); set(handles.text1,'String',textString) function pushbutton3_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String'); textString =strcat(textString,'2'); set(handles.text1,'String',textString) function pushbutton4_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String'); textString =strcat(textString,'3'); set(handles.text1,'String',textString) function pushbutton5_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String'); textString =strcat(textString,'4'); set(handles.text1,'String',textString) function pushbutton6_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String'); textString =strcat(textString,'5'); set(handles.text1,'String',textString) function pushbutton7_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String'); textString =strcat(textString,'6'); set(handles.text1,'String',textString) function pushbutton8_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String'); textString =strcat(textString,'7'); set(handles.text1,'String',textString) function pushbutton9_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String'); textString =strcat(textString,'8'); set(handles.text1,'String',textString) function pushbutton10_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String'); textString =strcat(textString,'9'); set(handles.text1,'String',textString) function pushbutton11_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String'); textString =strcat(textString,'+'); set(handles.text1,'String',textString) function pushbutton12_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String'); textString =strcat(textString,'-'); set(handles.text1,'String',textString) function pushbutton13_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String'); textString =strcat(textString,'*'); set(handles.text1,'String',textString) function pushbutton14_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String'); textString =strcat(textString,'/'); set(handles.text1,'String',textString) function pushbutton15_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String'); textString =strcat(textString,'.'); set(handles.text1,'String',textString) function pushbutton16_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String'); ans =eval(textString); set(handles.text1,'String',ans) function pushbutton17_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String'); textString =strcat(textString,'^2'); set(handles.text1,'String',textString) function pushbutton18_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String'); set(handles.text1,'String','') ; ss=char(textString); n=length(textString); textString=ss(1:w-1); set(handles.text1,'String',textString) function pushbutton19_Callback(hObject, eventdata, handles) set(handles.text1,'String','') function pushbutton20_Callback(hObject, eventdata, handles) close(gcf); 15
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服