基于gu科学计算器设计

上传人:第*** 文档编号:61927547 上传时间:2018-12-15 格式:PDF 页数:44 大小:326.72KB
返回 下载 相关 举报
基于gu科学计算器设计_第1页
第1页 / 共44页
基于gu科学计算器设计_第2页
第2页 / 共44页
基于gu科学计算器设计_第3页
第3页 / 共44页
基于gu科学计算器设计_第4页
第4页 / 共44页
基于gu科学计算器设计_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《基于gu科学计算器设计》由会员分享,可在线阅读,更多相关《基于gu科学计算器设计(44页珍藏版)》请在金锄头文库上搜索。

1、课课程程论论文文 论文题目:基于基于 GUIGUI 的科学计算器设计的科学计算器设计 学院:0000000000000000000 学生姓名:张 0000000000000 学号:200000000000000000000200000000000000000000 专业年级:0000000000000000000000000000000000000000000000 课程名称:工具软件 完成时间:00000000000000000000 成绩: 教师签字:0000000000 1 基于基于 GUI 的科学计算器设计的科学计算器设计 摘要:摘要:随着信息技术的发展,数据变得越来越繁杂,所以计算器

2、在我们日常生 活学习中扮演越来越重要角色。本文基于 MATLAB 设计的 GUI 科学计算器,改 进了以前功能较少的计算器, 添加了平方求和、 方差、 均值、 反三角函数、xy、 !n、ex等常用数学运算。此科学计算器具有实用性强、功能强大、易操作、 移植性好、占用资源少、执行效率高等优点。 关键字:关键字:MTALAB;GUI;科学计算器 1.引言引言 随着计算机科学和技术的发展,“计算的可视化”已成为科学计算的重要组 成部分。与此同时数值计算软件的发展与成熟, 在强调数值计算方法的原理、思 想和基本理论的同时, 适当淡化了算法的细节和繁杂的理论证明,并在一个通用 的软件平台上开展。 MAT

3、LAB 以强大的科学计算与可视化功能、 简单易用、 开放式可扩展环境, 成为计算机辅助设计和分析、算法研究和应用开发的基本工具和首选平台。 MATLAB 的附带功能图形用户界面(GUI)更具有友好性、直观性、易懂性的 优点而被广泛应用。 本文根据人们需要方便快捷,通俗易懂的原则,设计了一个科学计算器的图 像用户界面,在 GUI 上实现了加减乘除、三角函数、反三角函数、进制转化、 逻辑与或非运算、求和运算、求解方差和均值等常见基本数学运算功能。 2.设计过程设计过程 Matlab 的程序设计较为简便,首先建立一个 GUI 工程,然后用可视化界面, 设计出科学计算器的大致外观,为每一个按键设置预计

4、的功能,然后就是将对应 的函数写到框架生成的程序中,然后每个按键就可以实现对应的功能。 GUI 设计的概括流程图: 建立建立边框和显示文本边框和显示文本 输入的编辑框输入的编辑框 (设定默认值设定默认值)建立输出窗口建立输出窗口 建立响应按钮建立响应按钮建立建立退出退出按钮按钮 建立建立 GUI 窗口窗口 (用句柄语言控制用句柄语言控制) 2 设计的 GUI 界面如下图所示: .总结及总结及心得体会心得体会 本文是借助 Matlab 设计的 GUI 来实现科学计算器的众多功能,实现过程较 为简单。首先建立一个 GUI 工程,然后用可视化界面,设计出计算器的大致外 观, 为每一个按键设置预计的功

5、能,然后就是将对应的函数写到框架生成的程序 中,然后每个按键就可以实现对应的功能。 在设计的过程中还是遇到很多的困难的,首先就是程序的问题,搭建出计算 器的外观以后,生成的框架程序是一个看似非常杂乱的程序,每个按键对应什么 功能根本看不出来,于是我在原来的工程中修改了每一个按键的名称。编程的过 程中,主要就是对全局变量和句柄的控制,对相应的值赋值以后,要返回给主程 序,然后就可以在 static text 中显示出来的。句柄是一个很重要的概念,基本所 有的操作都是通过句柄实现的,MATLAB 在创建每一个图形对象时,都为该对 象分配唯一的一个值,称其为图形对象句柄(Handle)。句柄是图形对

6、象的唯一标 识符,不同对象的句柄不可能重复和混淆。例如:set(句柄,属性名 1,属性值 1, 属性名 2, 属性值 2, ), 基本所有关联到图形操作的函数语句都是这样的格式: 函数名(句柄,进行的操作) ,因此句柄是一个图形的名称,是对图形进行操作 的媒介。 本文设计的科学计算器具有实用性强、功能强大、易操作、移植性好、占用 3 资源少、执行效率高等优点。但是,也存在不足的方面; (1)可视化界面没有达 到最佳效果; (2)对于方差的求解只能求解数组类,不具连续性。以后还需要进 一步完善和改进。 通过这次 Matlab 的 GUI 实验设计, 使我对 matlab 的操作与 GUI 界面设

7、计有 了更深一步的理解和认识,学习到了以前未曾了解的知识,使我受益良多,收获 颇丰。 最后,感谢冯老师这学期的授课,在此说声:谢谢!谢谢! .参考文献参考文献 【1】 常巍,谢光军,黄朝峰.MATLABR2007 基础与提高.北京:电子工业 出版社 2007.9 【2】 刘卫国.MATLAB 程序设计与应用第 2 版.北京:高等教育出版社, 2006.7 【3】 张德喜等.MATLAB 程序设计与教程.北京:中国铁道出版社,2006.6 【4】 韩旭里,万中,刘金山.数值分析与实验.北京:科学出版社,2006 【5】 董氏虹,高志,余啸海. Matlab,工具箱原理与应用.北京:国防工业出 版

8、社,2004. 【6】 秦襄培.matlab 图像处理与界而编程宝典M.北京:电子工业出版 社,2009. 【7】 郑斌祥,席裕庚,杜秀花.Matlab 曲线绘制J.自动化学报,2004, 41(1):41-43. 【8】 范明,孟小峰.Matlabd 的 GUI 设计M.北京:机械工业出版社,2001. 【9】 史东辉,蔡庆牛,倪志伟等.基于 GUI 的图像绘制方法J.计算机研究 与发展,2000,37(9) : 1094-1100. .附附 录录 科学科学计算器计算器 GUI 设计设计的的源代码:源代码: function varargout = jisuanqi4(varargin) g

9、ui_Singleton = 1; gui_State = struct(gui_Name,mfilename, . gui_Singleton,gui_Singleton, . gui_OpeningFcn, jisuanqi4_OpeningFcn, . gui_OutputFcn,jisuanqi4_OutputFcn, . 4 gui_LayoutFcn, , . gui_Callback,); if nargin end if nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:); else gui_mainfc

10、n(gui_State, varargin:); end % End initialization code - DO NOT EDIT % - Executes just before jisuanqi4 is made visible. function jisuanqi4_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; javaFrame = get(hObject,JavaFrame); javaFrame.setFigureIcon(javax.swing.ImageIcon(ic

11、on1.jpg); global op op=zeros(1,7); handles.exp= ; guidata(hObject, handles); function varargout = jisuanqi4_OutputFcn(hObject, eventdata, handles) varargout1 = handles.output; % - Executes on button press in num7. function num7_Callback(hObject, eventdata, handles) global op m=7; n=m .; a=op; str=ge

12、t(handles.xianshi,string); if a(5)%初始状态 if (a(1) i=i+1; res=floor(abs(b)/8); end d(i)=res; c=sprintf(%d,fliplr(d); end function xy_Callback(hObject, eventdata, handles) global op a=op; if isequal(a(1 2),0 0) return end a(5 6)=0 1; b=get(handles.xianshi,string); num=str2val(b,a); exp=handles.exp; if

13、a(4) if a(3) exp(end)=; else a(3)=1; exp=exp num2str(num) ; 17 end else a(4)=0; set(handles.secndf,visible,off) set(handles.radiobutton1,enable,on) set(handles.radiobutton2,enable,on) set(handles.radiobutton3,enable,on) if a(3) exp(end)=(-1); else a(3)=1; exp=exp num2str(num) (-1); end end a(5)=0; o

14、p=a; handles.exp=exp; guidata(hObject,handles) function minus_Callback(hObject, eventdata, handles) global op a=op; b=get(handles.xianshi,string); num=str2val(b,a); exp=handles.exp; if a(3) exp(end)=-; else a(3)=1; exp=exp num2str(num) -; end a(3 5 7)=1 0 0; 18 op=a; handles.exp=exp; guidata(hObject

15、,handles); function multiply_Callback(hObject, eventdata, handles) global op a=op; b=get(handles.xianshi,string); num=str2val(b,a); exp=handles.exp; if a(3) exp(end)=*; else exp=exp num2str(num) *; end a(3 5 7)=1 0 0; op=a; handles.exp=exp; guidata(hObject,handles); function divide_Callback(hObject,

16、 eventdata, handles) global op a=op; b=get(handles.xianshi,string); num=str2val(b,a); exp=handles.exp; if a(3) exp(end)=/; else exp=exp num2str(num) /; end 19 a(3 5 7)=1 0 0; op=a; handles.exp=exp; guidata(hObject,handles); function numa_Callback(hObject, eventdata, handles) global op m=A; a=op; str=get(handles.xianshi,string); if a

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号