版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
編制函數(shù)實現(xiàn)矩陣運算C語言課程設(shè)計報告2012年9月1日目錄設(shè)計目的與要求2總體設(shè)計2詳細設(shè)計2調(diào)試分析13設(shè)計總結(jié)及心得體會16答辯記錄16教師意見171.1設(shè)計目的:鞏固對C語言基本知識與技能的掌握,并且利用所學(xué)解決簡單的程序設(shè)計問題。1.2.1設(shè)計要求:任選所給題目之一,也可以自己找難度相當(dāng)?shù)念}目。其中A級題目可以一人完成也可以兩人合作完成,B級要求個人單獨完成。要對源程序進行注釋和分析,并且工整書寫程序。1.2.2題目:編制不同的函數(shù)實現(xiàn)以下矩陣運算的功能要求矩陣加減;(b)矩陣數(shù)乘;(c)矩陣乘法;(d)矩陣轉(zhuǎn)置。2.總體設(shè)計2.1開始主函數(shù)流程圖:開始選擇運算類型進行運算并輸出結(jié)果結(jié)束選擇運算類型進行運算并輸出結(jié)果結(jié)束轉(zhuǎn)置數(shù)乘減法加法轉(zhuǎn)置數(shù)乘減法加法乘法乘法是是是否再次運算是否再次運算否否2.2子函數(shù)流程圖(1)加法、減法、乘法運算函數(shù)流程圖(2)轉(zhuǎn)置、數(shù)乘運算函數(shù)流程圖開始開始開始開始開辟存放二維數(shù)組的空間開辟存放二維數(shù)組的空間開辟存放二維數(shù)組的空間開辟存放二維數(shù)組的空間判斷兩個矩陣是否可以進行運算判斷兩個矩陣是否可以進行運算輸入矩陣數(shù)據(jù)并顯示輸入矩陣數(shù)據(jù)并顯示是是進行運算并顯示結(jié)果進行運算并顯示結(jié)果輸入矩陣數(shù)據(jù)并顯示輸入矩陣數(shù)據(jù)并顯示釋放二維數(shù)組空間進行運算并顯示結(jié)果釋放二維數(shù)組空間進行運算并顯示結(jié)果釋放二維數(shù)組空間釋放二維數(shù)組空間否否結(jié)束結(jié)束結(jié)束結(jié)束3.詳細設(shè)計整個程序由一個主函數(shù)和五個子函數(shù)組成。主函數(shù)中通過調(diào)用子函數(shù)來完成運算過程,這樣使得主函數(shù)看起來清晰明了,需要修改時也方便簡潔,符合模塊化設(shè)計的原則。在主函數(shù)中定義了兩個整型變量ch1和ch2,將ch1的值初始化為1,以保證第一次計算的運行,在每一次計算結(jié)束后都會顯示“重新運算?”,根據(jù)提示輸入數(shù)字賦值給ch1,從而決定是否執(zhí)行while循環(huán)中的內(nèi)容。ch2是用來選擇運算類型的,主函數(shù)源代碼如下:#include<stdio.h>#include<stdlib.h>intmain(){ voidcheng();/*函數(shù)聲明*/ voidadd(); voidjian(); voidshucheng(); voidzhuanzhi(); intch1=1,ch2; while(ch1==1)/*設(shè)置循環(huán),在一次運行里可以進行多次運算*/{printf("請選擇運算類型\n1:加法\n2:減法\n3:乘法\n4:數(shù)乘\n5:轉(zhuǎn)置\n");/*顯示選項,選擇運算類型*/scanf("%d",&ch2);if(ch2==1)add();/*根據(jù)不同的選擇,執(zhí)行相應(yīng)的函數(shù)*/if(ch2==2)jian();if(ch2==3)cheng();if(ch2==4)shucheng();if(ch2==5)zhuanzhi();printf("重新運算?\n1是0否\n");/*顯示提示,根據(jù)提示輸入選項選擇是否繼續(xù)計算,不繼續(xù)便結(jié)束程序*/scanf("%d",&ch1);} return0;}各種運算所對應(yīng)的函數(shù)如下:加法voidadd();減法voidjian();乘法voidcheng();數(shù)乘voidshucheng();轉(zhuǎn)置voidzhuanzhi()。每個子函數(shù)都沒有返回值,都是在子函數(shù)內(nèi)部完成運算,并顯示結(jié)果。每個子函數(shù)都是在一開始的時候詢問矩陣的行數(shù)以及列數(shù),然后根據(jù)顯示的提示來輸入數(shù)字,再將輸入的數(shù)據(jù)賦給各自相應(yīng)的整型變量。這樣子設(shè)計是為了根據(jù)需要的大小來開辟二維數(shù)組空間,而不是從一開始就定義好數(shù)組及其大小,如inta[80][80]。根據(jù)需要開辟二維數(shù)組可以避免浪費原本不必要占用的空間,更具有靈活性,不會將矩陣的行數(shù)和列數(shù)限制在特定的范圍內(nèi),如a[80][80]最多只能用來存放80行*80列的方陣,即便將80改成800,也是有所限制的。對于數(shù)乘和轉(zhuǎn)置,是單個矩陣的運算,所以不用判斷輸入的矩陣之間是否可以計算。但是進行加減運算時,兩個矩陣之間的行數(shù)和列數(shù)要都相等才能執(zhí)行計算,所以需要判斷計算的可行性,如果行數(shù)和列數(shù)之中有一項不相等便不能運算,結(jié)束程序;進行乘法運算時,根據(jù)線性代數(shù)的相關(guān)知識,若是矩陣A*B,那么矩陣A的列數(shù)就要等于矩陣B的行數(shù),否則不可以計算,同樣結(jié)束程序,且兩個矩陣相乘得出的矩陣的行數(shù)與矩陣A相等,列數(shù)與矩陣B相等。子函數(shù)中,在計算結(jié)束之后,用free函數(shù)釋放之前開辟的二維數(shù)組空間。由于用到了malloc函數(shù)開辟空間和free函數(shù),所以在開頭要加上#include<stdlib.h>。各個子函數(shù)源代碼如下:voidcheng()/*定義實現(xiàn)矩陣乘法的函數(shù)*/{inti=0,j=0,line1=0,row1=0,line2=0,row2=0,n;int**p=NULL;/*p是二重指針,用來存儲二維數(shù)組(即矩陣)*/int**q=NULL;/*q是二重指針,用來存儲二維數(shù)組(即矩陣)*/int**result=NULL;/*result是二重指針,用來存儲二維數(shù)組(即矩陣)*/printf("***(溫馨提示:矩陣的乘法要求前一個矩陣的列數(shù)等于后一個矩陣的行數(shù))***\n");printf("請輸入矩陣1的行數(shù):\n");scanf("%d",&row1);printf("請輸入矩陣1的列數(shù):\n");scanf("%d",&line1);p=(int**)malloc(sizeof(int*)*row1);/*將p強制轉(zhuǎn)換為(int**)型的指針,并且根據(jù)需要的行數(shù)開辟行指針空間*/if(NULL==p){exit(0);}/*如果根據(jù)需要開辟的指針為空指針,便結(jié)束程序*/for(i=0;i<row1;i++){*(p+i)=(int*)malloc(sizeof(int)*line1);}/*根據(jù)需要的列數(shù)開辟列指針空間*/if(NULL==*(p+i)){exit(0);}printf("請輸入矩陣2的行數(shù):\n");scanf("%d",&row2);printf("請輸入矩陣2的列數(shù):\n");scanf("%d",&line2);if(line1!=row2)/*判斷兩個矩陣是否可以相乘(即第一個矩陣的列數(shù)是否等于第二個矩陣的行數(shù)*/{ printf("無法相乘!\n"); exit(0);}q=(int**)malloc(sizeof(int*)*row2);if(NULL==q){exit(0);}for(i=0;i<row2;i++){*(q+i)=(int*)malloc(sizeof(int)*line2);}if(NULL==*(q+i)){exit(0);}if(line1==row2)/*若滿足兩個矩陣可以相乘的條件,便可賦值并執(zhí)行運算*/{ intline,row;line=line2;row=row1;result=(int**)malloc(sizeof(int*)*row);/*開辟第三個二維數(shù)組,用來存放運算結(jié)果*/if(NULL==p){exit(0);}for(i=0;i<row;i++){*(result+i)=(int*)malloc(sizeof(int)*line);}if(NULL==*(result+i)){exit(0);}printf("請輸入矩陣A:");/*輸入矩陣數(shù)據(jù)(按二維數(shù)組存放)*/for(i=0;i<row1;i++){for(j=0;j<line1;j++)scanf("%d",&p[i][j]);}printf("\n原本的矩陣A是:\n");for(i=0;i<row1;i++){for(j=0,n=1;j<line1;j++,n++)/*當(dāng)輸入數(shù)據(jù)的個數(shù)是矩陣列數(shù)的整數(shù)倍時,換行顯示(即顯示成矩陣的形式)*/{if((n%line1==0)&&(j!=0))printf("%d\n",p[i][j]);elseprintf("%d\t",p[i][j]);}}printf("請輸入矩陣B:");for(i=0;i<row2;i++){for(j=0;j<line2;j++)scanf("%d",&q[i][j]);}printf("\n原本的矩陣B是:\n");for(i=0;i<row2;i++){for(j=0,n=1;j<line2;j++,n++){if((n%line==0)&&(j!=0))printf("%d\n",q[i][j]);elseprintf("%d\t",q[i][j]);}}for(i=0;i<row;i++){for(j=0;j<line;j++)result[i][j]=0;}intk=0;for(i=0;i<row;i++)for(j=0;j<line;j++)for(k=0;k<line1;k++)result[i][j]+=p[i][k]*q[k][j];printf("\n兩個矩陣相乘的結(jié)果是:\n");for(i=0;i<row;i++){for(j=0,n=1;j<line;j++,n++){if((n%line==0)&&(j!=0))printf("%d\n",result[i][j]);elseprintf("%d\t",result[i][j]);}}for(i=0;i<row1;i++)/*釋放原本根據(jù)需要開辟的指針空間*/{free(*(p+i));p[i]=NULL;}free(p);p=NULL;for(i=0;i<row2;i++){free(*(q+i));q[i]=NULL;}free(q);q=NULL;for(i=0;i<row;i++){free(*(result+i));result[i]=NULL;}free(result);result=NULL;}}voidshucheng()/*定義實現(xiàn)矩陣數(shù)乘的函數(shù)*/{ inti=0,j=0,line=0,row=0,n=1,k; int**p=NULL; int**q=NULL; printf("請輸入矩陣的行數(shù):"); scanf("%d",&row); printf("請輸入矩陣的列數(shù):"); scanf("%d",&line); p=(int**)malloc(sizeof(int*)*row); if(NULL==p) exit(0); for(i=0;i<row;i++) {*(p+i)=(int*)malloc(sizeof(int)*line); if(NULL==*(p+i)) exit(0);} for(i=0;i<row;i++) {for(j=0;j<line;j++) scanf("%d",&p[i][j]);} printf("原本的矩陣是:\n"); for(i=0;i<row;i++) {for(j=0;j<line;j++,n++) {if((n%line==0)&&(j!=0)) printf("%d\n",p[i][j]); else printf("%d",p[i][j]);} } printf("\n"); q=(int**)malloc(sizeof(int*)*row); if(NULL==q) exit(0); for(i=0;i<row;i++) {*(q+i)=(int*)malloc(sizeof(int)*line); if(NULL==*(q+i)) exit(0);} printf("\n請輸入需要數(shù)乘的數(shù):"); scanf("%d",&k); for(i=0;i<row;i++) {for(j=0;j<line;j++) q[i][j]=k*(p[i][j]);}printf("\n數(shù)乘后的矩陣是:\n"); for(i=0;i<row;i++) {for(j=0,n=1;j<line;j++,n++) {if((n%line==0)&&(j!=0)) printf("%d\n",q[i][j]); else printf("%d",q[i][j]);} } for(i=0;i<row;i++) {free(*(p+i)); p[i]=NULL;} free(p); p=NULL; for(i=0;i<row;i++) {free(*(q+i)); q[i]=NULL;} free(q); q=NULL;}voidzhuanzhi()/*定義實現(xiàn)矩陣轉(zhuǎn)置的函數(shù)*/{ inti=0,j=0,line=0,row=0,n=1; int**p=NULL; int**q=NULL; printf("請輸入矩陣的行數(shù):"); scanf("%d",&row); printf("請輸入矩陣的列數(shù):"); scanf("%d",&line); p=(int**)malloc(sizeof(int*)*row); if(NULL==p) exit(0); for(i=0;i<row;i++) {*(p+i)=(int*)malloc(sizeof(int)*line); if(NULL==*(p+i)) exit(0);} printf("請輸入矩陣:\n"); for(i=0;i<row;i++) {for(j=0;j<line;j++) scanf("%d",&p[i][j]);} printf("原本的矩陣是:\n"); for(i=0;i<row;i++) {for(j=0;j<line;j++,n++) {if((n%line==0)&&(j!=0)) printf("%d\n",p[i][j]); else printf("%d",p[i][j]);} } printf("\n"); q=(int**)malloc(sizeof(int*)*line); if(NULL==q) exit(0); for(i=0;i<line;i++) {*(q+i)=(int*)malloc(sizeof(int)*row); if(NULL==*(q+i)) exit(0);} for(i=0;i<row;i++) {for(j=0;j<line;j++) q[j][i]=p[i][j];}/*原矩陣和轉(zhuǎn)置后的矩陣行數(shù)和列數(shù)對調(diào)*/ printf("轉(zhuǎn)置后的矩陣是:\n"); for(i=0;i<line;i++) {for(j=0,n=1;j<row;j++,n++) {if((n%row==0)&&(j!=0)) printf("%d\n",q[i][j]); else printf("%d",q[i][j]);} } printf("\n"); for(i=0;i<row;i++) {free(*(p+i)); p[i]=NULL;} free(p); p=NULL; for(i=0;i<line;i++) {free(*(q+i)); q[i]=NULL;} free(q); q=NULL;}voidjian()/*定義實現(xiàn)矩陣減法的函數(shù)*/{ inti=0,j=0,line1=0,row1=0,line2=0,row2=0,n=1; int**p=NULL; int**q=NULL; int**result=NULL; printf("請輸入矩陣1的行數(shù):"); scanf("%d",&row1); printf("請輸入矩陣1的列數(shù):"); scanf("%d",&line1); p=(int**)malloc(sizeof(int*)*row1); if(NULL==p) exit(0); for(i=0;i<row1;i++) {*(p+i)=(int*)malloc(sizeof(int)*line1); if(NULL==*(p+i)) exit(0);} printf("請輸入矩陣1:"); for(i=0;i<row1;i++) {for(j=0;j<line1;j++) scanf("%d",&p[i][j]);} printf("原本的矩陣1是:\n"); for(i=0;i<row1;i++) {for(j=0;j<line1;j++,n++) {if((n%line1==0)&&(j!=0)) printf("%d\n",p[i][j]); else printf("%d\t",p[i][j]);} } printf("\n"); printf("請輸入矩陣2的行數(shù):"); scanf("%d",&row2); printf("請輸入矩陣2的列數(shù):"); scanf("%d",&line2); if((line1!=line2)||(row1!=row2))/*判斷兩個矩陣是否可以相減,如果兩個矩陣的行數(shù)不等或者列數(shù)不等即不可相減,結(jié)束程序*/ {printf("\n無法相減!\n"); exit(0);} q=(int**)malloc(sizeof(int*)*row2); if(NULL==q) exit(0); for(i=0;i<row2;i++) {*(q+i)=(int*)malloc(sizeof(int)*line2); if(NULL==*(q+i)) exit(0);} printf("請輸入矩陣2:"); for(i=0;i<row2;i++) {for(j=0;j<line2;j++) scanf("%d",&q[i][j]);} printf("原本的矩陣2是:\n"); for(i=0;i<row2;i++) {for(j=0,n=1;j<line2;j++,n++) {if((n%line2==0)&&(j!=0))/*若兩個矩陣行數(shù)和列數(shù)都相等,執(zhí)行運算*/ printf("%d\n",q[i][j]); else printf("%d\t",q[i][j]);} } introw,line; if((row1==row2)&&(line1==line2)) {row=row1; line=line1; result=(int**)malloc(sizeof(int*)*row); if(NULL==result) exit(0); for(i=0;i<row;i++) {*(result+i)=(int*)malloc(sizeof(int)*line); if(NULL==*(result+i)) exit(0);} } printf("\n"); for(i=0;i<row;i++) {for(j=0;j<line;j++) result[i][j]=p[i][j]-q[i][j];} printf("\n運算后的結(jié)果是:\n"); for(i=0;i<row;i++) {for(j=0,n=1;j<line;j++,n++) {if((n%line==0)&&(j!=0)) printf("%d\n",result[i][j]); else printf("%d\t",result[i][j]);}} for(i=0;i<row;i++) {free(*(p+i)); p[i]=NULL;} free(p); p=NULL; for(i=0;i<row;i++) {free(*(q+i)); q[i]=NULL;} free(q); q=NULL; for(i=0;i<row;i++) {free(*(result+i)); result[i]=NULL;} free(result); result=NULL;} voidadd()/*定義實現(xiàn)矩陣加法的函數(shù)*/{ inti=0,j=0,line1=0,row1=0,line2=0,row2=0,n=1; int**p=NULL; int**q=NULL; int**result=NULL; printf("請輸入矩陣1的行數(shù):"); scanf("%d",&row1); printf("請輸入矩陣1的列數(shù):"); scanf("%d",&line1); p=(int**)malloc(sizeof(int*)*row1); if(NULL==p) exit(0); for(i=0;i<row1;i++) {*(p+i)=(int*)malloc(sizeof(int)*line1); if(NULL==*(p+i)) exit(0);} printf("請輸入矩陣1:"); for(i=0;i<row1;i++) {for(j=0;j<line1;j++) scanf("%d",&p[i][j]);} printf("原本的矩陣1是:\n"); for(i=0;i<row1;i++) {for(j=0;j<line1;j++,n++) {if((n%line1==0)&&(j!=0)) printf("%d\n",p[i][j]); else printf("%d\t",p[i][j]);} } printf("\n"); printf("請輸入矩陣2的行數(shù):"); scanf("%d",&row2); printf("請輸入矩陣2的列數(shù):"); scanf("%d",&line2); if((line1!=line2)||(row1!=row2)) {printf("\n無法相加!\n"); exit(0);} q=(int**)malloc(sizeof(int*)*row2); if(NULL==q) exit(0); for(i=0;i<row2;i++) {*(q+i)=(int*)malloc(sizeof(int)*line2); if(NULL==*(q+i)) exit(0);} printf("請輸入矩陣2:"); for(i=0;i<row2;i++) {for(j=0;j<line2;j++) scanf("%d",&q[i][j]);} printf("原本的矩陣2是:\n"); for(i=0;i<row2;i++) {for(j=0,n=1;j<line2;j++,n++) {if((n%line2==0)&&(j!=0)) printf("%d\n",q[i][j]); else printf("%d\t",q[i][j]);} } introw,line; if((row1==row2)&&(line1==line2)) {row=row1; line=line1; result=(int**)malloc(sizeof(int*)*row); if(NULL==result) exit(0); for(i=0;i<row;i++) {*(result+i)=(int*)malloc(sizeof(int)*line); if(NULL==*(result+i)) exit(0);} } printf("\n"); for(i=0;i<row;i++) {for(j=0;j<line;j++) result[i][j]=p[i][j]+q[i][j];} printf("\n運算后的結(jié)果是:\n"); for(i=0;i<row;i++) {for(j=0,n=1;j<line;j++,n++) {if((n%line==0)&&(j!=0)) printf("%d\n",result[i][j]); else printf("%d\t",result[i][j]);}} for(i=0;i<row;i++) {free(*(p+i)); p[i]=NULL;} free(p); p=NULL; for(i=0;i<row;i++) {free(*(q+i)); q[i]=NULL;} free(q); q=NULL; for(i=0;i<row;i++) {free(*(result+i)); result[i]=NULL;} free(result); result=NULL;}4.調(diào)試分析:先把各個函數(shù)分開調(diào)試,運行無誤后再把所有函數(shù)放入同一個文件中運行,這樣有利于快速找出錯誤并改正。下圖是主函數(shù)運行出現(xiàn)的首畫面:以下先以乘法為例,展示不能計算時的運行結(jié)果:接下來從加法開始,展示運算的過程:(減法與加法類似,在此不進行贅述)若選擇“1是”便會再次出現(xiàn)選擇運算類型的選項如下圖所示是乘法運行結(jié)果:以下是數(shù)乘:以下是轉(zhuǎn)置:5.設(shè)計總結(jié)及心得體會:由于本人c語言水平有限,本程序雖然能夠通過while循環(huán)來達到多次運算的目的,但是每次的運算都只能是兩個矩陣進行計算,而后將計算結(jié)果賦值給第三方,不能做到一次性將多個矩陣相加(或相減、相乘等等)。這是本程序的一大缺點。不過本程序是動態(tài)開辟二維數(shù)組并且到函數(shù)結(jié)尾釋放所占用的空間,運用到了與二維指針有關(guān)的c語言知識,鞏固了過去所學(xué)。還多次運用到for語句,感到for語句的使用比while和do…while型簡潔靈活一些,適用范圍也更廣泛。而且本函數(shù)需要特別注意循環(huán)的嵌套。在調(diào)試時不僅要關(guān)注程序是否能順利進行,還要關(guān)注計算結(jié)果是否正確,要有一定的線性代數(shù)的知識。?參考文獻:《c程序設(shè)計(第四版)》譚浩強著清華大學(xué)出版社《線性代數(shù)》陳建龍周建華韓瑞珠周后型編科學(xué)出版社6.答辯記錄:____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________7.教師意見:______________________________________________________________________________________________________________________________________
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 長沙市2024湖南省藥品檢驗檢測研究院招聘第二批編制外工作人員2人筆試歷年參考題庫典型考點附帶答案詳解(3卷合一)
- 通遼市2024內(nèi)蒙古通遼市市直事業(yè)單位選聘工作人員筆試歷年參考題庫典型考點附帶答案詳解(3卷合一)
- 河源市2024廣東河源市紫金縣融媒體中心招聘編外人員1人筆試歷年參考題庫典型考點附帶答案詳解(3卷合一)
- 桂陽縣2024湖南郴州市桂陽縣高素質(zhì)專業(yè)化黨政人才引進30人筆試歷年參考題庫典型考點附帶答案詳解(3卷合一)
- 新疆2024新疆國際醫(yī)療中心(新疆國際醫(yī)院)第一次招聘事業(yè)單位編制內(nèi)工作人員1筆試歷年參考題庫典型考點附帶答案詳解(3卷合一)
- 城步苗族自治縣2024湖南邵陽城步苗族自治縣事業(yè)單位及縣屬國有企業(yè)人才引進23人筆試歷年參考題庫典型考點附帶答案詳解(3卷合一)
- 國家事業(yè)單位招聘2024中國科學(xué)院動物研究所劉山林研究組科研助理崗位招聘1人筆試歷年參考題庫典型考點附帶答案詳解(3卷合一)
- 2025年重慶西部數(shù)智醫(yī)療研究院公開招聘實驗技術(shù)崗、科技創(chuàng)新部助理、青年研究員14人備考題庫完整參考答案詳解
- 中國人民銀行清算總中心所屬企業(yè)城銀清算服務(wù)有限責(zé)任公司2026年校園招聘16人備考題庫及參考答案詳解
- 2025年淮濱縣司法局公開招聘合同制社區(qū)矯正社會工作者12人實施備考題庫及答案詳解1套
- 百色起義課件
- 2025年湖南省紀(jì)委監(jiān)委公開遴選公務(wù)員筆試試題及答案解析
- 實華化工突發(fā)環(huán)境事件綜合應(yīng)急預(yù)案
- 機票行業(yè)基礎(chǔ)知識培訓(xùn)課件
- 醫(yī)院三合理一規(guī)范培訓(xùn)
- 危重患者管理制度課件
- 廈門市公路橋隧維護與應(yīng)急中心大型橋梁 養(yǎng)護管理標(biāo)準(zhǔn)及考核辦法(試行)
- 2025年全國校園安全事故調(diào)查報告
- (標(biāo)準(zhǔn))籃球館學(xué)員轉(zhuǎn)讓合同協(xié)議書
- 寧波橋下空間管理辦法
- 交通運輸行業(yè)敢于擔(dān)當(dāng)心得體會
評論
0/150
提交評論