版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第詳解C語(yǔ)言面向?qū)ο缶幊讨械姆庋b目錄前言一、面向?qū)ο蠡靖拍钍裁词菍?duì)象?對(duì)象與類面向?qū)ο蟮木幊谭绞蕉?、C語(yǔ)言實(shí)現(xiàn)面向?qū)ο竺嫦驅(qū)ο蟮娜筇卣髅嫦驅(qū)ο笾庋b簡(jiǎn)介代碼實(shí)現(xiàn)基礎(chǔ)版代碼實(shí)現(xiàn)-進(jìn)階版總結(jié)
前言
面向?qū)ο笫且环N思維方式,基本上用什么語(yǔ)言都是可以實(shí)現(xiàn)的。C語(yǔ)言的編程方式一般是面向過程的,但是也是可以實(shí)現(xiàn)面向?qū)ο蟮?。?duì)象是什么?什么又是面向?qū)ο螅棵嫦驅(qū)ο蟮娜筇匦杂衷趺磳?shí)現(xiàn),且聽我細(xì)細(xì)道來。
一、面向?qū)ο蠡靖拍?/p>
什么是對(duì)象?
此對(duì)象非彼對(duì)象,雖然有時(shí)候此對(duì)象又可以是你腦袋中的對(duì)象,那讓我們從我們誤解的對(duì)象開始了解吧,雖然我沒有,但是用一下自己的直男思維,想想一個(gè)對(duì)象也是可以滴。那我就進(jìn)入一下我這個(gè)直男腦袋中的對(duì)象吧!我有一個(gè)對(duì)象,這個(gè)對(duì)象呢,膚白貌美大長(zhǎng)腿。用詩(shī)中的話就是皓腕凝霜雪,壚邊人似月,美麗的江南女子,誰(shuí)不喜歡呢。既然是想象,對(duì)象不只是僅僅是膚白貌美大長(zhǎng)腿,還得愛你,在你寂寞的時(shí)候能陪你,在你難過時(shí)能在你身邊,在你打游戲的時(shí)候不會(huì)無理取鬧。這樣的對(duì)象多好哇,簡(jiǎn)直就是夢(mèng)中情人,可惜只存在想想中(嘆氣)。
通過上面的例子,想象中的對(duì)象,它具有了對(duì)象的特征,是不算非常符合人類的特性,易懂。那讓我們從上面的例子提取出來對(duì)象的普遍特征。
特征一:屬性
讓我們回到我想象中的對(duì)象,對(duì)象是怎樣的,皓腕凝霜雪,壚邊人似月,這個(gè)是對(duì)象的屬性,也就是樣子。當(dāng)然屬性不只是樣子啦,你可以添加更多的屬性,比如聲音好聽,年齡20歲等等。
特征二:行為
對(duì)象具有的動(dòng)作就是行為。在上面的例子就是,對(duì)象非常愛你,難過的時(shí)候能陪你,寂寞的時(shí)候也能陪你等等,就是這個(gè)對(duì)象具有的動(dòng)作,對(duì)象能干什么。
對(duì)象與類
我們知道了對(duì)象是什么,但是你有沒有發(fā)現(xiàn)這個(gè)對(duì)象是很廣泛的,也就是我想象中的對(duì)象不知有一個(gè),符合我想象中對(duì)象的特征可以多個(gè),也就是我可以想象又很多個(gè)對(duì)象。我可以想象有后宮佳麗三千人,這三個(gè)都符合我對(duì)象的特征。這些特征就是類,也就是符合我想象的人不只是只有一個(gè),可以有多個(gè),只要這個(gè)人符合我想象的特征,她就是在這個(gè)類下面的。
那么類與對(duì)象的關(guān)系又是怎樣的?對(duì)象就是符合這個(gè)類的特例,怎么理解呢?
在我的想象中,符合大美女的屬性有很多,但是我不知道具體是誰(shuí),但是有一天我在動(dòng)漫中看見了這個(gè)人,她叫小A。小A就是在大美女類下面的一個(gè)對(duì)象。又有一天,我又碰到一個(gè)人,也符合我定義的大美女,這個(gè)對(duì)象,她叫小B。小A和小B都是符合定義的,也就是在這個(gè)類下面的,而小A和小B是一個(gè)特例,也就是這個(gè)類下面的人,是獨(dú)一無二的。
面向?qū)ο蟮木幊谭绞?/p>
老生常談,先簡(jiǎn)單看看面向過程的編程方式是怎樣的?設(shè)想一個(gè)場(chǎng)景,刺激點(diǎn)的。有一天杰哥想你了,打算和你回家一起打電動(dòng),那他該怎么做才能邀請(qǐng)到你回家一起打電動(dòng)?
面向過程的解決方式:簡(jiǎn)單點(diǎn)的方式簡(jiǎn)化一下
1:他首先西裝革履,打扮的人模狗樣,看起來十分帥氣,小姐姐看了表示很贊
2:打車到你家
3:盛情邀約
面向?qū)ο蟮慕鉀Q方式又是怎樣的呢:我們看他邀請(qǐng)你涉及幾個(gè)對(duì)象,打車對(duì)象,邀請(qǐng)對(duì)象,打電動(dòng)對(duì)象,回家對(duì)象。那對(duì)象是怎么做的呢?那讓我們看一下執(zhí)行順序:杰哥首先調(diào)用了打扮的對(duì)象進(jìn)行了打扮,然后調(diào)用打車對(duì)象去了你家。到了你家后調(diào)用了邀請(qǐng)對(duì)象的行為發(fā)出了邀請(qǐng),然后你調(diào)用了邀請(qǐng)對(duì)象的行為拒絕了杰哥,杰哥調(diào)用了情緒的對(duì)象的行為,發(fā)出了很難過的感覺。
打扮對(duì)象:
行為:打扮
打車對(duì)象:
屬性:打車人屬性:打車地點(diǎn)行為:上車
邀請(qǐng)對(duì)象:
屬性:邀請(qǐng)人屬性:邀請(qǐng)結(jié)果行為1:接受行為2:拒絕行為3:發(fā)出邀請(qǐng)
回家對(duì)象:
屬性:回家的路屬性:回家的時(shí)間行為:回家
情緒:
屬性:程度行為1:傷心行為2:難過行為3:非常難過
通過上面的例子,大概了解到了與面向過程的區(qū)別了,面向?qū)ο蟮木幊谭绞降膯卧菍?duì)象,做了什么事情也是以對(duì)象執(zhí)行動(dòng)作。對(duì)象可以被很多對(duì)象調(diào)用,杰哥可以調(diào)用邀請(qǐng)對(duì)象中的邀請(qǐng)行為,你也可以調(diào)用邀請(qǐng)對(duì)象發(fā)出拒絕邀請(qǐng)的動(dòng)作。對(duì)象的屬性是怎樣的,怎樣定義是靈活的。
看到上面的例子:面向?qū)ο蟮木幊谭绞?面向過程+面向?qū)ο?。?duì)象將某一些行為高度封裝,然后由指揮官也就是我們自己按照自己的想法按照某個(gè)順序調(diào)用(面向過程),在過程中,對(duì)象之間會(huì)進(jìn)行一定的數(shù)據(jù)交互與一定的對(duì)象之間的行為調(diào)用。
再舉個(gè)例子:實(shí)現(xiàn)一個(gè)循跡小車
構(gòu)建對(duì)象:傳感器控制器小車
小車對(duì)象:
屬性:當(dāng)前偏移值行為:前進(jìn),后退,左轉(zhuǎn),右轉(zhuǎn)
控制器:
屬性:輸入值,輸出值行為:計(jì)算控制值
傳感器:
屬性:傳感器測(cè)量值傳感器數(shù)量傳感器行為:測(cè)量
//偽代碼
voidFollow_mark(void)
調(diào)用傳感器對(duì)象進(jìn)行測(cè)量,將測(cè)量值保存到器測(cè)量值
調(diào)用控制器對(duì)象,將傳感器測(cè)量值作為輸入?yún)?shù),計(jì)算得到結(jié)果進(jìn)行保存
調(diào)用小車對(duì)象,根據(jù)控制傳入的控制值,計(jì)算當(dāng)前偏移量,然后根據(jù)偏移量調(diào)用左轉(zhuǎn)/右轉(zhuǎn)行為
二、C語(yǔ)言實(shí)現(xiàn)面向?qū)ο?/p>
面向?qū)ο蟮娜筇卣?/p>
了解了面向?qū)ο蟮乃枷?,思想是最重要的,特征是次要的。面向?qū)ο缶哂腥筇卣?,我們或多或少都可以?shí)現(xiàn),java,python,C++都有,但是C也是可以實(shí)現(xiàn)的,只是會(huì)比較麻煩,三大特征分別是封裝,繼承,多態(tài)。這三大特征能夠幫助實(shí)現(xiàn)面向?qū)ο蟮木幊蹋沟妹嫦驅(qū)ο笞兊酶鼉?yōu)雅。我們先了解三大特征之三大特征之封裝。
面向?qū)ο笾庋b
簡(jiǎn)介
封裝就是將對(duì)象的特征進(jìn)行封裝,使之對(duì)象的屬性和行為只能通過對(duì)象進(jìn)行訪問。在上面的例子中,邀請(qǐng)的對(duì)象,它的屬性與行為是被封裝好的,我們只能調(diào)用邀請(qǐng)這個(gè)對(duì)象才能調(diào)用邀請(qǐng)對(duì)象的行為。
優(yōu)勢(shì):
1、隱藏內(nèi)部細(xì)節(jié),類似函數(shù),只需要調(diào)用這個(gè)邀請(qǐng)對(duì)象的行為發(fā)出邀請(qǐng),而不需要知道里面的底層實(shí)現(xiàn)
2、更安全,復(fù)用性更好。對(duì)象的值都是被封裝好的,隱藏掉的,一般是程序員只會(huì)提供相應(yīng)的接口來訪問,不能直接修改。復(fù)用性,從上面的例子,誰(shuí)都可以調(diào)用對(duì)象的行為。
代碼實(shí)現(xiàn)基礎(chǔ)版
基礎(chǔ)版不涉及函數(shù)指針與函數(shù)表,先學(xué)習(xí)這個(gè)基礎(chǔ)版的,理解好面向?qū)ο蟮淖詈?jiǎn)單的封裝的實(shí)現(xiàn)。
在實(shí)現(xiàn)前我們先想一想C到底有什么結(jié)構(gòu)可以實(shí)現(xiàn)封裝屬性,各種屬性。這個(gè)很簡(jiǎn)單,結(jié)構(gòu)體嘛,能放各種類型的屬性。
行為又怎么體現(xiàn)呢,可以實(shí)現(xiàn)各種行為,函數(shù)嘛。后面的多態(tài)會(huì)涉及函數(shù)指針,使用函數(shù)指針可以實(shí)現(xiàn)多態(tài),這都是后面的事情,后面的文章會(huì)有簡(jiǎn)介。
那讓我們做一個(gè)PID控制器的對(duì)象吧,如果不懂的小伙伴也沒關(guān)系,這個(gè)只是控制器,有輸入,輸出,調(diào)試參數(shù),了解這些就行了。具體實(shí)現(xiàn)過程,內(nèi)部細(xì)節(jié)不懂也沒關(guān)系,這個(gè)不重要,我代碼會(huì)標(biāo)出來的。
那我們直接閱讀代碼,進(jìn)入困難模式:代碼會(huì)有比較詳細(xì)的注釋,很容易看懂!
//開始構(gòu)造對(duì)象,既然是控制器,對(duì)象必須具有輸入,輸出,調(diào)試參數(shù)
//屬性就是:參數(shù)值,輸入值,輸出值
//行為就是:設(shè)置參數(shù),查看參數(shù),根據(jù)輸入計(jì)算輸出,構(gòu)造對(duì)象,刪除對(duì)象
//屬性:用結(jié)構(gòu)體實(shí)現(xiàn)
#include"stdio.h"
#includestring.h
#includestdlib.h
//控制器對(duì)象
//控制器對(duì)象屬性
typedefstruct
intinput;/*控制器輸入*/
intouput;/*控制器輸出*/
intP_parameter,I_parameter,D_parameter;/*控制調(diào)試參數(shù)*/
intSum_error;/*總偏差,位置式PID積分相關(guān)的參數(shù)*/
intLast_error;/*上次偏差,位置式PID積分相關(guān)的參數(shù)*/
}controller;
//構(gòu)造對(duì)象,初始化
controller*Ctor_controller(void)
controller*temp;
temp=(controller*)malloc(sizeof(controller));
//清零
memset(temp,0,sizeof(controller));
returntemp;
//刪除對(duì)象
voidDel_ontroller(controller*constMe)
if(Me!=NULL)free(Me);
//設(shè)置控制器參數(shù)
voidWrite_controller(controller*constMe,intP,intI,intD)
Me-P_parameter=P;
Me-I_parameter=I;
Me-D_parameter=D;
//讀取控制器參數(shù)的值
controllerRead_controller(constcontroller*constMe,intP,intI,intD)
return(*Me);
//計(jì)算控制器輸出,細(xì)節(jié)看不懂沒關(guān)系,只需要知道傳入的是偏差,就會(huì)有輸出一個(gè)計(jì)算結(jié)果就行,這個(gè)結(jié)果能夠幫助控制
//至于偏差怎么定義什么時(shí)候需要用到PID控制器就知道了
intOut_controller(controller*constMe,intinput)
floatiIncpid=0;
intnow_error=input;//當(dāng)前偏差
Me-Sum_error+=input;
//積分量限幅,方式積分飽和過深
if(Me-Sum_error500)
Me-Sum_error=500;
if(Me-Sum_error-500)
Me-Sum_error=-500;
Me-ouput=Me-P_parameter*input//P
+Me-I_parameter*Me-Sum_error//I
+Me-D_parameter*(now_error-Me-Last_error);//D
Me-Last_error=now_error;//存儲(chǔ)誤差,用于下次計(jì)算
return(Me-ouput);//返回計(jì)算值
intmain()
controller*test;
controllerread_val;
//構(gòu)造,創(chuàng)建一個(gè)對(duì)象
test=Ctor_controller();
//設(shè)置對(duì)象的值
Write_controller(test,1,1,1);
//查看對(duì)象的值
read_val=Read_controller(test,1,1,1);
printf("對(duì)象P=%dI=%dD=%d\r\n",read_val.P_parameter,read_val.I_parameter,read_val.D_parameter);
//調(diào)用控制器一次:
printf("控制器輸出=%d\r\n",Out_controller(test,100));
//刪除/銷毀一個(gè)對(duì)象
Del_ontroller(test);
輸出結(jié)果:
對(duì)象P=1I=1D=1
控制器輸出=300
從上面的例子可以看出來,我直接調(diào)用對(duì)象,就可以實(shí)現(xiàn)封裝,設(shè)置,查看等,注意使用了需要手動(dòng)調(diào)用刪除,不然容易出現(xiàn)內(nèi)存泄漏,對(duì)象的生存時(shí)間就是我們程序員自己釋放前的時(shí)間。
這里是使用堆的方式,容易出現(xiàn)內(nèi)存溢出的情況,如果是單片機(jī)等其他資源較小的單元,可以使用其他方式構(gòu)造對(duì)象,比如下面:對(duì)象的生存時(shí)間就是主函數(shù)的結(jié)束時(shí)間,編譯器替我們釋放了對(duì)象的資源,不需要我們主動(dòng)進(jìn)行釋放。
#include"stdio.h"
#includestring.h
#includestdlib.h
//控制器對(duì)象
//控制器對(duì)象屬性
typedefstruct
intinput;/*控制器輸入*/
intouput;/*控制器輸出*/
intP_parameter,I_parameter,D_parameter;/*控制調(diào)試參數(shù)*/
intSum_error;/*總偏差,位置式PID積分相關(guān)的參數(shù)*/
intLast_error;/*上次偏差,位置式PID積分相關(guān)的參數(shù)*/
}controller;
//構(gòu)造對(duì)象,初始化
voidCtor_controller(controller*constMe)
//清零
memset(Me,0,sizeof(controller));
//刪除對(duì)象
voidDel_ontroller(controller*constMe)
//設(shè)置控制器參數(shù)
voidWrite_controller(controller*constMe,intP,intI,intD)
Me-P_parameter=P;
Me-I_parameter=I;
Me-D_parameter=D;
//讀取控制器參數(shù)的值
controllerRead_controller(constcontroller*constMe,intP,intI,intD)
return(*Me);
//計(jì)算控制器輸出,細(xì)節(jié)看不懂沒關(guān)系,只需要知道傳入的是偏差,就會(huì)有輸出一個(gè)計(jì)算結(jié)果就行,這個(gè)結(jié)果能夠幫助控制
//至于偏差怎么定義什么時(shí)候需要用到PID控制器就知道了
intOut_controller(controller*constMe,intinput)
floatiIncpid=0;
intnow_error=input;//當(dāng)前偏差
Me-Sum_error+=input;
//積分量限幅,方式積分飽和過深
if(Me-Sum_error500)
Me-Sum_error=500;
if(Me-Sum_error-500)
Me-Sum_error=-500;
Me-ouput=Me-P_parameter*input//P
+Me-I_parameter*Me-Sum_error//I
+Me-D_parameter*(now_error-Me-Last_error);//D
Me-Last_error=now_error;//存儲(chǔ)誤差,用于下次計(jì)算
return(Me-ouput);//返回計(jì)算值
intmain()
controllertest;
controllerread_val;
//構(gòu)造,創(chuàng)建一個(gè)對(duì)象
Ctor_controller(test);
//設(shè)置對(duì)象的值
Write_controller(test,1,1,1);
//查看對(duì)象的值
read_val=Read_controller(test,1,1,1);
printf("對(duì)象P=%dI=%dD=%d\r\n",read_val.P_parameter,read_val.I_parameter,read_val.D_parameter);
//調(diào)用控制器一次:
printf("控制器輸出=%d\r\n",Out_controller(test,100));
代碼實(shí)現(xiàn)-進(jìn)階版
到進(jìn)階版,才能夠完整的看到封裝的實(shí)現(xiàn),封裝里面就具有了對(duì)象的屬性與行為。這里我們通過函數(shù)指針訪問對(duì)象的行為,我們可以通過函數(shù)指針訪問對(duì)象的行為。
那具體行為是怎么實(shí)現(xiàn)的呢?實(shí)現(xiàn)是通過函數(shù)表中的函數(shù)指針來訪問函數(shù),以此來實(shí)現(xiàn)不同函數(shù)的調(diào)用,從而實(shí)現(xiàn)對(duì)象的行為。
那讓我們看一下代碼實(shí)現(xiàn),然后分析指針指向就知道函數(shù)是怎么實(shí)現(xiàn)的。
頭文件:定義了對(duì)象的屬性與行為
#ifndef__OOP_H
#define__OOP_H
//控制器對(duì)象
structcontroller_vtbl;
typedefstruct
//對(duì)象屬性
intinput;/*控制器輸入*/
intouput;/*控制器輸出*/
intP_parameter,I_parameter,D_parameter;/*控制調(diào)試參數(shù)*/
intSum_error;/*總偏差,位置式PID積分相關(guān)的參數(shù)*/
intLast_error;/*上次偏差,位置式PID積分相關(guān)的參數(shù)*/
//對(duì)象行為指針,通過指針訪問函數(shù)
structcontroller_vtbl*vptr;
}controller;
//對(duì)象的行為所在表,定義對(duì)象的行為在這里,通過定義函數(shù)指針指向需要實(shí)現(xiàn)對(duì)象行為的指針
structcontroller_vtbl
controller*(*Ctor_controller)(void);
void(*Del_controller)(controller*constMe);
controller(*Read_controller)(constcontroller*constMe);
void(*Write_controller)(controller*constMe,intP,intI,intD);
int(*Out_controller)(controller*constMe,intinput);
//對(duì)象行為函數(shù)
controller*Ctor_controller(void);
voidDel_controller(controller*constMe);
controllerRead_controller(constcontroller*constMe);
voidWrite_controller(controller*constMe,intP,intI,intD);
intOut_controller(controller*constMe,intinput);
#endif
源文件::具體函數(shù)的行為屬性的實(shí)現(xiàn)就在這里
//開始構(gòu)造對(duì)象,既然是控制器,對(duì)象必須具有輸入,輸出,調(diào)試參數(shù)
//屬性就是:參數(shù)值,輸入值,輸出值
//行為就是:設(shè)置參數(shù),查看參數(shù),根據(jù)輸入計(jì)算輸出,構(gòu)造對(duì)象,刪除對(duì)象
//屬性:用結(jié)構(gòu)體實(shí)現(xiàn)
#include"stdio.h"
#includestring.h
#includestdlib.h
#include"temp.h"
//構(gòu)造對(duì)象,初始化
controller*Ctor_controller(void)
controller*ptr;
structcontroller_vtbl*table;
ptr=(controller*)malloc(sizeof(controller));
table=(structcontroller_vtbl*)malloc(sizeof(structcontroller_vtbl));
//清零
memset(ptr,0,sizeof(controller));
table-Ctor_controller=Ctor_controller;
table-Del_controller=Del_controller;
table-Out_controller=Out_controller;
table-Write_controller=Write_controller;
table-Read_controller=Read_controller;
ptr-vptr=table;
returnptr;
//刪除對(duì)象/析構(gòu)對(duì)象
voidDel_controller(controller*constMe)
if(Me!=NULL)
free(Me-vptr);
free(Me);
//設(shè)置控制器參數(shù)
voidWrite_controller(controller*constMe,intP,intI,intD)
Me-P_parameter=P;
Me-I_parameter=I;
Me-D_parameter=D;
//讀取控制器參數(shù)的值
controllerRead_controller(constcontroller*constMe)
return(*Me);
//計(jì)算控制器輸出,細(xì)節(jié)看不懂沒關(guān)系,只需要知道傳入的是偏差,就會(huì)有輸出一個(gè)計(jì)算結(jié)果就行,這個(gè)結(jié)果能夠幫助控制
//至于偏差怎么定義什么時(shí)候需要用到PID控制器就知道了
intOut_controller(controller*constMe,intinput)
floatiIncpid=0;
intnow_error=input;//當(dāng)前偏差
Me-Sum_error+=input;
//積分量限幅,方式積分飽和過深
if(Me-Sum_error500)
Me-Sum_error=500;
if(Me-Sum_error-500)
Me-
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 木里木外培訓(xùn)
- 消防安全信息發(fā)布方案
- 心理健康教育知識(shí)講座
- 施工過程監(jiān)控與驗(yàn)收方案
- 橋梁施工現(xiàn)場(chǎng)應(yīng)急預(yù)案方案
- 施工地域環(huán)境影響評(píng)估方案
- 建筑周邊環(huán)境保護(hù)方案
- 供電系統(tǒng)安裝驗(yàn)收技術(shù)方案
- 農(nóng)田排水系統(tǒng)優(yōu)化設(shè)計(jì)方案
- 水電安裝工程驗(yàn)收方案
- 2026年及未來5年市場(chǎng)數(shù)據(jù)中國(guó)集裝箱物流行業(yè)市場(chǎng)發(fā)展數(shù)據(jù)監(jiān)測(cè)及投資戰(zhàn)略規(guī)劃報(bào)告
- 中小學(xué)人工智能教育三年發(fā)展規(guī)劃(2026-2028)7500字完整方案目標(biāo)務(wù)實(shí)真能落地
- 七年級(jí)地理下冊(cè)(人教版)東半球其他的國(guó)家和地區(qū)-歐洲西部自然環(huán)境教學(xué)設(shè)計(jì)
- 口腔現(xiàn)場(chǎng)義診培訓(xùn)
- 學(xué)校中層管理崗位職責(zé)及分工明細(xì)(2026年版)
- 江蘇省南京市六校聯(lián)合體2026屆高一數(shù)學(xué)第一學(xué)期期末監(jiān)測(cè)試題含解析
- 食堂設(shè)備使用及保養(yǎng)培訓(xùn)
- 村莊異地搬遷安置點(diǎn)項(xiàng)目可行性研究報(bào)告
- 《正常人體形態(tài)學(xué)》考試復(fù)習(xí)題庫(kù)大全(含答案)
- 抗洪搶險(xiǎn)先進(jìn)事跡2023
- 鋁材廠煲模作業(yè)指導(dǎo)書
評(píng)論
0/150
提交評(píng)論