網(wǎng)絡(luò)工程畢業(yè)論文基于移動互聯(lián)網(wǎng)的手機院務(wù)管理系統(tǒng)_第1頁
已閱讀1頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  本科畢業(yè)論文</b></p><p><b> ?。?0 屆)</b></p><p>  基于移動互聯(lián)網(wǎng)的手機院務(wù)管理系統(tǒng)</p><p>  所在學(xué)院 </p><p>  專業(yè)班級 網(wǎng)絡(luò)工

2、程 </p><p>  學(xué)生姓名 學(xué)號 </p><p>  指導(dǎo)教師 職稱 </p><p>  完成日期 年 月 </p><p>  基于移動互聯(lián)網(wǎng)的手機院務(wù)管理系統(tǒng)

3、 </p><p>  摘 要:微信是一款融合了社交、通訊等多種功能于一體的移動軟件,并且它在各大群體中都廣受歡迎,相比于其他的移動開發(fā),它不需要考慮不同操作系統(tǒng)之間的差異。鑒于這樣的優(yōu)勢,使得我們選擇基于微信的手機院務(wù)管理系統(tǒng)有了依據(jù)。通過查詢已有文獻(xiàn),證明了使用微信客戶端實現(xiàn)手機院務(wù)管理的可行性以及好處。緊接著,通過Java語言完成了基于微信的手機院務(wù)管理系統(tǒng)的開發(fā)并對系統(tǒng)的設(shè)計和實現(xiàn)進(jìn)行了介紹。

4、之后,我們又對原系統(tǒng)進(jìn)行架構(gòu)分析,發(fā)現(xiàn)該系統(tǒng)層與層之間依賴性高、耦合性大、系統(tǒng)安全性低,因此又進(jìn)行了架構(gòu)的調(diào)整以及性能的優(yōu)化。最后,我們對優(yōu)化后系統(tǒng)中的各個大子系統(tǒng)進(jìn)行了功能的測試,對于其中之一的子系統(tǒng)——推薦子系統(tǒng),我們以模擬實驗的方式做了推薦結(jié)果的展示以及誤差的分析。</p><p>  關(guān)鍵詞:Java三大框架、微信公眾平臺、推薦系統(tǒng)、協(xié)同過濾推薦</p><p>  Design

5、and Implementation of an Online College Work Processing System Based on Mobile Internet </p><p>  Abstract: WeChat is a mobile application software platform which contains the communication

6、,social contact and other functions. It is widely used in most of people,especially in college students. And it doesn’t need to consider the difference between different operation systems.Based on these features,We decid

7、e to choose the WeChat to develop our system.The steps we develop our system as follows.Firstly,we review lots of papers and books to prove using WeChat to develop our system is feasibili</p><p>  Keywords:

8、 S2SH; WeChat public platform; Recommend System; Collaborative Filtering</p><p><b>  目錄</b></p><p><b>  目錄4</b></p><p><b>  1. 緒論6</b></p&

9、gt;<p>  1.1. 問題背景及意義6</p><p>  1.2. 選擇微信開發(fā)的原因及其現(xiàn)狀7</p><p>  1.3. 所做的工作7</p><p>  2. 相關(guān)理論及其技術(shù)9</p><p>  2.1. 微信公眾平臺開發(fā)9</p><p>  2.1.1. 微信公眾平臺簡介

10、9</p><p>  2.1.2. 微信開發(fā)模式介紹9</p><p>  2.2. 服務(wù)器開發(fā)技術(shù)10</p><p>  2.2.1. 傳統(tǒng)的MVC開發(fā)模式10</p><p>  2.2.2. SSH框架的介紹11</p><p>  2.3. 數(shù)據(jù)庫開發(fā)技術(shù)12</p><p&

11、gt;  2.3.1. 數(shù)據(jù)庫的選擇12</p><p>  2.3.2. 如何連接數(shù)據(jù)庫12</p><p>  2.4. 推薦系統(tǒng)技術(shù)13</p><p>  2.4.1. 推薦系統(tǒng)理論介紹13</p><p>  2.4.2. 基于用戶的協(xié)同過濾推薦(User-Based)13</p><p>  2.

12、4.3. 基于物品的協(xié)同過濾推薦(Item-Based)14</p><p>  3. 院務(wù)管理系統(tǒng)總體架構(gòu)設(shè)計與實現(xiàn)15</p><p>  3.1. 院務(wù)管理系統(tǒng)結(jié)構(gòu)簡介15</p><p>  3.2. 教師課程后臺管理子系統(tǒng)16</p><p>  3.2.1. 子系統(tǒng)模塊功能介紹16</p><p>

13、;  3.2.2. 實現(xiàn)策略以及功能框圖17</p><p>  3.3. 學(xué)生課程子系統(tǒng)17</p><p>  3.3.1. 子系統(tǒng)模塊功能介紹18</p><p>  3.3.2. 實現(xiàn)策略以及功能框圖19</p><p>  3.4. 教師事務(wù)管理子系統(tǒng)19</p><p>  3.4.1. 子系統(tǒng)功

14、能與使用介紹20</p><p>  3.5. 習(xí)題推薦子系統(tǒng)20</p><p>  3.5.1. 子系統(tǒng)功能介紹20</p><p>  3.5.2. 構(gòu)造帶標(biāo)簽的習(xí)題滿意度數(shù)據(jù)20</p><p>  3.5.3. 子系統(tǒng)實現(xiàn)策略20</p><p>  4. 院務(wù)管理系統(tǒng)的架構(gòu)優(yōu)化21</p&

15、gt;<p>  4.1. 系統(tǒng)原架構(gòu)簡介21</p><p>  4.2. 原系統(tǒng)問題描述22</p><p>  4.3. 使用S2SH進(jìn)行原系統(tǒng)優(yōu)化22</p><p>  4.3.1. 使用S2SH前的準(zhǔn)備工作22</p><p>  4.3.2. 使用Structs替換Servlet23</p>

16、<p>  4.3.3. 使用Spring進(jìn)行事務(wù)管理24</p><p>  4.3.4. 使用Hibernate進(jìn)行數(shù)據(jù)庫操作25</p><p>  4.4. 使用S2SH改進(jìn)后的系統(tǒng)架構(gòu)對比27</p><p>  5. 院務(wù)管理系統(tǒng)的功能測試與分析28</p><p>  5.1. 教師課程后臺管理子系統(tǒng)測試2

17、8</p><p>  5.2. 學(xué)生課程子系統(tǒng)測試31</p><p>  5.3. 教師事務(wù)管理子系統(tǒng)34</p><p>  5.4. 習(xí)題推薦子系統(tǒng)測試34</p><p>  5.4.1. 測試數(shù)據(jù)集的選?。常?lt;/p><p>  5.4.2. 推薦結(jié)果展示以及誤差分析35</p>&

18、lt;p>  6. 總結(jié)與展望37</p><p>  6.1. 工作總結(jié)37</p><p>  6.2. 未來展望37</p><p><b>  致謝39</b></p><p><b>  主要參考文獻(xiàn)40</b></p><p><b> 

19、 緒論</b></p><p>  本章節(jié)主要介紹了研究問題的背景、微信公眾平臺的現(xiàn)狀以及本課題所做的一些工作,為后續(xù)的論述提供了較好的背景支持。</p><p><b>  問題背景及意義</b></p><p>  近幾年,隨著智能手機的發(fā)展,人們對于手機的利用率大大增加了,智能手機也隨著這樣一股發(fā)展的熱潮變得越來越廉價?,F(xiàn)如今

20、,智能手機的使用者早已遍布全世界。人們可以在智能手機上進(jìn)行娛樂,同時也可以進(jìn)行辦公。</p><p>  針對傳統(tǒng)的教育工作者們,人們使用紙質(zhì)的文檔進(jìn)行一些簡單的教務(wù)管理,這樣的方式雖然能滿足一些簡單的教務(wù)管理需求,但仍然存在著不少的弊端:1.大量使用紙質(zhì)文檔進(jìn)行紀(jì)錄勢必會造成資源的嚴(yán)重浪費;2.繁瑣的方式造成管理者時間和精力的浪費3.人為的手寫管理方式勢必會存在著較多的錯誤[1]。</p><

21、;p>  隨著互聯(lián)網(wǎng)的發(fā)展,人們逐漸地意識到傳統(tǒng)的教務(wù)管理方式存在著十分大的弊端,因此可以采用網(wǎng)上進(jìn)行管理的方式,教育工作者可以通過PC連接互聯(lián)網(wǎng),登入相應(yīng)的管理網(wǎng)頁進(jìn)行管理,在當(dāng)時看來,這樣的方式相比于傳統(tǒng)紙質(zhì)文檔的管理又有著許多的優(yōu)勢:1.網(wǎng)上教務(wù)管理方式可以有效的減少紙質(zhì)資源的使用;2.有效的減少錯誤率;3.節(jié)省管理者的時間與精力,管理更加正規(guī)化。其劣勢也比較的明顯:1.管理比較的笨重,需要PC登入相關(guān)網(wǎng)站進(jìn)行管理。2.無法

22、利用零散的時間進(jìn)行教務(wù)的管理[2]。</p><p>  隨著智能手機的普及,移動互聯(lián)網(wǎng)的出現(xiàn),上述的教務(wù)管理方式缺陷有了解決的可能,針對移動互聯(lián)網(wǎng)輕便的特點,我們考慮將傳統(tǒng)的教務(wù)管理方式同步至移動互聯(lián)網(wǎng)端,這樣的教務(wù)管理方式具有以下的優(yōu)勢:1.教務(wù)管理更加“輕便”,隨時隨地進(jìn)行教務(wù)的管理;2.管理錯誤率低。3.能有效的減少紙質(zhì)資源的消耗。 </p><p>  基于移動互聯(lián)網(wǎng)的院務(wù)管理系

23、統(tǒng)的研發(fā),對于學(xué)生、老師以及學(xué)院的管理均有很大的益處:</p><p>  1.對于學(xué)生:在大學(xué)里,學(xué)生除了上課很難在平時與老師進(jìn)行交流,通過院務(wù)管理系統(tǒng),學(xué)生可以很放方便的找到每門科目的老師并且進(jìn)行提問、學(xué)習(xí);每年到了記錄綜測分的時候都會很混亂,記不得自己過去一年做過什么,分不清哪些事情可以得到綜測分等等情況時有發(fā)生。通過我們的軟件,學(xué)生可以在實踐活動(競賽,項目等)結(jié)束時,以圖片的形式記錄到我們的服務(wù)器中,由

24、管理員審核后記錄綜測分,整個過程公正透明,便捷高效。此外學(xué)生還可以記錄日常生活中發(fā)生的事,在數(shù)據(jù)庫中記錄,在學(xué)生有需要的時候,以成長記錄的形式返回。</p><p>  2.對于老師:通過課堂教學(xué)管理,不僅僅是管理學(xué)生的方面更加省力了,老師們也可以提交記錄信息,我們的軟件可以讓教師很方便地自行上傳各類資料包括文件提供學(xué)生下載,學(xué)院的教學(xué)質(zhì)量評價、教學(xué)業(yè)績考核、崗位績效成果計算都盡可能地通過老師提交的記錄自動化地進(jìn)

25、行處理得到。此外還有教師的會議,包括會議前的通知,會議時的簽到以及會議資料的下載,都可以通過軟件完成。</p><p>  3.對于學(xué)院:院務(wù)管理系統(tǒng)會使得整個學(xué)院聯(lián)系更加緊密,信息傳達(dá)更加便捷到位,學(xué)院對老師和學(xué)生的管理更加系統(tǒng)化,所有的信息都會被存儲。學(xué)院也能更多的了解到師生的動態(tài),在某段時間完成了某些事情,并且可以通過推送師生參賽獲獎信息來成為其他師生的榜樣。使得各類考評更加公正透明,師生的參與度都更高。使

26、“智慧學(xué)院”理念得到實踐支撐。</p><p>  選擇微信開發(fā)的原因及其現(xiàn)狀</p><p>  在手機移動端,我們選擇微信(WeChat)作為我們的開發(fā)平臺,有資料顯示,微信每個月的活躍用戶在5.5億以上,用戶的群體覆蓋了200多個國家,微信公眾號總數(shù)超過1000萬個,在中國,微信已經(jīng)覆蓋了90%以上的智能手機,幾乎可以說,微信存在于每一個智能手機上(這點在學(xué)生群體中尤其顯著),因此微

27、信已不僅僅是一個充滿創(chuàng)新功能的手機應(yīng)用,它已成為了一個移動社交的平臺。數(shù)量極大的使用群體是我們選擇微信進(jìn)行二次開發(fā)的一個原因,此外,我們采用微信公眾平臺作為客戶端另一個原因就是可以通過微信來適應(yīng)不同的操作系統(tǒng)。這一點在如今的軟件開發(fā)中非常的重要,因為在中國安卓和IOS的用戶群體都非常龐大,如果不想投入大量的人力物力去開發(fā)雙版本的話,使用第三方接口來適應(yīng)操作系統(tǒng)無疑是最科學(xué)的做法,省時省力且效果顯著。</p><p&g

28、t;<b>  所做的工作</b></p><p>  前期,首先通過閱讀文獻(xiàn)資料對當(dāng)前微信開發(fā)的現(xiàn)狀以及用戶群體進(jìn)行了一番了解,以此來確定以微信來進(jìn)行二次開發(fā)的可行性。中期,主要以開發(fā)為主,整個系統(tǒng)可以分為三大子系統(tǒng),教師后臺事務(wù)管理子系統(tǒng)、學(xué)生課程子系統(tǒng)、教師教務(wù)管理子系統(tǒng),編碼初期主要使用了MVC模式進(jìn)行開發(fā),并未使用框架,這也造成了一定的問題,比如后續(xù)維護(hù)會顯得麻煩、代碼量會更大等等

29、。后期,又對原有的系統(tǒng)進(jìn)行重構(gòu),使用S2SH框架進(jìn)行架構(gòu)的改進(jìn),使得系統(tǒng)代碼的可讀性更好、可維護(hù)性更強以及性能更優(yōu)。最后,針對學(xué)生課程子系統(tǒng),引入推薦系統(tǒng)的概念,目的是使得學(xué)生的課程習(xí)題訓(xùn)練更加的具有針對性,每個人都能有一套個性化的定制習(xí)題。</p><p><b>  相關(guān)理論及其技術(shù)</b></p><p>  本章著重對于院務(wù)管理系統(tǒng)開發(fā)中所涉及到的相關(guān)理論和技

30、術(shù)進(jìn)行描述和講解,包含了微信公眾平臺開發(fā)的介紹、服務(wù)器開發(fā)技術(shù)介紹、數(shù)據(jù)庫開發(fā)技術(shù)以及推薦系統(tǒng)的一些概念和技術(shù)介紹。</p><p><b>  微信公眾平臺開發(fā)</b></p><p>  本節(jié)主要介紹了微信平臺的定義以及其開發(fā)模式,為后續(xù)的微信開發(fā)提供更好的理論基礎(chǔ)鋪墊。</p><p><b>  微信公眾平臺簡介</b&

31、gt;</p><p>  微信公眾平臺是騰訊公司近幾年推出的一類具有特殊功能的平臺,它可以為運營者很好的提供便利,使得運營者可以為微信用戶提供服務(wù)和咨詢。因為其使用的便利性以及微信的高安裝率,使得微信公眾平臺被廣泛地運用于教育、商業(yè)、醫(yī)學(xué)、金融等各種不同的領(lǐng)域中,擁有著極大的使用人群,且具有較大的發(fā)展空間。</p><p><b>  微信開發(fā)模式介紹 </b>&l

32、t;/p><p>  微信的開發(fā)模式個人認(rèn)為應(yīng)該是屬于CSS的結(jié)構(gòu)開發(fā),與傳統(tǒng)的CS結(jié)構(gòu)開發(fā)有所不同的是微信本身就具有它自身的服務(wù)器,在開發(fā)過程中,需要我們自己的服務(wù)器與微信的服務(wù)器進(jìn)行對接,而不是考慮我們自己的服務(wù)器和微信客戶端的交互。在微信開發(fā)者平臺,需要填寫自己的服務(wù)器地址,微信服務(wù)器會在與我們的服務(wù)器真正交互前,根據(jù)這個地址進(jìn)行token的驗證,驗證通過后再進(jìn)行交互。微信一共共享了8類接口,根據(jù)微信客戶端不同

33、的操作,微信客戶端會發(fā)送不同的需求指令至微信服務(wù)器,微信服務(wù)器再轉(zhuǎn)發(fā)至我們自己的服務(wù)器中,然后由我們進(jìn)行具體的處理,最后按照微信信息交互的格式要求返回給微信服務(wù)器,從而再回饋給微信客戶端,以此來完成一次微信客戶端的操作反饋[3]。如圖 1 微信交互圖所示:</p><p>  圖 1 微信交互圖 </p><p><b>  服務(wù)器開發(fā)技術(shù)<

34、/b></p><p>  本節(jié)主要介紹了服務(wù)器開發(fā)中傳統(tǒng)的MVC開發(fā)技術(shù)和使用S2SH框架來實現(xiàn)MVC開發(fā),兩者均能較好的完成服務(wù)器開發(fā)的任務(wù),但相比之下,后者可維護(hù)性更好、安全性更高,具體的介紹如下。</p><p>  傳統(tǒng)的MVC開發(fā)模式</p><p>  MVC開發(fā)模式代表Model、View和Control層,即模型層、視圖層以及控制層,MVC開

35、發(fā)模式的核心思想是各層之間互不干擾,是一種分層的思想,使得業(yè)務(wù)、邏輯和視圖之間相互的分離,是軟件工程分工合作思想的一種體現(xiàn)?;贛VC模式的項目開發(fā),可以使得團(tuán)隊中各成員的開發(fā)互不影響,能有效的提升團(tuán)隊軟件開發(fā)的效率。其中,模型層用來封裝功能的實現(xiàn),它往往需要實現(xiàn)應(yīng)用的主要功能并進(jìn)行封裝,例如數(shù)據(jù)的存儲功能封裝(數(shù)據(jù)庫操作);視圖層則是將模型層實現(xiàn)的功能做一個展示,使得用戶能夠直觀的看到,同樣的,用戶直接操作的也是視圖層,可以說視圖層是

36、展示的一層,是離用戶最近的一層。最后是控制器層,它主要用來控制應(yīng)用主要的流程和處理視圖層傳遞過來的請求,將其傳遞給模型層的相應(yīng)模型。三層之間相互協(xié)作,構(gòu)成了我們整個的系統(tǒng)。圖 2 MVC模式交互圖展示了三層之間協(xié)作的流程:</p><p>  圖 2 MVC模式交互圖</p><p>  SSH框架的介紹 </p><p>  SSH是Spring+Structs

37、+Hibernate的簡稱,Spring、Structs和Hibernate是時下非常流行的開源性質(zhì)的框架,框架的提出源于解決當(dāng)下web程序開發(fā)所面臨的問題,該框架針對此問題提出了一種web應(yīng)用開發(fā)的輕量級解決方案。在實際的開發(fā)中,因為SSH框架本身是一種基于MVC模式的框架,所以實現(xiàn)了它自然就是基于MVC在進(jìn)行軟件開發(fā),十分便于團(tuán)隊合作,所以使用人群非常多,廣受歡迎[4]。下面我們依次進(jìn)行介紹:</p><p>

38、;  Structs2是一種基于MVC設(shè)計模式的框架,它使用控制器(FilterDispatcher)接收用戶提交的請求,根據(jù)用戶提交的URL和structs.xml配置文件,來選擇合適的action 進(jìn)行處理,在這里action就作為控制層,最后,根據(jù)處理返回的結(jié)果,呈現(xiàn)不同的結(jié)果(即視圖層,常進(jìn)行頁面跳轉(zhuǎn))。</p><p>  Spring介于Structs2和Hibernate之間,充當(dāng)了管理容器的一個角

39、色。Spring的一項核心功能是控制反轉(zhuǎn)(IOC),它的存在使得Structs(action對象)和業(yè)務(wù)邏輯層(service)依賴性大大減弱,大大減小了層與層之間的依賴性,減少了耦合[5]。更深層次的,若沒有Spring的IOC功能,action對象會高度依賴于邏輯業(yè)務(wù)層(service)的對象,而dao層對象又會高度依賴于service層對象,這就使得層與層之間高度依賴,且對象會高度重復(fù),既使得程序變得復(fù)雜,又會使效率大大降低。而有

40、了Spring,Spring會自動進(jìn)行對象的實例化,能有效減少對象的創(chuàng)建,它可以有效管理這類實例化頻繁的操作,所有對象的創(chuàng)建和管理回收均依賴于Spring,不需要人為創(chuàng)建,因此可以不依賴于上下層,實現(xiàn)了層與層之間的解偶,且減少了代碼量。</p><p>  Hibernate是一個對JDBC操作進(jìn)行了非常輕量級的對象封裝的一個框架,它的初衷是使得人們可以使用面向?qū)ο蟮木幊趟枷雭聿僮鲾?shù)據(jù)庫[6]。傳統(tǒng)的數(shù)據(jù)庫操作語

41、句是十分繁瑣的,需要人們大量拼接SQL語句來操作數(shù)據(jù)庫,然而,使用Hibernate可以有效減少SQL的拼接,用其封裝的方法來操作數(shù)據(jù)庫,能有效減少代碼量,提高效率。</p><p><b>  數(shù)據(jù)庫開發(fā)技術(shù)</b></p><p>  本節(jié)主要討論了MySQL數(shù)據(jù)庫的一些列優(yōu)勢,鑒于其優(yōu)勢,我們選取MySQL數(shù)據(jù)庫作為我們系統(tǒng)數(shù)據(jù)庫,另外,也對MySQL數(shù)據(jù)庫的連

42、接操作進(jìn)行了步驟說明。</p><p><b>  數(shù)據(jù)庫的選擇</b></p><p>  在這里,我們選用MySQL數(shù)據(jù)庫作為我們系統(tǒng)的數(shù)據(jù)庫,選用MySQL數(shù)據(jù)庫處于多點的考慮,原因如下:</p><p>  1.MySQL數(shù)據(jù)庫體積小,運行速度快,且支持開源。</p><p>  2.對操作系統(tǒng)的支持性好,支持多

43、種操作系統(tǒng),這一點比SQLServer強太多,后者只支持Windows操作系統(tǒng),為后面系統(tǒng)服務(wù)器在不同操作系統(tǒng)上的移植提供了很好的支持。</p><p>  3.穩(wěn)定性高,MySQL數(shù)據(jù)庫擁有一個非常快速且穩(wěn)定的基于線程的內(nèi)存分配系統(tǒng)。</p><p>  基于以上的優(yōu)勢,我們選擇MySQL數(shù)據(jù)庫進(jìn)行開發(fā)。 </p><p><b>  如何連接數(shù)據(jù)庫

44、</b></p><p>  這里我們主要討論對于MySQL數(shù)據(jù)庫的連接,使用JDBC來進(jìn)行連接,連接步驟如下:</p><p> ?。?)構(gòu)造連接的URL。</p><p>  (2)動態(tài)加載MySQL驅(qū)動。</p><p>  (3) 得到MySQL數(shù)據(jù)庫的一個Connection。</p><p> 

45、 利用Connection得到statement對象。</p><p>  (5)使用statement中封裝的數(shù)據(jù)庫方法對MySQL數(shù)據(jù)庫進(jìn)行操作。</p><p><b>  推薦系統(tǒng)技術(shù)</b></p><p>  本章節(jié)首先介紹了推薦系統(tǒng)的理論概念,接著引入了推薦系統(tǒng)的評價指標(biāo),即一個好的推薦系統(tǒng)應(yīng)如何去評價,接著又介紹了推薦系統(tǒng)的兩個

46、經(jīng)典的基于鄰域的推薦算法。</p><p><b>  推薦系統(tǒng)理論介紹</b></p><p>  推薦系統(tǒng)指基于用戶當(dāng)前行為預(yù)測用戶感興趣事物的一類系統(tǒng)[7]?,F(xiàn)如今,隨著移動互聯(lián)網(wǎng)的大力發(fā)展,用戶上網(wǎng)時間的大量增多,使得可挖掘數(shù)據(jù)也大量增加,面對如此大量的網(wǎng)絡(luò)數(shù)據(jù),推薦系統(tǒng)行業(yè)應(yīng)運而生。各大互聯(lián)網(wǎng)公司,如阿里巴巴、騰訊以及其他互聯(lián)網(wǎng)公司在其龐大的業(yè)務(wù)數(shù)據(jù)背后,需

47、要有推薦系統(tǒng)對數(shù)據(jù)進(jìn)行挖掘分析,以此來最大化用戶的購買力,當(dāng)然,推薦系統(tǒng)最初還是起源于學(xué)術(shù)界,后因其出色的推薦效果而被廣泛應(yīng)用于工業(yè)界。</p><p>  如何去評價一個推薦系統(tǒng)的好壞呢?一般性的我們會使用兩個指標(biāo)來進(jìn)行評價,召回率(Recall)和準(zhǔn)確率(Precision),計算公式如下:</p><p>  其中R(u)為向用戶u推薦的K個物品列表,T(u)為用戶在測試集上喜歡的物

48、品集合[8]。</p><p>  基于用戶的協(xié)同過濾推薦(User-Based)</p><p>  基于用戶的協(xié)同過濾推薦是一類典型的推薦算法,它因其卓越的推薦效果以及簡而易懂的方式而受到廣泛的認(rèn)可,目前也被廣泛運用于各類推薦中(當(dāng)然很多實際運用的算法是基于此算法進(jìn)行改進(jìn)的)。那么應(yīng)該如何構(gòu)造一個基于用戶的協(xié)同過濾推薦算法呢?分為以下的幾步:</p><p> 

49、?。?)找到和目標(biāo)用戶相似度最高的K個用戶;</p><p> ?。?)找到這K個用戶中,目標(biāo)用戶最喜歡的事物推薦給目標(biāo)用戶;</p><p>  對于步驟(1),我們主要涉及到一個用戶相似度的計算,我們定義用戶相似度的計算如下:Wab = (U(a)∩U(b))/(U(a)U(b));其中Wab為用戶a、b的相似度,U(a)、U(b)分別指用戶a、b購買過的物品,即相似度等于用戶a于b購

50、買過物品的交集除以其并集。</p><p>  步驟(2)中,我們定義目標(biāo)用戶u對于物品i的感興趣程度的計算公式為:</p><p>  其中P(u,i)為目標(biāo)用戶u對于物品i的感興趣程度,S(u,k)表示和u最相似的k個用戶的集合,N(i)是對物品i有過行為的用戶集合[8]。</p><p>  因此p(u,i)的評分高低由與他最相似的K個用戶的喜好來決定,最終按

51、評分的高低對推薦的物品進(jìn)行排列,選取推薦評分最高的N個物品進(jìn)行推薦。</p><p>  基于物品的協(xié)同過濾推薦(Item-Based)</p><p>  基于物品的協(xié)同過濾推薦算法大體與基于用戶的協(xié)同過濾推薦相類似,都是領(lǐng)域推薦算法,與上述不同的是,給予物品的協(xié)同過濾推薦是通過找到用戶喜歡的物品的相似物品來進(jìn)行推薦得,具體步驟如下:</p><p>  (1)計

52、算物品之間的相似度。</p><p> ?。?)根據(jù)物品的相似度給用戶進(jìn)行TopN推薦。</p><p>  院務(wù)管理系統(tǒng)總體架構(gòu)設(shè)計與實現(xiàn)</p><p>  本章描述了完整的院務(wù)管理系統(tǒng)的組成結(jié)構(gòu),可分為4大子系統(tǒng),分別對每一個子系統(tǒng)進(jìn)行模塊功能介紹以及模塊結(jié)構(gòu)繪圖,以此來清晰的展示每一個子系統(tǒng)的功能以及結(jié)構(gòu)組成。</p><p>  院

53、務(wù)管理系統(tǒng)結(jié)構(gòu)簡介</p><p>  圖 3 院務(wù)管理系統(tǒng)結(jié)構(gòu)圖</p><p>  如圖 3,基于移動互聯(lián)網(wǎng)的手機院務(wù)管理系統(tǒng)可分為四大子系統(tǒng),他們分別是教師后臺課程管理子系統(tǒng)、學(xué)生課程子系統(tǒng)、教師教務(wù)處理子系統(tǒng)以及習(xí)題推薦子系統(tǒng),教師后臺課程管理子系統(tǒng)面向?qū)ο鬄榻處?,主要基于BS結(jié)構(gòu)開發(fā),它分為網(wǎng)頁展示的前端以及服務(wù)器端相應(yīng)的模塊,主要功能為教師課程日常處理,將學(xué)生課程信息通過網(wǎng)頁形

54、式可視化,方便課程的管理。學(xué)生課程子系統(tǒng)面向?qū)ο鬄閷W(xué)生,主要分為微信客戶端以及服務(wù)器端的相應(yīng)模塊,學(xué)生可在微信客戶端進(jìn)行課程的相應(yīng)操作,能更好地促進(jìn)學(xué)生對于課程的學(xué)習(xí)。教師事務(wù)管理子系統(tǒng)則針對學(xué)院事務(wù)進(jìn)行開發(fā),分為微信客戶端以及服務(wù)器相應(yīng)模塊,后續(xù)將在微信客戶端加載網(wǎng)頁的形式進(jìn)行院務(wù)管理。習(xí)題推薦子系統(tǒng)基于用戶的協(xié)同過濾算法進(jìn)行推薦,為學(xué)生提供個性化的習(xí)題推薦服務(wù)。</p><p>  教師課程后臺管理子系統(tǒng)&l

55、t;/p><p>  本節(jié)將對教師課程后臺子系統(tǒng)進(jìn)行全面完整的介紹,分別對其每一個功能模塊進(jìn)行完整的描述,接著又對其實現(xiàn)策略進(jìn)行了描述,最后為了更加直觀的展現(xiàn)此系統(tǒng)的功能結(jié)構(gòu),我們又繪制了功能模塊框圖。</p><p><b>  子系統(tǒng)模塊功能介紹</b></p><p>  教師后臺課程管理子系統(tǒng)主要有以下幾大模塊:學(xué)生管理模塊、試題管理模塊、

56、成績管理模塊以及日常管理模塊。其基本涵蓋了教師日常對課程以及學(xué)生的管理的日常需求,大大減少了教師因為課程管理而帶來的額外的課程量。接下來,我將依次詳細(xì)的介紹每一個模塊:</p><p>  學(xué)生管理模塊:該模塊詳細(xì)的記錄了關(guān)注此公眾號的學(xué)生信息,即上課學(xué)生的信息,在此模塊中我們可以清晰地看到上課學(xué)生的姓名、學(xué)號、加入課程時間,甚至于是微信號,相比于傳統(tǒng)的使用紙質(zhì)文檔來記錄學(xué)生姓名的方式,此方法節(jié)省了大量的人力以及

57、資源,是一種省時省力高效率的方法,理應(yīng)得到更好的推廣,教師可通過此模塊更好的了解上課學(xué)生的基本信息。</p><p>  試題管理模塊:此模塊著重對課程習(xí)題進(jìn)行管理,在此界面下,教師可對相應(yīng)課程的習(xí)題進(jìn)行修改、刪除以及增加,習(xí)題的管理采用套題的方式,使得習(xí)題可以分別對應(yīng)不同章節(jié)的內(nèi)容,讓學(xué)生的選擇更加的具有針對性,例外,此模塊與學(xué)生日常平時分密切相關(guān),每道習(xí)題代表1分,每做對一題,則相應(yīng)地得到一分,學(xué)期結(jié)束后再進(jìn)

58、行平時分的換算(按相應(yīng)比例換算),因此試題管理模塊需要保證試題庫的高質(zhì)量,且有著科學(xué)合理的題量。</p><p>  成績管理模塊:此模塊是上述試題管理模塊的延續(xù),它記錄著每一個學(xué)生的答題成績,教師可在期末結(jié)束時,針對此進(jìn)行學(xué)生該門課成績的換算,以此來作為學(xué)生的平時分或是最終成績。成績管理模塊很好的充當(dāng)了一個閱卷者以及成績記錄者的角色,大大減少了任課教師閱卷、登記成績的時間花費,是一種低成本、高回報、高效率的成績

59、管理方式。</p><p>  日常管理模塊:此模塊屬于學(xué)生與教師的通信模塊,學(xué)生可在微信客戶端進(jìn)行提問以及請假,提問以及請假內(nèi)容可在此頁面顯示,另外,教師可實時的編輯上課地點、作業(yè)內(nèi)容,另外,也可以編輯課程通知以及上傳課程附件,學(xué)生可在微信客戶端獲取教師實時編輯的內(nèi)容以及下載課程附件,此模塊包含了學(xué)生與教師課程互動的大多數(shù)內(nèi)容,為教師的授課與學(xué)生的課程學(xué)習(xí)均提供了極大地便利。</p><p&

60、gt;  實現(xiàn)策略以及功能框圖</p><p>  圖 4 教師課程后臺管理子系統(tǒng)結(jié)構(gòu)圖</p><p>  圖 4描述了教師后臺課程管理子系統(tǒng)的功能模塊結(jié)構(gòu)。</p><p>  在系統(tǒng)的實現(xiàn)上,我們未使用現(xiàn)有的任何MVC框架,而是選擇了servlet加JSP的組合,當(dāng)然開發(fā)嚴(yán)格按照MVC模式,選擇這樣的組合和開發(fā)模式出于以下幾點的考慮:1.系統(tǒng)規(guī)模并不大,ser

61、vlet加JSP的組合能很好的解決現(xiàn)有的問題。2.基于MVC的開發(fā)模式可以使得后期的維護(hù)和功能擴展更加的便利和高效,因為MVC下的開發(fā)可以使得層與層之間相對的獨立。</p><p><b>  學(xué)生課程子系統(tǒng)</b></p><p>  本節(jié)主要為對學(xué)生課程子系統(tǒng)的深入介紹,首先對該子系統(tǒng)的每一個功能模塊進(jìn)行詳細(xì)的描述,然后敘述其實現(xiàn)的策略以及繪制其功能模塊框圖。

62、</p><p>  子系統(tǒng)模塊功能介紹 </p><p>  我們根據(jù)微信下主菜單順序來依次介紹主菜單下的各項子菜單功能:</p><p>  在繽紛課內(nèi)菜單下,有四項子菜單:1.簽到:簽到功能使用微信自帶的定位API進(jìn)行實時的室內(nèi)簽到,因為每次定位都有一定的誤差,所以對于簽到地的經(jīng)緯度判定需要考慮一定的誤差范圍。2.請假:學(xué)生可通過此功能進(jìn)行實時的請假,請假內(nèi)容

63、會推送至教師后臺課程管理子系統(tǒng),與傳統(tǒng)的方式相比,這樣的請假方式避免了原先繁瑣的線下請假方式,提高了效率,節(jié)省了學(xué)生和教師雙方的時間。3.隨堂測驗:這是一項圖文信息,學(xué)生可通過點擊此菜單獲得圖文信息,點擊后進(jìn)入隨堂測試,此項功能主要輔助學(xué)生進(jìn)行課程的理解,同時測試的結(jié)果也會按一定的比例被計入平時分之中。</p><p>  在課后互動菜單中,有5項子菜單:1.提問:學(xué)生可通過此入口進(jìn)行向老師進(jìn)行提問,點擊此菜單后

64、,會返回提問的樣例信息,具體為:“提問請回復(fù) @提問 +提問內(nèi)容 例如:@提問 如何學(xué)好這門課程呢?”,根據(jù)此提問格式,可向教師進(jìn)行課程內(nèi)容提問,提問的信息也會被提交至教師后臺課程管理子系統(tǒng)中的日常管理模塊,實現(xiàn)了線上的問答。2.有話說:功能與提問相類似,針對內(nèi)容有所不同,主要向教師提建議和反映問題,信息將也被提交至教師后臺課程管理子系統(tǒng)的日常管理模塊。3.考試信息、本周作業(yè)查詢:考試信息以及本周作業(yè)查詢子菜單實現(xiàn)方式類似,功能有所區(qū)

65、分,學(xué)生可點擊此兩項菜單來了解考試的時間地點以及本周作業(yè)的具體內(nèi)容,教師可在教師后臺課程管理子系統(tǒng)中的日常管理模塊進(jìn)行編輯此兩項內(nèi)容,提交后,信息會及時的進(jìn)行更新,學(xué)生可以在第一時間掌握最新的資訊!4.教師通知:本菜單的主要內(nèi)容使教師課程內(nèi)容的通知以及課程附件的下載,教師通知菜單被點擊后,學(xué)生會收到教師通知的圖文信息,點擊后可以進(jìn)入教師通知內(nèi)容頁面,同時也有教師的課程附件下載鏈接,但因為在微信瀏覽器下無法下載附件,所以可以在其他瀏覽器打

66、開進(jìn)行下載(如UC、Safar</p><p>  在更多精彩主菜單內(nèi),有3項子菜單:1.教師學(xué)生事務(wù):此菜單針對不同的用戶群體點擊事件返回不同的信息,如若用戶為學(xué)生用戶,則此菜單不提供額外的業(yè)務(wù)功能,若為教師用戶,則返回圖文信息,點擊后進(jìn)入教師院務(wù)處理的網(wǎng)站鏈接,因為微信瀏覽器限制較大,所以建議可以使用其他瀏覽器進(jìn)行操作。2.查看我的活躍度:點擊我的活躍度后,系統(tǒng)會返回活躍度計算說明,如下:“完成一次隨堂測驗且

67、回答正確活躍度+3,回答錯誤+1,向老師提問一次活躍度+2。</p><p>  注意:活躍度是平時成績的一部分!”最終的活躍度只對教師可見,并最終計入平時分。3.幫助:菜單使用以及功能說明。</p><p>  實現(xiàn)策略以及功能框圖</p><p>  圖 5 學(xué)生課程子系統(tǒng)結(jié)構(gòu)圖</p><p>  圖 5展示了學(xué)生課程子系統(tǒng)按功能劃分的

68、模塊組成,對前一節(jié)描述的子功能進(jìn)行了概括。</p><p>  學(xué)生課程管理子系統(tǒng)的實現(xiàn)主要分為以下的幾步:1.使用微信開放者平臺申請微信公眾號。2.構(gòu)建微信菜單。3.微信服務(wù)器接口與自身服務(wù)器進(jìn)行對接,并將處理結(jié)果以特有的格式(XML)返回至微信服務(wù)器中。4.微信服務(wù)器對微信客戶端進(jìn)行反饋。</p><p>  主要涉及到了微信接口的對接、服務(wù)器開發(fā)技術(shù)以及數(shù)據(jù)庫技術(shù)。</p>

69、;<p><b>  教師事務(wù)管理子系統(tǒng)</b></p><p>  本節(jié)主要對教師教務(wù)處理子系統(tǒng)進(jìn)行簡略的介紹,具體描述了子系統(tǒng)的功能以及使用情況。</p><p>  子系統(tǒng)功能與使用介紹</p><p>  教師教務(wù)處理子系統(tǒng)主要針對學(xué)校教務(wù)管理事務(wù)而開發(fā),教師事務(wù)管理子系統(tǒng)主要對信電學(xué)院內(nèi)網(wǎng)辦公系統(tǒng)做功能的遷移,目前具有的

70、功能有教師通訊錄查詢、各專業(yè)課件下載、數(shù)據(jù)性文檔下載、規(guī)范性文檔下載以及內(nèi)部新聞與通知的查看。</p><p><b>  習(xí)題推薦子系統(tǒng)</b></p><p>  本節(jié)主要介紹了習(xí)題推薦子系統(tǒng)的功能以及我們構(gòu)建的習(xí)題推薦系統(tǒng)所采用的基本配置,如具體的推薦算法、領(lǐng)域數(shù)K的值以及最終推薦數(shù)N等。</p><p><b>  子系統(tǒng)功能

71、介紹</b></p><p>  習(xí)題推薦子系統(tǒng)的主要功能是對學(xué)生用戶進(jìn)行習(xí)題的個性化推薦。針對學(xué)生用戶產(chǎn)生的大量有標(biāo)簽的習(xí)題數(shù)據(jù),我們可以有效進(jìn)行利用,利用習(xí)題推薦子系統(tǒng)進(jìn)行一些列的分析,并最終為學(xué)生用戶提供高質(zhì)量的推薦服務(wù)。</p><p>  構(gòu)造帶標(biāo)簽的習(xí)題滿意度數(shù)據(jù)</p><p>  推薦系統(tǒng)的使用需要大量帶標(biāo)簽的用戶行為數(shù)據(jù),在這里,我們讓

72、學(xué)生在完成習(xí)題測試后,需要對習(xí)題質(zhì)量進(jìn)行滿意度的評分,評分分為5級,分別為1、2、3、4、5級,滿意度程度依次升高,這樣可以得到不同學(xué)生為不同習(xí)題打分的數(shù)據(jù)集,學(xué)生未完成習(xí)題則肯定未打分,故不包含在內(nèi),得到的數(shù)據(jù)集可直接用于習(xí)題的個性化推薦。</p><p><b>  子系統(tǒng)實現(xiàn)策略</b></p><p>  在這里我們采用基于用戶的協(xié)同過濾推薦算法,用戶相似度采

73、用余弦相似度,編程語言我們使用Python,領(lǐng)域數(shù)K取值為8,推薦數(shù)N取值為10,也就是說每個學(xué)生用戶我們將找到與其最為相似的8個用戶,計算該學(xué)生用戶對相似用戶評價過的習(xí)題的rank分(兩者均做過的習(xí)題忽略),最終選出rank分前10的10道題推薦給目標(biāo)用戶,以此來完成對用戶的個性化習(xí)題推薦。</p><p>  院務(wù)管理系統(tǒng)的架構(gòu)優(yōu)化</p><p>  本章介紹了院務(wù)管理系統(tǒng)V1.0版

74、本的一系列弊端,針對此弊端,提出了使用S2SH框架的優(yōu)化方案,并對最終改進(jìn)完成的院務(wù)管理系統(tǒng)評估。</p><p><b>  系統(tǒng)原架構(gòu)簡介</b></p><p>  圖 6 原系統(tǒng)架構(gòu)交互圖</p><p>  圖 6為系統(tǒng)原結(jié)構(gòu)交互圖,圖中Servlet指接收微信服務(wù)器的Servlet接收器,Service指項目中的業(yè)務(wù)邏輯層,Dao層

75、指對數(shù)據(jù)庫操作進(jìn)行封裝的模型層。 </p><p>  從圖中我們可以清晰地看到,項目的開發(fā)均嚴(yán)格的按照了MVC的開發(fā)模式,整個系統(tǒng)的結(jié)構(gòu)細(xì)分之下可以分為4層,分別是Control層、Model層、Service層以及數(shù)據(jù)庫。流程主要為Servlet接收request請求,處理后調(diào)用相應(yīng)的業(yè)務(wù)邏輯層的服務(wù),業(yè)務(wù)邏輯層再具體調(diào)用Dao層model,處理完后數(shù)據(jù)返回。</p><p><

76、b>  原系統(tǒng)問題描述</b></p><p>  那么,這樣的系統(tǒng)結(jié)構(gòu)是否存在著一定的問題呢?答案是肯定的。主要有以下的幾點問題:</p><p>  我們可以從上圖中看到,當(dāng)接收器servlet接收到了來自于View層的用戶請求時,它將對請求處理并選擇合適的Service進(jìn)行處理,在這里,Service通過Servlet對象中的操作來創(chuàng)建Service對象,也就是說S

77、ervlet類高度依賴于Service類,同樣的Service類中同樣需要創(chuàng)建Dao層類的對象,Service類又依賴于Dao層類,當(dāng)工程量較大時,這樣的依賴關(guān)系就變得錯綜復(fù)雜了,導(dǎo)致了類與類、層與層之間的高耦合性,不利于代碼的管理、測試以及復(fù)用,另外,創(chuàng)建大量的類實例會增加一定量的代碼,對性能影響也不佳,因此需要改進(jìn)。</p><p>  在上述的系統(tǒng)開發(fā)中,Dao層對于數(shù)據(jù)庫的操作需要大量的拼接SQL語句,這

78、極大的加大了開發(fā)的復(fù)雜度,也延緩了開發(fā)的速率,這樣的一種費時費力的開發(fā)模式需要進(jìn)行改進(jìn)!</p><p>  使用Servlet開發(fā)本身不帶有MVC屬性,需要我們自己搭建MVC的開發(fā)模式,費時費力,且Servlet對于大量的request訪問取參數(shù)值十分不便,因此需要進(jìn)行改進(jìn)。</p><p>  使用S2SH進(jìn)行原系統(tǒng)優(yōu)化</p><p>  本節(jié)主要介紹了采用S

79、2SH進(jìn)行優(yōu)化的優(yōu)化流程,下文依次描述了準(zhǔn)備工作、Structs2配置、Spring配置以及Hibernate的配置流程和方法。</p><p>  使用S2SH前的準(zhǔn)備工作</p><p>  S2SH的部署需要相應(yīng)的jar包支持,在這里,我使用的版本分別是:Struts2.0,Hibernate3,Spring2.5,所需要的jar包列表如圖 7下:</p><p&

80、gt;  圖 7 S2SH依賴jar包圖</p><p>  使用Structs替換Servlet</p><p>  Structs2的使用主要為配置Structs.xml文件,在這里,我們的action配置文件部分展示如圖 8所示:</p><p>  圖 8 Action配置圖</p><p>  創(chuàng)建相應(yīng)的action接收器,部分代碼

81、如下:</p><p>  圖 9 Action創(chuàng)建圖</p><p>  在上述的圖 9 Action創(chuàng)建圖中,我們創(chuàng)建的action類繼承ActionSupport父類以及實現(xiàn)了2個接口(實現(xiàn)Action類方式并不固定),其中的ModelDriven類對參數(shù)的傳遞進(jìn)行了封裝,實現(xiàn)的getModel()將會對參數(shù)進(jìn)行自動的獲取,另一個接口則是對servlet類操作的一個封裝。</p

82、><p>  從圖 10 傳統(tǒng)的參數(shù)接收方試圖可以看到,對比于傳統(tǒng)的servlet接收request參數(shù),structs2僅需要通過調(diào)用getModel()方法就可以完成對于傳遞過來參數(shù)的接收,擁有著較大的優(yōu)勢,因此,完善的封裝可以使得參數(shù)的獲取極為的方便。</p><p>  圖 10 傳統(tǒng)的參數(shù)接收方試圖</p><p>  使用Spring進(jìn)行事務(wù)管理</p

83、><p>  Spring的配置也主要通過配置beans.xml文件,在這里,部分配置文件內(nèi)容如下:</p><p>  配置hibernate數(shù)據(jù)源:</p><p>  圖 11 Hibernate數(shù)據(jù)源圖</p><p><b>  申明事務(wù)管理的權(quán)限</b></p><p>  圖 12 申明

84、事務(wù)管理權(quán)限圖</p><p>  我們通過注解的方式進(jìn)行對象的注入:替代了原先需要在類中創(chuàng)建實例對象的代碼,減少了類與類之間的耦合,對象的管理統(tǒng)一交由Spring容器。</p><p><b>  圖 13 依賴注入</b></p><p>  因此,Spring的存在相當(dāng)于一個容器,用它來管理對象的何時創(chuàng)建以及何時銷毀,相比于之前的方式,類

85、對象的創(chuàng)建依賴于其他類,而現(xiàn)在,對象的獲取可以直接通過第三方的Spring容器,大大減少了類與類以及層與層之間的耦合。 </p><p>  使用Hibernate進(jìn)行數(shù)據(jù)庫操作</p><p>  Hibernate也需要進(jìn)行配置文件的配置,如下:</p><p>  圖 14 JDBC配置圖</p><p>  圖 14 JDBC配

86、置圖中可以看到,Hibernate的配置相對簡單,主要是申明數(shù)據(jù)庫源的信息,部分配置信息聲明在Spring的配置文件beans.xml中。</p><p>  Hibernate對JDBC操作進(jìn)行了一定的封裝,對于數(shù)據(jù)庫的操作往往調(diào)用現(xiàn)有的方法即可解決,避免了以往拼接SQL語句繁瑣的方式。具體如下圖:</p><p><b>  傳統(tǒng)的方式:</b></p>

87、;<p>  圖 15 傳統(tǒng)SQL語句查詢方式圖</p><p>  Hibernate的方式:</p><p>  圖 16 Hibernate數(shù)據(jù)查詢</p><p>  通過兩者的對比可以看到,采用Hibernate框架的數(shù)據(jù)庫操作方式更加的簡潔,可以有效的增快我們項目開發(fā)的速率。</p><p>  使用S2SH改進(jìn)后的

88、系統(tǒng)架構(gòu)對比</p><p>  圖 17 優(yōu)化后的系統(tǒng)架構(gòu)交互圖</p><p>  從圖 17可以看到改進(jìn)后的系統(tǒng)架構(gòu)因為Structs2過濾器的存在,使得系統(tǒng)安全性更高,Spring 的IOC(控制反轉(zhuǎn))使得類與類、層與層之間的耦合性大大的降低,Hibernate使得數(shù)據(jù)庫操作得到了封裝,能使開發(fā)者將更多的精力放入業(yè)務(wù)邏輯層的設(shè)計與開發(fā),因此,改進(jìn)后的系統(tǒng)性能更加穩(wěn)定,安全性更高,更

89、加的益于管理和維護(hù),這樣的改進(jìn)具有比較好的現(xiàn)實意義!</p><p>  院務(wù)管理系統(tǒng)的功能測試與分析</p><p>  本章主要對院務(wù)管理系統(tǒng)進(jìn)行功能的測試,考慮到系統(tǒng)較為的龐雜,故測試按照每一個子系統(tǒng)的功能測試來進(jìn)行,其中又對習(xí)題推薦子系統(tǒng)反饋結(jié)果進(jìn)行了誤差的析,具體內(nèi)容如下。</p><p>  教師課程后臺管理子系統(tǒng)測試</p><p&

90、gt;  教師課程后臺管理子系統(tǒng)共分為4個功能模塊,我們分別對每一個模塊進(jìn)行細(xì)致的功能測試,具體情況如下:</p><p><b>  學(xué)生管理模塊</b></p><p>  登錄系統(tǒng)后進(jìn)入學(xué)生管理模塊,從上圖可以看到學(xué)生管理模塊功能運行正常,能正常的顯示加入此門課的學(xué)生信息,信息包括編號、姓名、學(xué)號以及微信號。</p><p><b&

91、gt;  試題管理模塊</b></p><p>  上圖為習(xí)題顯示列表,此頁面能正確顯示當(dāng)前習(xí)題所屬的套題,選項以及正確的答案。</p><p><b>  上圖為新增習(xí)題界面</b></p><p><b>  試題添加成功</b></p><p><b>  成績管理模塊&

92、lt;/b></p><p>  成功查看各學(xué)生的成績</p><p><b>  日常管理模塊</b></p><p>  上圖為學(xué)生問題匯總,學(xué)生在微信客戶端提問均可以被提交至此表格中方便教師瀏覽,為學(xué)生答疑。</p><p>  學(xué)生請假信息,對學(xué)生請假信息的顯示和匯總。</p><p&g

93、t;  上左圖為教師上課時間地點和作業(yè)布置通知及時編輯,右圖為教師發(fā)布課程通知以及課程附件上傳,學(xué)生可在微信客戶端及時獲取最新的課程信息以及下載課程附件。</p><p><b>  學(xué)生課程子系統(tǒng)測試</b></p><p>  本節(jié)主要對學(xué)生課程子系統(tǒng)進(jìn)行測試,按照主菜單順序功能一次進(jìn)行完成那個的測試:</p><p><b> 

94、 繽紛課內(nèi)</b></p><p>  繽紛課內(nèi)主菜單如上圖所示,點擊繽紛課內(nèi)菜單后,我們可以看到上述圖XX中有四項子菜單,分別是簽到、請假、隨堂測驗以及上課時間地點查詢。</p><p>  上面各圖為繽紛課內(nèi)菜單的各項子功能測試的完整截圖。</p><p><b>  課后互動</b></p><p> 

95、 課后互動菜單有5項子菜單,分別為提問、有話說、考試信息、教師通知以及本周作業(yè)查詢。測試截圖如下:</p><p><b>  更多精彩</b></p><p>  更多精彩主菜單主要分為3個子功能菜單,分別是教師事務(wù)、查看我的活躍度以及幫助,測試截圖如下:</p><p><b>  教師事務(wù)管理子系統(tǒng)</b></

96、p><p>  本節(jié)主要對教師教務(wù)處理子系統(tǒng)進(jìn)行測試,以下為測試的截圖: </p><p>  以上的功能測試圖依次為:教師用戶點擊教師事務(wù)子菜單后接收到的多圖文消息、教師通訊錄、學(xué)習(xí)資料下載測試、數(shù)據(jù)行文檔下載、規(guī)范性文檔下載以及內(nèi)部通知。</p><p><b>  習(xí)題推薦子系統(tǒng)測試</b></p><p>  本

97、節(jié)中,我們主要討論對習(xí)題推薦子系統(tǒng)的測試,因為習(xí)題推薦子系統(tǒng)需要大量帶標(biāo)簽的習(xí)題滿意度數(shù)據(jù),所以我們首先解決了數(shù)據(jù)的缺失問題(使用測試數(shù)據(jù)替代),然后選取了單一用戶對其進(jìn)行推薦,最后計算了推薦中的recall和precision指標(biāo)進(jìn)行評估。</p><p><b>  測試數(shù)據(jù)集的選取</b></p><p>  因為我們沒有足夠的習(xí)題滿意度數(shù)據(jù),故在此我們使用一組

98、測試數(shù)據(jù)來進(jìn)行替換,這組測試數(shù)據(jù)與我們的習(xí)題滿意度數(shù)據(jù)格式保持完全一致,從研究角度來說,不會對我們的推薦系統(tǒng)推薦效果造成任何的影響。在此摘取了測試數(shù)據(jù)的極小一部分,如下所示:</p><p>  第一列數(shù)據(jù)表示學(xué)號,第二列數(shù)據(jù)表示習(xí)題編號,第三列數(shù)據(jù)表示滿意度,原數(shù)據(jù)源于movielens 100K數(shù)據(jù)集,本次實驗數(shù)據(jù)為其數(shù)據(jù)集的20%(隨機選取其中的20%數(shù)據(jù),并剔除了時間項),總數(shù)量為20336條滿意度評分。

99、</p><p>  解決了習(xí)題滿意度評分的數(shù)據(jù)替代問題,我們來考慮原數(shù)據(jù)集的數(shù)據(jù)劃分問題,我們將原數(shù)據(jù)集隨機劃分為9份,其中訓(xùn)練數(shù)據(jù)占8份,測試數(shù)據(jù)占一份,也就是訓(xùn)練數(shù)據(jù):測試數(shù)據(jù) = 8 : 1,按這樣的比例來進(jìn)行數(shù)據(jù)的訓(xùn)練和測試,最后我們又著手通過Python語言進(jìn)行基于用戶的協(xié)同過濾推薦算法的編寫(原程序見附錄),最后我們對召回率、準(zhǔn)確率進(jìn)行分析,并對編號為“748”的學(xué)生進(jìn)行習(xí)題推薦。</p>

100、;<p>  推薦結(jié)果展示以及誤差分析</p><p>  我們使用Python語言進(jìn)行算法的編寫,我們令相似用戶選取數(shù)量K分別取值[8,16,24,32,40],依次得到推薦的召回率與準(zhǔn)確率,程序運行結(jié)果如下:</p><p>  圖 18 不同K值下的召回率和準(zhǔn)確率圖</p><p>  從圖 18 不同K值下的召回率和準(zhǔn)確率圖可以看到,K的取值在

101、40以內(nèi)時,隨著K的增加,推薦的召回率以及精確率均會不斷提高(如若K值達(dá)到某個上限,隨著K值的增加,recall以及precision可能會不增反減),試驗中recall和precision的值大小和變化趨勢符合推薦系統(tǒng)的一般規(guī)律。在推薦系統(tǒng)領(lǐng)域,一般的使用movielens 100K數(shù)據(jù)集在K取值40的情況下recall能達(dá)到12.17%,precision能達(dá)到24.50%,recall的值基本于我們的相近,precision的值相

102、差較大,主要是因為我們的數(shù)據(jù)集截取于movielens 100K數(shù)據(jù)集,大小是原先數(shù)據(jù)集的1/5,故準(zhǔn)確率會小于24.50%,但其變化的趨勢完全正確。</p><p>  接來下我們選取編號為“748”的學(xué)生對他進(jìn)行習(xí)題的推薦,結(jié)果如下:</p><p>  此時K=8,推薦習(xí)題數(shù)為10,系統(tǒng)選取8位與他相似度最高的學(xué)生,計算他們所做過的題目(“748”未做過)對于“748”的推薦評分(公

103、式見1.3),系統(tǒng)設(shè)定為推薦評分最高的10道題,10道題的評分在上圖右側(cè),左側(cè)為習(xí)題編號,因此基于此模式下的推薦系統(tǒng)可以比較好的運用于學(xué)生習(xí)題推薦中。</p><p><b>  總結(jié)與展望</b></p><p>  本章主要總結(jié)了本篇論文已經(jīng)完成的一些工作以及未來繼續(xù)要做的工作,最后對本科階段幫助過我的老師表達(dá)由衷的感謝。</p><p>

104、<b>  工作總結(jié)</b></p><p>  本課題所做的主要工作如下:</p><p> ?。?)前期階段通過資料查詢以及實際的需求調(diào)查確認(rèn)了開發(fā)基于移動互聯(lián)網(wǎng)的手機院務(wù)管理系統(tǒng)具有良好的現(xiàn)實意義,隨后,從系統(tǒng)的技術(shù)實現(xiàn)角度上,我們力爭能以最合理最高效的方式來完成系統(tǒng)的開發(fā),因此我們又對微信當(dāng)前的用戶數(shù)量、用戶年齡、性別分布以及微信公眾平臺開發(fā)情況進(jìn)行網(wǎng)上調(diào)研,

105、確定了以微信客戶端作為我們院務(wù)管理系統(tǒng)客戶端的合理性以及可行性,使得系統(tǒng)有了一個初步的實現(xiàn)架構(gòu)。</p><p> ?。?)本階段主要進(jìn)行系統(tǒng)的主要開發(fā)工作,使用基本的MVC模式開發(fā)。系統(tǒng)主要包含微信客戶端、教師后臺的登入系統(tǒng)、自己的服務(wù)器后臺以及數(shù)據(jù)庫。從功能層次劃分全系統(tǒng)分為教師課程后臺管理子系統(tǒng)、學(xué)生課程子系統(tǒng)以及教師教務(wù)處理子系統(tǒng)。</p><p> ?。?)針對原系統(tǒng)的一系列不足

106、,使用S2SH對原系統(tǒng)進(jìn)行重構(gòu),以此來獲得一個可擴展性更好、更安全、內(nèi)部耦合度更低的系統(tǒng)。</p><p>  (4)構(gòu)想在學(xué)生課程子系統(tǒng)引入推薦機制,針對學(xué)生習(xí)題練習(xí)以及滿意度評分?jǐn)?shù)據(jù)進(jìn)行習(xí)題推薦。通過構(gòu)造實驗來證明習(xí)題推薦的可行性,在此次實驗中,使用與習(xí)題滿意度評分格式一致的部分movielens 100K數(shù)據(jù)進(jìn)行替代試驗,推薦算法使用基于用戶的協(xié)同過濾算法,最終實驗結(jié)果與業(yè)界公認(rèn)標(biāo)準(zhǔn)進(jìn)行對照,表明實驗結(jié)果具

107、有一定的準(zhǔn)確度,隨后,又選取特定編號的學(xué)生進(jìn)行推薦,推薦題數(shù)設(shè)置為10,該學(xué)生最終得到了rank分前10的個性化題目推薦,推薦實驗較為成功,可引入至學(xué)生課程子系統(tǒng)中。 </p><p><b>  未來展望</b></p><p>  經(jīng)過幾個月時間的項目編碼以及最后的論文寫作,課題終于是要臨近尾聲了?;仡櫿麄€項目,還有許多方面需要去完善,例如web服務(wù)器的響應(yīng)優(yōu)化、

108、習(xí)題推薦機制的完善等等。最終的目標(biāo)很明確,要把它打造成一個穩(wěn)定、智能且擁有一定用戶群體的完善系統(tǒng)。要做到這些,還需要我付出更多,但我相信,憑借自身的不懈努力,自己一定會做到這一切!臨近畢業(yè)之際,自己最想說的是非常感謝學(xué)院里曾經(jīng)在我年少迷茫之時給與我意見以及為我指明未來道路的老師,感謝!?。?lt;/p><p><b>  致謝</b></p><p>  寫本章的時候內(nèi)心

109、滋味五味陳雜,遠(yuǎn)沒有我想象中完成論文時的喜悅和如釋重負(fù),反而是感覺到了一絲感慨和傷感,或許是要畢業(yè)離開這個我學(xué)習(xí)了4年的地方了吧,我覺得我是幸運的,大學(xué)四年碰到了太多熱心的、幫助過我的老師和同學(xué),在此特立一章對所有幫助過我的人表達(dá)最真摯的感謝。</p><p>  首選,我要感謝我畢設(shè)的老師--諸葛老師,記得大一的時候正是諸葛斌老師讓我明白了什么是編程,帶我走進(jìn)了這扇大門,在畢設(shè)進(jìn)行的過程中,諸葛斌老師一直都熱心

110、的為我解答各類的問題,在百忙之中,他會每周抽出時間和我們見面詢問我們畢設(shè)的情況,正是源于他的幫助,我的畢設(shè)才能走到今天這步,故此特別感謝!</p><p>  另外,我也要特別感謝為這個領(lǐng)域留下如此多智慧結(jié)晶的先人前輩們,沒有他們得知識基礎(chǔ),我沒有辦法展開自己的研究和創(chuàng)新。</p><p>  最后,我要感謝一直陪伴在我身邊的家人朋友們,正是他們一路溫暖的關(guān)懷和鼓勵,才讓我走到了今天的這一

111、步!</p><p><b>  主要參考文獻(xiàn)</b></p><p>  白浩,郝晶晶.微信公眾平臺在高校教育領(lǐng)域中的應(yīng)用研究[J] 中國教育信息化·基礎(chǔ)教育 2013(2):78-80.</p><p>  ZHANG Meng-ying. How to Maintain Students’ Motivation——A Sampl

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論