




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学习本教程的目的: 学会用matlab gui设计用户界面,并编写响应程序。一、 GUI基础知识图形用户界面(Graphical User Interfaces ,GUI )则是由窗口、光标、按键、菜单、文字说明等对象(Objects)构成的一个用户界面。用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。 Matlab中设计图形用户界面的方法有两种:使用可视化的界面环境和通过编写程序。本教程主要通过使用可视化的界面环境来实现GUI界面的设计启动matlab的GUI界面在matlab主界面的菜单栏File中New下的GUI,如图1所示图1
2、单击GUI后会出现如图2界面图2Matlab为GUI设计一共准备了4种模板,分别是:u Blank GUI(Default)(空白模板,默认);u GUI with Uicontrols(带控件对象的GUI模板); u GUI with Axes and Menu(带坐标轴与菜单的GUI模板);u Modal Question Dialog(带模式问题对话框的GUI模板)。我们入门时经常会使用第一个模板,即Blank GUI(空白模板)。单击图2中的ok会出现下图界面(图3)图3图形用户界面GUI设计窗口由菜单栏、工具栏、控件工具栏以及图形对象设计区等4个功能区组成。菜单栏:GUI设计窗口的菜
3、单栏有File、Edit、View、Layout、Tools和Help 6个菜单项,使用其中的命令可以完成图形用户界面的设计操作。工具栏:编辑工具在菜单栏的下方,提供了“编程”时常用的工具,例如可以进行保存、撤销、运行等等操作。控件工具栏:各个模块位于窗口的左半部分,提供了设计GUI过程中所用的用户控件;了解各个模块(用户控件)的用途和作用对GUI的设计起到比较大的作用。图形对象设计区:该区域是网格形式的用户设计GUI的空白区域,可以把用户控件做到区域里。对matlab菜单栏中部分内容的解释u 布局编辑器(Layout Edtor)在图形窗口中创建及布置图形对象。布局编辑器是可以启动用户界面的
4、控制面板,Layout Edtor用于从控件选择板上选择控件对象并放置到布局区去,布局区被激活后就成为图形窗口。 u 菜单编辑器(Menu Editor)创建、设计、修改下拉式菜单和快捷菜单;u 对象浏览器(Object Browser)用于获得当前Matlab图形用户界面程序中的全部对象信息,对象的类型,同时显示控件的名称和标识,在控件上双击鼠标可以打开该控件的属性编辑器;u 属性查看器(Property Inspector)查询并设置属性值; 同图4u Tab顺序编辑器(Tab Order Editor)用于设置当用户按下键盘上的Tab键时,对象被选中的先后顺序。 u M-文件编辑器(M-
5、file Editor)用于编辑控件对象的回应函数,在该m-文件中编程,既可把各个控件对象联系在一起,来实现想要实现的功能。控件工具按钮(Push Buttons):执行某种预定的功能或操作(左二)单选框(Radio Button):单个的单选框用来在两种状态之间切换,多个单选框组成一个单选框组时,用户只能在一组状态中选择单一的状态,或称为单选项;(左三)文本编辑器(Editable Texts):用来使用键盘输入字符串的值,可以对编辑框中的内容进行编辑、删除和替换等操作;(左四)弹出式菜单(Popup Menus): 让用户从一列菜单项中选择一项作为参数输入;(左五)开关按钮(Toggle
6、Button):产生一个动作并指示一个二进制状态(开或关),当鼠点击它时按钮将下陷,并执行callback(回调函数)中指定的内容,再次点击,按钮复原,并再次执行callback 中的内容;(左六)坐标轴(Axes): 用于显示图形和图象。(左七)滚动条(Slider): 可输入指定范围的数量值(右一)复选框(Check Boxes):单个的复选框用来在两种状态之间切换,多个复选框组成一个复选框组时,可使用户在一组状态中作组合式的选择,或称为多选项;(右二)静态文本框(Static Texts): 仅用于显示单行的说明文字(右三)列表框(List Boxes):在其中定义一系列可供选择的字符串
7、;(右四)控件对象的公共属性 双击模块(控件对象)就会进入一个属性设置与修改的区域,如下图(图4)所示,通过修改一些参数,就可以改变模块的外在形式。图4控件对象公共属性:u Children 取值为空矩阵,因为控件对象没有自己的子对象;u Parent取值为某个图形窗口对象的句柄,该句柄表明了控件对象所在的图形窗口;u Tag取值为字符串,定义了控件的标识值,在任何程序中都可以通过这个标识值控制该控件对象;u Type 取值为uicontrol,表明图形对象的类型;u UserDate取值为空矩阵,用于保存与该控件对象相关的重要数据和信息;u Visible取值为on 或off。u Backg
8、roundColor取值为颜色的预定义字符或RGB数值;缺省值为浅灰色;u Callback取值为字符串,可以是某个M文件名或一小段Matlab语句,当用户激活某个控件对象时,应用程序就运行该属性定义的子程序;u Enable取值为on(缺省值),inactive和off;u Extend取值为四元素矢量0, 0, width, height,记录控件对象标题字符的位置和尺寸;u ForegroundColor取值为颜色的预定义字符或RGB数值,该属性定义控件对象标题字符的颜色;缺省值为黑色;u Max,Min取值都为数值,缺省值分别为1和0;u String取值为字符串矩阵或块数组,定义控件
9、对象标题或选项内容;u Style取值可以是pushbutton(缺省值), radiobutton, checkbox, edit, text, slider, frame, popupmenu 或listbox;u Units取值可以是pixels (缺省值), normalized(相对单位), inches, centimeters(厘米)或points(磅);u Value取值可以是矢量,也可以是数值,其含义及解释依赖于控件对象的类型。u FontAngle取值为normal(正体,缺省值), italic(斜体), oblique(方头);u FontName取值为控件标题等字体的
10、字库名;u FontSize取值为数值;u FontUnits取值为points(缺省值), normalized, inches, centimeters或pixels;u FontWeight取值为normal(缺省值), light,demi和bold,定义字符的粗细;u HorizontalAligment取值为left,center (缺省值) 或 right,定义控件对象标题等的对齐方式。u ListboxTop取值为数量值,用于listbox控件对象;u SliderStep取值为两元素矢量minstep,maxstep,用于slider控件对象;u Selected取值为on
11、或off(缺省值) ;u SlectionHoghlight取值为on 或off(缺省值) 。u BusyAction取值为cancel或queue(缺省值) ;u ButtDownFun取值为字符串,一般为某个M文件名或一小段Matlab程序;u Creatfun 取值为字符串,一般为某个M文件名或一小段Matlab程序;u DeletFun取值为字符串,一般为某个M文件名或一小段Matlab程序;u HandleVisibility取值为on(缺省值), callback或off;u Interruptible取值为on 或off(缺省值) 。设计时用到某个参数,到这里查找即可讲到这里,问
12、大家一个问题:为什么要在matlab中创建GUI用户界面?这是一个很好的问题,简单的回答是可能并不需要使用MATLAB来分析数据,求解问题,绘制结果的绝大多数的人,并不会发现GUI 工具很有用。 但是,GUI 可以在MATLAB中生成非常有效的工具和应用程序,或是建立演示工作的交互式界面。 生成用户图形界面的最常见的理由: 编写一个需多次反复使用的实用函数,菜单、按钮、文本框作为输入方法具有意义; 编写函数或开发应用程序供别人使用; 创建一个过程、技术或分析方法的交互式示例; 认为GUI 的简洁,性能良好,并且想自己尝试一下。可以使不懂编程的人在可视化窗口界面下轻松地完成某个特定功能。图形用户
13、界面的设计原则和一般步骤 1 设计原则 由于要求不同,设计出来的界面也千差万别。但是,自从人们开始设计图形界面以后,界面设计的评判标准却没有太大的变化。简单说来,一个好的界面应遵循以下三个原则:简单性(Simplicity)、一致性(Consistency )及习常性(Familiarity)。 (1)简单性 设计界面时,应力求简洁、直接、清晰地体现出界面的功能和特征。那些可有可无的功能,应尽量删去,以保持界面的整洁。设计的图形界面要直观,为此应多采用图形,而间量避免数值。设计界面应间量减少窗口数目,力避在不同窗口之间进行来回切换。 (2)一致性 所谓一致性有两层含义:一是读者自己开发的界面风
14、格要尽量一致;二是新设计的界面要与其他已有的界面的风格不要截然向左。这是因为用户在初次使用新界面时,总习惯于凭借经验进行试探。比如说,图形显示区常安排在界面的左半边,而按键等控制区被排在右侧。 (3)习常性 设计界面时,应尽量使用人们所熟悉的标志与符号。用户可能并不了解新界面的具体含义及操作方法,但他完全可以根据熟悉标志作出正确猜测,自学入门。 (4)其他考虑因素 除了以上对界面的静态要求外,还应注意界面的动态性能。如界面对用户操作的响应要迅速(Immediate) 、连续(Continous);对持续时间较长的运算,要给出等待时间提示,并允许用户中断运算。 2 一般制作步骤 界面制作包括界面
15、设计和程序实现。具体制作步骤如下: (1)分析界面所要求实现的主要功能,明确设计任务; (2)在稿纸上绘出界面草图,并站在使用者的角度来审查草图; (3)按构思的草图,上机制作静态界面,并检查之; (4)编写界面动态功能的程序,对功能进行逐项检查。 基础知识讲到这里,下面来看一下具体实例二、具体实例(一)统计鼠标的单击次数1、 按照前面步骤,打开一个GUI空白界面。2、 在空白页放入push putton和static text,如下图所示。3、 双击push button,进入push putton属性设置界面4、 修改Backgroundcolor为浅蓝色,修改color为黄色,修改fon
16、t size的大小为12,修改string为Click,修改Foregroundcolor为蓝色,修改之后如图所示:5、 同样双击static Text,进入其属性修改界面,修改font size的大小为12,修改Foregroundcolor为红色,修改后如图:6、 保存文件到桌面,文件名为c1;保存确定之后,会进入M-file Editor界面,如图所示该界面是GUI界面中push putton和static text的内在程序,在该M-file Editor界面特定位置编程,即可把push putton和static text两个模块联系在一起,以实现所需功能。7、在M-file 编辑器
17、界面,找到函数function pushbutton1_Callback(hObject, eventdata, handles)在这个函数名称下面写入如下程序段:persistent c% 定义局部静态变量,persistent变量在声明时没有赋值,将被初始化为空矩阵if isempty(c)% 如果c矩阵是空矩阵 c=0;% 给c赋初值为0endc=c+1;%c等于c加1str=sprintf('Total Clicks: %d',c);%把Total Clicks: c(c是一个变量)这句话保存到str中set(handles.text1,'String'
18、,str);%把str中的内容以字符串的形式显示在text1中如图所示:7、 保存程序后,在M-file编辑器中单击运行按钮,或者在GUI界面单击运行按钮,都会出现如下界面:在单击Click按钮后,total clicks中的次数会随之变化,下图是单击6次之后的界面:(二)一个二维方阵的加法运算1、新建一空白GUI界面2、在界面上安装8个编辑文本框、4个静态文本框与2个push putton,如图所示:3、可以双击每个模块并设置其属性值,修改font size的大小为12,push button1中的string修改为“+”,push button1中的string修改为“=”,并且设置8个编
19、辑文本框、4个静态文本框的string为空,设置4个静态文本框的颜色为红色,设置完之后如图4、保存至桌面,文件名为c2,保存之后跳到m文件编辑界面,如图:5添加程序。在function pushbutton2_Callback(hObject, eventdata, handles)下编写如下程序:s1=str2double(get(handles.edit1,'String');%把edit1里面的字符赋给s1s2=str2double(get(handles.edit5,'String');%把edit5里面的字符赋给s2set(handles.text1,
20、'String',s1+s2);%s1和s2求和,并以字符串的形式保存到text1中 s3=str2double(get(handles.edit2,'String');%把edit2里面的字符赋给s3s4=str2double(get(handles.edit6,'String');%把edit6里面的字符赋给s4set(handles.text2,'String',s3+s4);%s3和s4求和,并以字符串的形式保存到text2中s5=str2double(get(handles.edit3,'String')
21、;s6=str2double(get(handles.edit7,'String');set(handles.text3,'String',s5+s6); s7=str2double(get(handles.edit4,'String');s8=str2double(get(handles.edit8,'String');set(handles.text4,'String',s7+s8);%后面两个程序与前两个类似,这里不再多加解释;edit1-8为八个文本编辑器的string名,test1-4为四个静态文本框的s
22、tring名,在各自模块的公共属性(双击模块进入)中修改,由此可见模块的属性和程序是一一对应的关系6、在m编辑器界面运行,或在GUI界面运行则会出现如图界面:7、在方框中随便填入矩阵,例如1 1;2 2和1 2;3 4,点一下等于将会得到两个二维矩阵的和。如图所示:(三)简易计算器的设计1、新建一个GUI空白界面,如图:2、放置一个简易计算器所需要的模块(1个Static Text和20个Push Botton),static text用来显示数和结果,20个Push Botton分别为09、加减乘除点等于、平方、返回、清空、退出。放置模块并调整大小后如图所示:注意,push button这2
23、0个按钮最好按顺序,从左到右,从上到下,以免顺序错乱后,对后面编程起到坏的影响3、属性设置双击Static text进入属性设置界面,修改Backgroundcolor为淡蓝色,Fontsize为15,string为空白,如图所示分别双击20个Push Button进入按钮属性设置, 分别修改Backgroundcolor为红色,Fontsize为15,ForegroundColor为黄色,string分别为09、+、-、*、/、.、=、X2、返回、清空、退出等,修改完如图所示:4、保存文件,文件名c3;保存确认后进入m文件编辑器,如图:5、在m文件编辑器里面编写程序09数字键的编写09这十个
24、数字分别对应string里的button1-button10在function pushbutton1_Callback(hObject, eventdata, handles)下编写:textString = get(handles.text1,'String');%把text1中的字符串赋给textstring变量textString =strcat(textString,'0');%把textstring中的字符与0连接起来并赋给textstring本身set(handles.text1,'String',textString)%把新的te
25、xtstring中的内容以字符串的形式显示在text1中同理,分别在function pushbutton2-10_Callback(hObject, eventdata, handles)下给1-9数字按键下以相同的方法编写类似程序符号键的编写在function pushbutton11_Callback(hObject, eventdata, handles)下编写:textString = get(handles.text1,'String'); %把text1中的字符串赋给textstring变量textString =strcat(textString,'+&
26、#39;); %把textstring中的字符与+连接起来并赋给textstring本身set(handles.text1,'String',textString)%把新的textstring中的内容以字符串的形式显示在text1中同理,分别在function pushbutton12-15_Callback(hObject, eventdata, handles)和function pushbutton17_Callback(hObject, eventdata, handles)下给符号键-、*、/ 、.、X2 赋值类似语句“=”的编程:(=对应pushbutton16)在
27、function pushbutton16_Callback(hObject, eventdata, handles)下编写:textString = get(handles.text1,'String');%把text1中的字符串赋给textstring变量ans =eval(textString);%将textString的内容转换成数值表达式set(handles.text1,'String',ans)%把新的ans中的内容以字符串的形式显示在text1中按键“返回”的编程:即删除一个空字符:在function pushbutton18_Callback(
28、hObject, eventdata, handles)下编写:textString=get(handles.text1,'String') %把text1中的字符串赋给textstring变量w=length(textString)%w为textstring的长度t=char(textString)textString=t(1:w-1)%把t中前w-1个数赋给textstringset(handles.text1,'String',textString)清除键的程序在function pushbutton19_Callback(hObject, eventda
29、ta, handles)下编写:set(handles.text1,'String','')%把text清空返回键的程序在function pushbutton20_Callback(hObject, eventdata, handles)下编写:close(gcf);%关闭句柄值,即关闭界面6、保存m文件后运行,运行结果如下图:8、 在计算器界面作如下计算:输出结果为(单击=):M文件源程序:function varargout = c3(varargin)% C3 M-file for c3.fig% C3, by itself, creates a new
30、 C3 or raises the existing% singleton*.% H = C3 returns the handle to a new C3 or the handle to% the existing singleton*.% C3('CALLBACK',hObject,eventData,handles,.) calls the local% function named CALLBACK in C3.M with the given input arguments.% C3('Property','Value',.) cre
31、ates a new C3 or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before c3_OpeningFcn gets called. An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to c3_OpeningFcn via varargin.% *See GUI Op
32、tions on GUIDE's Tools menu. Choose "GUI allows only one% instance to run (singleton)".% See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help c3 % Last Modified by GUIDE v2.5 02-Jan-2013 17:13:36 % Begin initialization code - DO NOT EDITgui_Singleto
33、n = 1;gui_State = struct('gui_Name', mfilename, . 'gui_Singleton', gui_Singleton, . 'gui_OpeningFcn', c3_OpeningFcn, . 'gui_OutputFcn', c3_OutputFcn, . 'gui_LayoutFcn', , . 'gui_Callback', );if nargin && ischar(varargin1) gui_State.gui_Callback
34、 = str2func(varargin1);end if nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);end% End initialization code - DO NOT EDIT % - Executes just before c3 is made visible.function c3_OpeningFcn(hObject, eventdata, handles, varargin)% This function has
35、no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% varargin command line arguments to c3 (see VARARGIN) % Choose default command line output for c3handles.output = hOb
36、ject; % Update handles structureguidata(hObject, handles); % UIWAIT makes c3 wait for user response (see UIRESUME)% uiwait(handles.figure1); % - Outputs from this function are returned to the command line.function varargout = c3_OutputFcn(hObject, eventdata, handles) % varargout cell array for retur
37、ning output args (see VARARGOUT);% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structurevarargout1 = handles.output; % - Executes on button press
38、in pushbutton1.function pushbutton1_Callback(hObject, eventdata, handles)% hObject handle to pushbutton1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)textString = get(handles.text1,'String');textString
39、 =strcat(textString,'0');set(handles.text1,'String',textString) % - Executes on button press in pushbutton2.function pushbutton2_Callback(hObject, eventdata, handles)% hObject handle to pushbutton2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles
40、structure with handles and user data (see GUIDATA)textString = get(handles.text1,'String');textString =strcat(textString,'1');set(handles.text1,'String',textString) % - Executes on button press in pushbutton3.function pushbutton3_Callback(hObject, eventdata, handles)% hObject
41、 handle to pushbutton3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)textString = get(handles.text1,'String');textString =strcat(textString,'2');set(handles.text1,'String',textString) %
42、- Executes on button press in pushbutton4.function pushbutton4_Callback(hObject, eventdata, handles)% hObject handle to pushbutton4 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)textString = get(handles.text1,&
43、#39;String');textString =strcat(textString,'3');set(handles.text1,'String',textString) % - Executes on button press in pushbutton5.function pushbutton5_Callback(hObject, eventdata, handles)% hObject handle to pushbutton5 (see GCBO)% eventdata reserved - to be defined in a future
44、version of MATLAB% handles structure with handles and user data (see GUIDATA)textString = get(handles.text1,'String');textString =strcat(textString,'4');set(handles.text1,'String',textString) % - Executes on button press in pushbutton6.function pushbutton6_Callback(hObject, e
45、ventdata, handles)% hObject handle to pushbutton6 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)textString = get(handles.text1,'String');textString =strcat(textString,'5');set(handles.text1,'
46、;String',textString) % - Executes on button press in pushbutton7.function pushbutton7_Callback(hObject, eventdata, handles)% hObject handle to pushbutton7 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)textS
47、tring = get(handles.text1,'String');textString =strcat(textString,'6');set(handles.text1,'String',textString) % - Executes on button press in pushbutton8.function pushbutton8_Callback(hObject, eventdata, handles)% hObject handle to pushbutton8 (see GCBO)% eventdata reserved -
48、 to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)textString = get(handles.text1,'String');textString =strcat(textString,'7');set(handles.text1,'String',textString) % - Executes on button press in pushbutton9.function push
49、button9_Callback(hObject, eventdata, handles)% hObject handle to pushbutton9 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)textString = get(handles.text1,'String');textString =strcat(textString,'8
50、39;);set(handles.text1,'String',textString) % - Executes on button press in pushbutton10.function pushbutton10_Callback(hObject, eventdata, handles)% hObject handle to pushbutton10 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles an
51、d user data (see GUIDATA)textString = get(handles.text1,'String');textString =strcat(textString,'9');set(handles.text1,'String',textString) % - Executes on button press in pushbutton11.function pushbutton11_Callback(hObject, eventdata, handles)% hObject handle to pushbutton11
52、 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)textString = get(handles.text1,'String');textString =strcat(textString,'+');set(handles.text1,'String',textString) % - Executes on button p
53、ress in pushbutton12.function pushbutton12_Callback(hObject, eventdata, handles)% hObject handle to pushbutton12 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)textString = get(handles.text1,'String');te
54、xtString =strcat(textString,'-');set(handles.text1,'String',textString) % - Executes on button press in pushbutton13.function pushbutton13_Callback(hObject, eventdata, handles)% hObject handle to pushbutton13 (see GCBO)% eventdata reserved - to be defined in a future version of MATLA
55、B% handles structure with handles and user data (see GUIDATA)textString = get(handles.text1,'String');textString =strcat(textString,'*');set(handles.text1,'String',textString) % - Executes on button press in pushbutton14.function pushbutton14_Callback(hObject, eventdata, hand
56、les)% hObject handle to pushbutton14 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)textString = get(handles.text1,'String');textString =strcat(textString,'/');set(handles.text1,'String',
57、textString) % - Executes on button press in pushbutton15.function pushbutton15_Callback(hObject, eventdata, handles)% hObject handle to pushbutton15 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)textString = get(handles.text1,'String');textString =strcat(textString,'.');
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 食品废渣外售协议书
- Brand KPIs for sauces condiments Wingreens Farms in India-外文版培训课件(2025.2)
- 饮水纠纷调解协议书
- 酒店烫伤免责协议书
- 俱乐部单方解约协议书
- 钢筋施工合同协议书
- 车辆保险代办协议书
- 食堂维修安全协议书
- 营口沿海存款协议书
- 项目工人劳务协议书
- 夜场水烟合作协议书
- 河南省青桐鸣大联考普通高中2024-2025学年高三考前适应性考试地理试题及答案
- 管道劳务分包协议书
- 2025-2030中国锂电子电池行业市场深度调研及前景趋势与投资研究报告
- 江苏省南京市建邺区2023-2024学年八年级下学期期末考试物理试题【含答案解析】
- 公立医院与民营医院医联体合作协议书(2篇)
- 律师会见笔录范本
- 浙教版科学电学基础知识总结
- T/CEC 164-2018 火力发电厂智能化技术导则_(高清-最新版)
- 抹机水MSDS 安全资料表
- 医院感染管理组织框架
评论
0/150
提交评论