




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
關于面向對象程序設計之類和對象第一頁,共五十六頁,2022年,8月28日2.1面向對象程序設計方法概述什么是面向對象的程序設計? 面向對象的程序設計(Object-OrientedProgramming
)和傳統的結構化程序設計的思路完全不同。面向對象的程序設計和人們日常生活解決問題的思路是相似的。比如,我們生產汽車時,不是順序制造發動機,在設計制造底盤、車身、輪子。而是分別設計制造發動機、底盤、車身和輪子,最后組裝在一起。組裝時,各部件之間有聯系,以便協調工作。例如,司機踩油門,就能調節油路,控制發動機的轉速,就能驅動車輪。
第二頁,共五十六頁,2022年,8月28日2.1面向對象程序設計方法概述 程序設計者的任務有兩個:一是設計所需要的類和對象,即確定那些數據和操作封裝在一起;(類設計者、核心模塊產品提供商)二是考慮怎樣向有關對象發送消息,以啟動相關對象的操作。(主程序設計者,外包程序,面向用戶的公司) 編程者如同一個總調度,不斷地向各個對象發出命令,讓這些對象活動起來,完成指定的工作。 這就是面向對象的程序設計的基本思路。第三頁,共五十六頁,2022年,8月28日2.1面向對象程序設計方法概述什么是對象(object)? 一個對象由一組“屬性”和一組“行為”構成。并根據外界給它的消息進行相應的操作。系統中多個對象通過一定的渠道相互聯系。 任何事物都可以看成一個對象。可以是自然物體,也可以是邏輯結構。例:
一個班級作為對象一個班級作為對象,有兩個要素:一是班級的靜態特征,如班級所屬的專業,學生人數、班主任姓名等,這種靜態特征稱為“屬性”;另一個是班級的動態特征,如上課,體育比賽,開會等,稱為“行為”。外界向班級發一個信息(如上課鈴聲,廣播通知),我們稱之為“消息”,班級就會發生一個操作(要么上課,要么開會)第四頁,共五十六頁,2022年,8月28日2.1面向對象程序設計方法概述什么是C++對象?
C++中,每個對象都由若干數據(屬性)和若干函數(操作行為)組成。數據就是對象的“屬性”,函數就是用來對數據進行的“操作”,以便實現某種功能。這種操作就是對象的“行為”,也叫“方法”。 我們點擊一下鼠標,按動鍵盤的一個按鈕,就是給某個對象一個消息,系統回調用該對象中的函數進行操作。 比如長方形對象,其長和寬就是它的屬性,調用該對象的一些函數,即向該對象傳送一些消息,可以用來對其長、寬值進行加工計算,以實現求出面積、周長等功能。
第五頁,共五十六頁,2022年,8月28日2.1面向對象程序設計方法概述什么是對象封裝(encapsulation
)? 就是把對象的不想讓外界知道的屬性和功能屏蔽起來,讓外界看不見。封裝有兩個含義,一是將有關的數據和操作函數封裝成一個基本單位,即對象內。各對象之間相互獨立,互不干擾;二是將對象中的部分屬性或功能對外隱蔽,只留少數接口向外公布,以接收外界信息。對象封裝的好處在于,降低了人們操作對象的復雜程度。使用對象的人,不必知道對象內部的實現細節,只需要了解外部功能就可以自如地操作該對象。 對象的行為由類的內部數據結構和相關的操作確定;外部行為通過操作接口實現。人們關心的就是操作接口(函數名)所能提供的服務。
第六頁,共五十六頁,2022年,8月28日2.1面向對象程序設計方法概述什么是抽象(abstraction)? 將具有相同特性的事物歸納、集中成一個統一類型,稱為抽象。比如,把張三,李四,王五歸納為一類,我們稱之為“人”。
抽象的作用,是表示同類事物的本質。 C和C++中,數據類型就是對一批具體數據的抽象,整形數據就是所有整數的抽象。
“類”是“對象”的抽象,“對象”則是類的“特例”,或“具體表現形式”。第七頁,共五十六頁,2022年,8月28日2.1面向對象程序設計方法概述什么是繼承(inherit)?
B類在A類的基礎上增加了少量內容。我們顯然不必重新設計一個新類B,只需要把A類拿過來,在此基礎上添加新內容就可以了。這就是面向對象程序設計的繼承機制。
C++提供繼承機制,大大節省了編程工作量,這就是所謂“軟件重用(softwarereusability)”的思想。對于大型軟件的開發具有重要意義。第八頁,共五十六頁,2022年,8月28日2.1面向對象程序設計方法概述什么是多態性(polymorphism)? 如果有幾個相似而不同的對象,人們往往要求在向它們發出同一個消息時,各自作出不同的操作,這種情況就是“多態現象”。 C++中,所謂多態性是指,由繼承而產生的相關的不同的類,其對象對同一消息會作出不同的響應。 顯然,多態性能增加程序的靈活性,它是面向對象程序設計的重要特征。第九頁,共五十六頁,2022年,8月28日2.1面向對象程序設計方法概述類與對象的作用
C++全面支持傳統的面向過程的程序設計(即結構化編程),也支持基于對象和面向對象的程序設計。 所謂基于對象,是指程序是以類和對象為基礎,程序的操作是圍繞對象進行的。 所謂面向對象,是指,在基于對象的基礎上,利用了繼承機制和多態性。面向對象的程序設計特點: 類具有對數據的抽象性、封裝性、繼承性、多態性。第十頁,共五十六頁,2022年,8月28日2.2類的聲明和對象的定義類和對象的關系
C++中,對象的類型稱為類(class)。類代表了某一批對象的共同特性。前面已經談到,類是對象的抽象,而對象是類的具體實例(instance)。就象結構體類型和結構體變量一樣。
C++中,我們先聲明一個類的類型,然后再定義該類的若干對象。對象就是類這種類型的一個變量。
類是抽象的,不占內存,而對象是具體的,要占用內存空間。第十一頁,共五十六頁,2022年,8月28日2.2類的聲明和對象的定義類的聲明 類的聲明方法和結構體的聲明方法一樣,只是將關鍵字struct換成class:class類名{private:
私有數據成員和私有成員函數;
public:
公共數據成員和公共成員函數;};//成員訪問限定區域先后次序任意,但一種最好只出現一次,類的成員包含對數據操作的函數,體現了數據和操作的封裝類的成員不能所有都私有,一般隱藏數據,把成員函數作為對外接口成員訪問限定符(memberaccessspecifier)成員訪問限定符(memberaccessspecifier)別忘了必須用分號結束!第十二頁,共五十六頁,2022年,8月28日2.2類的聲明和對象的定義類的聲明示例類頭:classrectangle類體:{private: intlength,width,area,perimeter;public:
voidPutArea() {area=length*width;} voidPutPerimeter() {perimeter=(length+width)*2;}
voiddisplay() {cout<<“length=“<<length<<endl; cout<<“width=“<<width<<endl; cout<<“area=“<<area<<endl; cout<<“perimeter=“<<perimeter<<endl;}};在類的外面不能訪問私有成員,只能通過公有成員函數間接訪問在類的外面可以訪問公有成員不指定公有私有,則默認為私有一般先出現private,后出現public第十三頁,共五十六頁,2022年,8月28日類的聲明還有一種protected類型,不能被類外訪問,但可以被派生類訪問一般使用廠商提供的類庫也可以自定義類庫,便于單位部門使用第十四頁,共五十六頁,2022年,8月28日2.2類的聲明和對象的定義對象的定義 聲明了類以后,就可以定義該類的對象了。給對象分配了存儲空間。其格式為:
[class]類名對象名1,對象名2,…//方括號表示可選項對象定義示例 如前例中,聲明了一個名為rectangle的類,我們可以定義該類的若干對象:
classrectangler1,r2,r3; rectangler1,r2,r3;第十五頁,共五十六頁,2022年,8月28日2.2類的聲明和對象的定義對象定義classrectangle{private: intlength,width,area,perimeter;public: voidPutArea() {area=length*width;} voidPutPerimeter() {perimeter=(length+width)*2;}
voiddisplay() {cout<<“length=“<<length<<endl; cout<<“width=“<<width<<endl; cout<<“area=“<<area<<endl; cout<<“perimeter=“<<perimeter<<endl;}}r1,r2;不出現類名,直接定義對象,不提倡第十六頁,共五十六頁,2022年,8月28日2.2類的聲明和對象的定義類和結構體類型異同struct/classrectangle{ public/private:intlength,width,area,perimeter; voidPutArea() {area=length*width;} voidPutPerimeter() {perimeter=(length+width)*2;}
voiddisplay() {cout<<“length=“<<length<<endl; cout<<“width=“<<width<<endl; cout<<“area=“<<area<<endl; cout<<“perimeter=“<<perimeter<<endl;}}r1,r2;建議使用CLASS第十七頁,共五十六頁,2022年,8月28日2.3類的成員函數成員函數的性質類的成員函數也叫類函數,用法和一般函數基本上一樣。區別在于它只是屬于一個類的成員而出現在類中。它可以被指定為類的私有成員(private)、公有成員(public)或保護成員(protected)。 使用類函數時,要注意它的使用權限,如果是私有成員,只能被本類的其他成員函數調用,不能被類外調用(工具函數)。成員函數可以調用本類所有數據成員和成員函數,也可以引用在本作用域中的有效數據。 通常,我們把類的數據成員定義成私有成員,對外屏蔽,而把成員函數定義成公有成員,他可以調用私有成員和其它成員。 一個類若沒有成員函數,就退化成C語言的結構體,而失去意義。
第十八頁,共五十六頁,2022年,8月28日2.3類的成員函數在類外定義成員函數 成員函數一般在類體中定義,如前面所講。也可以在類外定義,但要指明是屬于哪個類的成員函數,用“類名::函數名”來指定。例如:classrectangle{private:intlength,width,;intarea,perimeter;public:voidPutArea();voidPutPerimeter();voiddisplay();};voidrectangle::PutArea(){area=length*width;}voidrectangle::PutPerimeter(){perimeter=(length+width)*2;}voidrectangle::display(){cout<<“length=“<<length<<endl;cout<<“width=“<<width<<endl;cout<<“area=“<<area<<endl;cout<<“perimeter=“<<perimeter;}rectangler1,r2,r3;第十九頁,共五十六頁,2022年,8月28日“::”成為域限定符。如果在域限定符前沒有類名,或函數名前既沒有類名,又沒有域限定符:
::display()或display()
則表示該函數不屬于任何類,它不是成員函數,而是全局函數,即普通函數。第二十頁,共五十六頁,2022年,8月28日一般來說,類定義包括兩個部分:1、聲明部分(“做什么”):數據成員(名稱、類型)
成員函數(方法)2、實現部分(“怎么做”):成員函數的定義和實現聲明在定義之前,也即是類體外定義成員函數(這里用定義,實際是給函數分配了空間,后章節詳述)減小了類體長度,隱藏了執行細節,提高了類的保密性第二十一頁,共五十六頁,2022年,8月28日2.3類的成員函數
inline成員函數 類的成員函數也可以指定為內聯函數,只要是函數代碼較少,有頻繁使用。我們只要在成員函數的類型簽名加上inline關鍵字就可以。classrectangle{private:intlength,width,;intarea,perimeter;public:inlinevoidPutArea();
inlinevoidPutPerimeter();
voiddisplay() {cout<<“length=“<<length<<endl; cout<<“width=“<<width<<endl; cout<<“area=“<<area<<endl; cout<<“perimeter=“<<perimeter<<endl;};第二十二頁,共五十六頁,2022年,8月28日2.3類的成員函數
inline成員函數
classrectangle{private:intlength,width,;intarea,perimeter;public:inlinevoidPutArea();
inlinevoidPutPerimeter();voiddisplay();};voidrectangle::display(){cout<<“length=“<<length<<endl;cout<<“width=“<<width<<endl;cout<<“area=“<<area<<endl;cout<<“perimeter=“<<perimeter;}Inline第二十三頁,共五十六頁,2022年,8月28日2.3類的成員函數
inline成員函數類體中不包含循環控制結構,此類成員函數自動作為inline成員函數。類體外也可定義inline成員函數,聲明、定義其一顯式定義即可,類定義和其成員函數定義必須在同一文件(或包含)。
第二十四頁,共五十六頁,2022年,8月28日2.3類的成員函數成員函數的存儲方式
同一類定義了多個對象時,每個對象的數據成員各自占據獨立的空間,而共享一個共用的函數代碼段,不占用對象的存儲空間。
C++為此專門設立了一個名為this的指針,用來指向不同的對象。當調用對象r1,成員函數訪問的就是r1的數據成員。所以成員函數建議在類體外定義。數據1對象r1數據2對象r2數據10對象r10…共用函數代碼第二十五頁,共五十六頁,2022年,8月28日2.4對象成員的引用用對象名和成員運算符(.)訪問對象成員舉例:
classrectangle{public:
intlength,width;//公共數據成員voiddisplay();//公共成員函數};voidrectangle::display(){cout<<“area=“<<length*width<<ednl;cout<<“perimeter=“<<(length+width)*2;}voidmain(){rectangler1;
r1.lenght=5;//用對象名和成員運算符)訪問數據成員
r1.width=4;//用對象名和成員運算符(.)訪問數據成員
r1.display();//用對象名和成員運算符(.)訪問成員函數}用這種方式訪問的成員,必須定義成公用成員!第二十六頁,共五十六頁,2022年,8月28日2.4對象成員的引用用指向對象的指針訪問對象成員舉例:(*p).length被簡化成p->length
classrectangle{public:
intlength,width;//公共數據成員voiddisplay();//公共成員函數};voidrectangle::display(){cout<<“area=“<<length*width<<ednl;cout<<“perimeter=“<<(length+width)*2;}voidmain(){rectangler2,*p;p=&r2;
p->lenght=5;
p->width=4;
p->display();}用這種方式萬分的成員,也必須定義成公用成員!第二十七頁,共五十六頁,2022年,8月28日2.4對象成員的引用用對象的引用訪問對象成員舉例:
classrectangle{public:intlength,width;//公共數據成員voiddisplay();//公共成員函數};voidrectangle::display(){cout<<“area=“<<length*width<<ednl;cout<<“perimeter=“<<(length+width)*2;}voidmain(){rectangler2;rectangle&r3=r2;
r3.lenght=5;
r3.width=4;
r3.display();}第二十八頁,共五十六頁,2022年,8月28日例定義一個時間類,并定義一個對象及其引用,輸入時分秒輸出時:分:秒#include<iostream>usingnamespacestd;intmain(){Timet1;cin>>t2.hour;cin>>t2.minute;cin>>t1.sec;cout<<t1.hour<<":"<<t1.minute<<":"<<t2.sec<<endl;}
第二十九頁,共五十六頁,2022年,8月28日例#include<iostream>usingnamespacestd;classTime{public:inthour;intminute;intsec;};intmain(){Timet1;
Time&t2=t1;cin>>t2.hour;cin>>t2.minute;cin>>t1.sec;cout<<t1.hour<<":"<<t1.minute<<":"<<t2.sec<<endl;}
第三十頁,共五十六頁,2022年,8月28日例定義2個對象,分別輸入時分秒輸出時:分:秒#include<iostream>classTime{public:inthour;intminute;intsec;};intmain(){return0;}第三十一頁,共五十六頁,2022年,8月28日例#include<iostream>usingnamespacestd;classTime{public:inthour;intminute;intsec;};intmain(){Timet1;cin>>t1.hour;cin>>t1.minute;cin>>t1.sec;cout<<t1.hour<<":"<<t1.minute<<":"<<t1.sec<<endl;Timet2;cin>>t2.hour;cin>>t2.minute;cin>>t2.sec;cout<<t2.hour<<":"<<t2.minute<<":"<<t2.sec<<endl;return0;}第三十二頁,共五十六頁,2022年,8月28日例:定義函數執行輸入輸出#include<iostream>usingnamespacestd;classTime{public:inthour;intminute;intsec;};
intmain(){
voidset_time(Time&);voidshow_time(Time&);Timet1;set_time(t1);show_time(t1);Timet2;set_time(t2);show_time(t2);return0;}
第三十三頁,共五十六頁,2022年,8月28日例#include<iostream>usingnamespacestd;classTime{public:inthour;intminute;intsec;};intmain(){voidset_time(Time&);voidshow_time(Time&);Timet1;set_time(t1);show_time(t1);Timet2;set_time(t2);show_time(t2);return0;}
voidset_time(Time&t){cin>>t.hour;cin>>t.minute;cin>>t.sec;}
voidshow_time(Time&t){cout<<t.hour<<":"<<t.minute<<":"<<t.sec<<endl;}第三十四頁,共五十六頁,2022年,8月28日例:定義含默認值參數的set_time和show_time函數#include<iostream>classTime{public:inthour;intminute;intsec;};intmain(){Timet1;set_time(t1,12,23,34);show_time(t1);Timet2;set_time(t2);show_time(t2);}
第三十五頁,共五十六頁,2022年,8月28日例#include<iostream>usingnamespacestd;classTime{public:inthour;intminute;intsec;};intmain(){
voidset_time(Time&,inthour=0,intminute=0,intsec=0);
voidshow_time(Time&);Timet1;set_time(t1,12,23,34);show_time(t1);Timet2;set_time(t2);show_time(t2);
return0;}
voidset_time(Time&t,inthour=9,intminute=30,intsec=0){t.hour=hour;t.minute=minute;t.sec=sec;}
voidshow_time(Time&t){cout<<t.hour<<":"<<t.minute<<":"<<t.sec<<endl;}第三十六頁,共五十六頁,2022年,8月28日例:定義成員函數輸入時分秒并輸出#include<iostream>classTime{public:private:inthour;intminute;intsec;};intmain(){Timet1;t1.set_time();t1.show_time();Timet2;t2.set_time();t2.show_time();}
voidTime::set_time(){cin>>hour;cin>>minute;cin>>sec;}
voidTime::show_time(){cout<<hour<<":"<<minute<<":"<<sec<<endl;}第三十七頁,共五十六頁,2022年,8月28日例#include<iostream>usingnamespacestd;classTime{public:
voidset_time();voidshow_time();private:inthour;intminute;intsec;};intmain(){Timet1;t1.set_time();t1.show_time();Timet2;t2.set_time();t2.show_time();return0;}
voidTime::set_time(){cin>>hour;cin>>minute;cin>>sec;}
voidTime::show_time(){cout<<hour<<":"<<minute<<":"<<sec<<endl;}第三十八頁,共五十六頁,2022年,8月28日習題1第三十九頁,共五十六頁,2022年,8月28日習題1#include<iostream>usingnamespacestd;classTime{public:
inthour;intminute;intsec;};Timet;voidset_time(void){cin>>t.hour;cin>>t.minute;cin>>t.sec;}voidshow_time(void){cout<<t.hour<<":"<<t.minute<<":"<<t.sec<<endl;}intmain(){set_time();show_time();return0;}第四十頁,共五十六頁,2022年,8月28日例2.4P61#include<iostream>usingnamespacestd;classArray_max{public:voidset_value();voidmax_value();voidshow_value();private:intarray[10];intmax;};intmain(){Array_maxarrmax;arrmax.set_value();arrmax.max_value();arrmax.show_value();return0;}第四十一頁,共五十六頁,2022年,8月28日2.6類的封裝和信息隱蔽公用接口和私有實現的分離 我們已經學到,C++通過類的封裝,將類的數據成員和成員函數集成到一個類中。而一般在類的聲明時,往往把數據成員指定成私有的,使它們與外界隔離,即,不能在類外直接使用私有成員,外界只能通過類的公有函數,間接進行對私有成員的操作。換句話說,外界與類的私有成員的唯一聯系渠道,就是該類的公有成員函數。 所以,我們一般把成員函數指定成公有的(public)性質(除非某些成員函數不想讓外界調用)。 這就是所謂的“外部接口”與內部實現的分離,以起到信息隱蔽的作用。而這是軟件工程最基本的原則。第四十二頁,共五十六頁,2022年,8月28日定義一個類就是實現對創建一個對象的數據結構的描述。在類中,一些成員是保護的,被有效地屏蔽,以防外界的干擾和誤操作。另一些成員是公共的,作為接口提供外界使用。右圖是對它們采用的圖示方法說明類的組成結構。以Point類為例。xoffsetyoffsetsetangleradiusxy封裝體內部數據成員Point類訪問接口第四十三頁,共五十六頁,2022年,8月28日2.6類的封裝和信息隱蔽類聲明和成員函數定義的分離 當一個類被多個程序使用時,一般將類的聲明(包括成員函數的聲明)放在指定的頭文件中,用戶在編程時,將該頭文件包含近來就可以了。而不必在每個使用該類的程序中重復書寫該類的聲明。 我們然后可以直接在程序中直接定義該類的對象,直接調用該類的公有成員函數。為了實現信息隱蔽,對類的成員函數的定義一般不放在頭文件中,而放在另一個文件中。
然后按照對多文件程序的編譯和運行方法對程序進行編譯和連接。請看下面示例。 第四十四頁,共五十六頁,2022年,8月28日2.6類的封裝和信息隱蔽//rectangle.hclassrectangle{private: intlength,width;public: voidPut(); voiddisplay();};//rectangle.cpp#include<iostream.h>#include“rectangle.h”voidrectangle::Put(){length=5;width=4;}voidrectangle::display(){cout<<“area=“<<length*width<<endl;}//main.cpp#include<iostream.h>#include“rectangle.h”voidmain(){rectangler1;r1.display();}第四十五頁,共五十六頁,2022年,8月28日2.6類的封裝和信息隱蔽 在實際運用中,將若干功能相近的類聲明集中在一起,形成類庫。類庫包括兩個組成部分:類聲明頭文件;經過編譯的頭文件函數的定義的目標文件。 用戶只需要將類庫裝入自己的計算機中C++系統的子目錄下,并在程序中用#include命令將有關類聲明的頭文件包含到程序中,就可以使用這些類和其中的成員函數了。第四十六頁,共五十六頁,2022年,8月28日2.6類的封裝和信息隱蔽面向對象程序設計中的幾個名詞方法:method,指對數據的操作。消息:其實就是一個命令,由程序語句實現。外界通過發送“消息”來激活有關的方法。 比如: rectangle.dispaly();
就是向rectangle對象發一個消息,通知它執行其中的“display()”方法。 這一條語句就涉及到對象、消息、方法這三個術語。
rectangel:是對象;
display():是方法;
rectangel.display():是消息。第四十七頁,共五十六頁,2022年,8月28日習題2#include<iostream>usingnamespacestd;classTime{public:inthour;intminute;intsec;};Timet;intmain(){t.set_time();t.show_time();}第四十八頁,共五十六頁,2022年,8月28日習題2#include<iostream>usingnamespacestd;classTime{public:voidset_time(void){cin>>hour;cin>>minute;cin>>sec;}
voidshow_time(void){cout<<hour<<":"<<minute<<":"<<sec<<endl;}
private:inthour;intminute;intsec;};Timet;intmain(){t.set_time();t.show_time();return0;}第四十九頁,共五十六頁,2022年,8月28日習題3#include<iostream>classTime{public:private:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 浙江省杭州市七縣市2025年生物高二下期末監測模擬試題含解析
- 新疆阿瓦提縣第四中學2025年高二下物理期末監測試題含解析
- 鹽城市阜寧縣高二上學期期中考試生物(必修)試題
- 車庫租賃與新能源汽車推廣合同
- 桉樹種植基地經營權轉讓與租賃合同
- 倉單質押融資貸款合同模板
- 高標準倉儲服務與財產擔保綜合合同范本
- 大宗商品采購合同運輸成本控制協議
- 科技創業園區場地租賃與創業孵化合同
- 多功能車間承包經營合同標準范本
- 2024湖南衡陽縣城市和農村建設投資有限公司招聘專業技術人員2人筆試參考題庫附帶答案詳解
- 2025年輸變電電力變壓器行業市場分析現狀
- 專題19 介詞和介詞短語(清單+專練)-中考英語一輪復習知識清單
- 2025新人教版七年級道德與法治下冊教案教學設計11.3 嚴于律己(含反思)
- 2025年醫院基建科面試題及答案
- (一模)臨沂市2025屆高三高考第一次模擬考試歷史試卷(含標準答案)
- 2026年版廣西高等職業教育考試(新職教高考)普高生專用升高職大?!堵殬I適應性測試》模擬試卷(第1套)
- 企業營銷戰略咨詢服務協議
- 人教版(2024)七年級下冊英語Unit 7 A Day to Remember 單元教學設計(共6課時)
- 2025年中國廣電山東網絡有限公司招聘筆試參考題庫含答案解析
- 基于機器視覺的焊縫缺陷檢測方法及其應用研究
評論
0/150
提交評論