📄 calculatormain.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 + -