摘 要:就當前大學課程比較多,且課程表與一些比較重要的學校通知信息只能在各學校網(wǎng)站上的教學系統(tǒng)中查到,為了解決這一情況,開發(fā)基于Android平臺、SQLite數(shù)據(jù)庫已經(jīng)Jsoup網(wǎng)絡信息爬蟲智能識別技術的SCU Classer軟件,應用于手機客戶端,使學校同學能夠方便的查看各自的課表和熱點信息。
關鍵詞:SCU Classer;Android;SQLite;Jsoup
中圖分類號:TP311.52
1 背景
目前,越來越多的學生涌入自己夢想中的大學,并且大學的課程也比高中的課程更多,上課的地點也不固定,而唯一能查看課表的方法是登錄自身大學的學生信息綜合平臺,或者是通過已經(jīng)拍攝好的課程表照片進行查看,這種原始的方法對于大學生來說不但很繁瑣,而且由于有些課程是在不同學習周才開課,一不小心,就會遺忘去上課,這對學生上課的質(zhì)量造成了極大的影響。
于此同時,面對大學學校的信息多,很多同學沒有每天查看自己學校網(wǎng)站上通知與信息的習慣,從而一些比較好的國內(nèi)外大學交流項目和很多學校學院組織的好活動,由于學生的不了解,不但導致活動質(zhì)量下降,更讓學生錯過了施展自己才能和去國外學習的好機會,如何讓學生能夠及時的獲取到學校重要的信息,也是本軟件開發(fā)的目的。
隨著移動終端用戶的爆發(fā)式增長,將一些計算機上的重要信息通過網(wǎng)絡在手機端表示,這無疑會給人們帶來極大的方便,而我們的目的就是開發(fā)能將學生課表和一些對學生有用的信息在手機端顯示并保存到SQLite數(shù)據(jù)庫,同時能夠?qū)崟r提醒學生查看。
本軟件的創(chuàng)新點在于:
(1)將原本學生信息平臺網(wǎng)頁上的課程表通過Jsoup進行重要內(nèi)容爬取,按重新的排版顯示在手機端,課程表信息將更加濃厚,并且查看方便。
(2)將學校學院網(wǎng)站上的通知和熱點新聞,爬取最新的30條,在手機端顯示,能夠隨時刷新,查看最新的通知新聞。
(3)學生在下載完此軟件后,只需要每學期輸入一次學號密碼,就可下載完該學期的課程表信息,操作方便直觀。
總體而言,該項目能夠讓學生感覺到全所未有的方便與快捷,學生通過此SCU Classer軟件查看課表,能更加有規(guī)律的上課,且對上課充滿樂趣,對學校學院的信息了如指掌。
2 需求分析
2.1 需求分析
軟件的主要功能是實現(xiàn)查看學生課程表和熱點新聞的方便與快捷。主要面向老師和學生用戶,學生用戶的主要模塊包括:課表導入、課表查看與查詢、查看空教室、找老師交流、熱點信息查看等;老師模塊包括:考試提醒、課表導入、課表查看、查看同一時間上課老師,熱點信息查看等。
同時本軟件滿足的需求的三個特性:
(1)適應性:系統(tǒng)設計是基于Android平臺的客戶端,并且目前帶有Android平臺的手機越來越大眾化,其運行環(huán)境成熟,用戶交互方便,有利于軟件的推廣與使用。
(2)時間特性:在數(shù)據(jù)傳輸效率和網(wǎng)頁html下載時間和數(shù)據(jù)庫查詢的時間都符合大眾用戶的要求。
(3)精確性:所有數(shù)據(jù)都是從教務處網(wǎng)頁上爬取下來的正確的數(shù)據(jù)。
3 關鍵技術實現(xiàn)
3.1 技術概述
為了在Android平臺上能夠?qū)崿F(xiàn)更快的反應速度,鑒于SQLite數(shù)據(jù)庫已經(jīng)內(nèi)嵌到Android系統(tǒng)中,非常方便且兼容性好,所以本軟件采用SQLite數(shù)據(jù)庫來保存從網(wǎng)頁中爬取篩選出的重要數(shù)據(jù)。
在Android中的如何獲取網(wǎng)頁的html源代碼,已經(jīng)能夠簡單的操作網(wǎng)頁。由于教務處網(wǎng)站需要學號密碼驗證,通過程序模擬的方法插入post數(shù)據(jù),經(jīng)實踐得到兩個數(shù)據(jù)為zjh和mm,分別表示學號和密碼,然后獲取到對應的cookie,再借助以獲取的cookie打開有課程表內(nèi)容的網(wǎng)頁,爬取具體的數(shù)據(jù)放入數(shù)據(jù)庫。
具體手機操作、教務處網(wǎng)站服務器、SQLite數(shù)據(jù)庫之間的流程如下圖1:
圖1
3.2 功能模塊劃分
通過上述對軟件的需求分析的基礎上,對軟件的功能進行設計,采用獨立的開發(fā)模式,開發(fā)不需要很高的成本,比較實惠,最終希望該軟件能被用戶所采納。并且該系統(tǒng)分為三個主要模塊:
(1)學生模塊:本模塊包含對于學生用戶使用的所有功能,用于表示SCU Classer系統(tǒng)中學生用戶使用軟件的功能模塊。
(2)老師模塊:本模塊包含對于老師用戶使用的所有功能,用于表示SCU Classer系統(tǒng)中老師用戶使用軟件的功能模塊。
(3)本模塊包含對于用戶使用的查看信息的功能。
具體如下圖2:
圖2
3.3 數(shù)據(jù)庫設計
數(shù)據(jù)庫主要涉及到的數(shù)據(jù)是用戶對應的課程信息,以及學校學院網(wǎng)站上的熱點通知和新聞,數(shù)據(jù)處理和保存是軟件實現(xiàn)的重點。因此,為了保證系統(tǒng)庫設計的正確性,首先通過對課程信息和熱點信息的了解,反復討論通過PowerDesigner設計出數(shù)據(jù)的邏輯模型,然后轉(zhuǎn)化成對應的物理模型,最后導出sql文件,建立數(shù)據(jù)庫與數(shù)據(jù)表。主要實體包括:課程,學生信息,課程詳細信息,學生課程,學校熱點信息,學院熱點信息,考試信息,老師信息。該軟件主要使用的是android支持的SQLite格式,在android.database.sqlite包,并且包含SQLiteOpenHelper和SQLiteDataBase兩個類,來實現(xiàn)數(shù)據(jù)庫的打開、存儲、更新、查詢等行為。同時使用SQlite的好處有:
(1)核心引擎不需要依賴第三方軟件,方便使用。
(2)所有信息都在android內(nèi)部數(shù)據(jù)的data文件夾下軟件應用名下的data數(shù)據(jù)中,方便維護。
(3)支持多種語言編程接口,方便移植。
3.4 系統(tǒng)部分界面演示
(1)進入軟件,通過歡迎界面并進去主界面,主界面如圖3。
圖3 圖4
(2)點擊學生,進入學生主界面,例子為已經(jīng)導入課表的用戶(作者本人),左右滑動可以切換不同日的課程,如圖4。
(3)點擊上圖的具體課程信息,出現(xiàn)圖5,其顯示具體課程的所有信息。
圖5 圖6
(4)點擊加號按鈕,即可進入界面,選擇具體的大學,如圖6。
(5)點擊任何一所大學,即進入如圖7,填入你的學號和密碼,點擊黑色確認。
圖7 圖8
(6)另外學院的熱點信息顯示如圖8。
(7)點擊任何一條list,即可顯示具體信息,如圖9。
圖9
4 結束語
論文對基于Android平臺的查看學生課程表和熱點信息軟件SCU Classer軟件的研究、設計和實現(xiàn),主要過程分為需求分析、概要體系設計、詳細結構設計、數(shù)據(jù)庫設計、軟件界面設計以及編碼測試,最終實現(xiàn)數(shù)據(jù)庫操作、網(wǎng)絡操作、后臺數(shù)據(jù)處理操作等過程。通過此軟件,滿足了用戶對查看課表、熱點信息的需求,使用戶更加方便快捷,無論從信息獲取速度,還是從信息承載媒介方面來看,都比原始的方法更貼切,效率更高,與之同時,該軟件不會泄露任何數(shù)據(jù),對必要的數(shù)據(jù)做的private私有保護,整個軟件是一個黑匣子,提供的數(shù)據(jù)操作端口完全能夠滿足用戶的需求,唯一的聯(lián)網(wǎng)操作只是下載課程表數(shù)據(jù),能使用戶放心使用,并且體現(xiàn)了軟件簡易的特性??偠灾?,該軟件代替了原先比較死板的查看課程表的方式,使用戶在最先進的技術下享受方便簡潔的應用,提升了用戶對課程表表現(xiàn)形式的便捷觀點。
參考文獻:
[1](美)Roger S.Pressman.軟件工程——實踐者的研究方法(第七版)[M].北京:機械工業(yè)出版社,2011.
[2]E2ECloud工作室.深入淺出Google Android[M].北京:人民郵電出版社,2009.
[3]李興華.Java開發(fā)實戰(zhàn)經(jīng)典[M].北京:清華大學出版社,2009.
[4]王珊,薩師煊.數(shù)據(jù)庫系統(tǒng)概述[M].北京:高等教育出版社,2006.
[5]公磊,周聰.基于Android的移動終端應用程序開發(fā)與研究[J].計算機與現(xiàn)代化,2008(08).
作者簡介:陸楊迪(1992-),男,浙江慈溪人,計算機科學與技術專業(yè),本科在讀。
作者單位:四川大學 計算機學院,成都 610207