




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、C語言課程設計實驗報告第 PAGE17頁 共 NUMPAGES17頁C語言課程設計實驗報告班 級姓 名學 號實驗課程 C實驗名稱 人事管理系統實驗成績 實驗日期 任課教師目的(本次 課程設計 所涉及并要求掌握的知識點。)本次課程設計主要涉及c語言的基礎語法,以及指針、文件函數、結構體、函數調用等知識點。二、使用環境 (本次上機實踐所使用的平臺和相關軟件。 )主要采用windows xp系統環境+visual c+6.0編譯環境三、內容與設計思想 (1 設計思路 2 主要數據結構 3 主要代碼結構 4 主要代碼段分析 。 )設計思路1、需求分析 人事檔案信息采用文件存儲,因而要提供文件的輸入輸出
2、操作;根據學院人事的變動情況,添加刪除記錄,因而要提供文件的添加刪除操作;根據編號和姓名進項查詢,所以要提供文件的查找操作;高級編輯功能,就是提供文件的修改操作;統計功能要提供統計操作;排序功能要提供用排序算法對文件記錄的排序;另外還要提供鍵盤式選擇菜單以實現功能選擇。2、總體設計 整體設計為數據輸入模塊、數據添加模塊、數據刪除模塊、數據查詢模塊、數據修改模塊、數據統計模塊、數據排序模塊。主要數據結構數據結構采用結構體:Struct personnelArchiveInfo Char No10; /編號 Char name10; /姓名 Int sex; /性別 Int age; /年齡 Ch
3、ar job10; /職務 Char post10; /職稱 Char politic10; /政治面貌 Char edu_level10; /最高學歷 Char period10; /任職時間 Char start_time10; /來院時間 Char type10; /人員類別PAInfo;主要代碼結構1.主函數為使系統執行完每部分功能后能夠方便的回到系統主界面,main()函數設計的較簡單,只包含一個menu()函數,其余的全部功能都通過menu()函數調用來實現,并通過menu()函數的遞歸調用實現返回主界面的功能。void main() int flag=0; int choose=
4、0; FILE *fp=NULL; char yesorno; system(color B9); if(fp=fopen(employee1.txt,rb+)=NULL) printf(n=提示:文件不存在,是否要創建一個?(y)n); scanf(%c,&yesorno); if(yesorno=y|yesorno=Y) /這里僅為了建立文件 fp=fopen(employee1.txt,wb+); fclose(fp); /關閉fp所指的文件,釋放文件緩沖區 else exit(0); else Number=read_file(PAInfo); /要是文件已經有數據 將數據初始化到數組
5、中 system(cls); system(color B9); while(1) menu(); system(color 20); printf(t=請選擇:); scanf(%d,&choose); system(cls); switch(choose) case 0: exit(0); /退出 break; case 1: input(); fh();/增加職工信息 break; case 2: add(); fh();/查看職工信息 break; case 3: zc_query(); fh();/ 查找 break; case 4: num_del(); fh();/刪除 brea
6、k; case 5: tongji(); fh();/統計 break; case 6: sort(); fh();/排序 break; case 7: num_modify(); fh();/修改后返回 break; case 8: save(); fh();/保存 break; case 9: disp(); fh(); break;/顯示 default: break; fflush(stdin); getchar(); system(cls); 2.各功能模塊設計(1)數據輸入模塊看各個數據信息,編號、姓名、性別、年齡、職務、職稱、政治面貌、最高學歷、任職時間、來院時間、人員類別,在文
7、件中以文本形式存放,每條記錄對應一個人員的信息,可以方便信息的管理;而數據讀進內存中時,可以以結構體的形式,每一個結構體包含了一個人員的全部信息,多的人員的信息組成了一個結構體數組。定義如下: char NO10; char name15; char sex5; int age; char job20; char post20; char edu_level10;char politic20; /政治面貌char period10; /任職時間 char start_time10; /來院時間 char type10; /人員類別(2)數據添加模塊該模塊的功能是擁護需要增加新的員工記錄,從鍵盤
8、輸入并逐條寫入到原來的文件中去,其中輸入號碼是要防止號碼重復,重復時報告錯誤,重新輸入。為方便用戶管理和查看,該模塊采用的方式是用先把原來文件中的數據讀入內存,保存在內存中,然后在內存中的數據后面增加新的數據,操作完成后用寫的方式打開文件,用覆蓋的方式寫入。void add()/增加職工 int numberTemp=0; int i=0; struct personnelArchiveInfo temp; /臨時保存信息 printf(請輸入要增加人事信息的個數:); scanf(%d,&numberTemp); for(i=0;inumberTemp;i+) printf(輸入第%d個人事
9、信息n,i+1); printf(編號:); scanf(%s,temp.NO); printf(姓名:); scanf(%s,); printf(性別:); scanf(%s,temp.sex); printf(年齡:); scanf(%d,&temp.age); printf(部門:); scanf(%s,temp.job); printf(職稱:); scanf(%s,temp.post); printf(學歷:); scanf(%s,_level); printf(政治面貌:); scanf(%s,&temp.politic); printf(任職時間
10、:); scanf(%s,&temp.period);printf(來院時間:); scanf(%s,&temp.start_time);printf(人員類別:); scanf(%s,&temp. type); PAInfoNumber+=temp; /將剛添加的寫入到數組 write_file(&temp); /將剛添加的寫入到文件 printf(添加成功n);(3)數據刪除模塊該模塊的運行方式與修改模塊類似,首先分屏顯示所有人員的記錄,顯示完所有的記錄后,由用戶輸入要刪除的人員的號碼,根據號碼查找相應的記錄并將結果顯示出來,經用戶確認后刪除,刪除的方法是將文件中的數據讀入內存,賦給相應的
11、結構體,并將結構體數組中將刪除的后面的數據賦給前一個結構體,然后將相應數據寫入文件并保存;void num_del()/按編號刪除 FILE *fp=NULL; char gh60; int i=0; int j=0; printf(請輸入要刪除的人事編號:); scanf(%s,gh); for(i=0;iNumber;i+) if (strcmp(gh,PAInfoi.NO)=0) /如果查找到就刪除 for (j=i;jNumber-1;j+) PAInfoj=PAInfoj+1; Number-; /將剩余數據寫入文件 重新一寫的方式打開文件 把以前的數據擦除了 fp=fopen(em
12、ployee1.dat,wb); for (i=0;iNumber;i+) fwrite(&PAInfoi,sizeof(struct personnelArchiveInfo),1,fp); fclose(fp); printf(刪除成功;n);(4)數據查詢模塊void zc_query()/按職稱查找 char post20; int i=0; printf(請輸入要查找人事職稱:); scanf(%s,post); system(cls); printf(t編號t姓名t性別t年齡t部門t職稱t學歷t政治面貌t任職時間t來院時間t人員類別n); for (i=0;iNumber;i+)
13、if (strcmp(post,PAInfoi.post)=0) printf(t%st%st%st%dt%st%st%st%st%st%st%snn,PAInfoi.NO,PAI,PAInfoi.sex,PAInfoi.age,PAInfoi.job,PAInfoi.post,PAI_level,PAInfoi.politic,PAInfoi.period,PAInfoi.start_time,PAInfoi.type); (5)數據修改模塊該模塊的功能是顯示所有信息,考慮到記錄較多,采用分屏顯示,顯示完所有的記錄后,由用戶輸入需要修改的人員的號碼,查找成功
14、后,顯示查找結果,并詢問擁護修改人員的哪部分記錄,根據用戶選擇修改相應的信息,然后保存修改后的結果:void num_modify() /修改職工信息 FILE *fp=NULL; char gh60; int i=0; int changeIndex=0; /changeIndex 改變標記 int index=0; printf(請輸入要修改的人事編號:); scanf(%s,gh); for (i=0;iNumber;i+) if (strcmp(gh,PAInfoi.NO)=0) /比較輸入編號和數組中已有編號 changeIndex=i; /保存要修改的人的下標 break; pri
15、ntf(t編號t姓名t性別t年齡t部門t職稱t學歷t政治面貌t任職時間t來院時間t人員類別n); printf(nn);printf(t%st%st%st%dt%st%st%st%st%st%st%snn,PAInfochangeIndex.NO,PAInfochangeI,PAInfochangeIndex.sex,PAInfochangeIndex.age,PAInfochangeIndex.job,PAInfochangeIndex.post,PAInfochangeI_level,PAInfochangeIndex.politic,PAInfochan
16、geIndex.period,PAInfochangeIndex.start_time,PAInfochangeIndex.type); printf(請重新輸入該人事信息); printf(編號:); scanf(%s,PAInfochangeIndex.NO); printf(姓名:); scanf(%s,PAInfochangeI); printf(性別:); scanf(%s,PAInfochangeIndex.sex); printf(年齡: ); scanf(%d,&PAInfochangeIndex.age); printf(部門:); scanf(%d,PAI
17、nfochangeIndex.job); printf(職稱:); scanf(%s,PAInfochangeIndex.post); printf(學歷:); scanf(%s,PAInfochangeI_level); printf(政治面貌:); scanf(%s,&PAInfochangeIndex.politic); printf(任職時間:); scanf(%s,&PAInfochangeIndex.period); printf(來院時間:); scanf(%s,&PAInfochangeIndex.start_time); printf(人員類別:); scan
18、f(%s,&PAInfochangeIndex. type); /信息修改后重新更新文件里面的數據 以保持數據一致性 fp=fopen(employee1.txt,wb+); for (i=0;i修改成功n);(6)數據統計模塊該模塊的功能是按照用戶的要求統計出滿足符合條件的所有記錄的個數,并將滿足條件的記錄顯示出來。該模塊沒有涉及到文件的保存,所以將文件用只讀的方式打開,可以防止操作過程中數據的丟失:void tongji()/統計 int i,m,k,max,min; double sum=0.0; for(i=0;iNumber;i+) sum=sum+PAInfoi.age; prin
19、tf(全體人事總年齡為:%fn,sum); printf(平均年齡為:%fn,sum/Number); i=0;m=0;max=0; max=PAInfom.age; for(i=1;imax) m=i; max=PAInfom.age; printf(最高年齡為:%dn,max); printf(t%st%st%st%dt%st%st%st%st%st%st%snn,PAInfom.NO,PAI,PAInfom.sex,PAInfom.age,PAInfom.job,PAInfom.post,PAI_level,PAInfom.politic,PAInfom
20、.period,PAInfom.start_time,PAInfom.type); i=0;k=0;min=0; min=PAInfo0.age; for(i=1;iNumber;i+) if (PAInfoi.agemin) k=i; min=PAInfok.age; printf(最低年齡:%dn,min); printf(t%st%st%st%dt%st%st%st%st%st%st%snn,PAInfok.NO,PAI,PAInfok.sex,PAInfok.age,PAInfok.job,PAInfok.post,PAI_level,PAInfom.
21、politic,PAInfom.period,PAInfom.start_time,PAInfom.type); (7)數據排序模塊該模塊的功能是要求將記錄按照年齡或者來院時間進行排序,總體結構是先用sort()函數將文件中的數據調入內存,然后按照選擇法排序,并將結果顯示出來,然后將排序后的結果保存:void sort()/排序 struct personnelArchiveInfo t; int wantNUmber=0; int i=0; int j=0; int k=0; for(i=0;iNumber-1;i+) k=i; for(j=i+1;jPAInfok.age) k=j; if
22、(k!=i) t=PAInfoi; PAInfoi=PAInfok; PAInfok=t; printf(你想輸出前幾名人事信息:); scanf(%d,&wantNUmber); if (wantNUmberNumber) wantNUmber=Number; printf(t編號t姓名t性別t年齡t部門t職稱t學歷t政治面貌t任職時間t來院時間t人員類別n); for(i=0;iwantNUmber;i+) printf(t%st%st%st%dt%st%st%st%st%st%st%snn,PAInfoi.NO,PAI,PAInfoi.sex,PAInfoi.age,P
23、AInfoi.job,PAInfoi.post,PAI_level,PAInfoi.politic,PAInfoi.period,PAInfoi.start_time,PAInfoi.type); 四、調試過程 (1 測試數據設計 2 測試結果分析 )主界面:選擇1:選擇2:選擇3:選擇6:選擇4:選擇9:五、總結 設計中遇到的問題及解決過程 在向文件中添加數據的時候,要在打開文件的時候指定正確的文件操作方式,一開始指定文件的操作方式是w,w 只寫方式,若文件存在,則原有內容會被清除;若文件不存在,則會建立文件,所以每次添加完一條數據后再次插入一條數據前一條數據會自動清空,這樣
24、文件中保存的始終是最后輸入的一條數據,這不是理想的結果,后來經過查閱技術文檔,發現還有另外文件操作方式即追加a,a:追加方式打開只寫文件,只允許進行寫操作,若文件存在,則添加的內容放在文件末尾;若不存在,則建立文件。通過這種方式操作文件,每添加的一條數據都會自動追加到前一條數據的后面,這種的處理方式是題目所要求的,實現了多條數據的存儲。設計中產生的錯誤及原因分析 經過這一次系統設計編碼的過程,我覺得我C語言的文件這一知識點掌握的極為薄弱,導致不能很好的利用一些函數處理問題。而且,有些時候,腦袋中對問題有求解的思路,但是無法一旦著手寫代碼的時候卻寫不出來,我覺得這是我對C語言一些關鍵知識點的理解
25、不夠透徹,還有就是,平時編寫C語言的代碼量很少,以至于編碼的時候不能順手拈來。3 設計體會和收獲。三周的C語言課程設計結束了,在這八天的時間里,我自己獨立完成了一個程序從構思結構,到編寫代碼,然后上機調試運行的過程,感覺自己收獲很大。通過解決一個又一個的問題,熟悉了C語言的應用,對計算機語言應用的理解又深了一層,在老師的指導下,學會了模塊設計的方法,用流程圖表示算法,掌握了用C語言進行程序設計的能力。在設計過程中,我理解了對于一個較大的程序,不可能一次編寫出一個較大的系統,通常要采取自頂向下的設計思想,先設計主函數,再通過完善一個個的功能模塊來完成程序的設計過程,在設計過程中要充分理解整個程序
26、的設計思路,采用逐步細化的方式來完成整個程序。六、附錄 1、原代碼 #include #include #include struct personnelArchiveInfo char NO10; char name15; char sex5; int age; char job20; char post20; char edu_level10;char politic20; /政治面貌char period10; /任職時間 char start_time10; /來院時間 char type10; /人員類別;int read_file(struct personnelArchiveIn
27、fo PAInfo);void menu();void write_file(struct personnelArchiveInfo PAInfo);void add(); void input();void zc_query(); /按職稱查詢void num_del(); /按編號刪除void tongji(); /統計void sort(); /排序void num_modify(); /按編號修改職工信息void save(); /保存信息void disp(); /顯示職工信息void fh(); /返回主菜單struct personnelArchiveInfo PAInfo300
28、; /這個數組用來保存所有的職工信息 和文件里面的一致int Number=0; /記錄總的職工人數 也就是數組/文件里面的職工人數void menu() system(cls); system(color B9); printf(t*n); printf(t* *n); printf(t* 人事信息管理系統 *n); printf(t* *n); printf(t* 1 輸入人事信息 2 增加人事信息 *n); printf(t* 3 查找人事信息 4 刪除人事信息 *n); printf(t* 5 統計人事信息 6 人事年齡排列 *n); printf(t* 7 修改人事信息 8 保存人事
29、信息 *n); printf(t* 9 顯示人事信息 0 退出管理系統 *n); printf(t* *n); printf(t*n); printf(t*數信院*n); void main() int flag=0; int choose=0; FILE *fp=NULL; char yesorno; system(color B9); if(fp=fopen(employee1.txt,rb+)=NULL) printf(n=提示:文件不存在,是否要創建一個?(y)n); scanf(%c,&yesorno); if(yesorno=y|yesorno=Y) /這里僅為了建立文件 fp=f
30、open(employee1.txt,wb+); fclose(fp); /關閉fp所指的文件,釋放文件緩沖區 else exit(0); else Number=read_file(PAInfo); /要是文件已經有數據 將數據初始化到數組中 system(cls); system(color B9); while(1) menu(); system(color 20); printf(t=請選擇:); scanf(%d,&choose); system(cls); switch(choose) case 0: exit(0); /退出 break; case 1: input(); fh(
31、);/增加職工信息 break; case 2: add(); fh();/查看職工信息 break; case 3: zc_query(); fh();/ 查找 break; case 4: num_del(); fh();/刪除 break; case 5: tongji(); fh();/統計 break; case 6: sort(); fh();/排序 break; case 7: num_modify(); fh();/修改后返回 break; case 8: save(); fh();/保存 break; case 9: disp(); fh(); break;/顯示 defau
32、lt: break; fflush(stdin); getchar(); system(cls); void save() printf(t=程序在運行時已自動保存n);void fh() printf(t=按Enter鍵返回主菜單n);void num_modify() /修改職工信息 FILE *fp=NULL; char gh60; int i=0; int changeIndex=0; /changeIndex 改變標記 int index=0; printf(請輸入要修改的人事編號:); scanf(%s,gh); for (i=0;iNumber;i+) if (strcmp(gh
33、,PAInfoi.NO)=0) /比較輸入編號和數組中已有編號 changeIndex=i; /保存要修改的人的下標 break; printf(t編號t姓名t性別t年齡t部門t職稱t學歷t政治面貌t任職時間t來院時間t人員類別n); printf(nn);printf(t%st%st%st%dt%st%st%st%st%st%st%snn,PAInfochangeIndex.NO,PAInfochangeI,PAInfochangeIndex.sex,PAInfochangeIndex.age,PAInfochangeIndex.job,PAInfochangeIndex.
34、post,PAInfochangeI_level,PAInfochangeIndex.politic,PAInfochangeIndex.period,PAInfochangeIndex.start_time,PAInfochangeIndex.type); printf(請重新輸入該人事信息); printf(編號:); scanf(%s,PAInfochangeIndex.NO); printf(姓名:); scanf(%s,PAInfochangeI); printf(性別:); scanf(%s,PAInfochangeIndex.sex); prin
35、tf(年齡: ); scanf(%d,&PAInfochangeIndex.age); printf(部門:); scanf(%d,PAInfochangeIndex.job); printf(職稱:); scanf(%s,PAInfochangeIndex.post); printf(學歷:); scanf(%s,PAInfochangeI_level); printf(政治面貌:); scanf(%s,&PAInfochangeIndex.politic); printf(任職時間:); scanf(%s,&PAInfochangeIndex.period); printf
36、(來院時間:); scanf(%s,&PAInfochangeIndex.start_time); printf(人員類別:); scanf(%s,&PAInfochangeIndex. type); /信息修改后重新更新文件里面的數據 以保持數據一致性 fp=fopen(employee1.txt,wb+); for (i=0;i修改成功n);void disp() /輸出所有職工信息 int i=0;system(color 2); printf(t編號tt姓名t性別t年齡t部門t職稱t學歷t政治面貌t任職時間t來院時間t人員類別n); printf(nn);for (i=0;iNumbe
37、r;i+) printf(t%st%st%st%dt%st%st%st%stt%stt%stt%snn,PAInfoi.NO,PAI,PAInfoi.sex,PAInfoi.age,PAInfoi.job,PAInfoi.post,PAI_level,PAInfoi.politic,PAInfoi.period,PAInfoi.start_time,PAInfoi.type); void sort()/排序 struct personnelArchiveInfo t; int wantNUmber=0; int i=0; int j=0; int k=0; f
38、or(i=0;iNumber-1;i+) k=i; for(j=i+1;jPAInfok.age) k=j; if(k!=i) t=PAInfoi; PAInfoi=PAInfok; PAInfok=t; printf(你想輸出前幾名人事信息:); scanf(%d,&wantNUmber); if (wantNUmberNumber) wantNUmber=Number; printf(t編號t姓名t性別t年齡t部門t職稱t學歷t政治面貌t任職時間t來院時間t人員類別n); for(i=0;iwantNUmber;i+) printf(t%st%st%st%dt%st%st%st%st%st
39、%st%snn,PAInfoi.NO,PAI,PAInfoi.sex,PAInfoi.age,PAInfoi.job,PAInfoi.post,PAI_level,PAInfoi.politic,PAInfoi.period,PAInfoi.start_time,PAInfoi.type); void tongji()/統計 int i,m,k,max,min; double sum=0.0; for(i=0;iNumber;i+) sum=sum+PAInfoi.age; printf(全體人事總年齡為:%fn,sum); printf(平均年齡為:%fn,
40、sum/Number); i=0;m=0;max=0; max=PAInfom.age; for(i=1;imax) m=i; max=PAInfom.age; printf(最高年齡為:%dn,max); printf(t%st%st%st%dt%st%st%st%st%st%st%snn,PAInfom.NO,PAI,PAInfom.sex,PAInfom.age,PAInfom.job,PAInfom.post,PAI_level,PAInfom.politic,PAInfom.period,PAInfom.start_time,PAInfom.type
41、); i=0;k=0;min=0; min=PAInfo0.age; for(i=1;iNumber;i+) if (PAInfoi.agemin) k=i; min=PAInfok.age; printf(最低年齡:%dn,min); printf(t%st%st%st%dt%st%st%st%st%st%st%snn,PAInfok.NO,PAI,PAInfok.sex,PAInfok.age,PAInfok.job,PAInfok.post,PAI_level,PAInfom.politic,PAInfom.period,PAInfom.start_ti
42、me,PAInfom.type); void num_del()/按編號刪除 FILE *fp=NULL; char gh60; int i=0; int j=0; printf(請輸入要刪除的人事編號:); scanf(%s,gh); for(i=0;iNumber;i+) if (strcmp(gh,PAInfoi.NO)=0) /如果查找到就刪除 for (j=i;jNumber-1;j+) PAInfoj=PAInfoj+1; Number-; /將剩余數據寫入文件 重新一寫的方式打開文件 把以前的數據擦除了 fp=fopen(employee1.dat,wb); for (i=0;i
43、Number;i+) fwrite(&PAInfoi,sizeof(struct personnelArchiveInfo),1,fp); fclose(fp); printf(刪除成功;n);void zc_query()/按職稱查找 char post20; int i=0; printf(請輸入要查找人事職稱:); scanf(%s,post); system(cls); printf(t編號t姓名t性別t年齡t部門t職稱t學歷t政治面貌t任職時間t來院時間t人員類別n); for (i=0;iNumber;i+) if (strcmp(post,PAInfoi.post)=0) pri
44、ntf(t%st%st%st%dt%st%st%st%st%st%st%snn,PAInfoi.NO,PAI,PAInfoi.sex,PAInfoi.age,PAInfoi.job,PAInfoi.post,PAI_level,PAInfoi.politic,PAInfoi.period,PAInfoi.start_time,PAInfoi.type); void add()/增加職工 int numberTemp=0; int i=0; struct personnelArchiveInfo temp; /臨時保存信息 printf(請輸入要增加人事信息的個數:); scanf(%d,&numberTemp); for(i=0;inumberTemp;i+) printf(輸入第%d個人事信息n,i+1); printf(編號:); scanf(%s,temp.NO); printf(姓名:); scanf(%s,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年電子商務師職業考試試卷及答案
- 2025年VR與AR技術應用工程師資格考試試卷及答案
- 2025年城市設計與景觀規劃能力測評試卷及答案
- 宴會廳燈光設備維護細則
- 2025年南通教練員從業資格證模擬考試題
- 中班健康:我的情緒小繪本
- 2025年廣東客運證模擬考試題庫及答案
- 法律行業合同法知識練習題集
- 山東省泰安市岱岳區2025屆七下英語期中檢測模擬試題含答案
- 短文閱讀技巧詳解:把握文脈解析題干
- 檔案消防安全培訓課件
- 小學生假期心理健康教育內容
- 拉刀設計計算說明書
- 《快遞企業安全管理》課件
- 大學化學期末考試卷(含答案)
- 轉向系統開發手冊
- (完整word版)勞動合同書(電子版)正規范本(通用版)
- 專題1.3 新定義問題(壓軸題專項講練)2023-2024學年七年級數學上冊壓軸題專項講練系列(人教版)(解析版)
- 科目一3小時速成璇姐筆記
- 江蘇省建設工程施工現場安全文明施工措施費監督檢查表【模板】
- 鋼結構安裝合同模板(六篇)
評論
0/150
提交評論