如何用matlab制作一个小软件


制作一个小软件的方法很多,比如说c++的MFC,本站在之前的第一个MFC文章里就提到过;matlab的GUIDE,在之前的如何用Matlab设计GUI? 文章也提到过。而现在,本文将使用matlab GUI来制作一个可安装到电脑的小软件。

提示:软件安装包请到本站下载中心下载(解压密码到“关于”联系作者获取)

首先,描述一下软件需求

作者想制作一个可以为自己记录计划的软件,该软件应当包含以下功能:
1.增加新计划,并保存计划;
2.删除已有计划,更改当前计划;
3.查看历史计划;
4.显示当月日历,浏览其他日历(比如说查看学校校历等);

其次,matlab GUI设计软件界面

在本站前面内容已经提到过如何设计matlab GUI,在此就不做详细描述了。
如下图所示,使用matlab GUI设计如下界面。

其中,红色区域为主要功能区,其余部分可不设计。

然后,matlab 程序编写

  1. 访问日历网页(比如说查看学校校历等)

    1
    2
    txt = get(handles.edit1,'string');
    eval(['web',' ',txt])
  2. 初始化当月计划

    1
    set(handles.uitable1,'data',[]);
  3. 添加计划

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    content1 = get(handles.edit4,'string');
    content2 = get(handles.edit5,'string');
    content3 = get(handles.edit6,'string');
    uitabledata = get(handles.uitable1,'data');
    handles.uitabledata = uitabledata;
    guidata(hObject,handles);
    olddata = uitabledata;
    newrow = {content1 content2 content3};
    newdata = [olddata;newrow];
    set(handles.uitable1,'data',newdata);
  4. 删除计划

    1
    2
    3
    4
    5
    6
    7
    8
    uitabledata = get(handles.uitable1,'data');
    handles.uitabledata = uitabledata;
    guidata(hObject,handles);
    olddata = uitabledata;
    [a,~] = size(olddata);
    olddata(a,:) = [];
    newdata = olddata;
    set(handles.uitable1,'data',newdata);
  5. 保存计划

    1
    2
    3
    4
    5
    6
    uitabledata = get(handles.uitable1,'data');
    %写
    txt = get(handles.edit3,'string');
    filename = [txt(1:4),'_',txt(8:9),'.xls'];
    delete(filename)
    mytxt = xlswrite(filename,uitabledata);
  6. 查看以往计划

    1
    2
    3
    4
    5
    [pname,adrname] = uigetfile('*.xls');
    %读
    filename = [adrname pname];
    [~,~,rawdata] = xlsread(filename);
    set(handles.uitable1,'data',rawdata);
  7. 显示当月日历

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    dayunm = calendar(year(now),month(now));
    myday = num2cell(dayunm);
    myW1 = {'日' '一' '二' '三' '四' '五' '六'};
    myW2 = {'一';'二';'三';'四';'五';'六'};
    [a,b] = find(dayunm==day(now));
    myday{a,b} = ['<html><FONT color=#ff0000">' num2str(myday{a,b}) '</Font></html>'];
    [aa,bb] = find(dayunm==0);
    for i=1:size(aa)
    myday{aa(i),bb(i)} = ['<html><FONT color=#000000">' num2str(myday{aa(i),bb(i)}) '</Font></html>'];
    end
    set(handles.uitable2,'data',myday);
    set(handles.uitable3,'data',myW1);
    set(handles.uitable4,'data',myW2);
  8. 显示当月计划

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    filename = [num2str(year(now)),'_',datestr(date,'mm'),'.xls'];
    if exist(filename,'file') == 0
    uitabledata = {'无计划' '无计划' '无计划'};
    mytxt = xlswrite(filename,uitabledata);
    %读
    [~,~,rawdata] = xlsread(filename);
    set(handles.uitable1,'data',rawdata);
    else
    %读
    [~,~,rawdata] = xlsread(filename);
    set(handles.uitable1,'data',rawdata);
    end

最后,软件打包

在matlab命令行窗口输入deploytool,添加自己的文件后打包即可。(方法在百度上一搜索一大把!我就懒得说了!)

© 2018 TinTin All Rights Reserved. 本站访客数人次 本站总访问量
主题: hiero