1、应用软件毕业课程设计报告13504228汪龙(此文档为word格式,下载后您可任意编辑修改!)应用软件课程设计报告设计题目: Matlab计算器 班 级: 软件1011 姓 名: 雷军 学 号: 4 目 录1.设计目标2.设计内容3.设计思想 4.设计说明5.设计步骤6.程序主要代码7. 难点分析8. 使用说明9. 总结计算器(Matlab)1 设计目标因为matlab具有强大的科学计算功能,相比较vb而言的它界面友好性不如vb,但他的计算功能优于vb,而且自己没学vb,但对matlab很感兴趣所以我选择了利用matlab做了一个简易的计算器,2设计内容以简易计算器为例,通过对简单应用软件计算
2、器的设计,编制、调试,实现简单的加,减,乘,除,正弦,余弦等运算,以学习应用Matlab编写程序原理,加深对Matlab的学习及应用。3. 设计思想基于Matlab中GUI界面的设计,通过运用文本框和按钮命令,编辑文本框和按钮的callback,OutputFcn,CreateFcn,ButtonDownFcn等属性去连接和调用matalb自带的函数去实现各种运算,而且又结合matlab语音合成理论对每个按钮赋予了不同的声音,最后应用matlab和vc混合编程基本理论去生成可执行文件进而可以独立于matlab环境独立运行。4. 设计说明(1)包含的功能有:加、减、乘、除运算,开方、三角函数等功
3、能。(2)计算器上数字09为一个控件数组使用相同的句式结构,加、减、乘、三角函数为一个控件数组使用相同的句式结构,小数点和括号(使用了相同的语法结构。其余的控件退格(DEL)、退出、归零(C)各使用了不同的语句(3)其中包含了输入显示和结果显示(4)计算功能基本上是用系统内部函数。(5)“C”按钮可以清除所有已输入的数据从头计算,DEL按钮可以清除上一次输入的数据,退出按钮可以退出该计算器(6)该计算器不仅能实现连加、连乘、连除,还可以实现混合运算(7)值得自己高兴的是自己给计算器的每个按键加上了声音5. 设计步骤(1)打开GUI界面如(2)在生成的设计界面中加入控件,得到登陆应用界面和计算器
4、界面。如图:(3)为控件编辑框编辑Tag(只是附带上了计算器的控件),如图:按钮名称Tag用途0pushbutton10按键01Pushbutton1按键12Pushbutton2按键23Pushbutton3按键34Pushbutton4按键45Pushbutton5按键56Pushbutton6按键67Pushbutton7按键78pushbutton8按键89pushbutton9按键9.xiao按键 .+add加-plus减或负号chen乘chu除Cguining清零DELdele删除退出tuichu退出=result等于sinsinSin三角函数coscosCos三角函数tantan
5、tan三角函数sqrtsqrt开方(kuohu)kuojhu1edit1edit1显示输入的数据edit2edit2显示结果pi圆周率角度jiaoduhuanhuduMatalb只认弧度,因此这功能是将输入的角度转化成弧度进行运算(4)对每个控件和文本框进行程序编辑见6主要程序代码(5)调试修改程序在此期间对程序和界面进行了多次修改调试才完成最终的计算器界面(6)生成可执行文件:下面以win7系统进行说明1.要求:电脑必须安装matalb和相兼容的vc2.我安装的是matlab2011a和vs2011express这两者是相互兼容的3.具体步骤:(1)打开matlab在命令窗口输入mbuild
6、 -setup(2) 在输入mcc m 文件名.m就可生成可执行文件生成了可执行文件a1.exe计算器6. 程序主要代码登陆界面的程序function varargout = a1(varargin)gui_Singleton = 1;gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, a1_OpeningFcn, . gui_OutputFcn, a1_OutputFcn, . gui_LayoutFcn, , . gui_Callback, );if nargin
7、 & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);end if nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);end 以上是matalb自带的初始化function a1_OpeningFcn() varargout = a1_OutputFcn( a1_user_Callback( a1_user_CreateFcn( a1_code_Callback(
8、a1_code_CreateFcn( a1_cancer_Callback( a1_ok_Callback( figure1_ResizeFcn( a1_code_KeyPressFcn( figure1_CreateFcn( varargout = calculator(varargin)% 我的计算器,重要运用了文本框和按钮。_ gui_Singleton = 1;gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, calculator_OpeningFcn, .
9、 gui_OutputFcn, calculator_OutputFcn, . gui_LayoutFcn, , . gui_Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);end if nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);end function calculator_OpeningFcn() are
10、returned to the command line.function varargout = calculator_OutputFcn( button press in pushbutton1.function pushbutton1_Callback( button press in pushbutton2.function pushbutton2_Callback( button press in pushbutton3.function pushbutton3_Callback( button press in pushbutton4.function pushbutton4_Ca
11、llback( button press in pushbutton5.function pushbutton5_Callback( button press in pushbutton6.function pushbutton6_Callback( button press in pushbutton7.function pushbutton7_Callback( button press in pushbutton8.function pushbutton8_Callback( button press in pushbutton9.function pushbutton9_Callbac
12、k( button press in pushbutton10.function pushbutton10_Callback( edit1_Callback( a future version of MATLAB% , after setting all properties.function edit1_CreateFcn( a future version of MATLAB% Windows.% See ISPC and COMPUTER.if ispc set( edit2_Callback( a future version of MATLAB% , after setting al
13、l properties.function edit2_CreateFcn( a future version of MATLAB% Windows.% See ISPC and COMPUTER.if ispc set( add_Callback( button press in plus.function plus_Callback( button press in chen.function chen_Callback( button press in chu.function chu_Callback( button press in tuichu.function tuichu_Ca
14、llback( guining_Callback( xiao_Callback(=1:1000; % 每个数字 1000 个采样点表示d0=1+sin(17*n);% 对应行频列频叠加wavplay(d0,8192); % 产生拨号音%连接当前的字符串和1,如果按了1键的话。 result_Callback( button press in dele.function dele_Callback( a future version of MATLAB% menu1_Callback( a future version of MATLAB% , after setting all propert
15、ies.function figure1_CreateFcn( a future version of MATLAB% , after setting all properties.function uipanel2_CreateFcn( a future version of MATLAB% button press in sin.function sin_Callback( (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% button press in cos.function co
16、s_Callback( a future version of MATLAB% button press in tan.function tan_Callback( (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% button press in sqrt.function sqrt_Callback( a future version of MATLAB% button press in kuohu.function kuohu_Callback( a future version of
17、 MATLAB% button press in kuohu1.function kuohu1_Callback( a future version of MATLAB% button press in pi.function pi_Callback( a future version of MATLAB% button press in jiaoduhuachenghudu.function jiaoduhuachenghudu_Callback( a future version of MATLAB% (96)的时候没改语句之前,当输入)出现了sin)将前面的字符覆盖后来经过尝试将(的ca
18、llback改为handles.current_str=strcat(handles.current_str,();guidata(hObject, handles);解决了这个问题。(4)兼容性问题:1.在64位机上运行出来的程序在32位机上运行不了不兼容,然后我在自己电脑上做的64位机器的,又去计算机中心做的xp32位机的2.win7生成的文件xp机器不能运行,自己做了两份一份是win7 64位的,一份是xp32位,win7 32位的没有做,因为没有找到合适的电脑:生成可执行文件必须安装matalb和相兼容的vc,而且很多人安装的vc都是精简版的没有comomn这个文件,不能生成可执行文件
19、,因此没有win7 32位的8. 使用说明调试运行:在没有安装matlab的机器上安装必须将生成的exe文件以及原文件还有相对应的“MCRinstaller.exe“文件拷到相同的文件夹进行运行例如:以xp系统为例:首先将xp32位拷到某一位置,先点击运行MCRinstaller.exe,完成以后在运行a1.exe即可使用我所做的计算器第一步:点击运行MCRinstaller.exe出现以下界面点击next,让安装程序运行完第二步点击运行a1.exe文件出现以下界面大概十多秒钟出现登陆界面用户名:汪龙密码:0942之后进入计算器界面进行一些运算如下图:计算器计算说明:1.三角函数.开方函数使用
20、时必须加括号 2.由于matalb在计算三角函数时只认弧度制所以计算时要将角度换成弧度在计算器中我加了角度这个按钮进行实现9 总结应用软件课程设计到此已告一段落,经过自己的努力,在将近一个多月的时间里自己慢慢摸索一天天积累终于完成了课程设计。从中学到很多有用的知识,也积累了不少宝贵的经验。从一开始的陌生,在不断的翻阅书籍学习中开始渐渐的有所了解,虽然在此次应用课程设计只是设计了一个计算器,但也体会到了matalbGUI的博大精深。想精通GUI,今后还需多下功夫。本次课程设计我完成了一个简易计算器应用软件,在此期间,遇上了不少的技术难题,但是经过努力,通过查找资料,难题还是一个个被解决了,自己很庆幸的是结合matlab语音合成的理论用matalb采集了自己声音的频谱,给每个按键结合自己声音的频谱赋予了声音,从中学到了许多课堂上没学到的东西,这是很值得高兴的。经过设计的各个环节,从中学到了很多,锻炼了matlab编程能力,培养了自己的耐心。这样对我以后在学习中得到很好的锻炼,在本次应用软件设计期间对简易计算器的设计虽然大体实现各个控件的功能,但仍存在许多的不足与漏洞,例如当输入出错时不能报错等还待以后的不断学习进一步完善。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1