




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、信息與電子工程學院c語言課程設計職工信息管理系統(tǒng)設計實驗日期和時間: 2011年06月27日06月29日實驗類別:課程設計實驗類型:設計性一、 實驗環(huán)境操作系統(tǒng):windows xp編程工具:microsoft visual c+ 6.0開發(fā)環(huán)境:cpu(inter(r)core(tm)2 quad cpu qb200 2.33ghz) 內存:2.76gb硬盤:228.3gb開發(fā)地點:現(xiàn)代教育中心201機房a17座ip:7二、實驗目的和要求實驗目的:(1)使學生進一步理解和掌握課堂上所學各種基本抽象數(shù)據(jù)類型的邏輯結構、存儲結構和操作算法。(2)使學生進一步掌握程序設計、編
2、寫、調試能力。(3)使學生了解軟件開發(fā)的基本步驟和內容。實驗要求:完成一個職工信息管理系統(tǒng)程序,具體內容如下:(1)在內存中用鏈表記錄,在硬盤上用二進制文件保存。(2)設計完的程序能夠以命令行或者菜單形式增加、刪除、更新和查詢數(shù)據(jù)的內容。數(shù)據(jù)內容能夠排序以方便查詢。(3)數(shù)據(jù)庫中應該有至少20條記錄。三、實驗內容和結果(1)程序整體功能;1、系統(tǒng)總體框菜單開始根據(jù)菜單輸入n的值選擇程序結束是否繼續(xù)進行 ny2修改職工信息3瀏覽職工信息4分類查找職工信息5刪除職工信息6從文件讀取信息0退出1錄入職工信息按職工號查找按姓名查找2、模塊設計該程序主要分為7個模塊,分別是創(chuàng)建與添加模塊、顯示模塊、查找
3、模塊、修改模塊、刪除模塊、存檔模塊、文件統(tǒng)計模塊、退出模塊(2)程序組成及各模塊/函數(shù)功能;創(chuàng)建與添加模塊:該模塊的功能是輸入職工信息。函數(shù)為void add(node *woker)原理:采用尾插法,先建立鏈表與頭結點,新增一個結點,鍵盤輸入職工號、職工姓名、職工性別、職工出生年月、職工學歷、職工職位、職工工資,將這些信息存儲到新增結點中,將新增加的節(jié)點連到鏈表的尾端,如此以往,將尾結點的指針域置空,這樣就得到了一條存儲職工信息的鏈表,這樣就完成了職工信息的創(chuàng)建與增加。顯示模塊:該模塊功能是顯示職工信息。函數(shù)為void disp(node *woker)原理:先新建一個指針p指向頭結點,判斷
4、它的指針域是否為空,若為空,則輸出“沒有記錄可以顯示”;若不為空,則輸出它的指針域所指向節(jié)點所儲存的職工信息,并將該指針向后移一個結點,直到p指向空,即輸出了所有職工的信息,這樣就完成了所有職工信息的顯示。查找模塊:該模塊功能是查找職工信息。函數(shù)為void tongji(node *woker)原理:該模塊分為兩種查找方法,分別是按職工號查找和按職工姓名查找,因為這兩種查找方法雷同,所以這里將只解釋按職工號查找的原理。先鍵盤輸入一個要查找的職工號并新建一個指針p指向頭結點,判斷它的指針域是否為空,若為空,則輸出“沒有資料可以統(tǒng)計分類”,若不為空,則判斷它的指針域所指向節(jié)點所儲存的職工信息中的職
5、工號,若相等,則輸出這個職工的其他所有信息,并將p指向下一個結點,再次進行判斷,直到p指向空,即輸出了所有查找到的信息。若不相等,則p指向下一個結點,再次進行判斷,直到p指向空,即輸出了所有查找到的信息,這樣就完成了職工信息的查找。修改模塊 :該模塊功能是修改職工信息。函數(shù)為void change(node *woker)原理:根據(jù)查找原理,查找到要修改信息的職工,刪除這一節(jié)點,并新建一個節(jié)點,鍵盤輸入想要修改的內容,并儲存到新的結點中,將新的節(jié)點連接到鏈表中原先刪除結點的位子,這樣就完成了職工信息的修改。刪除模塊:該模塊功能是刪除管理職工信息。函數(shù)為void dismiss(node *wo
6、ker)根據(jù)查找的原理,查找到要修改信息的職工,刪除這一節(jié)點,并將其前驅結點的指針域指向其后繼結點,這樣就完成了職工信息的刪除。存檔模塊:將內存中的信息存儲到文件中。函數(shù)為void save(node *woker)原理:打開文件,新建一個指針p指向頭結點,判斷它的指針域是否為空,若為空,則輸出“無記錄”,若不為空,則將這個職工的所有信息輸入到文件中,并將p指向下一個結點,直到p指向空,即輸入了的信息,文件統(tǒng)計模塊:打開文件,統(tǒng)計職工數(shù)目,并輸出。函數(shù)為void load(node *woker)退出模塊:該模塊功能是退出管理檔案。(3)重要數(shù)據(jù)結構,重要模塊/函數(shù)算法;1:創(chuàng)建與添加模塊:v
7、oid add(node *woker)/添加記錄node *p,*r,*s; char n10; /先用于輸入職工號,也用于判斷是否跳出循環(huán)r=woker;s=woker-next; /使s為第一個有用的結點while(r-next!=null) /這個循環(huán)的作用是使r為最后一個有用的結點r=r-next; /將指針置于最末尾while(1) printf(提示:輸入0則返回主菜單!n); printf(n請你輸入職工號:); scanf(%s,n); if(strcmp(n,0)=0) break; p=(node *)malloc(sizeof(node); /申請空間 strcpy(p
8、-data.num,n); printf(n請輸入姓名:); scanf(%s,); printf(n請輸入性別:); scanf(%s,p-data.sex); printf(n請輸入出生年月:); scanf(%s,&p-data.birthday); printf(n請輸入學歷:); scanf(%s,&p-data.degree); printf(n請輸入職位:); scanf(%s,&p-data.position); printf(n請輸入工資:); scanf(%s,&p-data.salary); printf(提示:已經完成一條記錄的添加。n); p-n
9、ext=null; r-next=p; /這一步是必需的,將p與先前的鏈表連起來構成一條新鏈表 r=p; /也是必需的.將r 又重設為新鏈的最后一個有用結點 2:顯示模塊void disp(node *woker)/輸出職工信息node *p;p=woker-next;if(!p) printf(n提示:沒有記錄可以顯示!n); return; printf(tttt顯示結果n); printf(職工號 職工姓名 職工性別 職工生日 職工學歷 職工職位 職工工資n); while(p) printf(n%-13s%-11s%-7s%-10s%-13s%-10s%-5sn,p-data.num,
10、,p-data.sex,p-data.birthday,p-data.degree,p-data.position,p-data.salary); p=p-next;3:查找模塊void tongji(node *woker)/查找統(tǒng)計函數(shù)node *p;int sel;int flag2=0,ha=0;p=woker-next;char find20; if(!woker-next)/若鏈表為空 printf(n提示:沒有資料可以統(tǒng)計分類!n); return;printf(提示:n=0退出n=1按職工號統(tǒng)計n=2按職工姓名名稱統(tǒng)計n);scanf(%d,&sel);i
11、f(sel=1) printf(n輸入你要統(tǒng)計分類的職工號:);scanf(%s,find); while(p) if(strcmp(p-data.num,find)=0) flag2+; if(flag2=1&ha!=flag2) printf(職工號 職工姓名 職工性別 職工生日 職工學歷 職工職位 職工工資n); printf(n%-13s%-11s%-7s%-10s%-13s%-10s%-5sn,p-data.num,,p-data.sex,p-data.birthday,p-data.degree,p-data.position,p-data.salary);
12、ha=flag2; else if(flag2ha)printf(n%-13s%-11s%-7s%-10s%-13s%-10s%-5sn,p-data.num,,p-data.sex,p-data.birthday,p-data.degree,p-data.position,p-data.salary);ha=flag2; p=p-next; if(flag2) printf(n*按設備號%s統(tǒng)計分類的有%d條記錄:*nn,find,flag2); else printf(n按職工號%s統(tǒng)計的結果為0個nn,find);else if(sel=2) printf(n輸入你
13、要統(tǒng)計分類的職工姓名:); scanf(%s,find); while(p) if(strcmp(,find)=0) flag2+; if(flag2=1&ha!=flag2) printf(職工號 職工姓名 職工性別 職工生日 職工學歷 職工職位 職工工資n); printf(n%-13s%-11s%-7s%-10s%-13s%-10s%-5sn,p-data.num,,p-data.sex,p-data.birthday,p-data.degree,p-data.position,p-data.salary); ha=flag2; else if
14、(flag2ha)printf(n%-13s%-11s%-7s%-10s%-13s%-10s%-5sn,p-data.num,,p-data.sex,p-data.birthday,p-data.degree,p-data.position,p-data.salary);ha=flag2; p=p-next; if(flag2) printf(n*按設備名稱%s統(tǒng)計的有%d條記錄:*nn,find,flag2); else printf(n按職工姓名%s統(tǒng)計分類的結果為0個nn,find);else if(sel=0) return;4:修改模塊void change(n
15、ode *woker)/修改職工信息函數(shù)node *p;char find20;if(!woker-next) printf(n提示:沒有資料可以修改!n); return;printf(請輸入要修改的職工號:); scanf(%s,find); p=woker-next; while(p!=null) if(strcmp(p-data.num,find)=0) /如果找到的話返回的是符合要求 break; p=p-next; if(p) int x; while(1) printf(完成修改請輸入0否則輸入任意數(shù)再進行修改:); scanf(%d,&x); if(x=0) break; pr
16、intf(請輸入新職工號(原來是 %s ):,p-data.num); scanf(%s,p-data.num); printf(請輸入新職工姓名(原來是 %s ):,); scanf(%s,); printf(請輸入新職工性別(原來是 %s ):,p-data.sex); scanf(%s,p-data.sex); printf(請輸入新出生年月(原來是 %s ):,p-data.birthday); scanf(%s,p-data.birthday); printf(請輸入新職工學歷(原來是 %s ):,p-data.degree); scanf
17、(%s,p-data.degree); printf(請輸入新職工職位(原來是 %s ):,p-data.position); scanf(%s,p-data.position); printf(請輸入新職工工資(原來是 %s ):,p-data.salary); scanf(%s,p-data.salary); printf(n提示:該項記錄資料已經成功修改!n); else printf(n提示:你要修改的信息不存在!n);5:刪除模塊void dismiss(node *woker)/刪除職工信息函數(shù)node *p,*r,*s;char find10;if(!woker-next) pr
18、intf(n提示:沒有資料可以顯示!n); return; printf(n提示:請輸入您要刪除的職工號!n);scanf(%s,find);p=woker-next;while(p!=null) if(strcmp(p-data.num,find)=0)/如果找到的話返回的是符合要求 break; p=p-next; if(!p)printf(n提示:找不到您想刪除的職工號!n);elser=woker;while(r-next!=p)r=r-next;s=r-next;r-next=r-next-next;6:存檔模塊void save(node *woker)/將職工信息保存到文件int
19、 n;node *p;file *fp; /指向文件的指針printf(需要保存嗎?(1-保存 0-不保存));scanf(%d,&n);if(n)if(woker-next=null)printf(無記錄);else p=woker-next;if(fp = fopen(職工管理系統(tǒng).dat, wb) = null) /打開文件,并判斷打開是否正常printf(can not open filen);/ 打開文件出錯while(p!=null)fprintf(fp,%s %s %s %s %s %s %s,&p-data.num,&,&p-data.sex,&p-dat
20、a.birthday,&p-data.degree,&p-data.position,&p-data.salary);p=p-next;fclose(fp);/關閉文件7:文件統(tǒng)計模塊void load(node *woker)node *p,*q;file *fp;/指向文件的指針int recordnum;/ 統(tǒng)計記錄數(shù)if(fp = fopen(職工管理系統(tǒng).dat, rb) = null)/打開文件printf(can not open filen);/不能打開p=woker;recordnum = 0;while(!feof(fp)q=(node*)malloc(sizeof(nod
21、e); fscanf(fp, %s %s %s %s %s %s %s,p-data.num,,p-data.sex,p-data.birthday,p-data.degree,p-data.position,p-data.salary);/*從文件讀入記錄*/p-next=q;q-next=null;p=q;recordnum+;fclose(fp);printf(文件里共有%d條記錄:n,recordnum);8:主函數(shù)模塊void main()node *woker;file *fp;int flag;node *p,*q; printf(tttt職工信息管理系統(tǒng)n
22、); woker=(node*)malloc(sizeof(node); woker-next=null; p=woker; while(1) printf(*目錄*); printf(n1添加記錄n); printf(n2修改記錄n); printf(n3瀏覽記錄n); printf(n4分類查找記錄n); printf(n5刪除記錄n); printf(n6從文件讀取記錄n); printf(n0*-exit-*n); printf(請輸入你要操作的序號:); scanf(%d,&flag); switch(flag) case 0: printf(n提示:已經退出系統(tǒng),byebye!n)
23、;break; case 1: add(woker);save(woker);break;/增加記錄 case 2: change(woker); break;/修改記錄 case 3: disp(woker); break;/顯示記錄信息 case 4: tongji(woker); break;/查找記錄 case 5: dismiss(woker);break;/刪除記錄 case 6: load(woker);break;/讀取記錄 default: printf(n提示:輸入錯誤!n); break; (4)程序的運行和測試結果主界面:創(chuàng)建與增加模塊:輸入職工信息為:職工號職工姓名職
24、工性別職工出生年月職工學歷職工職位職工工資1af11aaa10002bm22bbb20003cf33ccc30004dm44ddd4000輸入第一次時:輸入第二次時:輸入第三次時:輸入第四次時:顯示模塊:輸入四次后顯示的結果為:存檔模塊:文件統(tǒng)計模塊:查找模塊:輸入查找職工號為3的職工信息:輸入查找職工姓名為c的職工信息:修改模塊:修改職工號為3的職工信息為:職工號職工姓名職工性別職工出生年月職工學歷職工職位職工工資5ef55eee5000職工信息變成:刪除模塊:刪除職工號為5的職工信息:刪除后的結果為:退出模塊:四、實驗中的問題及心得此次實踐課編寫的是一個應用程序,相對于以前我們見到的程序,
25、它要大得多,運行的結果也沒有預想中的好,數(shù)據(jù)的輸出格式不太規(guī)范,而且各模塊也出現(xiàn)了一些小問題,在老師和同學的幫助下,我很有耐心的一次又一次的進行修改,最后運行的結果基本上達到了預期的目的。本次c 語言的實習課讓我對c 語言的學習又有了更深入的了解,也讓我更深刻地領悟到了“實踐出真理”這個道理,在上機實踐過程中學到的知識遠遠超過了在課堂上十幾周學到的,這次程序設計課讓我增添了許多程序設計經驗,為我們將來走上工作崗位其了不小的鋪墊作用。本次實習中遇到了很多以前沒有遇到過的問題,也曾想過要放棄,但看到那些同學都在那認真的寫程序,給了我繼續(xù)的信心。在同學和老師的幫助下,我順利的結束了本次實習,讓我知道
26、原來憑借自己努力取得的成功會讓自己這么欣慰,也讓我知道了友誼和團結的重要性。(4)程序清單#include stdio.h#include stdlib.h#include string.hstruct wokers/定義一個woker的結構體char num10;/職工號char name15;/職工姓名char sex15;/職工性別char birthday15; /職工出生年月char degree10; /職工學歷char position10; /職工職位char salary10; /職工工資;typedef struct nodestruct wokers data;struc
27、t node *next;/建立一個鏈表。node;void add(node *woker)/添加記錄node *p,*r,*s; char n10; /先用于輸入職工號,也用于判斷是否跳出循環(huán)r=woker;s=woker-next; /使s為第一個有用的結點while(r-next!=null) /這個循環(huán)的作用是使r為最后一個有用的結點r=r-next; /將指針置于最末尾while(1) printf(提示:輸入0則返回主菜單!n); printf(n請你輸入職工號:); scanf(%s,n); if(strcmp(n,0)=0) break; p=(node *)malloc(s
28、izeof(node); /申請空間 strcpy(p-data.num,n); printf(n請輸入姓名:); scanf(%s,); printf(n請輸入性別:); scanf(%s,p-data.sex); printf(n請輸入出生年月:); scanf(%s,&p-data.birthday); printf(n請輸入學歷:); scanf(%s,&p-data.degree); printf(n請輸入職位:); scanf(%s,&p-data.position); printf(n請輸入工資:); scanf(%s,&p-data.salary); pr
29、intf(提示:已經完成一條記錄的添加。n); p-next=null; r-next=p; /這一步是必需的,將p與先前的鏈表連起來構成一條新鏈表 r=p; /也是必需的.將r 又重設為新鏈的最后一個有用結點 void change(node *woker)/修改職工信息函數(shù)node *p;char find20;if(!woker-next) printf(n提示:沒有資料可以修改!n); return;printf(請輸入要修改的職工號:); scanf(%s,find); p=woker-next; while(p!=null) if(strcmp(p-data.num,find)=0
30、) /如果找到的話返回的是符合要求 break; p=p-next; if(p) int x; while(1) printf(完成修改請輸入0否則輸入任意數(shù)再進行修改:); scanf(%d,&x); if(x=0) break; printf(請輸入新職工號(原來是 %s ):,p-data.num); scanf(%s,p-data.num); printf(請輸入新職工姓名(原來是 %s ):,); scanf(%s,); printf(請輸入新職工性別(原來是 %s ):,p-data.sex); scanf(%s,p-data.sex);
31、 printf(請輸入新出生年月(原來是 %s ):,p-data.birthday); scanf(%s,p-data.birthday); printf(請輸入新職工學歷(原來是 %s ):,p-data.degree); scanf(%s,p-data.degree); printf(請輸入新職工職位(原來是 %s ):,p-data.position); scanf(%s,p-data.position); printf(請輸入新職工工資(原來是 %s ):,p-data.salary); scanf(%s,p-data.salary); printf(n提示:該項記錄資料已經成功修改
32、!n); else printf(n提示:你要修改的信息不存在!n); void disp(node *woker)/輸出職工信息node *p;p=woker-next;if(!p) printf(n提示:沒有記錄可以顯示!n); return; printf(tttt顯示結果n); printf(職工號 職工姓名 職工性別 職工生日 職工學歷 職工職位 職工工資n); while(p) printf(n%-13s%-11s%-7s%-10s%-13s%-10s%-5sn,p-data.num,,p-data.sex,p-data.birthday,p-data.deg
33、ree,p-data.position,p-data.salary); p=p-next;void tongji(node *woker)/查找統(tǒng)計函數(shù)node *p;int sel;int flag2=0,ha=0;p=woker-next;char find20; if(!woker-next)/若鏈表為空 printf(n提示:沒有資料可以統(tǒng)計分類!n); return;printf(提示:n=0退出n=1按職工號統(tǒng)計n=2按職工姓名名稱統(tǒng)計n);scanf(%d,&sel);if(sel=1) printf(n輸入你要統(tǒng)計分類的職工號:);scanf(%s,find); while(p
34、) if(strcmp(p-data.num,find)=0) flag2+; if(flag2=1&ha!=flag2) printf(職工號 職工姓名 職工性別 職工生日 職工學歷 職工職位 職工工資n); printf(n%-13s%-11s%-7s%-10s%-13s%-10s%-5sn,p-data.num,,p-data.sex,p-data.birthday,p-data.degree,p-data.position,p-data.salary); ha=flag2; else if(flag2ha)printf(n%-13s%-11s%-7s%-10s%-
35、13s%-10s%-5sn,p-data.num,,p-data.sex,p-data.birthday,p-data.degree,p-data.position,p-data.salary);ha=flag2; p=p-next; if(flag2) printf(n*按設備號%s統(tǒng)計分類的有%d條記錄:*nn,find,flag2); else printf(n按職工號%s統(tǒng)計的結果為0個nn,find);else if(sel=2) printf(n輸入你要統(tǒng)計分類的職工姓名:); scanf(%s,find); while(p) if(strcmp(p-data
36、.name,find)=0) flag2+; if(flag2=1&ha!=flag2) printf(職工號 職工姓名 職工性別 職工生日 職工學歷 職工職位 職工工資n); printf(n%-13s%-11s%-7s%-10s%-13s%-10s%-5sn,p-data.num,,p-data.sex,p-data.birthday,p-data.degree,p-data.position,p-data.salary); ha=flag2; else if(flag2ha)printf(n%-13s%-11s%-7s%-10s%-13s%-10s%-5sn,p-d
37、ata.num,,p-data.sex,p-data.birthday,p-data.degree,p-data.position,p-data.salary);ha=flag2; p=p-next; if(flag2) printf(n*按設備名稱%s統(tǒng)計的有%d條記錄:*nn,find,flag2); else printf(n按職工姓名%s統(tǒng)計分類的結果為0個nn,find);else if(sel=0) return;void load(node *woker)node *p,*q;file *fp;/指向文件的指針int recordnum;/ 統(tǒng)計記錄數(shù)if(
38、fp = fopen(職工管理系統(tǒng).dat, rb) = null)/打開文件printf(can not open filen);/不能打開p=woker;recordnum = 0;while(!feof(fp)q=(node*)malloc(sizeof(node); fscanf(fp, %s %s %s %s %s %s %s,p-data.num,,p-data.sex,p-data.birthday,p-data.degree,p-data.position,p-data.salary);/*從文件讀入記錄*/p-next=q;q-next=null;p=q
39、;recordnum+;fclose(fp);printf(文件里共有%d條記錄:n,recordnum);void save(node *woker)/將職工信息保存到文件int n;node *p;file *fp; /指向文件的指針printf(需要保存嗎?(1-保存 0-不保存));scanf(%d,&n);if(n)if(woker-next=null)printf(無記錄);else p=woker-next;if(fp = fopen(職工管理系統(tǒng).dat, wb) = null) /打開文件,并判斷打開是否正常printf(can not open filen);/ 打開文件出
40、錯while(p!=null)fprintf(fp,%s %s %s %s %s %s %s,&p-data.num,&,&p-data.sex,&p-data.birthday,&p-data.degree,&p-data.position,&p-data.salary);p=p-next;fclose(fp);/關閉文件void dismiss(node *woker)/刪除職工信息函數(shù)node *p,*r,*s;char find10;if(!woker-next) printf(n提示:沒有資料可以顯示!n); return; printf(n提示:請輸入您要刪除的職工號!n);scanf(%s,find);p=woker-next;while(p!=null) if(strcmp(p-data.num,find)=0)/如果找到的話返回的是符合要求 break; p=p-next; if(!p)printf(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年三片式球閥項目發(fā)展計劃
- 2025年度汽車銷售市場調研與分析合同
- 2025版商業(yè)綜合體電梯清潔維護協(xié)議
- 2022年江蘇高考英語真題及答案-2
- 2025年度健康食堂牛羊肉綠色采購配送協(xié)議4篇
- 2025年度足療行業(yè)市場調研分析合同
- 2025年全自動潷水器合作協(xié)議書
- 幼兒園節(jié)奏感與韻律教育方案計劃
- 班級活動與團隊合作訓練計劃
- 跨學科合作項目的設計與實踐計劃
- JBT 1472-2023 泵用機械密封 (正式版)
- 價格法價格違法行為和明碼標價法律法規(guī)價格欺詐知識
- 2016-2023年山東力明科技職業(yè)學院高職單招(英語/數(shù)學/語文)筆試歷年參考題庫含答案解析
- 中外歷史綱要上大事年表
- 高標準農田建設項目監(jiān)理計劃
- 2022版《義務教育教學新課程標準》解讀課件
- 小學二年級(上冊)-乘法口訣-練習題-A4直接打印
- 采購行業(yè)的swot分析
- 設備采購 投標方案(技術方案)
- 振蕩指標MACD(波段操作精解)
- 兒科常見病的病例討論和診斷思維培訓課件
評論
0/150
提交評論