[编者注:]温成浩同学的作业比较复杂,可能花了不少时间,正像温成浩在心得体会中写的那样,“不断修改大作业,这就像一件艺术品,在我的不断打磨之下不断优化,虽然我花了时间,但是我解决了鲁棒性、完备性、添加了一些过程,丰富了自己的经验。”,因此,肯定是达到了学习效果,锻炼了能力。因为程序复杂,大作业元素基本满足,说点特色。虽然作业有三个显示窗口,但使用的是同一个物理窗口(figure),采用可见不可见的方式隐藏或显示。对一些简单数据应管理系统,用excel也比较方便,不需要用专业的数据库软件系统。界面中使用了表控件。
一、程序设计窗口(wch.fig)
二、程序运行情况说明
1、启动界面,用户可选择管理员或用户(用户界面只能浏览)
2、需要输入密码,如果用户输入错误,还有相应对话框。
3、如果密码正确,出现商品信息查询修正界面,先读取文件,用“更新商品信息表”按钮,商品总数和商品名称显示在相应位置。
4、也可以选择商品序号完成查询,如有修改,在表中修改数据后,点击“修改产品信息文件”按钮,完成存盘。
5、商品信息统计菜单可完成部分统计功能,并显示图表。
6、客户端只能完成查询功能
三、程序代码(wch.m)
function varargout = wch(varargin)
% Last Modified by GUIDE v2.5 02-Dec-2021 19:31:35
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @wch_OpeningFcn, ...
'gui_OutputFcn', @wch_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
function wch_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
global sign;
sign=0;
global cd;
cd=123456;
set(handles.tdl,'visible','on');
set(handles.sure,'visible','on');
set(handles.pop,'visible','on');
set(handles.tdl2,'visible','on');
set(handles.dl,'visible','on');
function varargout = wch_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
function pushbutton3_Callback(hObject, eventdata, handles)
function numenter_Callback(hObject, eventdata, handles)
global sign;
if(sign>0)
num=str2double(get(hObject,'string'));
if(num>a||num
errordlg('请输入正确序号')
end
guidata(hObject,handles);
else
if(sign
errordlg('请先更新信息');
end
end
function numenter_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function renew_Callback(hObject, eventdata, handles)
[spxxn,spxxt]=xlsread('spxx.xlsx');
set(handles.general,'string',num2str(size(spxxn,1)));
global sign;
sign=1;
a=cell(size(spxxn,1),2);
for i=1:1:size(spxxn,1)
a(i,1)=spxxt(i,1);
a(i,2)=num2cell(spxxn(i,4));
end
set(handles.gen,'data',a);
guidata(hObject,handles);
function listbox2_Callback(hObject, eventdata, handles)
function listbox2_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function edit2_Callback(hObject, eventdata, handles)
function edit2_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function infox_Callback(hObject, eventdata, handles)
function infox_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function infoy_Callback(hObject, eventdata, handles)
function infoy_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function infop_Callback(hObject, eventdata, handles)
function infop_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function infob_Callback(hObject, eventdata, handles)
function infob_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function infoc_Callback(hObject, eventdata, handles)
function infoc_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function infod_Callback(hObject, eventdata, handles)
function infod_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function infon_Callback(hObject, eventdata, handles)
function infon_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function edit10_Callback(hObject, eventdata, handles)
function edit10_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function edit11_Callback(hObject, eventdata, handles)
function edit11_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function edit12_Callback(hObject, eventdata, handles)
function edit12_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function edit13_Callback(hObject, eventdata, handles)
function edit13_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function edit14_Callback(hObject, eventdata, handles)
function edit14_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function edit15_Callback(hObject, eventdata, handles)
function edit15_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function edit16_Callback(hObject, eventdata, handles)
function edit16_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function edit17_Callback(hObject, eventdata, handles)
function edit17_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function dl_Callback(hObject, eventdata, handles)
function general_Callback(hObject, eventdata, handles)
function general_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function code_Callback(hObject, eventdata, handles)
flag=0;
if str2num(get(hObject,'string'))==123456&&1==get(handles.pop,'value')
helpdlg('欢迎仓库管理员','登陆成功');
flag=1;
else if str2num(get(hObject,'string'))==654321&&2==get(handles.pop,'value')
helpdlg('欢迎仓库客户','登陆成功');
flag=2;
end
end
if flag~=1&&flag~=2
errordlg('密码错误或权限选择错误');
end
if flag==1||flag==2
set(handles.tdl,'visible','off');
set(handles.code,'visible','off');
set(handles.pop,'visible','off');
set(handles.tdl2,'visible','off');
set(handles.dl,'visible','off');
set(handles.sure,'visible','off');
end
if flag==1
set(handles.cx,'visible','on');
set(handles.xz,'visible','on');
set(handles.renew,'visible','on');
set(handles.text18,'visible','on');
set(handles.general,'visible','on');
set(handles.gen,'visible','on');
set(handles.nu,'visible','on');
set(handles.nu,'visible','on');
set(handles.t1,'visible','on');
set(handles.t2,'visible','on');
set(handles.t3,'visible','on');
set(handles.t4,'visible','on');
set(handles.t5,'visible','on');
set(handles.t6,'visible','on');
set(handles.t7,'visible','on');
set(handles.infox,'visible','on');
set(handles.numenter,'visible','on');
set(handles.infox,'visible','on');
set(handles.infoy,'visible','on');
set(handles.infod,'visible','on');
set(handles.infop,'visible','on');
set(handles.infon,'visible','on');
set(handles.infob,'visible','on');
set(handles.infoc,'visible','on');
set(handles.change,'visible','on');
end
if flag==2
set(handles.renew,'visible','on');
set(handles.text18,'visible','on');
set(handles.general,'visible','on');
set(handles.gen,'visible','on');
set(handles.nu,'visible','on');
set(handles.nu,'visible','on');
set(handles.t1,'visible','on');
set(handles.t2,'visible','on');
set(handles.t3,'visible','on');
set(handles.t4,'visible','on');
set(handles.t5,'visible','on');
set(handles.t6,'visible','on');
set(handles.t7,'visible','on');
set(handles.infox,'visible','on');
set(handles.numenter,'visible','on');
set(handles.infox,'visible','on');
set(handles.infoy,'visible','on');
set(handles.infod,'visible','on');
set(handles.infop,'visible','on');
set(handles.infon,'visible','on');
set(handles.infob,'visible','on');
set(handles.infoc,'visible','on');
set(handles.kehu,'visible','on');
end
function code_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function pop_Callback(hObject, eventdata, handles)
n=get(handles.pop,'value');
global cd;
cd=123456;
if n==2
cd=654321;
end
function pop_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function cx_Callback(hObject, eventdata, handles)
set(handles.renew,'visible','on');
set(handles.text18,'visible','on');
set(handles.general,'visible','on');
set(handles.gen,'visible','on');
set(handles.nu,'visible','on');
set(handles.nu,'visible','on');
set(handles.t1,'visible','on');
set(handles.t2,'visible','on');
set(handles.t3,'visible','on');
set(handles.t4,'visible','on');
set(handles.t5,'visible','on');
set(handles.t6,'visible','on');
set(handles.t7,'visible','on');
set(handles.infox,'visible','on');
set(handles.numenter,'visible','on');
set(handles.infox,'visible','on');
set(handles.infoy,'visible','on');
set(handles.infod,'visible','on');
set(handles.infop,'visible','on');
set(handles.infon,'visible','on');
set(handles.infob,'visible','on');
set(handles.infoc,'visible','on');
set(handles.change,'visible','on');
set(handles.xs,'visible','off');
set(handles.fig,'visible','off');
set(handles.pre,'visible','off');
set(handles.nh,'visible','off');
set(handles.slider1,'visible','off');
cla(handles.fig);
function xz_Callback(hObject, eventdata, handles)
set(handles.renew,'visible','off');
set(handles.text18,'visible','off');
set(handles.general,'visible','off');
set(handles.gen,'visible','off');
set(handles.nu,'visible','off');
set(handles.nu,'visible','off');
set(handles.t1,'visible','off');
set(handles.t2,'visible','off');
set(handles.t3,'visible','off');
set(handles.t4,'visible','off');
set(handles.t5,'visible','off');
set(handles.t6,'visible','off');
set(handles.t7,'visible','off');
set(handles.infox,'visible','off');
set(handles.numenter,'visible','off');
set(handles.infox,'visible','off');
set(handles.infoy,'visible','off');
set(handles.infod,'visible','off');
set(handles.infop,'visible','off');
set(handles.infon,'visible','off');
set(handles.infob,'visible','off');
set(handles.infoc,'visible','off');
set(handles.change,'visible','off');
set(handles.xs,'visible','on');
set(handles.fig,'visible','on');
set(handles.pre,'visible','on');
set(handles.nh,'visible','on');
set(handles.slider1,'visible','on');
function change_Callback(hObject, eventdata, handles)
end
xlswrite('spxx.xlsx',t);
end
disp(p);
xlswrite('spxx.xlsx',p,1,'E1');
guidata(hObject,handles);
function nh_Callback(hObject, eventdata, handles)
spxxs=xlsread('spxx','C1:D100');
spxxs1=xlsread('spxx1','C1:D100');
spxxs2=xlsread('spxx2','C1:D100');
spxxs3=xlsread('spxx3','C1:D100');
spxxs4=xlsread('spxx4','C1:D100');
spxxs5=xlsread('spxx5','C1:D100');
spxxs6=xlsread('spxx6','C1:D100');
sum1=0;
sum2=0;
sum3=0;
sum4=0;
sum5=0;
sum6=0;
sum7=0;
for i=1:size(spxxs)
sum1=spxxs(i,2)+sum1;
end
for i=1:size(spxxs1)
sum2=spxxs1(i,2)+sum2;
end
for i=1:size(spxxs2)
sum3=spxxs2(i,2)+sum3;
end
for i=1:size(spxxs3)
sum4=spxxs3(i,2)+sum4;
end
for i=1:size(spxxs4)
sum5=spxxs4(i,2)+sum5;
end
for i=1:size(spxxs5)
sum6=spxxs5(i,2)+sum6;
end
for i=1:size(spxxs6)
sum7=spxxs6(i,2)+sum7;
end
set(handles.slider1,'value',0.2);
date=[spxxs(1,1)
spxxs1(1,1)
spxxs2(1,1)
spxxs3(1,1)
spxxs4(1,1)
spxxs5(1,1)
spxxs6(1,1)];
sumu=[sum1
sum2
sum3
sum4
sum5
sum6
sum7];
set(handles.xs,'data',[date,sumu]);
x=1:1:7;
y=[sum1 sum2 sum3 sum4 sum5 sum6 sum7];
set(handles.slider1,'value',0.5);
P=polyfit(x,y,3);
disp(P);
set(handles.slider1,'value',0.7);
axes(handles.fig);
x1=1:0.1:7;
n=1;
for i=1:0.1:7
y2(n)=i*i*i*P(1)+i*i*P(2)+i*P(3)+P(4);
n=n+1;
metricdata.h=plot(x,y,'+',x1,y2);
for i=8:1:14
y3(i-7,1)=round(i*i*i*P(1)+i*i*P(2)+i*P(3)+P(4));
set(handles.pre,'data',y3);
set(handles.slider1,'value',1);
function slider1_Callback(hObject, eventdata, handles)
function slider1_CreateFcn(hObject, eventdata, handles)
if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor',[.9 .9 .9]);
function kehu_Callback(hObject, eventdata, handles)
function pop_ButtonDownFcn(hObject, eventdata, handles)
function sure_Callback(hObject, eventdata, handles)
set(handles.code,'visible','on');
四、大作业目录结构
五、数据文件内容
领取专属 10元无门槛券
私享最新 技术干货