摘要:文章以題庫管理系統(tǒng)的開發(fā)為例,詳細(xì)介紹了B/S三層架構(gòu)中樹型結(jié)構(gòu)的設(shè)計(jì)和實(shí)現(xiàn)方式。提出了一種在瀏覽器中構(gòu)建動(dòng)態(tài)樹型結(jié)構(gòu)的解決方案,即使用TrceView控件、數(shù)據(jù)庫和遞歸算法來實(shí)現(xiàn)動(dòng)態(tài)樹型結(jié)構(gòu),靈活方便地管理題庫。最后重點(diǎn)介紹了遞歸算法、樹結(jié)點(diǎn)定位展開等的程序?qū)崿F(xiàn)。
關(guān)鍵詞:樹型結(jié)構(gòu);題庫系統(tǒng);TrceView控件;遞歸算法
0 引言
在數(shù)據(jù)結(jié)構(gòu)中,樹型結(jié)構(gòu)是一種非常重要的非線性結(jié)構(gòu),具有結(jié)構(gòu)清楚,層次分明,操作方便等優(yōu)點(diǎn),因此在系統(tǒng)開發(fā)中的應(yīng)用非常廣泛,如:Windows的資源管理器,數(shù)據(jù)庫中的索引等。但是在瀏覽器中實(shí)現(xiàn)動(dòng)態(tài)樹型結(jié)構(gòu)存在一些難點(diǎn),本文以基于Web的題庫管理系統(tǒng)開發(fā)為例介紹了動(dòng)態(tài)樹型結(jié)構(gòu)的實(shí)現(xiàn)方式。該系統(tǒng)充分利用了樹型結(jié)構(gòu)的優(yōu)點(diǎn)來進(jìn)行題目的多級(jí)管理。
1 題庫系統(tǒng)的結(jié)構(gòu)分析
在進(jìn)行題庫管理系統(tǒng)開發(fā)時(shí),首先要對(duì)題庫的結(jié)構(gòu)進(jìn)行研究和設(shè)計(jì)。一般而言,在對(duì)課程組織題庫時(shí),人們是按照比較熟悉的課程架構(gòu),即:課程、章、節(jié)三級(jí)結(jié)構(gòu)來組成每個(gè)題目的,每一級(jí)構(gòu)成一個(gè)結(jié)點(diǎn)。為了使題庫中的每個(gè)題目都比較科學(xué)合理,學(xué)校需要專門組織一個(gè)課程專家組,先對(duì)課程的整個(gè)框架和每個(gè)知識(shí)點(diǎn)進(jìn)行確定和劃分,把知識(shí)點(diǎn)一一羅列出來,并對(duì)應(yīng)于相應(yīng)的章節(jié)。
在課程結(jié)構(gòu)和知識(shí)點(diǎn)確定之后,再對(duì)題目進(jìn)行組織。一般來說,一個(gè)題目可以對(duì)應(yīng)單個(gè)知識(shí)點(diǎn),也可以對(duì)應(yīng)章節(jié)、甚至整門課程的多個(gè)知識(shí)點(diǎn)。題目與知識(shí)點(diǎn)、結(jié)點(diǎn)(課程、章、節(jié)三者的統(tǒng)稱)以及整個(gè)三級(jí)結(jié)構(gòu)的關(guān)系如圖1所示。
由圖1可知,對(duì)題目的組織和管理可以基于課程的知識(shí)點(diǎn)來進(jìn)行,這樣便于統(tǒng)一操作,方便管理。一般來說每門課程都包含很多章,每章都會(huì)分成若干節(jié),每節(jié)中又有多個(gè)知識(shí)點(diǎn)。每道題目或多或少都會(huì)涉及到幾個(gè)知識(shí)點(diǎn)。但由于知識(shí)點(diǎn)分布的不同,題目歸屬的方式就有所不同,不同題目可能放入不同的結(jié)點(diǎn)中,其形狀就是一個(gè)典型的樹型結(jié)構(gòu),如圖2所示。
在創(chuàng)建題庫系統(tǒng)中,要首先構(gòu)建如圖2的一個(gè)樹型結(jié)構(gòu),然后教師就可以靈活組織與操作樹中對(duì)應(yīng)的結(jié)點(diǎn),并把題目放到相關(guān)的結(jié)點(diǎn)中。借助這個(gè)樹型結(jié)構(gòu),教師對(duì)題目的管理就非常方便了。
注:“本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文”