




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
項目五用函數實現學生成績管理系統-項目五用函數實現學生成績管理系統-項目五用函數實現學生成績管理系統-項目要點:函數的概念函數的定義和調用函數調用時參數的傳遞編譯預處理學習目標:熟知函數的定義和調用熟練編寫和調用函數掌握函數的嵌套調用和遞歸調用掌握宏定義及條件編譯的運用項目五用函數實現學生成績管理系統工作任務導入工作任務
C語言提倡使用“模塊化設計思想”?!澳K化設計思想”就是將一個較復雜的大問題分解成一個個的子問題,把每個子問題都看成是一個模塊,編寫程序的重心就落在如何實現這些模塊上,這樣就把大問題化小,復雜的問題化簡單了。本項目就是采用“模塊化設計思想”,使用函數來實現學生成績管理系統。學生成績管理系統錄入學生成績輸出學生成績查詢學生成績計算總分和平均分退出輸出學生成績單
本項目在項目四的基礎上對功能模塊重新進行了設計,處理班級多名學生多門課程的成績。功能模塊圖右圖所示。工作任務導入引導問題(1)項目功能較多,如何將相對獨立的功能單獨實現?(2)如何使用已經獨立實現的功能塊?(3)保存數據的各類變量的作用域是什么?本項目由3個任務組成。任務1認識函數,熟悉函數的定義和調用;任務2熟悉函數的嵌套調用和遞歸調用;任務3用函數實現學生成績管理系統。任務分析:某班有50名學生,參加3門課程的期末考試,用函數實現以下功能:①統計1門課程的總分及平均分。②統計多門課程的總分和平均分。③設計界面,輸出分隔線。通過任務1,熟悉函數的定義和調用方法,實現統計1門課程的總分及平均分的功能。任務1認識函數
定義3個函數:函數1實現輸出一條線,函數2實現求1門課程總分和平均分的功能,主函數調用前兩個函數來完成任務。解決方法:可參考程序見書本P.1275.1.1使用函數實現學生1門課程的成績管理函數的定義
函數可以看作是一個可以執行特定功能的“黑匣子”,當我們給定輸入時,它就會給出正確的輸出,內部程序是怎么執行的不必知道。只有當我們編寫一個函數時才需要熟悉內部是怎么實現的。在一個C語言程序中,除了必須有main()函數外,還要經常使用一些其他函數,這些函數通常稱為子函數,子函數由用戶自己命名,一般完成某種特定的子功能。函數定義的一般形式:函數類型函數名([形式參數表]){[函數體]
}5.1.2函數的定義和調用函數的調用
1、函數調用形式調用函數的一般形式如下:函數名([實際參數列表]);
其中,實際參數(簡稱實參)是有確定值的變量或表達式,若有多個參數,各參數間需要用逗號分開。說明:(1)在實參表中,實參的個數及順序必須和形參的個數與順序相同,實參的數據類型必須和對應的形參數據類型相同。(2)若為無參數調用,則函數名后的括號不省略。(3)函數間可以互相調用,但不能調用main()函數。5.1.2函數的定義和調用2、函數調用的方式按函數在程序中出現的位置分為以下三種調用方式:(1)函數語句:把函數調用作為一個語句,即“函數名([實參表]);”。如printStar();,執行該語句時,調用函數printStar(),執行其功能。這時不要求函數帶返回值,只要求函數完成一定的操作。(2)函數表達式:函數出現在一個表達式中,要求函數帶回一個確定的值以參加表達式的運算。如ms=sum(a,b)/2.0;,執行該語句時,調用sum函數,并返回運算值賦值給ms。(3)函數參數:函數調用作為一個函數的實參。如result=max(a,max(b,c));。5.1.2函數的定義和調用問題5.2無參函數的定義和調用。#include<stdio.h>voidprintStar(){printf("********************\n");}voidprintMessage(){printf("ThisisaCprogram!\n");}main(){printStar();printMessage();printStar();}【說明】程序中除了主函數main()之外,還有兩個函數,分別是printStar()函數和printMessage()函數。printStar和printMessage分別是兩個函數的函數名,并且函數名后括號中無參數。練一練編寫函數實現在屏幕上輸出一條線,并在主函數中調用輸出兩條線。問題5.3有參函數的定義和調用。#include<stdio.h> intsum(intx,inty){intz; z=x+y; return(z);}main(){ inta,b;floatavg; printf("Inputtwonumbers:"); scanf("%d%d",&a,&b);avg=sum(a,b)/2.0;printf("Theaverageis%f\n",avg);}【說明】
本例實現了從鍵盤輸入兩個整數,在顯示器上輸出這兩個數的平均值,其中求兩個數的和是通過一個有參數的函數實現的。程序運行的結果是:
Inputtwonumbers:2335Theaverageis29.000000問題5.4輸入3個數,輸出其最大值。#include<stdio.h>intmax(intx,inty){intmx;mx=x>y?x:y;returnmx;}main(){inta,b,c,result;printf("Pleaseinput3integernumbers:\n");scanf("%d%d%d",&a,&b,&c);result=max(a,max(b,c));printf("Themaxof%d、%d、%dis%d\n",a,b,c,result);}【說明】程序中除了主函數main()之外,還有用于求兩個數最大值的max函數。計算3個數最大值時,調用函數max時的實參用“函數調用”方式實現,語句result=max(a,max(b,c));即為這種調用方式。練一練編寫一個求1+2+…+n的函數,并在主函數中調用,計算出1到100的累加和。問題5.5編寫一個函數判斷某年是否是閏年,如果是則返回值為1,如果不是則返回值為0,在主函數中調用,判斷輸入的年份是否為閏年。#include"stdio.h"intjudgeLeap(intyear){ if((year%4==0&&year%100!=0)||(year%400==0)) return1; else return0;}voidmain()/*主函數*/{ intyear; printf("請輸入年份:\n"); scanf("%d",&year); if(judgeLeap(year))printf("%disleapyear!\n",year);elseprintf("%disleapnotyear!\n",year);}
函數原型
在C程序的源文件中,當把被調用函數的位置放在主調函數的前面時,編譯系統不會提示錯誤;但當把被調函數放在主調函數的下方時,有時編譯系統就會提示有錯誤,這是因為在主調函數中調用某函數之前應對該被調函數進行聲明。這及使用變量之前要先進行變量聲明是一樣的。在主調函數中對被調函數作說明也叫“函數原型”,目的是讓編譯系統對被調函數的合法性進行檢查。函數聲明的一般形式為:
類型說明符被調函數名(類型形參,類型形參,…);任務分析
在任務1的基礎上,通過任務2來熟悉函數的嵌套調用,實現統計多門課程的總分和平均分的功能。任務2嵌套調用和遞歸調用本任務設計4個函數:函數1實現輸出一條線,函數2實現求多門課程的總成績,函數3實現求某課程的平均分,主函數負責函數的調用。解決方法:可參考程序見書本P.1345.2.1使用函數實現學生多門課程的成績管理
所謂嵌套調用:就是在調用一個函數并在執行該函數中,又調用另一個函數的情況。問題5.6編寫程序,用于實現求公式。5.2.2函數的嵌套調用#include<stdio.h>main(){longfunC(long,long);longfunN(longn);longm,n,c;printf("Pleaseinputtwonumbers(m、n):");scanf("%ld%ld",&m,&n);c=funC(m,n);printf("C(%ld,%ld)=%ld\n",m,n,c);}longfunC(longm,longn){longfunN(long);longa,b,c,cmn;a=funN(m);b=funN(n);c=funN(m-n);cmn=a/(b*c);return(cmn);}longfunN(longn){longi,result=1;for(i=1;i<=n;i++)result*=i;return(result);}【說明】算法分析:求數的階乘由函數funN()來實現,求組合數Cnm用函數funC()來實現。主函數main()調用函數funC(),而函數funC調用函數funN3次,分別計算m!、n!、(m-n)!。計算結果返回給主函數進行輸出。m和n由鍵盤輸入。當從鍵盤輸入數值10和4,程序執行結果如下:
Pleaseinputtwonumbers(m、n):104C(10,4)=210函數嵌套調用示意圖練一練用函數的嵌套調用實現求|x|*2+1的值。在調用一個函數的過程中又出現直接或間接地調用該函數本身,稱為函數的遞歸調用。C語言允許函數遞歸調用,函數遞歸調用可分為直接遞歸調用和間接遞歸調用。函數的遞歸調用示意圖如下頁所示。5.2.3函數的遞歸調用函數遞歸調用示意圖問題5.7用遞歸調用編寫計算階乘n!的函數fact()【程序代碼】#include<stdio.h>longfact(intn){longrst;if(n<0)printf("n<0,dataerror!\n");elseif(n==0||n==1)rst=1;elserst=n*fact(n-1);return(rst);}main(){intn;longresult;printf("Pleaseinputanintegernumber(n):");scanf("%d",&n);result=fact(n);printf("%d!=%ld\n",n,result);getch();}【說明】根據階乘的計算公式:n!=n*(n-1)!,為了計算n!,需要調用計算階乘的函數fact(n),它又要計算(n-1)!,此時又需要再調用fact(n-1),依次類推,于是形成遞歸調用。這個調用過程一直繼續到計算1!為止。下面以求5!為例分析本程序的遞歸調用和返回的過程
問題5.8用遞歸方法編寫一個程序,求兩個正整數的最大公因數?!境绦虼a】#include<stdio.h>intgcd(intx,inty){if(y<=x&&x%y==0)returny;elseif(y>x)returngcd(y,x);elsereturngcd(y,x%y);}main(){inta,b;printf("Pleaseinputtwointegers:");scanf("%d%d",&a,&b);printf("Thegcdis%d\n",gcd(a,b));}練一練有5個人坐在一起,問第5個人多少歲,他說比第4個人大2歲。問第4個人多少歲,他說比第3個人大2歲。問第3個人多少歲,他說比第2個人大2歲。問第2個人多少歲,他說比第1個人大2歲。問第1個人多少歲,他說是10歲。請用遞歸函數求出第5個人多少歲。任務分析
使用函數,完善學生成績管理系統。本任務中將系統分解成6個功能模塊,每個模塊用函數來實現。函數1實現多名學生3門課程成績的輸入;函數2實現學生成績的輸出;函數3實現學生成績的查詢;函數4實現計算每位學生的總分和平均分;函數5實現按照總分由大到小的順序輸出學生的成績;主函數總負責調用這些函數。要實現以上功能,必須了解函數參數的特點。任務3用函數實現學生成績管理系統
使用函數,完善學生成績管理系統。由于學生的成績信息存放在二維數組中,所以采用數組名作為函數的參數。在本系統設計5個函數。解決方法:可參考程序見書本P.1395.3.1使用函數完善學生成績管理系統
值調用
值調用方法是把實參的值傳遞給形參,即調用函數向被調用函數傳遞的參數是變量本身的值。形參在調用前和調用后都是不存在的,只有函數被調用時形參才被分配相應的內存單元,調用結束立即釋放。實參及形參即使是同名的變量,它們都占用不同的內存單元,互不影響,這時形參值的變化將不影響實參的值。5.3.2函數的值調用和引用調用問題5.9用值調用函數實現兩個數的交換。【程序代碼】#include<stdio.h>voidswap(intx,inty){intt;t=x;x=y;y=t;printf("%d\t%d\n",x,y);}main(){inta,b;printf("Pleaseinputtwointegernumbers(a,b):");scanf("%d%d",&a,&b);swap(a,b);}練一練認真分析下列問題,如按這些問題修改程序,題目5.9的運行結果將會怎樣?(1)swap()函數中的輸出語句移到主函數的swap()后面。(2)在主函數的swap()后面添加一條語句:
printf(“%d\t,%d\n”,a,b);注意:在C語言中,如果實參變量對形式參數的數據傳遞是“傳值”,則是單向傳遞,只能由實參傳給形參,而不能由形參傳給實參。引用調用
引用調用是在調用時把實參的地址傳遞給形參,使用地址去訪問實參,通常簡稱“傳址”。此時主調函數向被調用函數傳遞的參數不是變量本身,而是變量的地址,當被調函數中向相應地址的單元寫入不同的數值之后,也就改變了調用函數中相應變量(參數)的值,從而達到了返回多個變量值的目的,這種調用方式通常用數組名或指針作為函數參數。5.3.2函數的值調用和引用調用簡單變量作函數參數當實參是簡單變量時,就是簡單變量作為函數參數的情況。前面所舉實例均采用這種簡單變量作為函數參數的方法。數組元素作函數參數由于實參可以是表達式形式,表達式中可以包含數組元素,因此數組元素當然可以作為函數的實際參數,及用簡單變量作實參一樣,是單向傳遞,即“傳值”方式。5.3.3函數的參數問題5.10編寫一個程序,輸出給定的成績數組中不及格(成績低于60)的人數。#include<stdio.h>#defineN10intfun(intx){return(x<60?1:0);}main(){inta[N],i,num=0;printf("Pleaseinput%dnumbers:",N);for(i=0;i<N;i++) {scanf("%d",&a[i]);num+=fun(a[i]); }printf("Thenumberofnopassis:%d\n",num);}
【說明】分析:設計一個函數fun(x),當x<60時返回1,否則返回0。在main()函數中,掃描整個成績數組a,對每個數組元素調用fun()函數,并累加返回的數值。數組名作函數參數當數組名作為形參時,其實參也應用數組名(或指針變量,參見第6章),且實參數組必須及形參數組類型一致。當函數參數是數組時,此時傳遞的是數組的地址(首地址),而不是將整個數組元素都傳遞到函數中去,使得形參數組與實參數組共占同一段內存單元,這就是“傳址”方式。5.3.3函數的參數問題5.11用選擇法對數組中5個整數按由小到大排序。#include<stdio.h>voidsort(intarr[5]){inti,j,k,t;for(i=0;i<5-1;i++){k=i;for(j=i+1;j<5;j++)if(arr[j]<arr[k])k=j;t=arr[k];arr[k]=arr[i];arr[i]=t;}}main(){inta[5],i;printf("Pleaseinputthearray:\n");for(i=0;i<5;i++)scanf("%d",&a[i]);sort(a);printf("thesortedarray:\n");for(i=0;i<5;i++)printf("%d",a[i]);printf("\n");}說明:實參數組和形參數組大小可以一致,也可以不一致。C編譯系統對形參數組大小不做語法檢查,只是將實參數組的首地址傳遞給形參數組。另外,形參數組也可以不指定大小,在定義數組時在數組后面跟一對空的方括號。如題目5.11中,sort()函數可以定義為:voidsort(intarr[])或voidsort(intarr[],intn)不僅一維數組名可以作為函數參數,多維數組名也可作為函數參數,其參數傳遞都是“地址傳遞”。對于利用多維數組作為函數參數來說,在被調用函數中對形參數組定義時可以指定每一維的大小,也可以省略第一維的大小說明,且二者等價,但是不能把第二維以及其他高維的大小說明省略。
練一練用函數實現數組元素的逆序。5.4.1變量的作用域形參變量只在被調用期間才分配內存單元,調用結束就立即釋放內存。這一點表明形參變量只有在函數內部才是有效的,離開該函數就不能再使用了。這種變量有效性的范圍稱變量的作用域。不僅對于形參變量,C語言中所有的變量都有自己的作用域。變量說明的方式不同,其作用域也不同。C語言中的變量,按作用域范圍可分為兩種,即局部變量和全局變量。任務4任務拓展一、局部變量局部變量也稱為內部變量。局部變量定義在函數的內部。其作用域僅限于函數內,離開該函數后,該變量的作用便消失,無法使用該變量。問題5.13分析下面程序的運行結果
voidf(){intk=5;printf("f:k=%d\n",k);}main(){inti,k;k=3;f();for(i=1;i<3;i++) {intk=8+i; printf("main->for:k=%d\n",k); }printf("main:k=%d\n",k);}二、全局變量
全局變量也稱為外部變量,它是在函數外部定義的變量。它不屬于哪一個函數,它屬于一個源程序文件。其作用域是從定義變量的位置開始到當前源文件結束。inta,b;/*外部變量作用范圍是從這里開始到文件結束*/voidf1()/*函數f1*/{……}floatx,y;/*外部變量作用范圍是從這里開始到文件結束*/intf2()/*函數f2*/{……}main()/*主函數*/{……}
從上例可以看出a,b,x,y都是在函數外部定義的外部變量,都是全局變量。但x,y定義在函數f1之后,而在f1內又沒有對x,y的說明,所以它們在f1內無效。a,b定義在源程序最前面,因此在f1,f2及main內不加說明也可使用。
5.4.2編譯預處理
C語言提供的預處理功能主要有以下3種:宏定義、文件包含和條件編譯。編譯預處理命令不屬于C語句的范疇。為表示區別,所有的編譯預處理命令均以#符號開頭,各占用一個單獨的書寫行,末尾不用分號作結束符。如果一行書寫不下,可用反斜線(\)和回車鍵結束,然后在下一行繼續書寫。它們可以出現在程序的任何位置,作用域是自出現的地方開始到源程序的末尾。一、宏定義
宏定義是指用一個指定的宏名(標識符)來代表一個字符串。在對源文件進行預處理時,用宏定義的字符串來代替每次出現的宏名。另外,宏名不僅可以代表字符串,還可以接收參數以擴展宏的使用。因此,宏可分為不帶參數的宏和帶參數的宏兩種。1、不帶參數的宏定義是用一個指定的標識符(即宏名)來代表一個字符串,其定義的一般形式為:#define標識符字符串其中,標識符是用戶定義的,遵循C語言標識符的命名規則,要求它及后面的字符串之間用空格符分隔;字符串不能用雙引號界定。注意:宏定義不是語句,不能在末尾添加分號“;”。#defineNUM50#defineTRUE1#defineFALSE0#defineNLprintf(“\n”)#defineLEN100;/*因添加“;”而出錯,則LEN代表“100;”這個字符串*/問題5.14定義不帶參數的宏?!境绦虼a】#definePI3.14159/*定義無參數宏PI*/#definePRprintf/*定義無參數宏PR*/main(){floats,r;PR(“PleaseInputRadius:”);/*使用宏*/scanf(“%f”,&r);s=PI*r*r;/*使用宏*/PR(“r=%.2f,s=%.2f\n”,r,s);/*使用宏*/}經過預編譯處理后的程序變為:main(){floats,r;printf(“PleaseInputRadius:”);scanf(“%f”,&r);s=3.14159*r*r;printf(“r=%.2f,s=%.2f\n”,r,s);}【說明】在預編譯處理時將宏名替換成字符串的過程稱為宏展開,或稱宏替換。本題中宏PR用“printf”字符串代替,PI由“3.14159”字符串代替。說明:(1)習慣上,宏定義名一般用大寫,以區別一般關鍵字和其他變量。(2)宏定義不是C語句,不能在最后加上分號作為結束符。如果加了分號,則在預編譯處理時連分號一起進行替換。例如:
#definePI3.14159;
s=PI*r*r;經過預處理展開后,語句變為:
s=3.14159;*r*r;顯然是錯誤的。(3)宏名的有效范圍是從定義開始到本源文件結束。如果想在源文件結束前終止宏定義的作用域,可以用#undef命令。例如:
#defineW9.8main(){┇W的有效范圍
}#undefW(4)使用宏名代替一個字符串,可以減少程序中重復書寫某些字符串的工作量,也可以提高程序的可讀性和可維護性,如在問題5.1中,如果要提高PI的精確度,將PI定義成3.1415926時,只需將宏定義中PI的值修改一下,程序中其他地方的PI值將自動同時修改。(5)若在字符串中出現及宏名相同的字符串,系統不認為是宏名,預處理時也不作宏展開。例如:
#definePI3.14159…printf(“PI=%f”,PI);/*“PI=%f”中的PI不是宏名*/
輸出結果是:
PI=3.14159(6)在進行宏定義時,可以引用已定義過的宏名,在宏展開時可以層層替換。例如:
#definePI3.14159#defineR12#defineSPI*R*Rprintf(“S=%.2f”,S);
輸出結果是:
S=452.392、帶參數的宏定義帶參數的宏定義除了進行必要的字符串替換外,還可以進行參數的替換。帶參數的宏定義的一般形式是:
#define標識符(參數表)字符串其中,參數表中可以是一個或多個參數;字符串應有參數表中的參數。例如:定義矩形面積的宏S、a和b是邊長:
#defineS(a,b)a*b/*p定義帶參數的宏*/area=S(3,2);/*參數a的值為3,b的值為2*/上式展開為:
area=3*2;問題5.15定義帶參數的宏?!境绦虼a】#definePI3.14159/*定義無參數的宏PI*/#defineS(r)PI*r*r/*用帶參數的宏S(r)表示圓的面積公式*/main(){floata,area;a=3.6;area=S(a);printf(“r=%f\narea=%f\n”,a,area);}【說明】運行結果:
r=3.600000area=40.715038對于帶參數的宏的說明:(1)對于帶參數的宏的展開,只是將語句中的宏名后面括號中的實參字符串代替#define命令行中的形參。(2)為了使宏定義更有通用性且不易出錯,一般將參數用括號括起來。(3)不能把有參數宏及函數相混淆。宏只是字符序列的替換,沒有值的傳送,且宏名、參數都沒有數據類型的概念;函數要比宏復雜,有數據類型、參數傳遞等概念。問題5.16分析下面程序的功能。【程序代碼】#defineMAX(a,b)((a)>(b))?(a):(b)main(){intx,y,max;printf("Inputtwonumbers:");scanf("%d%d",&x,&y);max=MAX(x,y);printf("max=%d\n",max);}【說明】本程序的第1行中定義了帶參數的宏MAX(a,b),同使用函數相比,宏代碼更簡潔。運行結果:Inputtwonumbers:1315Max=15練一練運用宏計算矩形的面積和周長。運用宏計算球的表面積。二、文件包含
文件包含是指在一個文件中使用#include預處理命令將另一個文件的全部內容包含進來,而不是直接將源程序重新寫入程序中。文件包含命令的一般形式為:#include“文件名”或者:#include<文件名>上述兩種文件包含形式的區別在于:(1)使用尖括號(<>):直接到存放C庫函數頭文件所在的目錄去查找被包含文件,這稱為標準方式。(2)使用雙引號(“”):系統首先到當前目錄下查找被包含文件,如果沒找到,再到系統存放C庫函數頭文件所在的目錄中查找。一般地說,如果為調用庫函數而用#include命令來包含相關頭文件,則用尖括號,以節省查找時間。如果要包含的是用戶自己編寫的文件,則用(“”),若文件不在當前目錄中,雙引號內可給出文件路徑。前面已多次用到此命令包含庫函數的頭文件。例如:
#include<stdio.h>#include<math.h>說明:(1)一個#include命令只能指定一個被包含文件。如果要包含多個文件,則需要用多個#include命令。編譯預處理時,預處理程序將查找指定的被包含文件,并將其復制到#include命令出現的位置上。(2)文件包含可以嵌套,即被包含文件中又包含另一個文件。例如,在filel.c中包含file2.c,在file2.c中包含file3.c。在filel.c中,這種包含關系可以表示如下:
#include“file3.c”#include“file2.c”
由于file2.c包含file3.c,所以需要將包含file3.c的預處理命令放在包含file2.c的預處理命令前。通過上面的文件包含,filel.c和file2.c都可以用file3.c中的內容。在file2.c中不必再用#include“file3.c”。(3)常用在文件頭部的被包含文件,稱為“頭文件”,以.h作為后綴。在頭文件中,除可包含宏定義外,還可包含外部變量定義、結構類型定義等。
問題5.17寫一個判斷素數的函數,在主函數中輸入一個整數,輸出該數是否為素數的信息。分析:本例中定義prime函數是有參數的函數,實參就是需要判斷的數,將其在調用prime函數時傳遞給變量number,實現實參和形參的值傳遞。函數的返回值作
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年水晶膠商標徽章項目市場調查研究報告
- 商業視角下的教育軟件市場擴張路徑
- 小學班主任評價素養的多維度剖析與進階路徑研究
- 宋詞通感隱喻:認知模式、建構邏輯與美學意蘊的深度剖析
- 大型熱電聯產機組抽汽性能與系統優化:基于多維度分析與策略研究
- 2025年中學教師資格考試《綜合素質》教育研究方法高頻考點題庫試卷
- 加強班級生活自理能力的培養計劃
- 產品設計創新計劃
- 提升教室環境對學習的影響計劃
- 2025年小學英語畢業考試模擬卷(口語提升):英語口語交際能力培養試題
- 會議系統維保服務方案投標文件(技術方案)
- 遼寧點石聯考2025屆高三5月份聯合考試-政治試卷+答案
- 《護理操作規范》課件
- 軍隊文職-新聞專業 (軍隊文職)真題庫-5
- 2025年下半年保山市消防救援支隊防火監督科招聘消防文員4名易考易錯模擬試題(共500題)試卷后附參考答案
- 2025至2030中國寺廟經濟市場深度調研與未來前景發展研究報告
- 移動護理管理平臺建設方案
- 2025年 九年級數學中考二輪復習 二次函數與圓綜合壓軸題 專題提升訓練
- 2024-2025學北京房山區初一語文(下)期末試卷附答案解析
- 南京市事業單位專項招聘退役大學生士兵真題2024
- 智能控制(雙語)知到課后答案智慧樹章節測試答案2025年春湘潭大學
評論
0/150
提交評論