版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、C+C+語言程序設計語言程序設計*MathXP2lC+語言概述l基本數(shù)據(jù)類型和表達式l數(shù)據(jù)的輸入與輸出l算法的基本控制結構l自定義數(shù)據(jù)類型3lC+是從C語言發(fā)展演變而來的,首先是一個更好的C。l引入了類的機制,最初的C+被稱為帶類的C。l1983年正式取名為C+。C+語言的標準化工作從1989年開始,于1994年制定了ANSI C+標準草案。以后又經(jīng)過不斷完善,成為目前的C+。C+語言概述4l全面兼容C它保持了C的簡潔、高效和接近匯編語言等特點對C的類型系統(tǒng)進行了改革和擴充C+也支持面向過程的程序設計,不是一個純正的面向?qū)ο蟮恼Z言l支持面向?qū)ο蟮姆椒–+語言概述5#include void m
2、ain(void) coutHello!n; coutWelcome to c+!n;C+語言概述6運行結果:Hello!Welcome to c+!C+語言概述7l大小寫的英文字母:AZ,azl數(shù)字字符:09l特殊字符:空格空格! !# #% % & &* *_(_(下劃線下劃線)+)+= =- - / / ; ;. ., ,( ) C+語言概述8l關鍵字關鍵字 C+預定義的單詞。預定義的單詞。l標識符標識符 程序員聲明的單詞,它命名程序正文程序員聲明的單詞,它命名程序正文中的一些實體。中的一些實體。l文字文字 在程序中直接使用符號表示的數(shù)據(jù)在程序中直接使用符號表示的數(shù)據(jù)l操
3、作符操作符 用于實現(xiàn)各種運算的符號。用于實現(xiàn)各種運算的符號。l分隔符分隔符 用于分隔各個詞法記號或程序正文:用于分隔各個詞法記號或程序正文:( ) , : ;l空白:空格、制表符(空白:空格、制表符(TAB鍵產(chǎn)生的字符)、鍵產(chǎn)生的字符)、換行符(換行符(Enter鍵所產(chǎn)生的字符)和注釋的總鍵所產(chǎn)生的字符)和注釋的總稱。稱。C+語言概述9l以大寫字母、小寫字母或下劃線(_)開始。l可以由以大寫字母、小寫字母、下劃線(_)或數(shù)字09組成。l大寫字母和小寫字母代表不同的標識符。C+語言概述10#includevoid main(void) const int PRICE=30; int num,to
4、tal; float v ,r,h; num=10; total=num*PRICE; couttotal endl; r=2.5; h=3.2; v=3.14159*r*r*h; coutv endl;常量變量變量先定義后使用符號常量Page 10基本數(shù)據(jù)類型和表達式11#includevoid main(void) const int PRICE=30; int num,total; float v ,r,h; num=10; total=num*PRICE; couttotal endl; r=2.5; h=3.2; v=3.14159*r*r*h; coutv endl;整型常量sho
5、rtunsigned short 2字節(jié)int、unsigned int 4字節(jié)longunsigned long 4字節(jié)整型變量整型變量聲明基本數(shù)據(jù)類型和表達式12基本數(shù)據(jù)類型和表達式13#includevoid main(void) const int PRICE=30; int num,total; float v ,r,h; num=10; total=num*PRICE; couttotalendl; r=2.5; h=3.2; v=3.14159*r*r*h; coutvendl;實型常量float 4float 4字節(jié)字節(jié) 3.41038 7位有效數(shù)字double 8double
6、 8字節(jié)字節(jié) 1.710308 15位有效數(shù)字long double 8 8字節(jié)字節(jié) 1.710308 15位有效數(shù)字實型變量缺省為double型后綴 F(或 f)為 float型后綴 L(或 l)為 long double型基本數(shù)據(jù)類型和表達式14l字符常量單引號括起來的一個字符,如:a, D, ?, $l字符變量用來存放字符常量例:char c1,c2; c1=a; c2=A;l字符數(shù)據(jù)在內(nèi)存中的存儲形式以ASCII碼存儲,占1字節(jié),用7個二進制位Page 14基本數(shù)據(jù)類型和表達式15l字符數(shù)據(jù)的使用方法字符數(shù)據(jù)和整型數(shù)據(jù)之間可以運算。字符數(shù)據(jù)與整型數(shù)據(jù)可以互相賦值。l字符串常量例:CHI
7、NA a a所以:char c; c=a; C H I N A 0a 0aPage 15基本數(shù)據(jù)類型和表達式16l布爾型變量的說明:例:bool flag;l布爾型數(shù)據(jù)的取值:只有 false 和 true 兩個值基本數(shù)據(jù)類型和表達式17例: int a=3; double f=3.56; char c=a; int c=5;Page 17基本數(shù)據(jù)類型和表達式18l不同類型數(shù)據(jù)進行混合運算時,C+編譯器會自動進行類型轉換。l為了避免不同的數(shù)據(jù)類型在運算中出現(xiàn)混淆,應盡量使用同種類型數(shù)據(jù)。l可以采用強制類型轉換:例如:float c;int a,b;c=float(a)/float(b); 或
8、c= (float)a/(float)b; 基本數(shù)據(jù)類型和表達式19lauto存儲類屬于一時性存儲,其存儲空間可以被若干變量多次覆蓋使用。lregister存儲類存放在通用寄存器中。lextern存儲類在所有函數(shù)和程序段中都可引用。lstatic存儲類在內(nèi)存中是以固定地址存放的,在整個程序運行期間都有效?;緮?shù)據(jù)類型和表達式20l基本算術運算符 + - * / %(取余) (若整數(shù)相除,結果取整)l優(yōu)先級與結合性先乘除,后加減,同級自左至右l+, -(自增、自減)例:i+; j-;Page 20基本數(shù)據(jù)類型和表達式21l舉例:n=n+5l類型:等號左邊對象的類型l值:等號左邊對象被賦值后的值P
9、age 21基本數(shù)據(jù)類型和表達式22l有10種復合運算符:+=, -=, *=, /=, %=,=,&=,=,|= l例:a+=3 等價于 a=a+3 x*=y+8 等價于 x=x*(y+8)基本數(shù)據(jù)類型和表達式23a=5表達式值為5a=b=c=5表達式值為5,a,b,c均為5a=5+(c=6)表達式值為11,a為11,c為6a=(b=4)+(c=6)表達式值為10,a為10,b為4,c為6a=(b=10)/(c=2)表達式值為5,a為5,b為10,c為2a+=a-=a*a 相當于: a=a+(a=a-a*a)Page 23基本數(shù)據(jù)類型和表達式24l格式:表達式1,表達式2l求解順序及
10、結果:先求解1,再求解2,最終結果為表達式2的值l例a=3*5,a*4 最終結果為60Page 24基本數(shù)據(jù)類型和表達式25l關系運算是比較簡單的一種邏輯運算,優(yōu)先次序為: = = != 優(yōu)先級相同(高) 優(yōu)先級相同(低)l 關系表達式是一種最簡單的邏輯表達式其結果類型為 bool,值只能為 true 或 false。l例如:ab,cb)&(xy) 其結果類型為 bool,值只能為 true 或 false?;緮?shù)據(jù)類型和表達式27l一般形式:表達式1?表達式2:表達式3表達式1 必須是 bool 類型l執(zhí)行順序:先求解表達式1,若表達式1的值為true,則求解表達式2,表達式2的值為
11、最終結果若表達式1的值為false,則求解表達式3,表達式3的值為最終結果基本數(shù)據(jù)類型和表達式28l注意:條件運算符優(yōu)級高于賦值運算符,低于邏輯運算符結合方向為自右至左表達式2、3的類型可以不同,條件表達式的最終類型為 2 和 3 中較高的類型。基本數(shù)據(jù)類型和表達式29l語法形式sizeof (類型名)或 sizeof (表達式)l結果值:“類型名”所指定的類型或“表達式”的結果類型所占的字節(jié)數(shù)?;緮?shù)據(jù)類型和表達式30l運算規(guī)則將兩個運算量的每一個位進行邏輯與操作l舉例:計算 3 & 5 3: 0 0 0 0 0 0 1 1 5:(&) 0 0 0 0 0 1 0 13 &a
12、mp; 5: 0 0 0 0 0 0 0 1l用途:將某一位置0,其它位不變。例如:將 char 型變量 a 的最低位置 0: a = a & 0376;取指定位。例如:有 char c; int a; 取出 a 的低字節(jié),置于 c 中:c = a & 0377;基本數(shù)據(jù)類型和表達式31l運算規(guī)則將兩個運算量的每一個位進行邏輯或操作l舉例:計算 3 | 5 3: 0 0 0 0 0 0 1 1 5:(|) 0 0 0 0 0 1 0 13 | 5: 0 0 0 0 0 1 1 1l用途:將某些位置1,其它位不變。例如:將 int 型變量 a 的低字節(jié)置 1 : a = a |
13、0 xff;基本數(shù)據(jù)類型和表達式32l運算規(guī)則兩個操作數(shù)進行異或:若對應位相同,則結果該位為 0,若對應位不同,則結果該位為 1,l舉例:計算 071052 071: 0 0 1 1 1 0 0 1 052: () 0 0 1 0 1 0 1 0 071052 : 0 0 0 1 0 0 1 1基本數(shù)據(jù)類型和表達式33l用途:使特定位翻轉(與0異或保持原值,與1異或取反) 例如:要使 01111010 低四位翻轉: 0 1 1 1 1 0 1 0 () 0 0 0 0 1 1 1 10 1 1 1 0 1 0 1基本數(shù)據(jù)類型和表達式34單目運算符:對一個二進制數(shù)按位取反。例: 025:0000
14、000000010101 025:1111111111101010基本數(shù)據(jù)類型和表達式35l左移運算()右移后,低位:舍棄 高位:無符號數(shù):補0 有符號數(shù):補“符號位”基本數(shù)據(jù)類型和表達式36括號+,-,sizeof*, /, %+, -=, !=位運算&|?:賦值運算逗號運算低高基本數(shù)據(jù)類型和表達式37l一些二元運算符(算術運算符、關系運算符、邏輯運算符、位運算符和賦值運算符)要求兩個操作數(shù)的類型一致。l在算術運算和關系運算中如果參與運算的操作數(shù)類型不一致,編譯系統(tǒng)會自動對數(shù)據(jù)進行轉換(即隱含轉換),基本原則是將低類型數(shù)據(jù)轉換為高類型數(shù)據(jù)。char short int unsigne
15、d long unsigned long float double低低 高高基本數(shù)據(jù)類型和表達式38l參與運算的操作數(shù)必須是bool型,如果操作數(shù)是其它類型,編譯系統(tǒng)會自動將非0數(shù)據(jù)轉換為true,0轉換為false。l位運算的操作數(shù)必須是整數(shù),當二元位運算的操作數(shù)是不同類型的整數(shù)時,也會自動進行類型轉換,l賦值運算要求左值與右值的類型相同,若類型不同,編譯系統(tǒng)會自動律將右值轉換為左值的類型?;緮?shù)據(jù)類型和表達式39l語法形式:類型說明符(表達式)或(類型說明符)表達式l強制類型轉換的作用是將表達式的結果類型轉換為類型說明符所指定的類型?;緮?shù)據(jù)類型和表達式40l格式:賦值表達式;l賦值語句與
16、賦值表達式的區(qū)別: 賦值表達式可以包含在其它表達式中,而賦值語句不可。例:if (a=b)0) t=a;不可寫為:if (a=b;)0) t=a;41l向標準輸出設備(顯示器)輸出例:int x; cout“x=“x; 42順序結構分支結構循環(huán)結構43例2-2輸入一個年份,判斷是否閏年。算法的基本控制結構#include void main(void) int year; bool IsLeapYear; cout year;IsLeapYear = (year % 4 = 0 & year % 100 != 0)|(year % 400 = 0); if (IsLeapYear) c
17、out year is a leap year endl;else cout year is not a leap year y) couty) coutx; else couty;if (表達式1) 語句1else if (表達式2) 語句2else if (表達式3) 語句3 else 語句 n算法的基本控制結構47例2-3 輸入兩個整數(shù),比較兩個數(shù)的大小。算法的基本控制結構#includevoid main( ) int x,y; coutxy; if (x!=y) if (xy) coutyendl; else coutxyendl; else coutx=yendl;運行結果1:En
18、ter x and y:5 8xy50l一般形式if ( ) if ( ) 語句 1 else 語句 2else if ( ) 語句 3 else 語句 4l注意語句 1、2、3、4 可以是復合語句,每層的 if 與 else 配對,或用 來確定層次關系。算法的基本控制結構51例2-4輸入一個06的整數(shù),轉換成星期輸出。算法的基本控制結構#include void main(void) int day; cin day;switch (day) case 0:cout Sunday endl;break; case 1:cout Monday endl;break;case 2:cout Tu
19、esday endl;break; case 3: cout Wednesday endl;break; case 4:cout Thursday endl;break; case 5:cout Friday endl;break; case 6:cout Saturday endl;break; default: cout Day out of range Sunday . Saturday endl;break; 54l一般形式switch (表達式) case 常量表達式 1:語句1 case 常量表達式 2:語句2 case 常量表達式 n:語句n default : 語句n+1 l執(zhí)
20、行順序執(zhí)行順序以case中的常量表達式值為入口標號,由此開始順序執(zhí)行。因此,每個case分支最后應該加break語句。每個常量表達式的值不能相同,次序不影響執(zhí)行結果??梢允嵌鄠€語句,但不必用 。可以是整型、字符型、枚舉型算法的基本控制結構55lcase分支可包含多個語句,且不用 。l表達式、判斷值都是int型或char型。l若干分支執(zhí)行內(nèi)容相同可共用一組語句。算法的基本控制結構56例2-5求自然數(shù)110之和分析:本題需要用累加算法,累加過程是一個循環(huán)過程,可以用while語句實現(xiàn)。算法的基本控制結構#includevoid main( ) int i(1), sum(0); while(i=1
21、0) sum+=i; i+; coutsum=sumendl;運行結果:sum=5558形式while (表達式) 語句可以是復合語句,其中必須含有改變條件表達式值的語句。執(zhí)行順序先判斷表達式的值,為 true 時,再執(zhí)行語句。算法的基本控制結構59例2-6 輸入一個整數(shù),將各位數(shù)字反轉后輸出。算法的基本控制結構#include void main(void)int n, right_digit, newnum = 0; cout n;cout The number in reverse order is ;doright_digit = n % 10;cout right_digit;n /
22、= 10; while (n != 0); coutendl;運行結果:Enter the number: 365The number in reverse order is 56362一般形式do 語句while (表達式)可以是復合語句,其中必須含有改變條件表達式值的語句。執(zhí)行順序先執(zhí)行循環(huán)體語句,后判斷條件。表達式為 true 時,繼續(xù)執(zhí)行循環(huán)體與while 語句的比較:While 語句執(zhí)行順序 先判斷表達式的值,為true 時,再執(zhí)行語句算法的基本控制結構程序1:#includevoid main( ) int i, sum(0); cini; while(i=10) sum+=i;
23、i+; coutsum=sumendl;算法的基本控制結構程序2:#includevoid main( ) int i, sum(0); cini; do sum+=i; i+; while(i=10); coutsum=sumendl;64語法形式for (表達式1;表達式2;表達式3) 語句 循環(huán)前先求解非0時執(zhí)行循環(huán)體每次執(zhí)行完循環(huán)體后求解算法的基本控制結構65輸入一個整數(shù),求出它的所有因子。算法的基本控制結構#include void main(void) int n, k;cout n;cout Number n Factors ;for (k=1; k = n; k+)if (n
24、% k = 0)cout k ; cout endl;運行結果1:Enter a positive integer: 36Number 36 Factors 1 2 3 4 6 9 12 18 36 運行結果2:Enter a positive integer: 7Number 7 Factors 1 7 68#includevoid main( )int i(1),a(0);for(;i=5;i+) do i+; a+; while(i3); i+;couta”,”iendl;算法的基本控制結構69 * * * * * * *算法的基本控制結構#includevoid main( ) int
25、 i,j,n=4; for(i=1;i=n;i+) /輸出前4行圖案 for(j=1;j=30;j+) cout ; /在圖案左側空30列 for(j=1; j=8-2*i ;j+) cout ; for(j=1; j=2*i-1 ;j+) cout*; coutendl; for(i=1;i=n-1;i+) /輸出后3行圖案 for(j=1;j=30;j+) cout ; /在圖案左側空30列 for(j=1; j=7-2*i ;j+) cout*; coutendl; 72#includevoid main( ) int n;for(n=100; n=200; n+) if (n%3!=0
26、) printf(“%d”,n);算法的基本控制結構73l讀入一系列整數(shù),統(tǒng)計出正整數(shù)個數(shù)i和負整數(shù)個數(shù)j,讀入0則結束。l分析:需要讀入一系列整數(shù),但是整數(shù)個數(shù)不定,要在每次讀入之后進行判斷,因此使用while循環(huán)最為合適。循環(huán)控制條件應該是n!=0。由于要判斷數(shù)的正負并分別進行統(tǒng)計,所以需要在循環(huán)內(nèi)部嵌入選擇結構。算法的基本控制結構#includevoid main( ) int i=0, j=0, n; coutn; while( n!=0 ) if(n0) i+=1; if(nn ; cout正整數(shù)個數(shù):i 負整數(shù)個數(shù):jendl;75break語句使程序從循環(huán)體和switch語句內(nèi)跳
27、出,繼續(xù)執(zhí)行邏輯上的下一條語句。不宜用在別處。continue 語句結束本次循環(huán),接著判斷是否執(zhí)行下一次循環(huán)。算法的基本控制結構76l為一個已有的數(shù)據(jù)類型另外命名l語法形式typedef 已有類型名 新類型名表;l例如typedef double area,volume;typedef int natural;natural i1,i2;area a;volume v;自定義數(shù)據(jù)類型77l只要將需要的變量值一一列舉出來,便構成了一個枚舉類型。l枚舉類型的聲明形式如下:enum 枚舉類型名 變量值列表;l例如:enum weekday sun,mon,tue,wed,thu,fri,sat;自定
28、義數(shù)據(jù)類型78l枚舉類型應用說明: 對枚舉元素按常量處理,不能對它們賦值。例如,不能寫:sun=0; 枚舉元素具有缺省值,它們依次為: 0,1,2,.。 也可以在聲明時另行指定枚舉元素的值,如:enum weekday sun=7,mon=1,tue,wed,thu,fri,sat;枚舉值可以進行關系運算。 整數(shù)值不能直接賦給枚舉變量,如需要將整數(shù)賦值給枚舉變量,應進行強制類型轉換。自定義數(shù)據(jù)類型79l設某次體育比賽的結果有四種可能:勝(win)、負(lose)、平局(tie)、比賽取消(cancel),編寫程序順序輸出這四種情況。l分析:由于比賽結果只有四種可能,所以可以聲明一個枚舉類型,聲
29、明一個枚舉類型的變量來存放比賽結果。自定義數(shù)據(jù)類型#include enum game_result WIN, LOSE, TIE, CANCEL;int main( )game_result result;enum game_result omit = CANCEL;int count; for (count = WIN ; count = CANCEL ; count+) result = (game_result)count; if (result = omit) cout The game was cancelledn; else cout The game was played ;
30、if (result = WIN) cout and we won!; if (result = LOSE) cout and we lost.; cout n; return 0;運行結果 The game was played and we won! The game was played and we lost. The game was played The game was cancelled83l口袋中有紅、黃、藍、白、黑五種顏色的球若干個。每次從口袋中取出3個不同顏色的球,問有多少種取法。l分析:由于球只能是五種顏色之一,故可用枚舉類型表示球的顏色。設取出的球為i、j、k,根據(jù)題
31、意,i、j、k分別可以有五種取值,且ijk。可以用窮舉法,逐個檢驗每一種可能的組合,從中找出符合要求的組合并輸出。自定義數(shù)據(jù)類型#includevoid main( )enum colorred,yellow,blue,white,black;enum color pri;int n,loop,i,j,k;char c;n=0;for(i=red;i=black;i+)for(j=red;j=black;j+)if(i!=j) /前兩個球不同for(k=red;k=black;k+) if(k!=i)&(k!=j) /第三個球不同于前兩個 n=n+1; cout.width(4); c
32、outn; for(loop=1;loop=3;loop+) switch(loop) case 1: pri=(enum color)i; break; case 2: pri=(enum color)j; break; case 3: pri=(enum color)k; break; default: break; switch(pri) case red: cout red; break; case yellow: cout yellow; break; case blue: cout blue; break; case white: cout white; break; case b
33、lack: cout black; break; default: break; coutendl;couttotal:nendl;87l結構的概念結構是由不同數(shù)據(jù)類型的數(shù)據(jù)組成的集合體。l聲明結構類型 struct 結構名 數(shù)據(jù)類型 成員名 1; 數(shù)據(jù)類型 成員名 2; : 數(shù)據(jù)類型 成員名 n; ;自定義數(shù)據(jù)類型88l舉例:struct student /學生信息結構體 int num; /學號 char name20; /姓名 char sex; /性別 int age; /年齡 float score; /成績 char addr30; /住址自定義數(shù)據(jù)類型89l變量說明形式 結構名
34、結構變量名;l注意:結構變量的存儲類型概念、它的壽命、可見性及使用范圍與普通變量完全一致。結構變量說明在結構類型聲明之后,二者也可同時進行。結構變量占內(nèi)存大小可用 sizeof 運算求出: sizeof(運算量)自定義數(shù)據(jù)類型90l初始化說明結構變量的同時可以直接設置初值。l使用結構體成員的引用形式: 結構變量名.成員名自定義數(shù)據(jù)類型91結構體變量的初始化和使用#include #include struct student /學生信息結構體 int num; /學號 char name20; /姓名 char sex; /性別 int age; /年齡stu=97001,Lin Lin,F,
35、19;自定義數(shù)據(jù)類型void main( ) coutsetw(7)stu.numsetw(20) setw(3)stu.sexsetw(3)stu.age;運行結果: 97001 Lin Lin F 1993有三只動物,都具有重量和身長兩個屬性,現(xiàn)在需要對它們的重量和身長賦值,并且輸出它們的重量。#include struct animal int weight; int feet;int main( ) animal dog1, dog2, chicken;自定義數(shù)據(jù)類型 dog1.weight = 15; dog2.weight = 37; chicken.weight = 3; dog1.feet = 4; dog2.feet = 4; chicken.feet = 2; cout The weight of dog1 is dog1.weight n; c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司門崗安檢制度規(guī)范
- 園林路燈管理制度規(guī)范
- 保險行業(yè)規(guī)范管理制度
- 外訪催收制度規(guī)范要求
- 井上火災報警制度規(guī)范
- 如何規(guī)范安全管理制度
- 飛行員制服登記制度規(guī)范
- 零食小賣部制度規(guī)范標準
- 蚊香使用制度及流程規(guī)范
- 園區(qū)車位巡邏制度規(guī)范
- 220千伏輸變電工程投標方案投標文件(技術方案)
- 2024-2025學年度浙江特殊教育職業(yè)學院單招《語文》試卷附完整答案詳解(全優(yōu))
- 保護患者隱私培訓課件
- 高職單招課件
- 私募基金設立流程與風險控制報告
- 非戰(zhàn)爭軍事行動常識課件
- 北京市公路挖掘及路產(chǎn)損壞賠償指導標準2025
- 北京市通州區(qū)2024-2025學年八年級下學期學業(yè)質(zhì)量檢測生物考試題目及答案
- 工藝部年度計劃及目標
- 養(yǎng)老院九防知識培訓課件
- 截止閥解體檢修培訓課件
評論
0/150
提交評論