⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calculatormain.m

📁 一个简单的计算器,用MATLAB开发
💻 M
字号:
function fig = calculatormain()
%主文件

%全局变量
global presize;   %精度
global musicpath;    %音乐文件路径
global musicflag     %是否播放音乐
presize=1;
musicflag=1;
musicpath='music.wav';


hmain = figure('Units','points', ...
	'Color',[0.925490196078431 0.913725490196078 0.847058823529412], ...
	'MenuBar','none', ...
	'Name','多功能计算器', ...
	'NumberTitle','off', ...
	'Position',[181.5 168.75 389.25 235.5], ...
	'RendererMode','manual', ...
   'Resize','off',...
   'Tag','main',...
   'closerequestfcn','exitcal(findobj(''tag'',''main''))',...
   'createfcn','a=wavread(''music.wav'');sound(a);');                  %播放音乐文件
hmenufile=uimenu('label','(&F)文件',...
      'tag','menufile');
hsubopen=uimenu(hmenufile,'label','打开',...
      'callback','openimg');
hsubsave=uimenu(hmenufile,'label','保存',...
      'callback','saveimg');
hsubopt2= uimenu(hmenufile,'Label','退出', ...
   'Tag','uimenu1',...
   'callback','exitcal(findobj(''tag'',''main''))');
hmenuopt= uimenu('Label','(&O)选项','Tag',...
   'Subuimenu1','Accelerator','O');
hsubopt1= uimenu(hmenuopt,'Label','设置...', ...
   'Tag','uimenu1',...
   'callback','setopt');
   %'callback','setopt(presize,musicflag,musicpath)');                  不足道这个为什么不行
hsubdraw=uimenu(hmenuopt,'label','播放音乐',...
   'callback','play');
hsubdrawinput=uimenu(hmenuopt,'label','画图输入',...
   'callback','drawinput');

hmenuhlp = uimenu('Label','(&H)帮助', ...
   'Tag','help');
hsubhlp1 = uimenu(hmenuhlp,'Label','关    于', ...
   'Tag','about',...
   'callback','about;');
hsubhlp4 = uimenu(hmenuhlp,'Label','帮助主题', ...
   'Tag','aboutmain',...
   'callback','!多功能计算器使用说明.txt');
hsubhlppaper=uimenu(hmenuhlp,'label','查看论文',...
   'callback','!多功能计算器的实现.doc');
hsubhlp2 = uimenu(hmenuhlp,'Label','我的主页', ...
   'Tag','web',...
   'callback','web http://www.freewebs.com/ahei');
hsubhlp3 = uimenu(hmenuhlp,'Label','写信给我', ...
   'Tag','mail',...
   'callback','mailto:ahei080210114@hotmail.com');

heditmain = uicontrol('Units','points', ...
   'BackgroundColor',[1 1 1], ...
   'foregroundcolor',[0 0 1],...
   'ListboxTop',0,...
   'fontsize',10, ...
	'Position',[8.25 207 116.25 23.25], ...
   'Style','edit',...
   'fontweight','bold', ...
   'HorizontalAlignment','left', ...
   'Tag','EditTextmain',...
   'tooltipstring','在这里输入算式计算结果或者输入函数画图',...
   'callback','str2num(get(gcbo,''String''))');

hbtn1 = uicontrol('FontWeight','bold','Units','points', ...
	'ListboxTop',0, ...
	'Position',[9 176.25 28.5 28.5], ...
	'String','1', ...
   'Tag','Pushbutton1',...
   'callback','dispnum(findobj(gcf,''Tag'',''EditTextmain''),1)');
hbtn2 = uicontrol('FontWeight','bold',...
   'Units','points', ...
	'ListboxTop',0, ...
	'Position',[37.5 176.25 28.5 28.5], ...
	'String','2', ...
   'Tag','Pushbutton2',...
   'callback','dispnum(findobj(gcf,''Tag'',''EditTextmain''),2)');
hbtn3 = uicontrol('FontWeight','bold','Units','points', ...
	'ListboxTop',0, ...
	'Position',[66 176.25 28.5 28.5], ...
	'String','3', ...
   'Tag','Pushbutton3',...
   'callback','dispnum(findobj(gcf,''Tag'',''EditTextmain''),3)');
hbtn4 = uicontrol('FontWeight','bold',...
   'Units','points', ...
	'ListboxTop',0, ...
	'Position',[9 147.75 28.5 28.5], ...
	'String','4', ...
   'Tag','Pushbutton4',...
   'callback','dispnum(findobj(gcf,''Tag'',''EditTextmain''),4)');
hbtn5 = uicontrol('FontWeight','bold',...
   'Units','points', ...
	'ListboxTop',0, ...
	'Position',[37.5 147.75 28.5 28.5], ...
	'String','5', ...
   'Tag','Pushbutton5',...
   'callback','dispnum(findobj(gcf,''Tag'',''EditTextmain''),5)');
hbtn6 = uicontrol('FontWeight','bold','Units','points', ...
	'ListboxTop',0, ...
	'Position',[66 147.75 28.5 28.5], ...
	'String','6', ...
	'Tag','Pushbutton6','callback','dispnum(findobj(gcf,''Tag'',''EditTextmain''),6)');
hbtn7 = uicontrol('FontWeight','bold',...
   'Units','points', ...
	'ListboxTop',0, ...
	'Position',[9 119.25 28.5 28.5], ...
	'String','7', ...
   'Tag','Pushbutton7',...
   'callback','dispnum(findobj(gcf,''Tag'',''EditTextmain''),7)');
hbtn8= uicontrol('FontWeight','bold',...
   'Units','points', ...
	'ListboxTop',0, ...
	'Position',[37.5 119.25 28.5 28.5], ...
	'String','8', ...
   'Tag','Pushbutton8',...
   'callback','dispnum(findobj(gcf,''Tag'',''EditTextmain''),8)');
hbtn9 = uicontrol('FontWeight','bold',...
   'Units','points', ...
	'ListboxTop',0, ...
	'Position',[66 119.25 28.5 28.5], ...
	'String','9', ...
   'Tag','Pushbutton9',...
   'callback','dispnum(findobj(gcf,''Tag'',''EditTextmain''),9)');
hbtn0 = uicontrol('FontWeight','bold',...
   'Units','points', ...
	'ListboxTop',0, ...
	'Position',[9 90.75 28.5 28.5], ...
	'String','0', ...
   'Tag','Pushbutton0',...
   'callback','dispnum(findobj(gcf,''Tag'',''EditTextmain''),0)');
hbtnplus = uicontrol('FontWeight','bold','Units','points', ...
	'FontWeight','bold', ...
	'ListboxTop',0, ...
	'Position',[37.5 90.75 28.5 28.5], ...
	'String','+','tooltipstring','加号',...
	'Tag','Pushplus','callback','dispsymb(findobj(gcf,''Tag'',''EditTextmain''),''+'')');
hbtnminus = uicontrol('FontWeight','bold',...
   'Units','points', ...
	'FontWeight','bold', ...
	'ListboxTop',0, ...
	'Position',[66 90.75 28.5 28.5], ...
   'String','----',...
   'tooltipstring','减号',...
   'Tag','Pushminus',...
   'callback','dispsymb(findobj(gcf,''Tag'',''EditTextmain''),''-'')');
hbtnmul = uicontrol('FontWeight','bold',...
   'Units','points', ...
	'FontWeight','bold', ...
	'ListboxTop',0, ...
	'Position',[9 62.25 28.5 28.5], ...
   'String','*',...
   'tooltipstring','乘号',...
   'Tag','Pushmul',...
   'callback','dispsymb(findobj(gcf,''Tag'',''EditTextmain''),''*'')');
hbtnover = uicontrol('FontWeight','bold',...
   'Units','points', ...
	'FontWeight','bold', ...
	'ListboxTop',0, ...
	'Position',[37.5 62.25 28.5 28.5], ...
   'String','/',...
   'tooltipstring','除号',...
   'Tag','Pushover',...
   'callback','dispsymb(findobj(gcf,''Tag'',''EditTextmain''),''/'')');
hbtnresult = uicontrol('FontWeight','bold',...
   'Units','points', ...
	'FontWeight','bold', ...
	'ListboxTop',0, ...
	'Position',[94.5 176.25 28.5 28.5], ...
	'String','=', ...
   'Tag','Pushresult',...
   'tooltipstring','按这个按扭得出运算结果,不信试试',...
   'callback','result(findobj(gcf,''Tag'',''EditTextmain''),findobj(gcf,''Tag'',''EditTextmain''));');
h1 = uicontrol('Units','points', ...
	'FontWeight','bold', ...
	'ListboxTop',0, ...
	'Position',[94.5 90.75 28.5 28.5], ...
	'String','tan', ...
	'Tag','Pushminus', ...
   'TooltipString','正切',...
   'callback','dispsymb(findobj(gcf,''Tag'',''EditTextmain''),''tan('')');
h1 = uicontrol('Units','points', ...
   'FontWeight','bold', ...
   'ListboxTop',0, ...
	'Position',[94.5 62.25 28.5 28.5], ...
	'String','ctan', ...
	'Tag','Pushresult', ...
   'TooltipString','余切',...
   'callback','dispsymb(findobj(gcf,''Tag'',''EditTextmain''),''atan('')');
h1 = uicontrol('Units','points', ...
   'FontWeight','bold', ...
	'ListboxTop',0, ...
	'Position',[94.5 119.25 28.5 28.5], ...
	'String','cos', ...
   'Tag','Pushbutton9',...
   'tooltipstring','余玄',...
   'callback','dispsymb(findobj(gcf,''Tag'',''EditTextmain''),''cos('')');
h1 = uicontrol('Units','points', ...
   'FontWeight','bold', ...
	'ListboxTop',0, ...
	'Position',[94.5 147.75 28.5 28.5], ...
	'String','sin', ...
   'Tag','Pushbutton6',...
   'tooltipstring','正玄',...
   'callback','dispsymb(findobj(gcf,''Tag'',''EditTextmain''),''sin('')');
h1 = uicontrol('Units','points', ...
   'FontWeight','bold', ...
	'ListboxTop',0, ...
	'Position',[66 62.25 28.5 28.5], ...
   'String','.',...
   'tooltipstring','小数点',...
   'Tag','Pushbutton3',...
   'callback','dispsymb(findobj(gcf,''Tag'',''EditTextmain''),''.'')');
h1 = uicontrol('Units','points', ...
	'FontWeight','bold', ...
	'ListboxTop',0, ...
	'Position',[94.5 33.75 28.5 28.5], ...
	'String',')', ...
	'Tag','Pushresult', ...
   'TooltipString','右括号',...
   'callback','dispsymb(findobj(gcf,''Tag'',''EditTextmain''),'')'')');
h1 = uicontrol('Units','points', ...
	'FontWeight','bold', ...
	'ListboxTop',0, ...
	'Position',[37.5 33.75 28.5 28.5], ...
	'String','<-----', ...
	'Tag','Pushover', ...
   'TooltipString','删除一个字符',...
   'callback','cancel(findobj(''tag'',''EditTextmain''))');
h1 = uicontrol('Units','points', ...
	'FontWeight','bold', ...
	'ListboxTop',0, ...
	'Position',[9 33.75 28.5 28.5], ...
	'String','Reset', ...
	'Tag','Pushmul', ...
   'TooltipString','删除所有字符',...
   'callback','set(findobj(gcf,''tag'',''EditTextmain''),''string'','' '');');
h1 = uicontrol('Units','points', ...
   'ListboxTop',0, ...
   'FontWeight','bold', ...
	'Position',[66 33.75 28.5 28.5], ...
	'String','(', ...
   'Tag','Pushbutton3',...
   'tooltipstring','左括号',...
   'callback','dispsymb(findobj(gcf,''Tag'',''EditTextmain''),''('')');
h1 = uicontrol('Units','points', ...
   'ListboxTop',0, ...
   'FontWeight','bold', ...
	'Position',[66 5.25 28.5 28.5], ...
   'String',',',...
   'tooltipstring','逗号',...
   'Tag','Pushbutton3',...
  'callback','dispsymb(findobj(gcf,''Tag'',''EditTextmain''),'','')');
h1 = uicontrol('Units','points', ...
	'FontWeight','bold', ...
	'ListboxTop',0, ...
	'Position',[9 5.25 28.5 28.5], ...
	'String','Mod', ...
	'Tag','Pushmul', ...
   'TooltipString','求余',...
   'callback','dispsymb(findobj(gcf,''Tag'',''EditTextmain''),''rem('')');
h1 = uicontrol('Units','points', ...
	'FontWeight','bold', ...
	'ListboxTop',0, ...
	'Position',[37.5 5.25 28.5 28.5], ...
	'String','exp', ...
	'Tag','Pushover', ...
   'TooltipString','e的x次方' ,...
   'callback','dispsymb(findobj(gcf,''Tag'',''EditTextmain''),''exp('')');
h1 = uicontrol('Units','points', ...
	'FontWeight','bold', ...
	'ListboxTop',0, ...
	'Position',[94.5 5.25 28.5 28.5], ...
	'String','log', ...
	'Tag','Pushresult', ...
   'TooltipString','求自然对数,若要求一般对数,请在它后面输入数字',...
   'callback','dispsymb(findobj(gcf,''Tag'',''EditTextmain''),''log('');'); 
haxes = axes('Units','pixels', ...
	'CameraUpVector',[0 1 0], ...
   'Color',[0.925490196078431 0.913725490196078 0.847058823529412], ...
   'Tag','axes',...
   'box','on',...
   'Position',[205 24 184 247], ...
   'CameraUpVector',[0 1 0], ...
	'DataAspectRatioMode','manual', ...
	'Layer','top', ...
	'WarpToFill','off', ...
	'XLim',[0.5 320.5], ...
	'XLimMode','manual', ...
	'XTickMode','manual',...
	'YDir','reverse', ...
	'YLim',[0.5 200.5], ...
   'YLimMode','manual',...
   'XColor',[0 0 0],...
   'visible','off', ...
   'YColor',[0 0 0], ...
   'ZColor',[0 0 0],...
   'createfcn','rgb=imread(''picture.bmp'');image(rgb);grid off;box on;');
htext = uicontrol('Units','points', ...
   'BackgroundColor',[0.925490196078431 0.913725490196078 0.847058823529412], ...
   'ForegroundColor',[0 0 1], ...
	'ListboxTop',0, ...
	'Position',[182.25 208.5 153 24], ...
   'Style','text',...
   'string','高级绘图器',...
   'Tag','StaticText1',...
   'fontname','隶书',...
   'fontsize',30,...
   'tooltipstring','函数的图象在这里显示');   %为什么这里的提示显示不出来
h1 = uicontrol('Units','points', ...
   'BackgroundColor',[1 1 1], ...
   'string',['t=0:pi/50:4*pi;','y1=exp(-t/3);','y2=exp(-t/3).*sin(3*t);','plot(t,y2,t,y1,t,-y1);'],...
   'ListboxTop',0,...
   'foregroundcolor',[0 0 1], ...
	'Position',[292.5 16.5 94.5 186], ...
   'Style','edit',...
   'fontsize',10,...
   'Tag','EditText1',...
   'fontweight','bold',...
   'HorizontalAlignment','left',...
   'max',10,...
   'tooltipstring','简单的绘图指令可在这里输入,复杂的绘图指令可点菜单“绘图输入”,指令输入之后,鼠标点击其他地方即可执行指令!',...
   'callback','drawinputok(gcbo)');
if nargout > 0, fig = h0; end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -