版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 課程設(shè)計說明書</b></p><p> 設(shè)計題目: 中文分詞程序設(shè)計與實(shí)現(xiàn) </p><p> 學(xué)院、系: 裝備制造學(xué)院 </p><p> 專業(yè)班級: 計算機(jī)09(1)班 </p><p> 學(xué)生姓名:
2、 </p><p> 指導(dǎo)教師: </p><p> 成 績: </p><p> 2012年 3 月 2 日</p><p><b> 目 錄</b></p><p><b>
3、; 需求分析</b></p><p> 隨著國內(nèi)互聯(lián)網(wǎng)的迅猛發(fā)展,網(wǎng)絡(luò)信息量急劇膨脹,如果完全由人工來整理如此繁多的信息,那是難以想象的工作量,同時也不現(xiàn)實(shí)的,如何有效、快速、準(zhǔn)確的從大量的信息中找到我們所需要的信息,是擺在我們面前的一個重要和迫切的任務(wù),為了解決這個難題,人們采用了中文分詞技術(shù),通過分詞技術(shù),就可以使得對海量信患的整理更準(zhǔn)確更合理,使得檢索結(jié)果更準(zhǔn)確,效率也會大幅度地提高。所謂中
4、文分詞,就是把一個漢語句子按照其中詞的含義進(jìn)行切分。隨羞人們更深入熬研究,中文信息處理技術(shù)得到了廣泛應(yīng)用,并對中文分詞技術(shù)的要求也越來越高。中文分詞技術(shù)已經(jīng)引起多方的關(guān)注,并成為中文信息處理的一個前沿課題l卜21。目前在自然語言處理技術(shù)中,中文處理技術(shù)遠(yuǎn)遠(yuǎn)落后于西文處理技術(shù),許多西文的處理方法中文不能直接采用,就是因?yàn)橹形谋仨氝M(jìn)行分詞處理。中文分詞是其它中文信息處理的基礎(chǔ),搜索弓|擎只是中文分詞的一個應(yīng)用,其它應(yīng)用比如機(jī)器翻譯(MT)、
5、語音合成、自動分類、自動摘要、自動校對、中文文獻(xiàn)瘁全文檢索等翻,都需要焉到分詞。分詞準(zhǔn)確性對搜索弓|擎來說十分重要,但如果分詞速度太慢,即使準(zhǔn)確性再高,對于搜索引擎來說也是不可用的,因?yàn)樗阉鞴璴擎需要</p><p> 目前中文分詞得到了很多現(xiàn)實(shí)的應(yīng)用,主要體現(xiàn)在在信息檢索、同音字和多音字方面的識別、文本校對、簡體繁體的囪動轉(zhuǎn)換、自動標(biāo)引、自動文撬、視器翻譯、語言文字研究、搜索弓|擎研究、自然語言理解和中文信息
6、處哈爾濱]二程大學(xué)碩七學(xué)位論文理等方面M,也是中文智能計算技術(shù)發(fā)展的前提和基礎(chǔ)。隨著對中文分詞技術(shù)關(guān)注度的不斷提高,大量的學(xué)者都加入到了這一研究領(lǐng)域,使中文分詞取得了豐碩的研究成果。近10年來,語言學(xué)界、人工智能領(lǐng)域和情報檢索界的學(xué)者們,在中文分詞與自動標(biāo)引的研究與實(shí)踐上進(jìn)行了大量的研究,找到了許多解決中文分詞的方法,目前關(guān)于中文分詞研究方法主要有三個方面,即基于字符串匹配的分詞方法、基于統(tǒng)計的分詞方法和基于理解的分詞方法。中文分詞的研
7、究,主要是從詞層面進(jìn)行的研究,這一問題很早就受到了廣泛的關(guān)注。目前,各種分詞系統(tǒng)也不斷建立,分詞系統(tǒng)在運(yùn)行速度、準(zhǔn)確度等方面已經(jīng)具有了研究應(yīng)用的價值,但是在句子中詞該如何被界定,仍然是一個比較困難的問題,同時,在不同的應(yīng)用領(lǐng)域由于應(yīng)用需求的不同,需要達(dá)到的分詞效果有很大區(qū)別。詞的確切概念難以標(biāo)準(zhǔn)化,詞的應(yīng)用領(lǐng)域不同,使得分詞規(guī)范難以統(tǒng)一,需要達(dá)到的分詞效果也有很大</p><p><b> 設(shè)計<
8、;/b></p><p><b> 主要分為兩大模塊:</b></p><p> 一個建立一棵樹,一個是查詢。建樹有三個層次,第一層一維數(shù)組,第二層是數(shù)組,用于二分查找使用,第三層是二叉樹。查詢分為直接查詢第一層的一維數(shù)組,第二層用二分查找(第二層漢子相同的平均概率是26,一般第二字成詞切相同),第三層直接順序查找,以及查找句子中的數(shù)字和漢子標(biāo)點(diǎn)。</
9、p><p> 輸出:(1)建樹 包括:以此字開頭的詞語有幾個;在一維數(shù)組中的中位置;結(jié)束</p><p> ?。?)查詢 包括輸出每個詞的首字。然后輸出分詞后的結(jié)果。</p><p><b> 編碼與調(diào)試</b></p><p> 因?yàn)樽址容^所需的時間同字符串的長度成正比,對于較長的詞條,這種現(xiàn)象尤為突出。為了消除
10、這種冗余操作,我們提出將詞典的詞尾部分以自動機(jī)的形式來組織。為此,我們將組成單詞的每個字以一種鏈表節(jié)點(diǎn)的形式存儲,其抽象數(shù)據(jù)結(jié)構(gòu)的定義如下:</p><p> struct Node3</p><p><b> {</b></p><p><b> string S;</b></p><p>
11、 bool IsWord;</p><p> Node3 *L,*R;</p><p> Node3(string s = "",bool isWord = 0, Node3 *l = 0, Node3 *r = 0):</p><p> S(s),IsWord(isWord),L(l),R(r){}</p><p&g
12、t;<b> };</b></p><p> struct Node2</p><p><b> {</b></p><p><b> string S;</b></p><p> bool IsWord;</p><p> Node3 *C
13、hild;</p><p> Node2(string s ="",bool isWord = 0, Node3* child =0):</p><p> S(s),IsWord(isWord),Child(child){}</p><p><b> };</b></p><p> struc
14、t Node</p><p><b> {</b></p><p><b> string S;</b></p><p> vector<Node2>v;</p><p><b> };</b></p><p> vector<
15、;Node>Dic;</p><p> int BinarySearch(int x, string Sec)//二分查找第二個字</p><p><b> {</b></p><p> int L = 0,R = Dic[x].v.size() - 1;</p><p> while (L <= R
16、)</p><p><b> {</b></p><p> int mid = (L + R) >> 1;</p><p> if (Dic[x].v[mid].S == Sec)</p><p> return mid;</p><p> else if (Dic[x].
17、v[mid].S < Sec)</p><p> L = mid + 1;</p><p> else R = mid - 1;</p><p><b> }</b></p><p> return -1;</p><p><b> }</b></p&
18、gt;<p> Node3* RemainSearch(Node3*p, string cc) //順序查找剩下的字</p><p><b> {</b></p><p> while (p != 0)</p><p><b> {</b></p><p> if (p-
19、>S == cc)</p><p><b> return p;</b></p><p><b> else</b></p><p><b> p = p->L;</b></p><p><b> }</b></p>&l
20、t;p><b> return 0;</b></p><p><b> }</b></p><p><b> 結(jié)果分析</b></p><p> 截取每一個詞的第一個字</p><p> 講一段話拆分成詞的形式</p><p> 逐詞遍
21、歷法將詞典中的所有詞按由長到短的順序在文章中逐字搜索,直至文章結(jié)束。也就是說,不管文章有多短,詞典有多大,都要將詞典遍歷一遍。這種方法效率比較低,大一點(diǎn)的系統(tǒng)一般都不使用。</p><p> 最大正向匹配法 (MaximumMatchingMethod)通常簡稱為MM法。其基本思想為:假定分詞詞典中的最長詞有i個漢字字符,則用被處理文檔的當(dāng)前字串中的前i個字作為匹配字段,查找字典。若字典中存在這樣的一
22、個i字詞,則匹配成功,匹配字段被作為一個詞切分出來。如果詞典中找不到這樣的一個i字詞,則匹配失敗,將匹配字段中的最后一個字去掉,對剩下的字串重新進(jìn)行匹配處理…… 如此進(jìn)行下去,直到匹配成功,即切分出一個詞或剩余字串的長度為零為止。這樣就完成了一輪匹配,然后取下一個i字字串進(jìn)行匹配處理,直到文檔被掃描完為止。</p><p> 當(dāng)然,最大匹配算法是一種基于分詞詞典的機(jī)械分詞法,不能根據(jù)文檔上
23、下文的語義特征來切分詞語,對詞典的依賴性較大,所以在實(shí)際使用時,難免會造成一些分詞錯誤,為了提高系統(tǒng)分詞的準(zhǔn)確度,可以采用正向最大匹配法和逆向最大匹配法相結(jié)合的分詞方案(即雙向匹配法,見(四)。)</p><p> 全切分要求獲得輸入序列的所有可接受的切分形式,而部分切分只取得一種或幾種可接受的切分形式,由于部分切分忽略了可能的其他切分形式,所以建立在部分切分基礎(chǔ)上的分詞方法不管采取何種歧義糾正策略,都可能會遺
24、漏正確的切分,造成分詞錯誤或失敗。而建立在全切分基礎(chǔ)上的分詞方法,由于全切分取得了所有可能的切分形式,因而從根本上避免了可能切分形式的遺漏,克服了部分切分方法的缺陷。</p><p> 全切分算法能取得所有可能的切分形式,它的句子覆蓋率和分詞覆蓋率均為100%,但全切分分詞并沒有在文本處理中廣泛地采用,原因有以下幾點(diǎn):</p><p> 1)全切分算法只是能獲得正確分詞的前提,因?yàn)槿?/p>
25、分不具有歧義檢測功能,最終分詞結(jié)果的正確性和完全性依賴于獨(dú)立的歧義處理方法,如果評測有誤,也會造成錯誤的結(jié)果。</p><p> 2)全切分的切分結(jié)果個數(shù)隨句子長度的增長呈指數(shù)增長,一方面將導(dǎo)致龐大的無用數(shù)據(jù)充斥于存儲數(shù)據(jù)庫;另一方面當(dāng)句長達(dá)到一定長度后,由于切分形式過多,造成分詞效率嚴(yán)重下降。</p><p> 并行分詞方法:這種分詞方法借助于一個含有分詞詞庫的管道進(jìn)行 ,
26、比較匹配過程是分步進(jìn)行的 ,每一步可以對進(jìn)入管道中的詞同時與詞庫中相應(yīng)的詞進(jìn)行比較 ,由于同時有多個詞進(jìn)行比較匹配 ,因而分詞速度可以大幅度提高。這種方法涉及到多級內(nèi)碼理論和管道的詞典數(shù)據(jù)結(jié)構(gòu)。(詳細(xì)算法可以參考吳勝遠(yuǎn)的《并行分詞方法的研究》。)</p><p><b> 參考文獻(xiàn)</b></p><p> 1 國家技術(shù)監(jiān)督局.信息處
27、理用現(xiàn)代漢語分詞規(guī)范,中華人民共和國國家標(biāo)準(zhǔn)GB/T13715.92.中國標(biāo)準(zhǔn)出版社,1993</p><p> 2 碩士學(xué)位論文.中文自動分詞系統(tǒng)的研究與實(shí)現(xiàn). 周程遠(yuǎn) 20091101</p><p> 3碩士學(xué)位論文 .基于條件隨機(jī)場的中文分詞研究與應(yīng)用, 顏軍 20090401</p><p> 4 網(wǎng)絡(luò)文章中文分詞入門之最大匹配法 發(fā)表于 2009年
28、01月12號 由 52nlp </p><p> 5一種基于自動機(jī)的分詞方法.鞍山科技大學(xué).計算機(jī)學(xué)院,東北大學(xué).信息學(xué)院 遲呈英,戰(zhàn)學(xué)剛, 姚天順</p><p> 6種中文分詞算法優(yōu)劣比較,http://www.htmldata.cn/?p=248</p><p><b> 總結(jié)</b></p><p> 分
29、詞是中文自然語言處理的基礎(chǔ),在現(xiàn)實(shí)中已經(jīng)得到廣泛應(yīng)用。比如,Google的Chrome瀏覽器就內(nèi)置了中文分詞功能。如上圖,我們可以注意到,在Chrome中雙擊無鏈接文本時,Chrome選中的不是一個字,也不是一句話,而是一個詞。當(dāng)然,中文分詞在數(shù)據(jù)挖掘等方面的應(yīng)用就更加明顯了。掌握自然語言處理的基本知識,已經(jīng)成為IT行業(yè)對計算機(jī)專業(yè)學(xué)生的基本要求。</p><p> 雖然我曾經(jīng)系統(tǒng)學(xué)習(xí)過《算法》《數(shù)據(jù)結(jié)構(gòu)》等基
30、礎(chǔ)課程,但編寫程序時仍然遇到了很多問題,僅在漢字編碼的問題上就糾纏了很久。幸而在很多細(xì)致的文檔論文的幫助下,使我對分詞程序有了更深的了解。也懂得了算法也需要團(tuán)結(jié)合作才能效率更高。加深了我對各種算法的了解,增強(qiáng)了我的功底。</p><p> 自然語言處理是一個正在快速發(fā)展的學(xué)科,但愿我有朝一日能在這個領(lǐng)域大顯身手。</p><p><b> 附錄(程序源代碼)</b>
31、;</p><p> #include <fstream></p><p> #include <vector></p><p> #include <string></p><p> #include <iostream></p><p> using nam
32、espace std;</p><p> const int START1 = 0XB0,START2 = 0XA1, END1 = 0XF8,END2 = 0XFF;</p><p> const int MAXWORDLEN = 48;</p><p> ifstream fin("segdict.txt");</p>
33、<p> ofstream out("out1.txt");</p><p> //--------------------- 建樹部分----------------------</p><p> struct Node3</p><p><b> {</b></p><p>&
34、lt;b> string S;</b></p><p> bool IsWord;</p><p> Node3 *L,*R;</p><p> Node3(string s = "",bool isWord = 0, Node3 *l = 0, Node3 *r = 0):</p><p>
35、S(s),IsWord(isWord),L(l),R(r){}</p><p><b> };</b></p><p> struct Node2</p><p><b> {</b></p><p><b> string S;</b></p><
36、p> bool IsWord;</p><p> Node3 *Child;</p><p> Node2(string s ="",bool isWord = 0, Node3* child =0):</p><p> S(s),IsWord(isWord),Child(child){}</p><p>&
37、lt;b> };</b></p><p> struct Node</p><p><b> {</b></p><p><b> string S;</b></p><p> vector<Node2>v;</p><p><b
38、> };</b></p><p> vector<Node>Dic;</p><p> const range =(END1 - START1)*(END2 - START2);//一維數(shù)組范圍</p><p> int array[range];//一維數(shù)組代替哈希表</p><p> void Be
39、gin() //初始化</p><p><b> {</b></p><p> for (int i = 0; i < range; i++)</p><p> array[i]=-1;</p><p><b> }</b></p><p> void Bui
40、ldTree(string s, Node3 *child)</p><p><b> {</b></p><p> int len = s.length();</p><p> string t = s.substr(0,2);</p><p> Node3 *LAST = child;</p>
41、<p> if (child == 0)</p><p> LAST = child = new Node3(t, (len == 2),0,0);</p><p><b> else</b></p><p><b> {</b></p><p> while (LAST->
42、;L != 0)</p><p> LAST = LAST->L;</p><p> if (LAST->S != t)</p><p><b> {</b></p><p> LAST->L = new Node3(t,(len == 2),0, 0);</p><p>
43、; LAST = LAST->L;</p><p><b> }</b></p><p><b> }</b></p><p> if (len > 2)</p><p> BuildTree(s.substr(2,MAXWORDLEN),LAST->R);</p&
44、gt;<p><b> }</b></p><p> void Dictionary() //構(gòu)造整個結(jié)構(gòu)</p><p><b> {</b></p><p><b> Begin();</b></p><p><b> string s;&
45、lt;/b></p><p> int N,k = 0;</p><p> while(fin >> s)</p><p><b> {</b></p><p><b> Node n;</b></p><p> n.S = s.substr(0,
46、2);</p><p> int m1 = ((unsigned char)s[0] - START1)*((unsigned char)s[1] - START2)+(unsigned char)s[0] - START1;</p><p> array[m1] = k++;</p><p> out << s << "
47、" << array[m1] << endl;</p><p><b> fin >> N;</b></p><p> out << N << endl;</p><p> for (int i = 0; i < N; i++)</p><p&
48、gt;<b> {</b></p><p><b> fin >> s;</b></p><p> out << s << endl;</p><p> string t = s.substr(2,2);</p><p> int LEN = s.len
49、gth();</p><p> int SIZE = n.v.size();</p><p> int Len = s.length();</p><p> if (SIZE == 0 ||(SIZE > 0 && n.v[SIZE-1].S != t))</p><p> n.v.push_back(Node2
50、(t, (Len == 4),0));</p><p> SIZE = n.v.size();</p><p> if (Len > 4)</p><p> BuildTree(s.substr(4,MAXWORDLEN),n.v[SIZE-1].Child);</p><p><b> }</b><
51、/p><p> Dic.push_back(n);</p><p><b> }</b></p><p> out << "END Array" << endl << endl;</p><p><b> }</b></p>
52、<p> //------------------查詢部分---------------------</p><p> vector<string>Dest;</p><p> int BinarySearch(int x, string Sec)//二分查找第二個字</p><p><b> {</b></
53、p><p> int L = 0,R = Dic[x].v.size() - 1;</p><p> while (L <= R)</p><p><b> {</b></p><p> int mid = (L + R) >> 1;</p><p> if (Dic[x]
54、.v[mid].S == Sec)</p><p> return mid;</p><p> else if (Dic[x].v[mid].S < Sec)</p><p> L = mid + 1;</p><p> else R = mid - 1;</p><p><b> }&l
55、t;/b></p><p> return -1;</p><p><b> }</b></p><p> Node3* RemainSearch(Node3*p, string cc) //順序查找剩下的字</p><p><b> {</b></p><p&
56、gt; while (p != 0)</p><p><b> {</b></p><p> if (p->S == cc)</p><p><b> return p;</b></p><p><b> else</b></p><p>
57、;<b> p = p->L;</b></p><p><b> }</b></p><p><b> return 0;</b></p><p><b> }</b></p><p> unsigned CharToInt(char c)
58、</p><p><b> {</b></p><p> return unsigned((unsigned char)c) ;</p><p><b> }</b></p><p> bool IsCC(char c)</p><p><b> {<
59、;/b></p><p> unsigned val= CharToInt(c);</p><p> return val >= START1 && val < END1;</p><p><b> }</b></p><p> bool IsEC(char c)</p&g
60、t;<p><b> {</b></p><p> unsigned val= CharToInt(c);</p><p> return val < 0x80;</p><p><b> }</b></p><p> void FindNum(string src,
61、vector<string>&dest, int &StarPos,int &EndPos)</p><p><b> {</b></p><p> int Strlen = src.length();</p><p> while (EndPos < Strlen && !IsC
62、C(src[EndPos]))</p><p><b> {</b></p><p> if(!IsCC(EndPos))</p><p><b> EndPos++;</b></p><p><b> EndPos++;</b></p><p>
63、;<b> }</b></p><p> if (EndPos > StarPos)</p><p><b> {</b></p><p> dest.push_back(src.substr(StarPos,EndPos-StarPos));</p><p> StarPos =
64、EndPos;</p><p><b> }</b></p><p><b> }</b></p><p> void Segment(string src, vector<string>&dest)</p><p><b> {</b></p
65、><p> int StrLen = src.length();</p><p> int StartPos = 0, EndPos;</p><p> while (StartPos < StrLen)</p><p><b> {</b></p><p> EndPos = Sta
66、rtPos;</p><p> FindNum(src,dest,StartPos,EndPos);</p><p> if (StartPos >= StrLen) return ;</p><p> unsigned SegLen = 2;</p><p> string HeadCC = src.substr(StartP
67、os, 2);</p><p> cout <<HeadCC <<endl << endl;</p><p> int m1 = ((unsigned char)HeadCC[0]-START1)*((unsigned char)HeadCC[1]-START2)+(unsigned char)HeadCC[0]-START1;</p>
68、<p> int HeadIndex = array[m1];</p><p> if (HeadIndex >= 0);</p><p><b> {</b></p><p> string SecCC = src.substr(StartPos + 2,2);</p><p> if (S
69、ecCC.length() > 0 && IsCC(SecCC[0]))</p><p><b> {</b></p><p> int B2 = BinarySearch(HeadIndex,SecCC);</p><p> if (B2>=0)</p><p><b>
70、{</b></p><p> if (Dic[HeadIndex].v[B2].IsWord)</p><p> SegLen += 2;</p><p> EndPos = StartPos + 4;</p><p> Node3 *p = Dic[HeadIndex].v[B2].Child;</p>&
71、lt;p> while(EndPos < StrLen && (p = RemainSearch(p,src.substr(EndPos,2)))!= 0)</p><p><b> {</b></p><p> EndPos+= 2;</p><p> if (p->IsWord)</p>
72、<p> SegLen = EndPos - StartPos;</p><p><b> p = p->R;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b&
73、gt;</p><p><b> }</b></p><p> dest.push_back(src.substr(StartPos,SegLen));</p><p> StartPos += SegLen;</p><p><b> }</b></p><p>&
74、lt;b> }</b></p><p> int main()</p><p><b> {</b></p><p> Dictionary();</p><p> ofstream out2("out2.txt");</p><p> // st
75、ring SS ="有時,我會抬頭,看一看這喧囂的人群,有沒有我想見得身影,若是有那身影,或許我會看著她,看她慢慢的融入人群,直到不見。然后我會低下頭,走著我的道。";</p><p> string SS="中華人民萬歲";</p><p> // string SS= "在詞典中對于特定的首字,前兩字相同的詞條很少,前三字相同的詞條
76、更少。當(dāng)我們以這種形式組織詞典后,除子表的第一層外,各個節(jié)點(diǎn)的兄弟數(shù)目都很小,對它們的查找采用順序查找方法較為適宜。" ;</p><p> //string SS = "主要分為兩大模塊:一個建立一棵樹,一個是查詢。建樹有三個層次,第一層是HASH表,第二層是數(shù)組,用于二分查找使用,第三層是二叉樹。查詢分為直接查詢第一層的HASH表,第二層用二分查找(第二層漢子相同的平均概率是26,一般第
77、二字成詞切相同),第三層直接順序查找,以及查找句子中的數(shù)字和漢子標(biāo)點(diǎn)。";</p><p> Segment(SS,Dest);</p><p> int LEN = Dest.size();</p><p> for (int i =0;i <LEN; i++)</p><p> out2 << &quo
78、t; "<< Dest[i] <<endl;</p><p> system("Pause");</p><p><b> return 0;</b></p><p><b> }</b></p><p> //----------
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計---ping程序設(shè)計與實(shí)現(xiàn)
- 程序設(shè)計與算法語言課程設(shè)計
- 課程設(shè)計--unix程序設(shè)計課程設(shè)計
- 程序設(shè)計課程設(shè)計報告
- 程序設(shè)計課程設(shè)計報告
- matlab程序設(shè)計 課程設(shè)計
- web程序設(shè)計課程設(shè)計報告-選課系統(tǒng)的設(shè)計與實(shí)現(xiàn)
- java課程設(shè)計---java程序設(shè)計
- matlab程序設(shè)計 課程設(shè)計 (2)
- 程序設(shè)計課程設(shè)計--鏈表操作
- 《java程序設(shè)計》課程設(shè)計報告
- 【課程設(shè)計】面向?qū)ο蟪绦蛟O(shè)計
- 掃雷課程設(shè)計--掃雷程序設(shè)計
- 課程設(shè)計--linux c 程序設(shè)計
- 面向?qū)ο蟪绦蛟O(shè)計課程設(shè)計
- 課程設(shè)計--約瑟夫環(huán)程序設(shè)計
- 程序設(shè)計基礎(chǔ)課程設(shè)計
- c語言程序設(shè)計課程設(shè)計
- web程序設(shè)計課程設(shè)計報告
- 面向?qū)ο蟪绦蛟O(shè)計課程設(shè)計
評論
0/150
提交評論