




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計( 2010/2011 學年第二學期第20 周)指導教師:孫麒郭奕億班級:09 計算機科學與技術(shù)1 班學號:E09620118姓名:倪建鶴數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計任務書數(shù)據(jù)結(jié)構(gòu)與算法 是計算機專業(yè)重要的核心課程之一, 在計算機專業(yè)的學習過程中占有非常重要的地位。數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計 就是要運用本課程以及到目前為止的有關(guān)課程中的知識和技術(shù)來解決實際問題。 特別是面臨非數(shù)值計算類型的應用問題時,需要選擇適當?shù)臄?shù)據(jù)結(jié)構(gòu),設(shè)計出滿足一定時間和空間限制的有效算法。本課程設(shè)計要求同學獨立完成一個較為完整的應用需求分析。并在設(shè)計和編寫具有一定規(guī)模程序的過程中,深化對數(shù)據(jù)結(jié)構(gòu)與算法課程
2、中基本概念、理論和方法的理解;訓練綜合運用所學知識處理實際問題的能力,強化面向?qū)ο蟮某绦蛟O(shè)計理念;使自己的程序設(shè)計與調(diào)試水平有一個明顯的提高。赫夫曼編碼 /譯碼器1. 問題描述利用赫夫曼編碼進行通信可以大大提高信道利用率, 縮短信息傳輸時間, 降低傳輸成本。 這要求在發(fā)送端通過一個編碼系統(tǒng)對待傳輸數(shù)據(jù)預先編碼, 在接收端將傳來的數(shù)據(jù)進行譯碼 (復原) 。對于雙工信道(即可以雙向傳輸信息的信道),每端都需要一個完整的編 / 譯碼系統(tǒng)。試為這樣的信息收發(fā)站編寫一個赫夫曼碼的編/ 譯碼系統(tǒng)。2.基本要求一個完整的系統(tǒng)應具有以下功能:(1) I :初始化(Initialization)。從終端讀入字符
3、集大小n,以及n 個字符和n 個權(quán)值,建立赫夫曼樹,并將它存于文件hfmTree 中。(2) E :編碼( Encoding )。利用已建好的赫夫曼樹(如不在內(nèi)存,則從文件hfmTree 中讀入),對文件ToBeTran 中的正文進行編碼,然后將結(jié)果存入文件CodeFile 中。(3) D :譯碼( Decoding )。利用已建好的赫夫曼樹將文件CodeFile 中的代碼進行譯碼,結(jié)果存入文件Textfile 中。以下為選做:(4) P:印代碼文件(Print )。將文件CodeFile以緊湊格式顯示在終端上,每行50 個代碼。同時將此字符形式的編碼文件寫入文件CodePrin中。(5) T
4、 :印赫夫曼樹(Treeprinting )。將已在內(nèi)存中的赫夫曼樹以直觀的方式(比如樹)顯示在終端上,同時將此字符形式的赫夫曼樹寫入文件TreePrint中。3. 測試要求(1) 已知某系統(tǒng)在通信聯(lián)絡中只可能出現(xiàn)八種字符,其頻率分別為0.05,0.29,0.07,0.08,0.14,0.23,0.03,0.11 ,試設(shè)計赫夫曼編碼。(2) 用下表給出的字符集和頻度的實際統(tǒng)計數(shù)據(jù)建立赫夫曼樹,并實現(xiàn)以下報文的編碼和譯碼:“ THISPROGRAMEISMYFAVORITE”。字符ABCDEFGHIJKLM頻度1866413223210321154757153220字符NOPQRSTUVWXYZ
5、頻度57631514851802381811614. 實現(xiàn)提示(1) 編碼結(jié)果以文本方式存儲在文件Codefile 中。(2) 用戶界面可以設(shè)計為“菜單”方式:顯示上述功能符號,再加上“Q”,表示退出運行Quit 。請用戶鍵入一個選擇功能符。此功能執(zhí)行完畢后再顯示此菜單,直至某次用戶選擇了“Q”為止。(3) 在程序的一次執(zhí)行過程中,第一次執(zhí)行I,D 或 C 命令之后,赫夫曼樹已經(jīng)在內(nèi)存了,不必再讀入。每次執(zhí)行中不一定執(zhí)行I 命令,因為文件hfmTree 可能早已建好。具體要求 :課程設(shè)計成果的內(nèi)容必須由以下四個部分組成,缺一不可。(1) 上交源程序:學生按照實驗題目的具體要求所開發(fā)的所有源程序
6、(應該放到一個文件夾中);(2) 上交程序的說明文件: (保存在 .txt 中)在說明文檔中應該寫明上交程序所在的目錄,上交程序的主程序文件名,如果需要安裝,要有程序的安裝使用說明;(3) 設(shè)計報告:(保存在 word 文檔中,文件名要求: 按照“姓名 _學號 _設(shè)計題目”起名,如文件名為“ 張三 _XXX_ 赫夫曼編碼 ” .doc。打印稿用 A4 紙)。其中包括 :題目;實驗目的;需求分析:在該部分中敘述實現(xiàn)的功能要求;概要設(shè)計:在此說明每個部分的算法設(shè)計說明 (可以是描述算法的流程圖) ,每個程序中使用的存儲結(jié)構(gòu)設(shè)計說明(如果指定存儲結(jié)構(gòu)請寫出該存儲結(jié)構(gòu)的定義);詳細設(shè)計各個算法實現(xiàn)的源
7、程序, 對每個題目要有相應的源程序 (可以是一組源程序, 每個功能模塊采用不同的函數(shù)實現(xiàn))。源程序要按照寫程序的規(guī)則來編寫。要結(jié)構(gòu)清晰,重點函數(shù)的重點變量,重點功能部分要加上清晰的程序注釋;調(diào)試分析測試數(shù)據(jù), 測試輸出的結(jié)果,時間復雜度分析,和每個模塊設(shè)計和調(diào)試時存在問題的思考(問題是哪些?問題如何解決?),算法的改進設(shè)想;總結(jié):總結(jié)可以包括 : 設(shè)計過程的收獲、遇到問題及解決問題過程的思考、程序調(diào)試能力的思考、對數(shù)據(jù)結(jié)構(gòu)這門課程的思考、在設(shè)計過程中對數(shù)據(jù)結(jié)構(gòu)課程的認識等內(nèi)容。三、工作內(nèi)容及工作計劃:一周(20)7 月11 日7 月12 日7 月13 日7 月14 日7 月15 日時間地點工作
8、內(nèi)容指導教師上午10-414實驗要求,需求分析;孫麒、郭奕億下午10-414查找資料,總體結(jié)構(gòu)設(shè)計;孫麒、郭奕億上午10-414算法設(shè)計、用戶界面設(shè)計孫麒、郭奕億下午10-414算法設(shè)計、用戶界面設(shè)計孫麒、郭奕億上午10-414詳細設(shè)計孫麒、郭奕億下午10-414詳細設(shè)計孫麒、郭奕億上午10-414詳細設(shè)計孫麒、郭奕億下午10-414詳細設(shè)計孫麒、郭奕億上午10-414上機檢查、答辯孫麒、郭奕億下午10-414上機檢查、答辯孫麒、郭奕億四、考核成績評定標準:本課程設(shè)計的評價由三部分組成,包括程序演示( 50%),課程設(shè)計報告( 30%),回答教師提問( 20%)。1程序演示:?優(yōu)功能完善,全部
9、測試正確,并且能夠?qū)植窟M行完善。?良功能完善,但測試欠缺。?中功能基本完善,但程序尚有部分錯誤。?及格完成內(nèi)存中赫夫曼編碼 / 譯碼,但不涉及文件操作。? 不及格 功能不完善,且程序錯誤較多,無法運行。2課程設(shè)計報告:? 優(yōu) 包括設(shè)計內(nèi)容, 設(shè)計思想,已經(jīng)完成的任務及達到的目標, 設(shè)計思路清晰、書寫條理清楚,源程序結(jié)構(gòu)合理、清晰,注釋說明完整,有對本次課程設(shè)計的心得體會。? 良 包括設(shè)計內(nèi)容,設(shè)計思想,已經(jīng)完成的任務及達到的目標,設(shè)計思路基本清晰、書寫條理基本清楚,源程序結(jié)構(gòu)合理、清晰,注釋說明基本完整,有對本次課程設(shè)計的心得體會。? 中 課程設(shè)計報告內(nèi)容基本完整,思路較清晰,書寫基本清楚,
10、源程序結(jié)構(gòu)尚可,有注釋說明但不完整。? 及格 課程設(shè)計報告內(nèi)容基本完整,思路較差,書寫尚清楚。? 不及格 課程設(shè)計報告內(nèi)容不完整,書寫沒有條理。3回答教師提問:?優(yōu)能回答教師提出的所有問題,并完全正確,思路清晰?良基本能回答教師提出的所有問題,有些小錯誤?中基本能回答教師提出的問題,少數(shù)問題回答錯誤或不清楚? 及格 能回答教師提出的問題,但較多問題回答錯誤或不能回答? 不及格 基本不能回答教師提出的問題數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計目錄一、 題目二、 需求分析三、 概要設(shè)計四、 程序說明五、 詳細設(shè)計六、 實驗心得與體會赫夫曼編譯碼器一、題目問題描述利用赫夫曼編碼進行通信可以大大提高信道利用率, 縮短
11、信息傳輸時間, 降低傳輸成本。 這要求在發(fā)送端通過一個編碼系統(tǒng)對待傳輸數(shù)據(jù)預先編碼, 在接收端將傳來的數(shù)據(jù)進行譯碼 (復原) 。對于雙工信道(即可以雙向傳輸信息的信道),每端都需要一個完整的編 / 譯碼系統(tǒng)。試為這樣的信息收發(fā)站編寫一個赫夫曼碼的編/ 譯碼系統(tǒng)?;疽笠粋€完整的系統(tǒng)應具有以下功能:(1) I :初始化(Initialization)。從終端讀入字符集大小n,以及n 個字符和n 個權(quán)值,建立赫夫曼樹,并將它存于文件hfmTree 中。(2) E :編碼( Encoding )。利用已建好的赫夫曼樹(如不在內(nèi)存,則從文件hfmTree 中讀入),對文件ToBeTran 中的正文進
12、行編碼,然后將結(jié)果存入文件CodeFile 中。(3) D :譯碼( Decoding )。利用已建好的赫夫曼樹將文件CodeFile 中的代碼進行譯碼,結(jié)果存入文件Textfile 中。(以下為選做:)(4) P:印代碼文件(Print )。將文件CodeFile以緊湊格式顯示在終端上,每行50 個代碼。同時將此字符形式的編碼文件寫入文件CodePrin中。(5) T :印赫夫曼樹(Treeprinting )。將已在內(nèi)存中的赫夫曼樹以直觀的方式(比如樹)顯示在終端上,同時將此字符形式的赫夫曼樹寫入文件TreePrint中。測試要求(1) 已知某系統(tǒng)在通信聯(lián)絡中只可能出現(xiàn)八種字符,其頻率分別
13、為0.05,0.29,0.07,0.08,0.14,0.23,0.03,0.11 ,試設(shè)計赫夫曼編碼。(2) 用下表給出的字符集和頻度的實際統(tǒng)計數(shù)據(jù)建立赫夫曼樹,并實現(xiàn)以下報文的編碼和譯碼:“ THISPROGRAMEISMYFAVORITE”。字符ABCDEFGHIJKLM頻度1866413223210321154757153220字符NOPQRSTUVWXYZ頻度5763151485180238181161二、需求分析( 1)初始化哈夫曼數(shù)( 2)輸入字符保存至 tobetran.txt 中( 3)對字符編碼( 4)編碼結(jié)果以文本方式存儲在文件Codefile 中。( 5)在對 codef
14、ile 中編碼進行譯碼( 6)打印編碼和哈夫曼樹用戶界面可以設(shè)計為“菜單”方式:顯示上述功能符號,再加上“Q”,表示退出運行Quit 。請用戶鍵入一個選擇功能符。此功能執(zhí)行完畢后再顯示此菜單,直至某次用戶選擇了“Q”為止。在程序的一次執(zhí)行過程中,第一次執(zhí)行I, D或C 命令之后,赫夫曼樹已經(jīng)在內(nèi)存了,不必再讀入。每次執(zhí)行中不一定執(zhí)行I 命令,因為文件hfmTree可能早已建好。三、概要設(shè)計函數(shù)間的關(guān)系如圖3.1 所示:主函數(shù)顯 示 表頭初 始 化樹輸 入 字符編碼譯碼打 印 編碼打 印 赫夫曼樹選 最 小兩 個 權(quán)值圖 3.1函數(shù)間的關(guān)系數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計赫夫曼編譯碼器的主要功能是先建立赫夫曼
15、樹,然后利用建好的赫夫曼樹生成赫夫曼編碼后進行譯碼。在數(shù)據(jù)通信中,經(jīng)常需要將傳送的文字轉(zhuǎn)換成由二進制字符0、 1 組成的二進制串,稱之為編碼。構(gòu)造一棵赫夫曼樹,規(guī)定赫夫曼樹中的左分之代表0,右分支代表1,則從根節(jié)點到每個葉子節(jié)點所經(jīng)過的路徑分支組成的0 和 1 的序列便為該節(jié)點對應字符的編碼,稱之為赫夫曼編碼。最簡單的二進制編碼方式是等長編碼。若采用不等長編碼,讓出現(xiàn)頻率高的字符具有較短的編碼,讓出現(xiàn)頻率低的字符具有較長的編碼,這樣可能縮短傳送電文的總長度。赫夫曼樹課用于構(gòu)造使電文的編碼總長最短的編碼方案。其主要流程圖如圖3.2 所示。開始將 data 和權(quán)值賦給 ht否1結(jié)點數(shù)是否大于是輸出
16、根結(jié)點和權(quán)值否I2*N?是I+調(diào)用 SELECT 函數(shù)計算根結(jié)點函數(shù)父結(jié)點為兩子結(jié)點之和輸出兩子結(jié)點和已構(gòu)造的結(jié)點否是否為根結(jié)點?是是左子是否為空?否是此時編碼為0右子是否為空否編碼為 1結(jié)束四、程序說明1赫夫曼樹抽象數(shù)據(jù)類型定義ADT HuffmanCoding數(shù)據(jù)對象 T:具有相同特性的數(shù)據(jù)元素的集合數(shù)據(jù)關(guān)系 R:滿足最優(yōu)二叉樹的關(guān)系基本操作 P:Init( &t )操作結(jié)果:構(gòu)造一個空赫夫曼樹t 。encode()操作結(jié)果:利用赫夫曼樹進行編碼Decode()操作結(jié)果:利用赫夫曼樹進行譯碼2. 主函數(shù)Void mian () 打印表頭;While( 選擇項不為 q)輸入選擇項;Switc
17、h( 選擇項 )Case i : 初始化; break;Case w: 輸入要編碼的字符;break ;Case e: 編碼字符; break ;Case d;譯碼操作; break ;Case p; 打印代碼; break ;Case t ; 打印赫夫曼樹;break ;Default :輸入錯誤,重新選擇;五、詳細設(shè)計源程序:#include #include #include const int UINT_MAX=1000;typedef structint weight;/ 權(quán)值int parent,lchild,rchild;/父節(jié)點,左孩子結(jié)點,右孩子結(jié)點HTNode,* Huff
18、manTree;typedef char *HuffmanCode;/ 定義全局變量HuffmanTree HT;/ 代表赫夫曼樹HuffmanCode HC;/代表赫夫曼編碼int *w,i,j,n;char *z;int flag=0;int numb=0;int min(HuffmanTree t,int i)/ 選出葉子結(jié)點int j,flag;int k=UINT_MAX; /取 k 為足夠大的值for(j=1;j=i;j+)if(tj.weights2)/ s1 為最小的兩個值中序號小的那個j=s1;s1=s2;s2=j;void HuffmanCoding(HuffmanTree
19、 &HT,HuffmanCode &HC,int *w,int n)/w 存放 n 個字符的權(quán)值(均0),構(gòu)造哈夫曼樹HT 并求出 n 個字符的哈夫曼編碼HCint m,i,s1,s2,start;int c,f;HuffmanTree p;char *cd;if(n=1)return;m=2*n-1;/結(jié)點數(shù)HT=(HuffmanTree)malloc(m+1)*sizeof(HTNode); / 0號單元未用for(p=HT+1,i=1;iweight=*w;p-parent=0;p-lchild=0;p-rchild=0;for(;iparent=0;for(i=n+1;i=m;+i)
20、/建赫夫曼樹select(HT,i-1,s1,s2);HTs1.parent=HTs2.parent=i;HTi.lchild=s1;HTi.rchild=s2;HTi.weight=HTs1.weight+HTs2.weight;HC=(HuffmanCode)malloc(n+1)*sizeof(char*);cd=(char*)malloc(n*sizeof(char);cdn-1=0;/ 編碼結(jié)束符for(i=1;i=n;i+)/ 逐個字符求編碼start=n-1;for(c=i,f=HTi.parent;f!=0;c=f,f=HTf.parent)/ 從葉子到根逆向求編碼 if(HT
21、f.lchild=c)cd-start=0; elsecd-start=1; HCi=(char*)malloc(n-start)*sizeof(char);strcpy(HCi,&cdstart);/ 復制 cd 到 HCfree(cd);void InitHuffman() / 初始化赫夫曼鏈表 flag=1; int num; int num2;cout 赫夫曼鏈表初始化 endlnum;n=num;w=(int*)malloc(n*sizeof(int);/ 分配權(quán)值空間 z=(char*)malloc(n*sizeof(char);/ 分配字符空間coutn 請依次輸入 n 個字符
22、endl;char temp2;for(i=0;in;i+)/ 輸入字符cout 字符 i+1:endl;gets(temp);*(z+i)=*temp;coutn 請依次輸入 n 個字符的權(quán) endl;for(i=0;i=n-1;i+)/ 輸入權(quán)coutendli+1num2;*(w+i)=num2;/輸入部分結(jié)束編碼HuffmanCoding(HT,HC,w,n);cout 字符對應的編碼為:endl;for(i=1;i=n;i+)cout 字符 *(z+i-1)的編碼為: ;puts(HCi);/ 輸出編碼/將赫夫曼編碼寫入文件cout 赫夫曼編碼寫入文件htmTree.txt中 end
23、l;FILE *htmTree;char r= ,0;if(htmTree=fopen(htmTree.txt,w)=NULL)cout 文件打開失敗 endl;return;fputs(z,htmTree); / 文件中輸入z 字符串coutendl;/ 不加這個代碼文件輸入有誤fputc(n,htmTree);/ 換行for(i=0;in;i+)/ 文件中輸入權(quán)fprintf(htmTree,%d ,*(w+i);fputs(r,htmTree);fprintf(htmTree,n);/換行for(i=1;i=n;i+)/ 文件中輸入編碼fputs(HCi,htmTree);fputs(r
24、,htmTree);fclose(htmTree);/init/ 獲取字符并寫入文件創(chuàng)建待編碼文件void inputcode()FILE *virttran,*tobetran;char str;if(tobetran=fopen(tobetran.txt,w)=NULL)cout 不能打開文件endl;return;cout 請輸入你想要編碼的字符并以#號結(jié)束 endl;str=getchar();/ 用來初始化str=getchar();/ 此語句用來接收輸入的第一個字符while(str!=#)fputc(str,tobetran);str=getchar();cout 寫入成功! e
25、ndl;fclose(tobetran);void encode()/ 完成編碼功能cout 下面對目錄下文件tobetran.txt 中的字符進行編碼endl;FILE *tobetran,*codefile;if(tobetran=fopen(tobetran.txt,rb)=NULL)cout 不能打開文件endl;return;if(codefile=fopen(codefile.txt,wb)=NULL)cout 不能打開文件return;endl;char *tran;i=99;tran=(char*)malloc(100*sizeof(char); /為 tran 分配100 個
26、字節(jié)while(i=99)if(fgets(tran,100,tobetran)=NULL)cout 不能打開文件endl;break;for(i=0;*(tran+i)!=0;i+)/ 對 tobetran 文件中字符通過初始化的哈夫曼編碼進行編碼for(j=0;jn)cout 字符錯誤,無法編碼!endl;break;cout 完成! endl編碼已寫入codefile.txt中 endlendl;fclose(tobetran);fclose(codefile);free(tran);void decode()/ 完成譯碼功能cout 下面對根目錄下文件codefile.txt 中的字符
27、進行譯碼endl;FILE *codef,*txtfile;if(txtfile=fopen(Textfile.txt,w)=NULL)cout 不能打開文件endl;return;if (codef=fopen(codefile.txt,r)=NULL)cout 不能打開文件endl;return;char *tbdc,*outext,i2;int io=0,i,m;unsigned long length=10000;tbdc=(char*)malloc(length*sizeof(char); /分配空間fgets(tbdc,length,codef); /codefile中提取編碼ou
28、text=(char*)malloc(length*sizeof(char); /分配空間m=2*n-1;for(i=0;*(tbdc+i)!=0;i+)/ 進入循環(huán)依次譯碼i2=*(tbdc+i);if(HTm.lchild=0)*(outext+io)=*(z+m-1);io+;m=2*n-1;i-;else if(i2=0) m=HTm.lchild;else if(i2=1) m=HTm.rchild;*(outext+io)=*(z+m-1);*(outext+io+1)=0;fputs(outext,txtfile);/ 譯碼完畢將譯碼放入文件cout 完成! endl 結(jié)果已寫入
29、txtfile.txt中endlendl;free(tbdc);free(outext);fclose(txtfile);fclose(codef);void printcode()/打印代碼cout下面打印根目錄下文件CodePrin.txt中編碼字符endl-n;FILE * CodePrin,* codefile;if(CodePrin=fopen(CodePrin.txt,w)=NULL)cout 不能打開文件endl;return;if(codefile=fopen(codefile.txt,r)=NULL)cout 不能打開文件endl;return;char *work3;wor
30、k3=(char*)malloc(51*sizeof(char);doif(fgets(work3,51,codefile)=NULL)cout 不能讀取文件endl;break;fputs(work3,CodePrin);/ 放入puts(work3);while(strlen(work3)=50);free(work3);cout 打印完成! endlendl;fclose(CodePrin);fclose(codefile);/ 打印赫夫曼樹的函數(shù)void coprint(HuffmanTree start,HuffmanTree HT)char t= ;if(start!=HT)FILE * TreePrint;if(TreePrint=fopen(TreePrint.txt,a)=N
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 園林建設(shè)專項施工方案
- 2024年廣東省中考滿分作文《當好自己故事的主角》3
- 合作商超協(xié)議合同范本
- 胃造口術(shù)后護理
- 農(nóng)莊永久出售合同范例
- 交運股合同范例
- 制定高效的日常生產(chǎn)計劃
- 加強知識管理的有效方式計劃
- 品牌數(shù)字化轉(zhuǎn)型的路徑與挑戰(zhàn)計劃
- 項目管理的最佳實踐計劃
- HYT 0332-2022 海洋大數(shù)據(jù)標準體系(正式版)
- 全新供土協(xié)議
- 發(fā)電機組檢修方案技術(shù)指導
- 第2課《讓美德照亮幸福人生》第2框《做守家庭美德的好成員》-【中職專用】《職業(yè)道德與法治》同步課堂課件
- 條件概率與全概率公式高二下學期數(shù)學人教A版(2019)選擇性必修第三冊
- (正式版)JBT 10437-2024 電線電纜用可交聯(lián)聚乙烯絕緣料
- 法律知識圖譜構(gòu)建及應用
- 八卦的基本介紹及其科學內(nèi)涵
- 內(nèi)科護理學慢性腎衰竭
- (建筑制圖)課程綜合自測題3(試卷和答案)
- 公司商業(yè)模式策劃案關(guān)鍵合作伙伴
評論
0/150
提交評論